Малина PI и GPIO щифтове: Контролиране на LED с Bash и питон

В предишния пост, ние видяхме бяха GPIO изводите и някои примери за практически приложения, Днес ние ще се фокусира върху работата на общо предназначение щифтове, и се научи да ги контролира с поръчки на преводач Баш и с Питон.

прото&LED

Ще използва LED, устойчивост на 330 ОМ, Тел, и един Breadboard, или калай и поялник.

Ние също ще трябва ни Малина вече са Raspbian предварително инсталирани, Ако вашия случай не е, Можете да видите как да го направя следните връзка от Директория.

Езда на верига

Можете да спойка директно LED тел и съпротивата както ще видите по-долу диаграма, Въпреки че е много по-добре да се използва Breadboard; Също така е много важно да изглеждат добре на бакенбарди, както и в “диагонал” във вътрешността на диод LED комбиниране на две игли за монтиране на верига, вече това ако го монтирате назад няма да включите.

Верига, необходими за контрол на запалването на LED диод.

Верига, необходими за контрол на силата на LED диод.

Аз отивам да се използва един Breadboard, и аз препоръчвам ви да използвате, Има някои от около €4 и те ни позволяват да повторна употреба компоненти отново и отново без да се налага да ги спойка, вътрешните връзки на една Breadboard те са склонни да се следните.

protocon

Breadboard връзки.

Връзките между Breadboard и на Малина те трябва да бъдат както следващата диаграма, The GPIO Можете да стигнете до издаване 3,3V за да присвоите логическа висока стойност.

Схема на Breadboard.

Верига, необходими за контрол на силата на LED диод.

Здравейте Светът на GPIO с Баш

Веднъж монтирани верига, Ние ще направим това, което наричаме “Здравейте света GPIO” в Баш изпълнява следните скрипт.

#!/bin/bash
#Exportamos el puerto GPIO 17 
echo 17 > /sys/class/gpio/export 
#Lo configuramos como salida 
echo out > /sys/class/gpio/gpio17/direction 
#Encendemos el LED asignandole 1 como valor lógico
echo 1 > /sys/class/gpio/gpio17/value

За да изключите LED, можем да го направим със следните скрипт.

#!/bin/bash
#Apagamos el LED asignandole 0 como valor lógico
echo 0 > /sys/class/gpio/gpio17/value  
#Eliminamos la entrada del puerto GPIO 17 
echo 17 > /sys/class/gpio/unexport 

Основно се занимаваме с Баш е да се създаде Адресна книга йерархия в /sys/клас/gpio и добавяне на съдържание към всеки файл, който ще бъдат третирани като променлива.

йерархия

Йерархия в директорията /sys/class/gpio.

Въведение в Python

Ние вече са доказали, че нашата верига работи правилно и LED е бил уволнен да даде логично висока стойност на променливата, Сега нека видим как можем да направим същото в Питон, Това ще ни позволи да планирате нашите уеб приложения за контрол на входове и изходи на GPIO от всяко устройство.

funcweb

Операцията с помощта на уеб приложение.

Преди да продължите, Аз препоръчвам, че виждате главите на 1 за да 10 на Този видео урок от питон канала на YouTube на Код улеснява, Ако както аз нямам много идеята за програмиране в Питон, Тя може да дойде да ви много добре да се запознаете с кода, който ще видите по-напред и дойде да се разбере.

Различни Pinouts на GPIO (BCM и съвет)

Има два вида на ПИН номериране, физически номериране или режим СЪВЕТ, и номерирането на чип SoC Broadcom ги контролира, Ние ще използваме pinout в режим BCM, но нека да погледнем в разликата.

BCMvsBOARD

Здравейте Светът на GPIO с Python

След гледане на видео, и различни pinouts вече могат да разбират основните код, за да “Здравейте света GPIO” в Питон.

Първо ние ще да изтеглите всичко, което трябва да се контролира GPIO с Питон, в Raspbian те вече са инсталирани Питон и библиотеки GPIO, но ние ще да инсталирате допълнителен пакет и обновяване на системата да имат най-новата версия.

usuario@maquina:~$ sudo apt-get install python-dev
usuario@maquina:~$ sudo apt-get install python-rpi.gpio
usuario@maquina:~$ sudo apt-get update && sudo apt-get upgrade

Актуализира веднъж, Нека видим как да включите LED със следните скрипт, Можете например да се обадите enciende.py, и ние може да го стартирате като root с командата “Sudo Enciende.py Пайтън”.

#!usr/bin/env/ python
#enciende.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Definimos el modo BCM 
GPIO.setmode(GPIO.BCM) 
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Y le damos un valor logico alto para encender el LED
GPIO.output(17, GPIO.HIGH) 

С това можем да го изключите, например повикване apaga.py

#!usr/bin/env/ python
#apaga.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Definimos el modo BCM
GPIO.setmode(GPIO.BCM)  
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Y le damos un valor logico bajo para apagar el LED
GPIO.output(17, GPIO.LOW) 
#Finalmente liberamos todos los pines GPIO, es decir, los desconfiguramos)
GPIO.cleanup() 

И с това ние ще ти се обадя parpadea.py, Ние ще направим мигащи LED.

#!usr/bin/env/ python
#parpadea.py
#importamos la libreria GPIO
import RPi.GPIO as GPIO 
#Importamos la libreria time
import time 
#Definimos el modo BCM 
GPIO.setmode(GPIO.BCM) 
#Ahora definimos el pin GPIO 17 como salida
GPIO.setup(17, GPIO.OUT) 
#Queremos que lo que contenga el for i in range se repita 5 veces
for i in range(0,5): 
        #Asignamos valor logico alto para encenderlo
               GPIO.output(17, GPIO.HIGH) 
        #Esperamos un segundo
               time.sleep(1)
        #Asignamos valor logico bajo para apagarlo
         GPIO.output(17, GPIO.LOW) 
        #Esperamos un segundo
         time.sleep(1) 
