Рубрики
Без рубрики

Программирование GPIO на библиотеках Raspberry Pi: Python

Raspberry Pi представляет собой односому компьютеру с четырьмя ревизиями и минималистичным нулевым вариантом. Это… Tagged with Raspberrypi, Python, GPIO.

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”