F9HBe


Мигаем светодиодом на Raspberry Pi используя GPIO
-------------------------------------------------
Рахул Kaр × 1:00 PM

  http://www.rpiblog.com/2012/09/using-gpio-of-raspberry-pi-to-blink-led.html

NB! В устаревший текст мной внесены необходимые изменения (20150917)

Для подключения Breadboard к Pi я использовал разъем IDE HDD.
Ток на светодиод ограничивается последовательно включенным сопротивлением на 470 Ом.

  3.3V       1 |  2  5V
  12C0 SDA   3 |  4  DNC
  12C0 SCL   5 |  6  GROUND
  GPIO4      7 |  8  UART TXD
  DNC        9 | 10  UART RXD
  GPIO17    11 | 12  GPIO18
  GPIO21    13 | 14  DNC
  GPIO22    15 | 16  GPIO23
  DNC       17 | 18  GPIO24
  SPIO MOSI 19 | 20  DNC
  SPIO MISO 21 | 22  GPIO25
  SPIO SCLK 23 | 24  SPIO CE0 N
  DNC       25 | 26  SPIO CE1 N

Программная реализация:

Самый быстрый способ, чтобы начать -- это использовать Python, который предустановлен всех ОС. Установите Raspbian с текущей версии NOOBS 1.4.1

Убедитесь, что GPIO работает с Python 2.7*:

  $ python
  Python 2.7.3 (default, Mar 18 2014, 05:13:23)
  [GCC 4.6.3] on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  >>> import RPi.GPIO as GPIO
  >>> GPIO
  <module 'RPi.GPIO' from '/usr/lib/python2.7/dist-packages/RPi/GPIO.so'>

Основываясь на библиотеке, я написал простой код, чтобы включать и выключать светодиод с задержкой 1 сек (1000 мс). Светодиодный индикатор мигает 50 раз.

    import RPi.GPIO as GPIO
    import time

    # blinking function
    def blink(pin):
        GPIO.output( pin, GPIO.HIGH)
        time.sleep( 1)
        GPIO.output( pin, GPIO.LOW)
        time.sleep( 1)
        return

    # to use Raspberry Pi board pin numbers
    GPIO.setmode( GPIO.BOARD)

    # set up GPIO output channel
    GPIO.setup( 11, GPIO.OUT)

    # blink GPIO17 (on pin 11) 50 times
    for i in range( 0, 50):
        blink( 11)

    GPIO.cleanup()

Примечания:
-----------

*)  Jul 9 at 13:53 berto
    http://raspberrypi.stackexchange.com
         /questions/27407/importerror-no-module-named-gpio

RPi и vPython) by ghans » Sat Oct 12, 2013 8:19 am
The Pi doesn't support OpenGL , only OpenGL ES.
Perhaps Pi3D might be an alternative for you ?

  https://www.raspberrypi.org/forums/viewtopic.php?f=32&t=57999
  https://pi3d.github.io/

Приложение А. Подключение Raspberry PI
--------------------------------------

Подключить питание (microUSB) и сеть Еthernet (можно через Switch).
Выяснить IP-адрес Pi-компьютера.

  C:\WINDOWS\system32>ipconfig

  Windows IP Configuration
  ..
  Ethernet adapter Ethernet:

     Connection-specific DNS Suffix  . : lan
     Link-local IPv6 Address . . . . . : fe80::ad24:8e7f:d0cd:33d5%6
     IPv4 Address. . . . . . . . . . . : 192.168.1.65
     Subnet Mask . . . . . . . . . . . : 255.255.255.0
     Default Gateway . . . . . . . . . : 192.168.1.254
  ..

  C:\WINDOWS\system32>nmap -sP 192.168.1.0/24
  ..
  Starting Nmap 6.49BETA4 at 2015-09-17 16:20 FLE Daylight Time
  Nmap scan report for raspberrypi.lan (192.168.1.67)
  Host is up (0.00s latency).
  MAC Address: B8:27:EB:F5:53:BB (Raspberry Pi Foundation)
  ..
  Nmap done: 256 IP addresses (4 hosts up) scanned in 3.75 seconds

Подключиться через SSH (для Windows, например через PuTTY)
Вход в Raspbian:

  user: pi
  password: raspberry

Приложение Б. Светофор пользователя g3sna

  https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=11570

Исходный код:

  #!/usr/bin/env python

  # Must be run as root - sudo python TrafficLights.py
  import time, RPi.GPIO as GPIO

  GPIO.setmode(GPIO.BOARD)

  GPIO.setup(11, GPIO.OUT)
  GPIO.setup(13, GPIO.OUT)
  GPIO.setup(15, GPIO.OUT)

  # Pi-11 -- an output to drive the input to the red light circuit,
  # Pi-13 -- an output to drive the input to the amber light circuit
  # Pi-15 -- an output to drive the input to the green light circuit

  while True:
    redon = GPIO.output(11, 1) # 1 High 0 Low
    amberoff = GPIO.output(13, 0)
    greenoff = GPIO.output(15, 0)

    time.sleep(10)

    redon = GPIO.output(11, 1)
    amberon = GPIO.output(13, 1)
    greenoff = GPIO.output(15, 0)

    time.sleep(5)

    redoff = GPIO.output(11, 0)
    amberoff = GPIO.output(13, 0)
    greenon = GPIO.output(15, 1)

    time.sleep(10)

    redoff = GPIO.output(11, 0)
    amberon = GPIO.output(13, 1)
    greenoff = GPIO.output(15, 0)

    time.sleep(5)
