WiringPi - это библиотека, написанная на C (Си), которая используется для доступа к выводам GPIO в Raspberry для BCM2835 (процессор Broadcom) SoC (система на чипе). Существуют и другие подобные библиотеки, такие как bcm2835, sysfs, pigpio и т. д. Здесь мы подробно разберём работу с библиотекой WiringPi.
Установка библиотеки WiringPi может быть выполнена двумя способами.
Первый способ установки библиотеки WiringPi
Этот способ использует git. Сначала проверьте наличие обновлений на Raspberry Pi.
sudo apt-get update
sudo apt-get upgrade
Теперь можно использовать git для загрузки библиотеки WiringPi. Для этого нужно установить git на Raspberry Pi, если он еще не установлен.
sudo apt-get install git-core
Чтобы получить WiringPi, используйте git следующим образом:
git clone git://git.drogon.net/wiringPi
Теперь создайте каталог для WiringPi и постройте его. Также загрузите обновленную версию с git.
cd wiringPi
git pull origin
./build
Установка библиотеки WiringPi завершена.
Второй способ установки библиотеки WiringPi
Чтобы установить библиотеку WiringPi на Raspberry Pi, сначала нужно ее скачать. Это можно сделать здесь. По ссылке выше есть еще файлы для скачивания. Загрузите файл, который вверху, это последняя обновленная версия.
Теперь введите следующие команды, чтобы установить загруженную библиотеку,
cd
tar xfz downloaded_filename.tar.gz
cd downloaded_filename
./build
Далее можно проверить и протестировать установку библиотеки WiringPi:
gpio -v
На приведенном выше снимке экрана видно, что библиотека WiringPi успешно установлена.
Работа с библиотекой
Теперь можно получить доступ к GPIO с помощью библиотеки WiringPi. Но нумерация выводов, используемая в библиотеке Wiring Pi, отличается от нумерации GPIO (BCM) и физической нумерации (BOARD).
Чтобы получить информацию о нумерации выводов в нашей версии Raspberry Pi, мы можем использовать следующую команду:
gpio readall
На приведенном выше снимке экрана показана нумерация выводов согласно WiringPi, BCM (нумерация GPIO) и физическая нумерация ( BOARD).
Подключение
Схема подключения тестового светодиода:
Мигание светодиодом на Raspberry Pi
Давайте напишем программу на C для доступа к GPIO с помощью библиотеки WiringPi. Чтобы написать программу на C, создайте новый файл. Напишите программу и сохраните этот файл с расширением .c.
Программа
#include <wiringPi.h>
#include <stdio.h>
int LED = 26; /* GPIO26 as per wiringPi, GPIO12 as per BCM, pin no.32 */
int main(){
wiringPiSetup(); /* initialize wiringPi setup */
pinMode(LED,OUTPUT); /* set GPIO as output */
while (1){
digitalWrite(LED,HIGH); /* write high on GPIO */
delay(1000);
digitalWrite(LED, LOW); /* write low on GPIO */
delay(1000);
}
}
Как скомпилировать и выполнить программу с помощью командного терминала
Теперь мы должны скомпилировать нашу программу с библиотекой WiringPi:
gcc -o led_blink led_blink.c -l wiringPi
Приведенная выше команда создаст исполняемый файл с именем led_blink. Теперь можно выполнить нашу программу:
sudo ./led_blink
После выполнения этой команды светодиод начнет мигать.
Компиляция и выполнение программы с использованием IDE
В Raspbian OS установлен редактор Geany Programmer Editor. Мы можем использовать этот редактор в качестве IDE для разработки программ и их выполнения.
Откройте редактор Geany Proagrammer:
Затем создайте новый файл и напишите в нем программу.
Сохраните программу с расширением .c. Перед её компиляцией и выполнением с библиотекой WiringPi в редакторе Geany Programmer мы должны добавить несколько строк в настройки сборки. Чтобы добавить эти строки, нажмите «Build» и выберите «Set Build Commands»:
Измените раздел как показано ниже:
Теперь можно собрать программу на C и выполнить ее с помощью библиотеки WiringPi.
Дополнительно
Исходный код LED_blink
Вам может быть интересно