Raspberry pi python libraries

Установка и использование модулей (библиотек) Python

Python — высокоуровневый язык программирования придуманный нидерландским программистом Гвидо (Гуидо) ван Россумом в 1991 году. Язык назван Python в честь популярного в 70-е британского телешоу Monty Python’s Flying Circus, скорее всего из-за того, что MPFC были первопроходцами жанра абстрактного юмора и язык Python максимально абстрактный. Так же код Python в основном является скриптом для интерпретатора — виртуальной машины, в которой он выполняется без компилирования в машинный код. Код Python можно скомпилировать в исполняемый машинный код при помощи компилятора Cython, но это уже выходит за пределы охвата данной статьи.

В этой статье мы рассмотрим как работать и устанавливать модули для интерпретатора Python на Raspberry Pi в графической среде Raspbian.

Внимание! Для корректной работы модулей FLASH-I2C на Raspberry Pi под управлением Raspberry OS «Buster» необходимо выключить динамическое тактирование ядра (опция core_freq_min должна быть равна core_freq в /boot/config.txt ) Ссылка на подробное описание.

Нам понадобится:

  • Raspberry Pi
  • Шнур micro USB-B — USB A
  • Шнур HDMI-HDMI
  • Блок питания USB 2,5А
  • Клавиатура
  • Мышь
  • HDMI-совместимый монитор
  • ПК в одной сети c Raspberry
  • Кардридер microSD
  • microSD карта памяти

Если из этого всего у вас есть только сама Raspberry, блок питания, SD карта и ПК с кард ридером — не переживайте, Raspberry можно настроить для подключения и удалённой работы по локальной сети при помощи этой статьи.

Предварительная настройка:

Для начала воспользуемся этой инструкцией для копирования образа диска системы на нашу microSD карту.

Если нужно работать с Rapberry по удалённому соединению (в случае отсутствия клавиатуры, мыши и монитора), можно воспользоваться этой статьёй.

Установка в графической среде:

Этот раздел объясняет процесс установки модулей Python в графической среде в редакторе Thonny Python IDE.

Курсором мыши наводим на пиктограмму малины в правом верхнем углу:

Выбираем в меню приложений Программирование -> Thonny Pyth on IDE:

Откроется окно Thonny Python IDE. Если под шапкой окна нет строки меню, нажимаем Switch to regular mode в правом верхнем углу, перезапускаем программу для применения изменений.

В строке меню выбираем Tools -> Manage packages.

Откроется окно установки пакетов:

В строке поиска вводим название необходимого нам модуля, для примера возьмём наш модуль управления I2C реле pyiArduinoI2Crelay:

После ввода нажимаем кнопку Search, справа от списка установленных модулей появится результат поиска. Нажимаем кнопку Install в нижней части окна:

Начнётся процесс установки, нужно немного подождать (это займет не больше минуты):

После установки модуль появится в списке установленных:

Теперь можно использовать его методы, но работать он будет только в Thonny Python IDE.

Читайте также:  Создаем телеграмм бота python

Попробуем написать и запустить следующий скрипт:

from pyiArduinoI2Crelay import * print(ALL_CHANNEL)

Набираем с клавиатуры вышеуказанный текст в главном окне редактора, сохраняем файл в меню File -> save, выбираем название для файла (например, new), нажимаем большую зелёную кнопку Play (Run curent script):

В нижнем поле редактора под названием shell будет выведен текст «255» — это значение константы ALL_CHANNEL из модуля pyiArduinoI2Crelay:

Установка в эмуляторе терминала:

Для использования модуля в качестве системного его нужно установить от имени супер-пользователя из командной строки. Этот раздел разъясняет этот процесс.

Нажимаем курсором мыши на пиктограмму виртуального терминала LXTerminal в верхнем меню:

Откроется окно виртуального терминала. Вводим с клавиатуры sudo pip3 install pyiArduinoI2Crelay и нажимаем клавишу enter, начнётся процесс установки:

Теперь можно пользоваться методами модуля.