#Una vez termina las 5 repeticiones, liberamos el pin GPIO utilizado; en este caso el 17
GPIO.cleanup() 

Ако не импортирате библиотеката “време“, не може да добавите “сън“, и ако не добавите “сън” втори между и изключване, Това е напълно възможно, че очите ни не ще възприемат трептене.

Това е много важно да не добавите специални знаци в скриптове в питон, Поради тази причина коментарите не носят акценти, Тъй като тя даде характер грешка невалиден.

В следното вписване Ще видим как да се направи проста Уеб приложение ни позволяват да изпълняваме тези скриптове, за да може да се контролира от всяко устройство с браузър Уеб.

Ако ви харесва можете да следвате ме на Twitter, Facebook, Google +, LinkedIn, или я споделете с бутоните под тази публикация, Ако имате някакви въпроси или предложения, моля не се колебайте да коментират.

Помогнете ни да достигнат до повече читатели Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

16 мисли за"Малина PI и GPIO щифтове: Контролиране на LED с Bash и питон

  1. Аз имам един въпрос от начинаещ…
    тъй като съпротивлението на 330 Ом и кога да го използвате?

    Винаги се използват за 330 Когато работим с RPI, или тя може да варира?

    Поздрав и отличен блог!!!

  2. Здравейте ми работи, и след това следвайте стъпките на писмото с python, трябва да дадете разрешения за файл на питон?

    • Здравей Петър,

      По принцип тя трябва да работи, грешка само е дал разрешения за някои хора, но се изпълнява от уеб приложението, като потребител www-данни по подразбиране вече няма тези права.

      Само в случай опитайте да “Sudo chmod + x script.py” за да го изпълним, Макар и не така тя трябва да работи само от терминал; Можете да ме научи ако ви връща съобщение за грешка в терминала да изпълните скрипта??

      Благодаря ви много за вашия коментар.

  3. Добре, Когато въведете скрипт в питон, ми казва, че arroba е SyntaxError какво може да се? Благодаря и поздрави.

    • Намери ме много странно, Тъй като в скрипта няма никакъв @, може ли да даде повече подробности за грешката?

      До скоро виждане, и благодаря за коментиране.

  4. Здравейте,
    Аз съм се опитва да включите LED чрез питон след ръководство проби, но тя ми дава следната грешка, когато стартирате код го:

    Импортиране на RPi.GPIO като GPIO

    Грешка:
    -Баш: Импортиране: поръчката не е намерен

    Знаете ли, защо е тази грешка?

    Благодаря ви и поздравления за блога е обслужващи ми много!

    • Нано Здравейте, Благодаря за коментара.

      Изглежда, че кодът се тълкува от Баш а не от питон.

      Провеждате ли сценария, или в редовете на код в терминала директно?

      • Хмм е тичане то от терминала…Hehe мазнини грешка (Аз съм нов за малината не може да си го позволят още = P )

        • Аз съм се радвам, че сте разрешили!!!

          Благодаря за коментара, не се колебайте да го направите, ако имате някакви въпроси; между читателите и ще ви липсва ръка.

  5. Добър отново,
    това, което не разбирам е на първа линия на код: #!ЮЕсАр/хамбар/env/питон
    Какво е това?
    Виждам, че тя работи само с или без него

    • Нано Здравейте, добре дошли отново.

      Линията, които споменавате е твърдението, че често е включен в началото на скрипт, за да кажете на терминала, където преводач, който нареждания трябва да ви мине, в този случай, питон; за Баш ще бъде както следва::

      #!/BIN/bash

      В този случай тя работи с декларацията и без него, тъй като този файл има разширение .py, но това е добра практика да винаги да го добавите.

      Надявам се да отстрани съмнения, vuelve por aquí cuando quieras y muchas gracias por tu comentario 🙂

  6. Благодаря, начинаещи е отличен, но имам съмнение:

    те ме остави със следните грешки:

    линия 12 Импортиране:не е намерен
    линия 14 Синтактична грешка: Word неочаквано (очакват “)”)

    Моят код е:

    #GPIO-setup.py
    ### ЗАПОЧНЕТЕ INIT ИНФОРМАЦИЯ
    # Осигурява: GPIO-setup.ch
    # Изисква-Старт: $remote_fs $syslog
    # Изисква-стоп: $remote_fs $syslog
    # По подразбиране-Начало: 2 3 4 5
    # По подразбиране-стоп: 0 1 6
    # Кратко описание: Настройка на режим gpio
    # Описание: Настройка gpio 22/27/17/4 режим
    ### КРАЙ INIT ИНФОРМАЦИЯ

    Импортиране на RPi.GPIO като GPIO
    #Ние определяме режим на BCM
    GPIO.setmode(GPIO. BCM)
    #Ние сега определяме GPIO изходни изводи
    GPIO.setup(4, GPIO. ВЪН)
    GPIO.setup(17, GPIO. ВЪН)
    GPIO.setup(27, GPIO. ВЪН)
    GPIO.setup(22, GPIO. ВЪН)

    Всяка идея???

    • Здравейте Leoctam, Благодаря за коментара.

      Първите редове даде да се разбере, че се опитвате да създадете система демон, но те са се коментира, така че не ще бъдат взети под внимание.

      От друга страна, кода, който използвате за да си взаимодействат с GPIO е питон, така че трябва да останеш в .py скрипт, който ще се ползва от вашия системен демон, или използвайте Баш да го направи както в първия пример в този настойнически.

Вашият коментар