Малина PI и GPIO булавки: Управление LED с Bash и Python

В предыдущем посту, мы видели были контакты GPIO и некоторые примеры практического применения, Сегодня мы сосредоточимся на операции контакты общего назначения, и научиться управлять ими с переводчика заказов Баш и с Python.

прото&под руководством

Будет использовать СВЕТОДИОД, сопротивление 330 ом, Проволока, и один Макет, или припой и паяльник.

Мы также должны будем нашей Малина уже Raspbian предварительно установленной, Если ваш случай не является, Вы можете увидеть, как это сделать Следующие ссылки из Каталог.

Езда цепи

Вы можете припаять напрямую СВЕТОДИОД Проволока и сопротивление как вы увидите в следующих Диаграмма, Хотя это гораздо лучше использовать Макет; Также очень важно выглядеть хорошо на висках, как и в “Диагональ” внутри диод СВЕТОДИОД объединяя два контакта для монтирования цепи, уже что если вы смонтировать его обратно не включается.

Цепи, необходимых для контроля зажигания диода LED.

Цепи, необходимые для управления питанием LED диод.

Я буду использовать один Макет, и я рекомендую вам использовать, Есть некоторые от приблизительно €4 и они позволяют повторно использовать компоненты снова и снова без необходимости паять их, внутренние соединения одного Макет они имеют тенденцию быть следующие.

protocon

Макет соединения.

Соединения между Макет и Малина они должны быть, как показано на следующем рисунке, в GPIO Вы можете добраться до вопроса 3,3V Чтобы назначить логический высокое значение.

Цепи на макет.

Цепи, необходимые для управления питанием LED диод.

Привет мир GPIO с Bash

Однажды навесные цепи, Мы будем делать, что я называю “Привет мир 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

Чтобы выключить светодиод, мы можем сделать это следующим сценарий.

#!/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

Мы уже доказали, что наша схема работает правильно и СВЕТОДИОД оно было инициировано дать логическое высокое значение переменной, Теперь давайте посмотрим, как мы можем сделать то же самое Python, Это позволит нам наметить наши веб-приложения для управления входы и выходы GPIO с любого устройства.

funcweb

Операции с использованием веб-приложения.

Прежде чем приступить, Я рекомендую, что вы видите главы 1 для 10 из Это видео учебник от Python канал YouTube из Кода облегчает, Если как у меня не много идея программирования в Python, Оно может прийти к вам очень хорошо для ознакомления с кодом, который мы будем видеть больше вперед и понять его.

Различные схемы контактов GPIO (Совет и BCM)

Существует два типа нумерации ПИН, физические нумерации или режим СОВЕТ, и нумерация чип SoC Broadcom контроль за ними, Мы собираемся использовать Цоколевка в режиме BCM, Но давайте посмотрим на разницу.

BCMvsBOARD

Привет мир GPIO с Python

После просмотра видео, и различные выводы уже можно понять основной код, чтобы сделать “Привет мир GPIO” в Python.

Сначала мы собираемся скачать все, что вам нужно для управления GPIO с Python, в Raspbian они уже установлены Python и библиотеки 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

Обновление один раз, Давайте посмотрим, как включить СВЕТОДИОД с следующие сценарий, Например, можно вызвать enciende.py, и мы можем запустить его как root с помощью команды “sudo Python 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, Мы сделаем мигает СВЕТОДИОД.

#!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() 

Если вы не импортировать в библиотеку “время“, не могу добавить “Сон“, и если не добавить “Сон” между второй и, Это вполне возможно, что наш глаз не будет воспринимать мерцания.

Это очень важно, чтобы не добавлять специальные символы в скрипты в Python, по этой причине комментарии не переносите акценты, Поскольку он дал характера ошибки недопустимого.

В следующую запись Мы увидим, как сделать простой Веб-приложения Позвольте нам выполнить эти скрипты, чтобы иметь возможность контролировать его с помощью любого устройства с браузером Веб.

Если вы хотите, вы можете следовать за мной Щебетать, Facebook, Google +, LinkedIn, или поделиться ею с помощью кнопок под этой публикации, Если у вас есть какие-либо вопросы или предложения, пожалуйста, не стесняйтесь комментировать.

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

16 мысли о»Малина PI и GPIO булавки: Управление LED с Bash и Python

  1. У меня вопрос от новичка…
    потому что сопротивление 330 ом и когда его использовать?

    Всегда используются для 330 Когда мы работаем с ИРЦ, или он может варьироваться?

    Приветствия и отличный блог!!!

  2. Здравствуйте мне работать, и затем следуйте инструкциям на письмо с python, Вы должны дать разрешения на файл питона?

    • Привет Питер,

      В принципе он должен работать, Ошибка только разрешения для некоторых людей, но работает из веб-приложения, как пользователь www данных по умолчанию больше не имеет эти разрешения.

      Только в случае запуска “sudo chmod + x его” чтобы сделать его исполняемым, Хотя не так она должна работать только с терминала; Вы можете научить меня если возвращает ошибку в терминале, чтобы запустить сценарий??

      Спасибо вам большое за ваш комментарий.

  3. Хороший, Когда я введите скрипт на python, говорит мне, что арроба SyntaxError каким может быть? Благодарность и поздравления.

    • Найти меня это очень странно, Поскольку в сценарии не @, могли бы вы дать более подробную информацию об ошибке?

      Скоро увидимся, и спасибо за комментариями.

  4. Привет,
    Я пытаюсь включить светодиод через python, после руководстве проб, но он дает мне следующее сообщение об ошибке при запуске кода он:

    Импорт RPi.GPIO как GPIO

    Ошибка:
    -Баш: Импорт: порядок не был найден

    Знаете ли вы, почему эта ошибка это?

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

    • Привет Nano, Спасибо за комментариями.

      Кажется, что код интерпретируется Bash и не Python.

      Вы используете сценарий, или строки кода в терминале непосредственно?

      • Хм, была запущена его из терминала…хе-хе жира ошибка (Я новичок в малина не может себе это позволить, но = P )

        • Я рад, что вы решили!!!

          Спасибо за комментариями, не стесняйтесь сделать это, если у вас есть какие-либо вопросы; между читателями и я буду скучать вам руку.

  5. Хорошо снова,
    то, что я не понимаю, это первая строка кода: #!usr/bin/env/python
    Что это такое?
    Я вижу, что он работает только с или без него

    • Привет Nano, Добро пожаловать снова.

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

      #!/bin/bash

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

      Я надеюсь, что расчистили ваши сомнения, вернуться сюда, когда вы хотите и спасибо вам большое за ваш комментарий 🙂

  6. Спасибо, Отлично учебник, но у меня есть сомнения:

    они оставляют меня с следующие ошибки.:

    линия 12 Импорт:не найден
    линия 14 Ошибка синтаксиса: неожиданное слово (ожидая “)”)

    Мой код:

    #GPIO-setup.py
    ### НАЧАЛО ИНИЦИАЛИЗАЦИИ ИНФОРМАЦИЯ
    # Обеспечивает: 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 является Python, так что вы должны остаться в .py сценарий, который будет вызываться из вашей системы-Демон, или использовать Bash, чтобы сделать это как в первом примере в этом учебнике.

Оставь ответ