Вводим с клавиатуры python3 и нажимаем enter, откроется строка ввода интерпретатора Python обозначаемая тремя правыми треугольными скобками «>>>»:

Вводим с клавиатуры from pyiArduinoI2Crelay import *, нажимаем enter, затем в новой строке вводим print(ALL_CHANNEL) , нажимаем enter. Будет выведено значение 255 константы ALL_CHANNEL из модуля pyiArduinoI2Crelay:

Для выхода из интерпретатора наберем на клавиатуре exit() и нажмем enter

Источник

Raspberry Pi: установка библиотеки RPi.GPIO для python

Одно из главных преимуществ Raspberry Pi — это наличие выводов общего назначения (General Purpose Iinput/Outputs). GPIO — это группа контактов, которыми можно управлять с помощью программы. Причем управление это может быть совсем простым, например, включение/выключение светодиода. Либо весьма сложным — обмен данными с периферийными устройствами по специализированным протоколам.

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

В этой статье я расскажу как установить на Raspberry Pi библиотеку управления GPIO для python — RPi.GPIO, и приведу несколько простых примеров работы с ней.

1. Загрузка и подготовка библиотеки RPi.GPIO

Первое что мы сделаем — скачаем архив с библиотекой с официального сайта:

Ссылка ведет на страницу с разными версиями библиотеки. Выбираем самый свежий архив. На момент написания статьи это был — RPi.GPIO-0.6.3.tar.gz

RPi.GPIO скачать

По-умолчанию, штатный браузер Chromium скачает библиотеку в папку /home/pi/Downloads. Зайдем в эту папку с помощью проводника:

RPi.GPIO установка

Теперь жмем правую кнопку мыши на архиве и выбираем пункт Extract Here.

RPi.GPIO установка

Этим самым мы просим разархивировать библиотеку в ту же папку, в которой находится сам архив. В результате рядом с архивом появится папка RPi.GPIO-0.6.3.

2. Установка дополнительного пакета для python

Перед тем, как установить библиотеку RPi.GPIO, нам потребуется дополнительный пакет python-dev. Для этого запустим терминал (черная иконка на верхней панели рабочего стола) и запустим в нем следующую команду:

sudo apt-get install python-dev

На вопрос «Do you want to continue? [Y/n]» пишем символ «Y» и жмем Enter.

Установка python-dev

В результате появится отчет об успешной установке. Выглядит он так:

Установка python-dev

3. Установка библиотеки RPi.GPIO

Теперь приступим к установке самой библиотеки для работы с GPIO. Не выходя из терминала, переходим в разархивированную ранее папку:

cd /home/pi/Downloads/RPi.GPIO-0.6.3

И запускаем команду для сборки библиотеки из исходных кодов:

В результате получим примерно такой отчет:

Читайте также:  Global in python example

Установка RPi.GPIO

Далее запускаем команду установки библиотеки. Нужно выполнить её с правами администратора, поэтому вначале добавляем директиву sudo:

sudo python setup.py install

Установка RPi.GPIO

Ну вот и готово! Приступим к сборке стенда и составлению первой программы, которая будет управлять состоянием светодиода.

4. Подключение светодиода к Raspberry Pi

Разъем GPIO у Raspberry Pi имеет два типа нумерации. Первый тип — это последовательный номер контакта. Второй тип — BCM, соответствует выводам микропроцессора. Оба эти нумерации представлены на картинке.

Raspberry Pi распиновка

В большинстве примеров используется тип нумерации BCM, последуем традиции. Подключаем светодиод к выводу GPIO23 по следующей схеме.

Анод светодиода (длинная ножка) соединим с выводом GPIO23 через резистор 200 Ом, а катод с землей (GND). Хорошо бы сначала вспомнить урок про макетные платы.

Raspberry Pi светодиод GPIO

Теперь перейдем к написанию программы.

5. Программа для управления с помощью RPi.GPIO

В Raspbian установлены две версии python: 2 и 3. Поскольку мы установили библиотеку только для python 2, будет пользоваться именно это версией.

