В статье Что такое BeagleBone Black мы подробно рассмотрели ключевые особенности платформы BeagleBone, а также выяснили все плюсы и минусы по сравнению с аналогичным микрокомпьютером — Raspberry Pi. Попробуем теперь написать и выполнить на BeagleBone простейшую программу, которая покажет как работать с GPIO.
Так как BeagleBone Black работает под управлением Linux, существует множество способов его программирования. В данном примере мы будем управлять светодиодом с помощью языка Python.
Для урока нам понадобится:
Установка необходимых библиотек
В нашей плате установлена операционная система Ångström Linux. Чтобы загрузить все необходимые библиотеки, потребуется соединение с интернетом. Для начала подключаемся к плате по SSH:
Затем, стандартно обновляем пакеты Linux, командами:
sudo apt-get update && upgrade
После обновления, приступаем к установке необходимых пакетов для работы с портами GPIO BeagleBone.
sudo apt-get install python-pip python-setuptools python-smbus
Устанавливаем библиотеку Adafruit_BBIO:
sudo apt-get install Adafruit_BBIO
Теперь проверяем, то что установили, загрузив предворительно один из модулей. Выполняем команду с консоли, при выполнении не должно быть ошибок, а возврат в одну строку:
python -c "import Adafruit_BBIO.GPIO as GPIO; print GPIO"
В ответ получаем
<module 'Adafruit_BBIO.GPIO' from '/root/.python-eggs/Adafruit_BBIO-1.0.10-py2.7 -linux-armv7l.egg-tmp/Adafruit_BBIO/GPIO.so'>
Альтернативный вариант. Можно установить библиотеку Adafruit_BBIO, просто клонировав репозиторий git, выполнив :
git clone git://github.com/adafruit/adafruit-beaglebone-io-python.git
#set the date and time
/usr/bin/ntpdate -b -s -u pool.ntp.org
#install dependency
opkg update && opkg install python-distutils python-smbus
cd adafruit-beaglebone-io-python
python setup.py install
Сборка схемы и запуск программы
Собираем небольшую схему
Теперь попробуем для начала включить светодиод из консоли Python. Для запуска интерпретатора Python вводим команду:
# python
Теперь нам нужно импортировать ранее установленную библиотеку, вводим команду:
import Adafruit_BBIO.GPIO as GPIO
По умолчанию все порты GPIO сконфигурированы в режиме ввода данных. В таком режиме светодиод не будет включатся. Для перевода порта, к которому подключен светодиод в режим вывода данных, вводим команду:
GPIO.setup("P8_10", GPIO.OUT)
Теперь, чтобы включить светодиод, вводим команду:
GPIO.output("P8_10", GPIO.HIGH)
Чтобы выключить светодиод, водим команду:
GPIO.output("P8_10", GPIO.LOW)
Программа blink
Чтобы мигать светодиодом, нужно написать небольшую программу Python. Для начала выйдем из Python, введя команду:
exit()
Теперь создадим новый файл с именем blink.py, введя команду:
nano blink.py
При создании файла, в окне редактора водим:
import Adafruit_BBIO.GPIO as GPIO
outPin="P8_10"
GPIO.setup(outPin,GPIO.OUT)
from time import sleep
for i in range(0,5):
GPIO.output(outPin, GPIO.HIGH)
sleep(3)
GPIO.output(outPin, GPIO.LOW)
sleep(3)
GPIO.cleanup()
Далее выходим из редактора, сохраняем изменения. Для этого жмём клавиши CTRL+X и затем Y для подтверждения.
Наконец, запускаем нашу программу, вводом команды в консоль:
python blink.py
Светодиод мигает! Чтобы прервать программу используем сочетание клавиш CTRL+С.