Как установить и настроить 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. Плохо, что в комментах нельзя выделить код. Вот что получается:
avs@BananaPi:~/wiringPi/examples$ ls COPYING.LESSER README.TXT blink.sh blink8.c isr-osc.c max31855.c rht03.c softPwm.c Gertboard blink-thread.c blink12.c clock.c isr.c nes.c scrollPhat softTone.c Makefile blink.c blink12drcs.c delayTest.c lcd-adafruit.c okLed.c serialRead.c speed.c PiFace blink.o blink6drcs.c ds1302.c lcd.c pwm.c serialTest.c spiSpeed.c PiGlow blink.rtb blink8-drcn.c header.h lowPower.c q2w servo.c wfi.c avs@BananaPi:~/wiringPi/examples$ sudo gcc blink.c -o blink -lwiringPi -lpthread /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `crypt' /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `rint' /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `pow' /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `shm_open' collect2: error: ld returned 1 exit status
avs@BananaPi:~/wiringPi/examples$ gpio -v gpio version: 2.50 Copyright (c) 2012-2018 Gordon Henderson This is free software with ABSOLUTELY NO WARRANTY. For details type: gpio -warranty Raspberry Pi Details: Type: Model A, Revision: 00, Memory: 256MB, Maker: Sony * Device tree is enabled. *--> Banana Pi BPI-M2-Ultra * Root or sudo required for GPIO access. avs@BananaPi:~/wiringPi/examples$ avs@BananaPi:~/wiringPi/examples$ avs@BananaPi:~/wiringPi/examples$
Попробовал еще раз. После запуска установки были выдаются строки типа
mcp3422.c: In function 'waitForConversion': mcp3422.c:50:5: warning: ignoring return value of 'read', declared with attribute warn_unused_result [-Wunused-result] read (fd, buffer, n) ; ^~~~~~~~~~~~~~~~~~~~
А в самом конце
All Done. NOTE: To compile programs with wiringPi, 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).
Но после запуска компиляции тестового примера ошибка осталась прежняя
avs@BananaPi:~/BPI-WiringPi2/examples$ sudo gcc blink.c -o blink -lwiringPi -lpthread /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `crypt' /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `rint' /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `pow' /usr/lib/gcc/arm-linux-gnueabihf/7/../../../../lib/libwiringPi.so: undefined reference to `shm_open' collect2: error: ld returned 1 exit status
Не понятно, куда копать 🙁
Скомпилировалось при таком вызове
По поводу параметра pthread, залез в доки по gcc, там пишут:
-pthread Link with the POSIX threads library. This option is supported on GNU/Linux targets, most other Unix derivatives, and also on x86 Cygwin and MinGW targets. On some targets this option also sets flags for the preprocessor, so it should be used consistently for both compilation and linking.
Так что без «l»
Надо еще понять, что значит: -lm -lrt
PS. Спасибо за ваши статьи.
Да я немного ступил, когда зашел на
, то внизу прочел readme, ну и взял и использовал
git clone git://git.drogon.net/wiringPi
.
Вечером переставлю и попробую заново.
В общем, ерунда какая то получается ;(
Деинсталлировал установленный пакет, выполнил
git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
, установил. В результате
avs@BananaPi:~/BPI-WiringPi2$ gpio readall Unable to determine hardware version. I see: Hardware : Allwinner sun8i Family , - expecting BCM2708, BCM2709 or BCM2835. If this is a genuine Raspberry Pi then please report this to projects@drogon.net. If this is not a Raspberry Pi then you are on your own as wiringPi is designed to support the Raspberry Pi ONLY.
Заработало! Спасибо за помощь, я уже хотел бросить.
С такой ошибкой кто то сталкивался?
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
mostbest mostbet16.com.kg .
1win кыргызстан https://1win38.com.kg .
1win pro https://1win39.com.kg .
сайт 1win http://1win40.com.kg .
вин 1 вин 1 .
1 цшт 1win33.com.kg .
1win online http://www.1win34.com.kg .
mostbet uz сом mostbet uz сом .
мостбет уз https://www.mostbet3019.ru .
mostbet uz mostbet uz .
1win kg скачать http://www.1win36.com.kg .
официальный сайт 1 вин https://www.1win41.com.kg .
1win mx https://www.1win2.com.mx .
1вин кг https://1win37.com.kg/ .
скачать мостбет https://mostbet20.com.kg/ .
1win скачать kg http://1win46.com.kg/ .
мостбет мостбет .
1win букмекер http://1win100.com.kg .
1win.pro 1win.pro .
один вин один вин .
1wi 1wi .
1win бк 1win бк .
скачать 1win с официального сайта скачать 1win с официального сайта .
mostbet официальный сайт http://cah.forum24.ru/?1-13-0-00001559-000-0-0 .
1win казино https://cah.forum24.ru/?1-13-0-00001560-000-0-0-1741172791/ .
мостбет зеркало http://chesskomi.borda.ru/?1-10-0-00000277-000-0-0-1741171219/ .
1вин вход 1вин вход .
1win сайт online 1win сайт online .
скачать 1win официальный сайт http://aktivnoe.forum24.ru/?1-8-0-00000254-000-0-0-1741273702 .
вход 1win http://1win109.com.kg .
1win футбол 1win футбол .
1win kg https://1win110.com.kg .
1win https://1win12.am/ .
1win live https://www.1win11.am .
1win онлайн https://www.1win13.am .
casino 1 win https://1win4.com.mx/ .
1win. casino. https://www.1win3.com.mx .
1 win mexico https://www.1win5.com.mx .
mostbets http://mostbet34.com.kg .
ван вин http://1win104.com.kg .
мостбет кыргызстан скачать https://mostbet1009.com.kg .
1win bet deposit 1win10.com.ng .
1vin kg https://1win105.com.kg .
mostbet промокод http://www.mostbet1000.com.kg .
mostbet kg скачать на андроид https://www.mostbet1010.com.kg .
1вин вход 1win106.com.kg .
мост бет mostbet1001.com.kg .
1win молдова https://www.1win5000.ru .
ван вин http://1win107.com.kg .
descărca 1win https://1win5001.ru .
мотбет https://mostbet1003.com.kg .
мрстбет http://www.mostbet1002.com.kg .
1win https://cah.forum24.ru/?1-19-0-00000716-000-0-0-1741702224/ .
мостбет войти dubna.myqip.ru/?1-18-0-00000145-000-0-0-1741708632 .
один вин http://aktivnoe.forum24.ru/?1-2-0-00000100-000-0-0-1741701286 .
mostbet chrono http://aktivnoe.forum24.ru/?1-8-0-00000260-000-0-0-1741701879 .
1win мобильная версия сайта https://aktivnoe.forum24.ru/?1-8-0-00000259-000-0-0-1741701621/ .
скачать mostbet https://cah.forum24.ru/?1-19-0-00000715-000-0-0-1741702061/ .