Открываем среду разработки Python 2 (IDLE). В меню появившегося окна выбираем New File.

Работа с RPi.GPIO в python IDLE

Откроется окно редактора. В этом окне записываем программу, которая включит светодиод на 5 секунд, а затем погасит его.

from RPi import GPIO from time import sleep GPIO.setmode(GPIO.BCM) GPIO.setup(23, GPIO.OUT) GPIO.output(23, True) sleep(5) GPIO.output(23, False) GPIO.cleanup()

Программу желательно сохранить, например, в домашнюю папку. Делается это с помощью пункта меню File/Save As…

Наконец, запускаем программу через меню Run/Run Module или с помощью клавиши F5.

Заключение

Этот пример показывает, как легко управлять простыми исполнительными устройствами с помощью библиотеки RPi.GPIO. Вместо светодиода можно поставить, например, мощное реле и управлять включением уличного освещения, или, скажем, чайником. Однако, следует помнить, что функционал этой библиотеки весьма ограничен и для управления устройствами через интерфейсы I2C и SPI потребуются дополнительные специализированные библиотеки.

Источник

GPIO Programming on the Raspberry Pi: Python Libraries

The Raspberry Pi is single board computer with now four revisions and a minimalistic zero variant. It is a popular choice for different projects because of its small size, efficient power consumption, processing speed and by being a full Linux based computer. When you want to connect several microcontrollers with each other, several protocols exist: I2C, SIP, and UART. In my last two articles, I explained these protocols and showed examples for C++ libraries with Arduino and with the Raspberry Pi. This article now presents general GPIO libraries for working with the Raspberry Pi. The libraries are Wiring Pi, Pigpio, Gpiozero, Rpi.GPIO. Each library is explained with a description, its main features, a code example on Python, and a code example in C if supported by the library. I assume you have a general understanding of GPIO programming, and will therefore not explicitly detail each source code line in the examples. This article originally appeared at my blog admantium.com.

Wiring Pi

The WiringPi library is an often used, functional rich library that supports I2C and SPI connections. It is written in C and provides Python bindings. The library is unfortunately deprecated as the original author stated. Decide yourself if you want to use the library: On one hand, you find several examples on the internet, on the other hand, members from the Raspberry Pi community start to move to new libraries. The libraries latest version can be accessed on Github: See the WiringPi C and WiringPi Python.

Читайте также:  METANIT.COM

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); > > 

Python

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) 

Pigpio

The pigpio is an actively developed library with an impressive set of features: All GPIO pins of the Raspberry Pi can be read, written to, attached to interrupt handlers, and output PWM signals at the same time. Also, UART, I2C and SPI protocols are implemented. It is written in C and also provides Python bindings. Go to the official Github repository and build the newest version on your Raspberry Pi, or install it with apt install 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); > > 

Python

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

Officially endorsed by the Raspberry Foundation, gpiozero is a Python-only library that not only accesses the GPIO pins, but also provides direct hardware support for working with actuators and sensors. For connecting other devices, only SPI is supported — I2C was announced, but is not included yet. Gpiozero is already installed in the current Raspberry Pi OS — if not, just run python3 -m pip gpiozero . The source code files can be accessed on Github. The official documentation on readthedocs.io provides rich information and plenty example code.

Python

from gpiozero import LED from time import sleep led = LED("6") while True: led.on() sleep(1) led.off() sleep(1) 

Rpi.GPIO

The RPI.GPIO library is another Python-only library. It provide basic interactions with the GPIO pins, but no implementation of any connection protocol yet. The projects python files can be downloaded from Pypi.org, the projects home page is hosted on Scourceforge.

Python

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) 

Conclusion

This article presented four Raspberry Pi GPIO programming libraries: WiringPI, Pigpio, Gpiozero, RPI.GPIO. For each library, I explained the main feature, linked to their homepages and/or source code repositories, and gave a short example source code example in C and/or Python.

Источник

Оцените статью