Как установить и настроить WiringPi на Orange Pi PC?
Для работы с GPIO (англ. general-purpose input/output) — интерфейс ввода/вывода общего назначения, необходимо установить WiringOP или WiringPi на Orange Pi. В данной статье мы узнаем как правильно скачать и установить библиотеку WiringPi на Orange Pi PC и проверить работоспособность примером программы на языке C (Си), а именно, самым простым примером — мигание светодиодом.
Смотрите ещё:
Orange PI PC — четырёхъядерный мини ПК
Как создать загрузочную флешку Ubuntu Mate для Orange Pi PC из Windows
Руководство пользователя Orange Pi (ENG)
Установка Android на Orange Pi
Banana Pi BPI-M3 – удаленный доступ к рабочему столу из Windows
Что такое WiringPi и WiringOP?
WiringPi это GPIO библиотека написана @drogon-ом, первоначально для Raspberry Pi, но Orange Pi модифицировали и адаптировали её под свои мини компьютеры и называли её WiringOP, где OP — сокращение от Orange Pi. Подробнее о библиотеке WiringPi можно узнать на сайте разработчика http://wiringpi.com/.
Загрузка, установка и проверка WiringOP/WiringPi на Orange Pi
WiringPi загружена на GIT для облегчения отслеживания изменений. Для того, что бы вытянуть WiringOP из github необходимо чтобы у вас был установлен пакет git-core. Если у вас не установлен GIT, то вы можете установить его с помощью:
sudo apt-get install git-core
При возникновении каких-либо ошибок, тогда необходимо обновить вашу ОС:
sudo apt-get update sudo apt-get upgrade
Загрузка WiringOP/WiringPi
git clone https://github.com/zhaolei/WiringOP.git -b h3
В случае если вы уже клонировали файлы ранее, тогда необходимо просто обновить до последней версии:
cd WiringOP git pull origin
Загрузка WiringOP/WiringPi для Orange Pi Zero
git clone https://github.com/vladikoms/WiringOP-Zero.git
или
git clone https://github.com/xpertsavenue/WiringOP-Zero.git
Загрузка WiringOP/WiringPi для Orange Pi PC 2
git clone https://github.com/zhaolei/WiringOP.git -b h5
или
git clone https://github.com/kazukioishi/WiringOP.git -b h5
Установка WiringOP/WiringPi (H3, H5)
cd WiringOP chmod +x ./build sudo ./build
Установка WiringOP/WiringPi на Orange Pi Zero
cd WiringOP-Zero chmod +x ./build sudo ./build
Проверка WiringOP/WiringPi
gpio -v gpio readall
Самая простая программа: Мигание светодиодом
Мигание светодиодом является самой простой программой для управления пинами ввода/вывода на плате. Создайте файл с именем blink.c с содержанием:
#include <wiringPi.h> int main (void) { wiringPiSetup(); pinMode (0, OUTPUT) ; for (;;) { digitalWrite(0, HIGH); delay (500) ; digitalWrite(0, LOW); delay(500); } return 0; }
Затем, для компиляции и запуска, вы должны выполнить следующие командны:
sudo gcc blink.c -o blink -lwiringPi -lpthread sudo ./blink
Чтобы увидеть результат, вам нужно будет подключить один светодиод между CON3-11 и GND с резистором на 220 Ом для ограничения тока.
Как найти номер вывода
Об этом можно узнать тут: тык. Номера выводов с GPIO не совпадают с номерами в WiringPi
Материалы
GitHub — zhaolei/WiringOP: This is a GPIO access library for OrangePi. It is based on the original WiringPi for Raspberry Pi.
Установка Git
WiringPi
Raspberry Pi | Wiring | Download & Install | Wiring Pi
Приветствую, спасибо за полезный материал, у меня плата orange pi plus 2, соответственно не все работает(lan, usb не работают) по причине немного отличающегося оборудования, а есть тоже самое только под orange pi plus 2 ?, спасибо
А каким образом можно остановить даную команду?
Начал устанавливать, все вначале шло норм, но после части выполненных нормально операций по команде sudo ./build (дошло до [complite] drcSerial.c
и hx711.c:86:2 error: ‘for’ loop initial declarations are only allowed in c99 or c11 mode
Словил эту же ошибку. OrangePI Zero. Armbian. Все апдейты на 26.02.2018 прошли без ошибок. Но при компиляции wiringPi-zero вылетела ваша ошибка. Решение указано на GitHub. Исходники копировать отсюда:
git clone https://github.com/vladikoms/WiringOP-Zero
С ними библиотека скомпилировалась, диод замигал..
Плата pi zero, ставил
git clone https://github.com/xpertsavenue/WiringOP-Zero.git
cd WiringOP-Zero
chmod +x ./build
sudo ./build
Выдает следующую ошибку:
GPIO Utility
[Link]
/usr/bin/ld: gpio.o: relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol’ can not be used when making a shared object; recompile with -fPIC
gpio.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:48: recipe for target ‘gpio’ failed
make: *** [gpio] Error 1
не подскажете, что делать?
./build: 4: ./build: [[: not found
wiringPi Build script
=====================
WiringPi Library
[UnInstall]
make: Nothing to be done for ‘all’.
[Install Headers]
[Install Dynamic Lib]
WiringPi Devices Library
[UnInstall]
make: Nothing to be done for ‘all’.
[Install Headers]
[Install Dynamic Lib]
GPIO Utility
make: Nothing to be done for ‘all’.
[Install]
All Done.
NOTE: To compile programs with wiringBP v2, you need to add:
-lwiringPi
to your compile line(s) To use the Gertboard, MaxDetect, etc.
code (the devLib), you need to also add:
-lwiringPiDev
to your compile line(s).
Спасибо!!! По первой ссылке получилось.
Вроде все установил. Открываю пример blink из wiringpi, ругается на wiringPiSetup() и соответственно далее на все строки.
Плата BananaPi M2Ultra. Плохо, что в комментах нельзя выделить код. Вот что получается:
Попробовал еще раз. После запуска установки были выдаются строки типа
А в самом конце
Но после запуска компиляции тестового примера ошибка осталась прежняя
Не понятно, куда копать 🙁
Скомпилировалось при таком вызове
По поводу параметра pthread, залез в доки по gcc, там пишут:
Так что без «l»
Надо еще понять, что значит: -lm -lrt
PS. Спасибо за ваши статьи.
Да я немного ступил, когда зашел на
, то внизу прочел readme, ну и взял и использовал
.
Вечером переставлю и попробую заново.
В общем, ерунда какая то получается ;(
Деинсталлировал установленный пакет, выполнил
, установил. В результате
Заработало! Спасибо за помощь, я уже хотел бросить.
С такой ошибкой кто то сталкивался?
Oops — unable to determine board type… model: 0
Подскажите как исправить если знаете.
Я так и сделал. Только я не файл удалил а полностью удалил все, командой ./build uninstall А потом заново установил.
Привет, нужна помощь. Плата Orange Pi 4
Установил WiringOP по этой ссылке https://github.com/orangepi-xunlong/WiringOP.
Пытаюсь скопмилить, получаю вот такие ошибки
/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib/libwiringPi.so: undefined reference to `shm_open’
/usr/lib/gcc/aarch64-linux-gnu/7/../../../../lib/libwiringPi.so: undefined reference to `crypt’
collect2: error: ld returned 1 exit status
При добавлении ключей -lrt -lcrypt — компилится без ошибок, но не работает. (подключил кулер к пинам 4 и 6). Командой gpio read 4 ответ 1, то есть по идеи кулер должен работать?
А как решить проблему кода с прерываниями? Обычный blink работает хорошо, а вот когда скомпилировал и запускаешь isr-osc, то вылезает ошибка:
gpio: Unable to open GPIO edge interface for pin 4: Permission denied
wiringPiISR: unable to open /sys/class/gpio/gpio355/value: No such file or directory
Даже если запускаешь так:
sudo ./isr-osc
то вылетает та же самая ошибка. Кто-то запускал примеры с прерываниями? Плата — OrangePi 3 LTS
промокод prodamus https://www.promokod-prod.ru .