В первой и второй частях ликбеза про Python были рассмотрены общие положения и основы этого языка программирования безотносительно какой-либо платформы. Но сегодня наибольшее распространение этот язык получил благодаря его использованию в целях программирования одноплатного компьютера Raspberry Pi. Поэтому в данной части рассмотрим нюансы Python с точки зрения его применения в Raspberry Pi.
Одной из основных операционных систем для Raspberry Pi является Raspbian. В Raspbian мы можем воспользоваться преимуществами Python, используя предварительно установленную библиотеку RPi.GPIO. Далее мы будем рассматривать использование Python в Raspbian. Итак, для начала нам нужно импортировать библиотеку RPi.GPIO следующим образом:
import RPi.GPIO as GPIO
Обращение к выводам Raspberry Pi через библиотеку GPIO может производиться двумя способами. Первый способ – это вариант BOARD, что означает, что мы можем ссылаться на выводы в соответствии с их номером на печатной плате Raspberry Pi. Эта нумерация не изменится при смене модели Raspberry Pi. Второй вариант – BCM. Используя BCM, мы можем ссылаться на контакты в соответствии с их номером, назначенным для каждой модели Raspberry Pi. Например, распиновка Raspberry Pi 2 Model B показана на следующем рисунке:
Как можно видеть из этого рисунка, контакт 3 соответствует линии GPIO2. Если мы хотим использовать этот вывод в опции BOARD, мы должны назвать его Pin3. Чтобы задейстоват опцию BCM, нам нужно называть его GPIO2. Используя следующий код, мы можем установить режимы вывода:
#set up GPIO using BCM numbering
GPIO.setmode(GPIO.BCM)
#setup GPIO using Board numbering
GPIO.setmode(GPIO.BOARD)
После установки режимов вывода мы можем настроить их направление (вход/выход), а также, при необходимости, установить для них подтягивающий к питанию или земле резистор. Это достигается с помощью следующего кода:
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
Здесь следует сделать важное замечание – перед выходом из программы нужно очистить режим GPIO. Если мы не очистим GPIO, то выводы останутся в своем последнем состоянии. Очистка производится с помощью функции GPIO.cleanup ().
Программирование Raspberry Pi с помощью Python является довольно простым и интересным занятием, поэтому вы можете написать приложение быстро и без большого количества специализированных знаний. Например, используя приведенный ниже код, мы можем просто определить прерывание на линии и установить обратный вызов:
GPIO.add_interrupt_callback(7, do_something, debounce_timeout_ms=100)
© digitrode.ru