Raspberry Pi представляет собой односому компьютеру с четырьмя ревизиями и минималистичным нулевым вариантом. Это популярный выбор для разных проектов из -за его небольшого размера, эффективного энергопотребления, скорости обработки и за счет полного компьютера на основе Linux.
Если вы хотите подключить несколько микроконтроллеров друг с другом, существует несколько протоколов: I2C, SIP и UART. В моих последних двух статьях я объяснил эти протоколы и показал примеры библиотек C ++ с Arduino и с Raspberry Pi.
В этой статье теперь представлены общие библиотеки GPIO для работы с Raspberry Pi. Библиотеки – это проводка PI, Pigpio, Gpiozero, RPI. GPIO. Каждая библиотека объясняется описанием, ее основными функциями, примером кода на Python и примером кода в C, если он поддерживается библиотекой. Я предполагаю, что у вас есть общее понимание программирования GPIO и поэтому не будет четко подробно подробно описать каждую строку исходного кода в примерах.
Эта статья первоначально появилась в мой блог Admantium.com Анкет
Проводка пи
Wirewpi Библиотека – это часто используемая, функциональная богатая библиотека, которая поддерживает соединения I2C и SPI. Он написан в C и обеспечивает привязки Python. Библиотека, к сожалению, устарела как Оригинальный автор заявил Анкет Решите себя, хотите ли вы использовать библиотеку: с одной стороны, вы найдете несколько примеров в Интернете, с другой стороны, участники сообщества Raspberry Pi начинают переходить в новые библиотеки.
К последней версии библиотеки можно получить доступ на GitHub: см. Wilingpi c и Wilingpi Python Анкет
C
#include#include #include #define LED_PIN 6 int main() { pinMode(LED_PIN, OUTPUT); while (true) { delay(1000); digitalWrite(LED_PIN, 0); delay(1050); digitalWrite(LED_PIN, 1); } }
Питон
import wiringpi import time ledPin = 6 wiringpi.wiringPiSetup() wiringpi.pinMode(ledPin,1) while(True): wiringpi.digitalWrite(ledPin, 1) time.sleep(1) wiringpi.digitalWrite(ledPin, 0) time.sleep(1)
Пигпио
Пигпио является активно разработанной библиотекой с впечатляющим набором функций: все контакты GPIO из Raspberry Pi можно прочитать, записанные, прикрепленные к обработчикам прерываний и одновременно выводится сигналы ШИМ. Кроме того, протоколы UART, I2C и SPI реализованы. Он написан в C, а также предоставляет привязки Python. Перейти к Официальный репозиторий GitHub и создайте новейшую версию на Raspberry Pi или установите ее с APT Установить Pigpio Python-Pigpio Python3-Pigpio
Анкет
C
#include#include #include #define LED_PIN 6 int main() { gpioInitialise() gpioSetMode(LED_PIN, PI_OUTPUT); while (true) { gpioDelay(100000); gpioWrite(LED_PIN, 1); gpioDelay(100000); gpioWrite(LED_PIN, 0); } }
Питон
import pigpio import time ledPin = 6 pi = pigpio.pi() pi.set_mode(ledPin, pigpio.OUTPUT) while (True): pi.write(ledPin, True) time.sleep(1) pi.write(ledPin, False) time.sleep(1)
Gpiozero
Официально одобрен Фондом Raspberry, gpiozero является библиотекой только Python, которая не только обращается к контактам GPIO, но также обеспечивает прямую аппаратную поддержку для работы с приводами и датчиками. Для подключения других устройств поддерживается только SPI – I2c был объявлен , но еще не включено.
Gpiozero уже установлен в текущей ОС Raspberry Pi – если нет, просто запустите python3 -m pip gpiozero
Анкет Файлы исходного кода можно получить на GitHub Анкет Официальная документация о readthedocs.io предоставляет богатую информацию и много примеров кода.
Питон
from gpiozero import LED from time import sleep led = LED("6") while True: led.on() sleep(1) led.off() sleep(1)
Rpi. GPIO
Rpi.gpio Библиотека-еще одна библиотека только для питона. Он обеспечивает базовые взаимодействия с булавками GPIO, но пока нет никакого реализации какого -либо протокола соединения. Файлы проектов Python могут быть загружены из Pypi.org , домашняя страница проектов размещена на Scourceforge Анкет
Питон
import RPi.GPIO as GPIO import time ledPin= 21 GPIO.setmode(GPIO.BCM) GPIO.setup(ledPin , GPIO.OUT) while True: GPIO.output(ledPin , GPIO.HIGH) time.sleep(1) GPIO.output(ledPin , GPIO.LOW) time.sleep(1)
Вывод
В этой статье представлены четыре библиотеки программирования Raspberry Pi GPIO: WilingPi, Pigpio, Gpiozero, RPI.gpio. Для каждой библиотеки я объяснил основную функцию, связанную с их домашними страницами и/или хранилищами исходного кода, и дал краткий пример примера исходного кода в C и/или Python.
Оригинал: “https://dev.to/admantium/gpio-programming-on-the-raspberry-pi-python-libraries-4e5m”