Orange Pi, Raspberry Pi GPIO тестируем, мигаем светодиодами
На примере Orange Pi PC 2 c ARMBIAN Ubuntu 16.04 покажем как можно легко управлять выводами GPIO. С не большими отступлениями все примеры из этой статьи можно использовать на всех моделях Orange Pi b Raspberry Pi, Raspberry Pi 2, Raspberry Pi 3. О программировании GPIO подробно можно посмотреть в статье Orange PI PC 2 GPIO доступ через sysfs, а здесь – практика и тесты.
Программа для управления GPIO Orange Pi b (Raspberry Pi, Raspberry Pi 2, Raspberry Pi 3) написана на bash:
#!/bin/bash # gpio0 PA0 pin 13 echo 0 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio0/direction # gpio1 PA1 pin11 echo 1 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio1/direction # gpio2 PA2 pin22 echo 2 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio2/direction # gpio3 PA3 pin15 echo 3 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio3/direction # gpio6 PA6 pin7 echo 6 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio6/direction # gpio7 PA7 pin29 echo 7 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio7/direction # gpio8 PA8 pin31 echo 8 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio8/direction # gpio9 PA9 pin33 echo 9 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio9/direction # gpio10 PA10 pin35 echo 10 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio10/direction # gpio11 PA11 pin5 echo 11 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio11/direction # gpio12 PA12 pin3 echo 12 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio12/direction # gpio13 PA13 pin24 echo 13 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio13/direction # gpio14 PA14 pin23 echo 14 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio14/direction # gpio15 PA15 pin19 echo 15 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio15/direction # gpio16 PA16 pin21 echo 16 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio16/direction # gpio18 PA18 pin28 echo 18 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio18/direction # gpio19 PA19 pin27 echo 19 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio19/direction # gpio21 PA21 pin26 echo 21 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio21/direction # gpio68 PC4 pin16 echo 68 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio68/direction # gpio69 PC5 pin8 echo 69 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio69/direction # gpio70 PC6 pin10 echo 70 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio70/direction # gpio71 PC7 pin18 echo 71 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio71/direction # gpio107 PD11 pin37 echo 107 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio107/direction # gpio110 PD14 pin12 echo 110 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio110/direction # gpio198 PG6 pin38 echo 198 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio198/direction # gpio199 PG7 pin40 echo 199 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio199/direction # gpio200 PG8 pin32 echo 200 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio200/direction # gpio201 PG9 pin36 echo 201 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio201/direction S=0.2 Y=1 while [ "$Y" != "-1" ] echo $Y > /sys/class/gpio/gpio0/value sleep $S echo $Y > /sys/class/gpio/gpio1/value sleep $S echo $Y > /sys/class/gpio/gpio2/value sleep $S echo $Y > /sys/class/gpio/gpio3/value sleep $S echo $Y > /sys/class/gpio/gpio6/value sleep $S echo $Y > /sys/class/gpio/gpio7/value sleep $S echo $Y > /sys/class/gpio/gpio8/value sleep $S echo $Y > /sys/class/gpio/gpio9/value sleep $S echo $Y > /sys/class/gpio/gpio10/value sleep $S echo $Y > /sys/class/gpio/gpio11/value sleep $S echo $Y > /sys/class/gpio/gpio12/value sleep $S echo $Y > /sys/class/gpio/gpio13/value sleep $S echo $Y > /sys/class/gpio/gpio14/value sleep $S echo $Y > /sys/class/gpio/gpio15/value sleep $S echo $Y > /sys/class/gpio/gpio16/value sleep $S echo $Y > /sys/class/gpio/gpio18/value sleep $S echo $Y > /sys/class/gpio/gpio19/value sleep $S echo $Y > /sys/class/gpio/gpio21/value sleep $S echo $Y > /sys/class/gpio/gpio68/value sleep $S echo $Y > /sys/class/gpio/gpio69/value sleep $S echo $Y > /sys/class/gpio/gpio70/value sleep $S echo $Y > /sys/class/gpio/gpio71/value sleep $S echo $Y > /sys/class/gpio/gpio107/value sleep $S echo $Y > /sys/class/gpio/gpio110/value sleep $S echo $Y > /sys/class/gpio/gpio198/value sleep $S echo $Y > /sys/class/gpio/gpio199/value sleep $S echo $Y > /sys/class/gpio/gpio200/value sleep $S echo $Y > /sys/class/gpio/gpio201/value sleep $S Y=`expr $Y - 1` done
Дайте программе права на выполнение и запускайте под root.
В первой части программы вы можете видеть комментарии # gpio0 PA0 pin 13, где pin 13 номер вывода GPIO разъема платы Orange Pi b (Raspberry Pi, Raspberry Pi 2, Raspberry Pi 3). Соберите схему с 28 светодиодами катод каждого из них соедините с резистором на 1 кОм. а все резисторы соедините между собой и подключите к общему проводу на разъеме GPIO вашего микрокомпьютера. Аноды каждого светодиода подключите к ножкам разъема GPIO в том порядке, в котором они перечислены в первой части программы.
GPIO pin 13, 11, 22, 15, 7, 29, 31, 33, 35, 5, 3, 24, 23,19, 21, 28, 27, 26, 16, 8 , 10, 18, 37, 12, 38, 40, 32, 36.
Мы постарались составить максимально простую для понимания программу и описание электронной схемы и все же, сверяйте номера выводов по альбому схем своей платы микрокомпьютера. Только тогда, Вы сможете избежать ошибок подключения и не повредите свою плату. Тем более, если вы используете плату микрокомпьютера отличную от Orange Pi PC 2, например, Orange Pi Zero, Orange Pi One, Orange Pi Lite, Orange Pi PC, Orange Pi PC Plus, Orange Pi Plus 2E, Orange Pi Plus, Orange Pi PC Plus2 или Raspbery Pi Zero, Raspbery Pi 1 Model A+, Raspbery Pi 2 Model B, Raspbery Pi 3 Model B и другие.
По ссылке Вы можете посмотреть видео, на котором мы запускаем эту программу и тестируем переключение состояние pin GPIO платы Orange Pi PC 2. Приятного просмотра.
От этой программы совсем не далеко до практически полезных решений – Умный дом, управление исполнительными устройствами через интернет, управление роботами со смартфона по WiFi…
integrator.adior.ru
Управление БП принтера из OctoPrint на Orange Pi PC (работа с GPIO)
Добавлено в закладки: 2
Эта статья написана на основе и в дополнение статьи “OctoPrint. Включение и отключение БП 3D принтера через веб интерфейс“, только для Orange Pi PC.
Установка и настройка GPIO
Библиотека GPIO для Orange Pi PC находится по адресу: https://github.com/zhaolei/WiringOP
Устанавливаем ее согласно инструкции по этому же адресу
git clone https://github.com/zhaolei/WiringOP.git -b h4
cd WiringOP
chmod +x ./build
sudo ./build
Далее проверяем все ли нормально
gpio readall
команды для “Апельсинки” (Orange Pi) немного отличаются от команд “Малинки” (Raspberry Pi)
- Прочитать статус пинов «gpio readall»
- Прочитать статус пина №25 «gpio read 25»
- Изменение режима пина 25 «gpio mode 25 out» если на выход или «gpio mode 25 in» если на вход
- Включение пина (при mode = out) «gpio write 25 1» на пине появится +3,5v. или выключить пин «gpio write 25 0» (25 – это GPIO.25 смотрим столбик wPi)
Все!!! GPIO мы настроили и знаем команды…
Далее действуем по инструкции Алексея “OctoPrint. Включение и отключение БП 3D принтера через веб интерфейс” начиная с раздела «Настройка веб интерфейса OctoPrint»
1.Еще одно примечание…
В файле config.yaml обязательно соблюдение табуляции! Скриншот прилагаю.
Если что-то будет не правильно написано, то OctoPrint просто не запустится!
2. Если Вы еще не делали меню System, то этот раздел пустой… и соответственно нам нужно его найти и далее по примерам… Обязательно уберите фигурные скобки «{}» это типо заглушки…
ВСЕ!!! Мы молодцы!!!
Дальше мы делаем «железо»…
Я использую серверный БП… включение БП у меня происходит подачей «земли» на определенный контакт…
Ниже прилагаю схему подключения. Думаю, что это также подойдет и для компьютерного БП.
Транзистор используется любой NPN без диода шотки. Сопротивление 10 K между базой и эмиттером и на базу… между базой и апельсинкой поставить пару сотен Ом… если не будет работать – попробуйте понизить это сопротивление до сотни или вообще его убрать, но без него – это не правильно!
До этого у меня принтер включался кнопкой.. теперь из интерфейса ОктоПринт’а. Сделал все навесным монтажом и в термоусадку…
Фото как было не сделал, но как стало сфотографировал.
Дополнение
Собранный и настроенный образ принт-сервера ОктоПринт для Orange Pi PC на Armbian. Ссылка.
Развернуть образ на SD карту с помощью программы Rufus (есть в архиве)
Далее вставляем SD в OrangePi PC и подключаемся или по SSH если знаем IP адрес или к консоли по COM порту.
При подключении к Orange Pi PC увидим такую картину
Для подключения к Orange PI PC используйте следующие логин/пароль :
root/root
orangepi/orangepi
Для подключения к OctoPrint’у используйте следующие логин/пароль :
admin/admin
После успешного запуска требуется расширить файловую систему… о чем нас и предупреждает красное сообщение при загрузке!
Если Вы загрузились как root, то просто наберите команду fs_resize и на запрос нажмите «Y»
Если Вы загрузились как orangepi, то наберите команду sudo fs_resize далее пароль и на запрос нажмите «Y»
После этого reboot или sudo reboot соответственно
Убедились, что диск расширился… Проверяем работу ОктоПринта…
Заходим по тому IP, что получил наша Orange Pi PC браузером на порт 5000
Логинемся admin/admin и сразу меняем пароль для пользователя admin
Далее можно поменять и имя пользователя для OctoPrint’а
Делается это в файле users.yaml в профиле пользователя. Думаю путь виден на скриншоте ниже.
Меняйте ТОЛЬКО то, что до двоеточия идет!!! Больше ни чего трогать не нужно!!!
Ну и на последок меняем пароли orangepi и root (я делал это из под root’а. Команды видны на скрине ниже)
Перезагружаем Orange Pi PC командой reboot или sudo reboot если вы зашли пользователем…
Установка обновлений
Для возможности автоматического установления обновлений октопринта требуется прописать верхнюю строчку (куда скачивать)
У меня прописано так
При необходимости – обновите OctoPrint. После обновления потребуется перезапуск его…
Радуемся… теперь можно это дело и отметить…
p.s. управление БП принтера настроено на GPIO 25
На этом ВСЕ!!! Всем хорошей печати!!!
Метки: OctoPrint, OrangePi, принтсервер  
2016-04-22  
  
Раздел: Настройка, Принт-сервер  
Автор: wolfs_SG Просмотров: 8 778  
6 комментариев
3deshnik.ru
Orange Pi Pinout/Pin definition/Распиновка Orange Pi/GPIO-MicroPi
В данной статье я собрал распиновки (Orange Pi pinout) всех моделей Orange Pi: Orange Pi, Orange Pi 2, Orange Pi Mini, Orange Pi Mini 2, Orange Pi One, Orange Pi Lite, Orange Pi PC, Orange Pi PC 2, Orange Pi Plus, Orange Pi Plus 2, Orange Pi Plus 2E, Orange Pi Zero. В основном распиновка GPIO у всех почти одинакова — по 40 выводов общего назначения, кроме Orange Pi — 26 + 18 выводов и Orange Pi Zero — 26 + 13 выводов.
Распиновка Orange Pi (Orange Pi pinout)
Спецификация GPIO на Orange Pi
Orange Pi — 26-контактный разъем GPIO
26-контактный разъем GPIO на Orange Pi совпадает с GPIO на Raspberry Pi Model A и Model B.
2×13 Выводов (A20) | |||
---|---|---|---|
1 | 3.3V | 2 | 5V |
3 | PB21 TWI2-SDA | 4 | 5V |
5 | PB20 TWI2-SCK | 6 | GND |
7 | PI3 PWM1 | 8 | PH0 UART3_TX |
9 | GND | 10 | Ph2 UART3_RX |
11 | PI19 UART2_RX | 12 | Ph3 |
13 | PI18 UART2_TX | 14 | GND |
15 | PI17 UART2_CTS | 16 | Ph30 CAN_TX |
17 | 3.3V | 18 | Ph31 CAN_RX |
19 | PI12 SPI0_MOSI | 20 | GND |
21 | PI13 SPI0_MISO | 22 | PI16 UART2_RTS |
23 | PI11 SPI0_CLK | 24 | PI10 SPI0_CS0 |
25 | GND | 26 | PI14 SPI0_CS1 |
Orange Pi — 18-контактный разъем GPIO
Orange Pi дополнительно имеет 18 выводов общего назначения.
2×9 Выводов (A20) | |||
---|---|---|---|
1 | 5V | 2 | 3.3V |
3 | PH5 | 4 | PI21 UART7_RX |
5 | Ph4 | 6 | PI20 UART7_TX |
7 | GND | 8 | GND |
9 | RESET# | 10 | LRADC1 |
11 | ADC_Y2 | 12 | LRADC0 |
13 | ADC_Y1 | 14 | GND |
15 | ADC_X2 | 16 | UART0_RX |
17 | ADC_X1 | 18 | UART0_TX |
LVDS (LCD display interface) — интерфейс ЖК-дисплея
LVDS — 40-контактный FPC разъем с помощью которого можно подключить внешний ЖК-дисплей (LVDS) и модуль сенсорного экрана (I2C).
2×20 Выводов | |||
---|---|---|---|
1 | IPSOUT | 2 | TWI3-SDA PI1 |
3 | IPSOUT | 4 | TWI3-SCK PI0 |
5 | GND | 6 | LCD0-IO0 PH7 |
7 | LCDIO-03 Ph22 | 8 | LCD0-IO1 PH8 |
9 | LCD0-D00 PD0 | 10 | PWM0 PB2 |
11 | LCD0-D01 PD1 | 12 | LCD0-IO2 PH9 |
13 | LCD0-D02 PD2 | 14 | LCD0-DE PD25 |
15 | LCD0-D03 PD3 | 16 | LCD0-VSYNC PD27 |
17 | LCD0-D04 PD4 | 18 | LCD0-HSYNC PD26 |
19 | LCD0-D05 PD5 | 20 | LCD0-CS PH6 |
21 | LCD0-D06 PD6 | 22 | LCD0-CLK PD24 |
23 | LCD0-D07 PD7 | 24 | GND |
25 | LCD0-D08 PD8 | 26 | LCD0-D23 PD23 |
27 | LCD0-D09 PD9 | 28 | LCD0-D22 PD22 |
29 | LCD0-D10 PD10 | 30 | LCD0-D21 PD21 |
31 | LCD0-D11 PD11 | 32 | LCD0-D20 PD20 |
33 | LCD0-D12 PD12 | 34 | LCD0-D19 PD19 |
35 | LCD0-D13 PD13 | 36 | LCD0-D18 PD18 |
37 | LCD0-D14 PD14 | 38 | LCD0-D17 PD17 |
39 | LCD0-D15 PD15 | 40 | LCD0-D16 PD16 |
CSI (Camera Serial Interface) — Разъем камеры
CSI это FPC разъем на 24 выводов для подключения камеры
1×24 Выводов | |
---|---|
1 | IPSOUT |
2 | GND |
3 | TWI1-SDA PB19 |
4 | VCC-CSI |
5 | TWI1-SCK PB18 |
6 | CSI0-RESET# Ph24 |
7 | CSI-VSYNC PE3 |
8 | CSI0-STBY-EN Ph29 |
9 | CSI-HSYNC PE2 |
10 | VDD1V5-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
Распиновка Orange Pi 2 (Orange Pi 2 pinout)
Спецификация GPIO на Orange Pi 2
GPIO (General Purpose Input/Output) — переводится как Входы/Выходы общего назначения. Orange Pi 2 имеет 40 выводов общего назначения.
2×20 Выводов (h4) | |||
---|---|---|---|
1 | 3.3V | 2 | VCC-5V |
3 | PA12 (TWI0-SDA/DI_RX/EINT12) | 4 | VCC-5V |
5 | PA11 (TWI0-SCK/DI_TX/EINT11) | 6 | GND |
7 | PA6 (SIM_PWREN/PWM1/PA_EINT6) | 8 | PA13 (SPI1_CS/UART3_TX/PA_EINT13) |
9 | GND | 10 | PA14 (SPI1_CLK/UART3_RX/PA_EINT14) |
11 | PA1 (UART2_RX/JTAG_CK0/PA_EINT1) | 12 | PD14(RGMII_NULL/MII_TXERR/RMII_NULL) |
13 | PA0 (UART2_TX/JTAG_MS0/PA_EINT0) | 14 | GND |
15 | PA3 (UART2_CTS/JTAG_DI0/PA_EINT3) | 16 | PC4 (NAND_CE0) |
17 | 3.3V | 18 | PC7 (NAND_RB1) |
19 | PC0 (NAND_WE/SPI0_MOSI) | 20 | GND |
21 | PC1 (NAND_ALE/SPI0_MISO) | 22 | PA2 (UART2_RTS/JTAG_DO0/PA_EINT2) |
23 | PC2 (NAND_CLE/SPI0_CLK) | 24 | PC3 (NAND_CE1/SPI0_CS) |
25 | GND | 26 | PA21 (PCM0_DIN/SIM_VPPPP/PA_EINT21) |
27 | PA19 (PCM0_CLK/TWI1_SDA/PA_EINT19) | 28 | PA18 (PCM0_SYNC/TWI1_SCK/PA_EINT18) |
29 | PA7 (SIM_CLK/PA_EINT7) | 30 | GND |
31 | PA8 (SIM_DATA/PA_EINT8) | 32 | PG8 (UART1_RTS/PG_EINT8) |
33 | PA9 (SIM_RST/PA_EINT9) | 34 | GND |
35 | PA10 (SIM_DET/PA_EINT10) | 36 | PG9 (UART1_CTS/PG_EINT9) |
37 | PA20 (PCM0_DOUT/SIM_VPPEN/PA_EINT20) | 38 | PG6 (UART1_TX/PG_EINT6) |
39 | GND | 40 | PG7 (UART1_RX/PG_EINT7) |
CSI (Camera Serial Interface) — Разъем камеры
На Orange Pi 2 есть FPC разъем на 24 выводов для подключения камеры CSI.
1×24 Выводов | |
---|---|
1 | NC |
2 | GND |
3 | TWI2-SDA PE13 |
4 | VCC-CSI |
5 | TWI2-SCK PE12 |
6 | CSI-RESET# PE15 |
7 | CSI-VSYNC PE3 |
8 | CSI-STBY-EN PE15 |
9 | CSI-HSYNC PE2 |
10 | VDD1V8-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
UART Интерфейс (Debug TTL UART)
Для разработчиков Orange Pi, это простой способ, чтобы получить выход UART консоли, чтобы проверить состояние системы и сообщения журнала.
1×3 Выводов | |
---|---|
1 | GND |
2 | RX |
3 | TX |
Распиновка Orange Pi Mini
Спецификация GPIO (Входы/Выходы общего назначения) на Orange Pi Mini
2×20 Выводов (A20) | |||
---|---|---|---|
1 | 3.3V | 2 | 5V |
3 | PB21 TWI2-SDA | 4 | 5V |
5 | PB20 TWI2-SCK | 6 | GND |
7 | PI3 PWM1 | 8 | PH0 UART3_TX |
9 | GND | 10 | Ph2 UART3_RX |
11 | PI19 UART2_RX | 12 | Ph3 |
13 | PI18 UART2_TX | 14 | GND |
15 | PI17 UART2_CTS | 16 | Ph30 CAN_TX |
17 | 3.3V | 18 | Ph31 CAN_RX |
19 | PI12 SPI0_MOSI | 20 | GND |
21 | PI13 SPI0_MISO | 22 | PI16 UART2_RTS |
23 | PI11 SPI0_CLK | 24 | PI10 SPI0_CS0 |
25 | GND | 26 | PI14 SPI0_CS1 |
27 | PB5 I2S_MCLK | 28 | PI12 |
29 | PB6 I2S_BCLK | 30 | GND |
31 | PB7 I2S_LRCK | 32 | PI20 UART7_TX |
33 | PB8 I2S_DO0 | 34 | GND |
35 | PB12 I2S_DI | 36 | PI21 UART7_RX |
37 | PB13 SDPIF_D0 | 38 | Ph4 |
39 | GND | 40 | PH5 |
LVDS (LCD display interface) — интерфейс ЖК-дисплея
LVDS — 40-контактный FPC разъем для подключения ЖК-дисплея (LVDS) и модуля сенсорного экрана (I2C).
2×20 Выводов | |||
---|---|---|---|
1 | IPSOUT | 2 | TWI3-SDA PI1 |
3 | IPSOUT | 4 | TWI3-SCK PI0 |
5 | GND | 6 | LCD0-IO0 PH7 |
7 | LCDIO-03 Ph22 | 8 | LCD0-IO1 PH8 |
9 | LCD0-D00 PD0 | 10 | PWM0 PB2 |
11 | LCD0-D01 PD1 | 12 | LCD0-IO2 PH9 |
13 | LCD0-D02 PD2 | 14 | LCD0-DE PD25 |
15 | LCD0-D03 PD3 | 16 | LCD0-VSYNC PD27 |
17 | LCD0-D04 PD4 | 18 | LCD0-HSYNC PD26 |
19 | LCD0-D05 PD5 | 20 | LCD0-CS PH6 |
21 | LCD0-D06 PD6 | 22 | LCD0-CLK PD24 |
23 | LCD0-D07 PD7 | 24 | GND |
25 | LCD0-D08 PD8 | 26 | LCD0-D23 PD23 |
27 | LCD0-D09 PD9 | 28 | LCD0-D22 PD22 |
29 | LCD0-D10 PD10 | 30 | LCD0-D21 PD21 |
31 | LCD0-D11 PD11 | 32 | LCD0-D20 PD20 |
33 | LCD0-D12 PD12 | 34 | LCD0-D19 PD19 |
35 | LCD0-D13 PD13 | 36 | LCD0-D18 PD18 |
37 | LCD0-D14 PD14 | 38 | LCD0-D17 PD17 |
39 | LCD0-D15 PD15 | 40 | LCD0-D16 PD16 |
CSI (Camera Serial Interface) — Разъем камеры
На Orange Pi 2 есть FPC разъем на 24 выводов для подключения камеры CSI.
1×24 Выводов | |
---|---|
1 | IPSOUT |
2 | GND |
3 | TWI1-SDA PB19 |
4 | VCC-CSI |
5 | TWI1-SCK PB18 |
6 | CSI0-RESET# Ph24 |
7 | CSI-VSYNC PE3 |
8 | CSI0-STBY-EN Ph29 |
9 | CSI-HSYNC PE2 |
10 | VDD1V5-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
UART отладочный вывод (Debug TTL UART)
1×3 Выводов | |
---|---|
1 | GND |
2 | RX |
3 | TX |
Распиновка Orange Pi Mini 2
GPIO — Входы/Выходы общего назначения
2×20 Выводов (h4) | |||
---|---|---|---|
1 | 3.3V | 2 | VCC-5V |
3 | PA12 (TWI0-SDA/DI_RX/EINT12) | 4 | VCC-5V |
5 | PA11 (TWI0-SCK/DI_TX/EINT11) | 6 | GND |
7 | PA6 (SIM_PWREN/PWM1/PA_EINT6) | 8 | PA13 (SPI1_CS/UART3_TX/PA_EINT13) |
9 | GND | 10 | PA14 (SPI1_CLK/UART3_RX/PA_EINT14) |
11 | PA1 (UART2_RX/JTAG_CK0/PA_EINT1) | 12 | PD14(RGMII_NULL/MII_TXERR/RMII_NULL) |
13 | PA0 (UART2_TX/JTAG_MS0/PA_EINT0) | 14 | GND |
15 | PA3 (UART2_CTS/JTAG_DI0/PA_EINT3) | 16 | PC4 (NAND_CE0) |
17 | 3.3V | 18 | PC7 (NAND_RB1) |
19 | PC0 (NAND_WE/SPI0_MOSI) | 20 | GND |
21 | PC1 (NAND_ALE/SPI0_MISO) | 22 | PA2 (UART2_RTS/JTAG_DO0/PA_EINT2) |
23 | PC2 (NAND_CLE/SPI0_CLK) | 24 | PC3 (NAND_CE1/SPI0_CS) |
25 | GND | 26 | PA21 (PCM0_DIN/SIM_VPPPP/PA_EINT21) |
27 | PA19 (PCM0_CLK/TWI1_SDA/PA_EINT19) | 28 | PA18 (PCM0_SYNC/TWI1_SCK/PA_EINT18) |
29 | PA7 (SIM_CLK/PA_EINT7) | 30 | GND |
31 | PA8 (SIM_DATA/PA_EINT8) | 32 | PG8 (UART1_RTS/PG_EINT8) |
33 | PA9 (SIM_RST/PA_EINT9) | 34 | GND |
35 | PA10 (SIM_DET/PA_EINT10) | 36 | PG9 (UART1_CTS/PG_EINT9) |
37 | PA20 (PCM0_DOUT/SIM_VPPEN/PA_EINT20) | 38 | PG6 (UART1_TX/PG_EINT6) |
39 | GND | 40 | PG7 (UART1_RX/PG_EINT7) |
CSI — Разъем камеры
1×24 Выводов | |
---|---|
1 | NC |
2 | GND |
3 | TWI2-SDA PE13 |
4 | VCC-CSI |
5 | TWI2-SCK PE12 |
6 | CSI-RESET# PE15 |
7 | CSI-VSYNC PE3 |
8 | CSI-STBY-EN PE15 |
9 | CSI-HSYNC PE2 |
10 | VDD1V8-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
UART отладочный вывод
1×3 Выводов | |
---|---|
1 | GND |
2 | RX |
3 | TX |
GPIO — 40 Выводов общего назначения
2×20 Выводов (h4) | |||
---|---|---|---|
1 | 3.3V | 2 | VCC-5V |
3 | PA12 (TWI0-SDA/DI_RX/EINT12) | 4 | VCC-5V |
5 | PA11 (TWI0-SCK/DI_TX/EINT11) | 6 | GND |
7 | PA6 (SIM_PWREN/PWM1/PA_EINT6) | 8 | PA13 (SPI1_CS/UART3_TX/PA_EINT13) |
9 | GND | 10 | PA14 (SPI1_CLK/UART3_RX/PA_EINT14) |
11 | PA1 (UART2_RX/JTAG_CK0/PA_EINT1) | 12 | PD14(RGMII_NULL/MII_TXERR/RMII_NULL) |
13 | PA0 (UART2_TX/JTAG_MS0/PA_EINT0) | 14 | GND |
15 | PA3 (UART2_CTS/JTAG_DI0/PA_EINT3) | 16 | PC4 (NAND_CE0) |
17 | 3.3V | 18 | PC7 (NAND_RB1) |
19 | PC0 (NAND_WE/SPI0_MOSI) | 20 | GND |
21 | PC1 (NAND_ALE/SPI0_MISO) | 22 | PA2 (UART2_RTS/JTAG_DO0/PA_EINT2) |
23 | PC2 (NAND_CLE/SPI0_CLK) | 24 | PC3 (NAND_CE1/SPI0_CS) |
25 | GND | 26 | PA21 (PCM0_DIN/SIM_VPPPP/PA_EINT21) |
27 | PA19 (PCM0_CLK/TWI1_SDA/PA_EINT19) | 28 | PA18 (PCM0_SYNC/TWI1_SCK/PA_EINT18) |
29 | PA7 (SIM_CLK/PA_EINT7) | 30 | GND |
31 | PA8 (SIM_DATA/PA_EINT8) | 32 | PG8 (UART1_RTS/PG_EINT8) |
33 | PA9 (SIM_RST/PA_EINT9) | 34 | GND |
35 | PA10 (SIM_DET/PA_EINT10) | 36 | PG9 (UART1_CTS/PG_EINT9) |
37 | PA20 (PCM0_DOUT/SIM_VPPEN/PA_EINT20) | 38 | PG6 (UART1_TX/PG_EINT6) |
39 | GND | 40 | PG7 (UART1_RX/PG_EINT7) |
CSI — Разъем камеры
1×24 Выводов | |
---|---|
1 | NC |
2 | GND |
3 | TWI2-SDA PE13 |
4 | VCC-CSI |
5 | TWI2-SCK PE12 |
6 | CSI-RESET# PE15 |
7 | CSI-VSYNC PE3 |
8 | CSI-STBY-EN PE15 |
9 | CSI-HSYNC PE2 |
10 | VDD1V8-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
UART отладочный вывод
1×3 Выводов | |
---|---|
1 | GND |
2 | RX |
3 | TX |
Распиновка Orange Pi PC & PC 2 & PC Plus
Orange Pi PC, Orange Pi PC 2 и Orange Pi PC Plus имеют одинаковые выводы общего назначения GPIO, разъемы камер CSI и UART интерфейсы для отладки.
Спецификация GPIO на Orange Pi PC & PC 2 & PC Plus
Orange Pi PC, Orange Pi PC 2 и Orange Pi PC Plus имеют 40 выводов общего назначения GPIO, совместим с GPIO Raspberry Pi B+.
2×20 Выводов (h4/H5) | |||
---|---|---|---|
1 | 3.3V | 2 | VCC-5V |
3 | PA12 (TWI0-SDA/DI_RX/EINT12) | 4 | VCC-5V |
5 | PA11 (TWI0-SCK/DI_TX/EINT11) | 6 | GND |
7 | PA6 (SIM_PWREN/PWM1/PA_EINT6) | 8 | PA13 (SPI1_CS/UART3_TX/PA_EINT13) |
9 | GND | 10 | PA14 (SPI1_CLK/UART3_RX/PA_EINT14) |
11 | PA1 (UART2_RX/JTAG_CK0/PA_EINT1) | 12 | PD14(RGMII_NULL/MII_TXERR/RMII_NULL) |
13 | PA0 (UART2_TX/JTAG_MS0/PA_EINT0) | 14 | GND |
15 | PA3 (UART2_CTS/JTAG_DI0/PA_EINT3) | 16 | PC4 (NAND_CE0) |
17 | 3.3V | 18 | PC7 (NAND_RB1) |
19 | PC0 (NAND_WE/SPI0_MOSI) | 20 | GND |
21 | PC1 (NAND_ALE/SPI0_MISO) | 22 | PA2 (UART2_RTS/JTAG_DO0/PA_EINT2) |
23 | PC2 (NAND_CLE/SPI0_CLK) | 24 | PC3 (NAND_CE1/SPI0_CS) |
25 | GND | 26 | PA21 (PCM0_DIN/SIM_VPPPP/PA_EINT21) |
27 | PA19 (PCM0_CLK/TWI1_SDA/PA_EINT19) | 28 | PA18 (PCM0_SYNC/TWI1_SCK/PA_EINT18) |
29 | PA7 (SIM_CLK/PA_EINT7) | 30 | GND |
31 | PA8 (SIM_DATA/PA_EINT8) | 32 | PG8 (UART1_RTS/PG_EINT8) |
33 | PA9 (SIM_RST/PA_EINT9) | 34 | GND |
35 | PA10 (SIM_DET/PA_EINT10) | 36 | PG9 (UART1_CTS/PG_EINT9) |
37 | PA20 (PCM0_DOUT/SIM_VPPEN/PA_EINT20) | 38 | PG6 (UART1_TX/PG_EINT6) |
39 | GND | 40 | PG7 (UART1_RX/PG_EINT7) |
CSI (Camera Serial Interface) — Разъем камеры
На Orange Pi PC, Orange Pi PC 2 и Orange Pi PC Plus есть FPC разъем CSI на 24 выводов для подключения камеры.
1×24 Выводов | |
---|---|
1 | NC |
2 | GND |
3 | TWI2-SDA PE13 |
4 | VCC-CSI |
5 | TWI2-SCK PE12 |
6 | CSI-RESET# PE15 |
7 | CSI-VSYNC PE3 |
8 | CSI-STBY-EN PE15 |
9 | CSI-HSYNC PE2 |
10 | VDD1V8-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
UART Интерфейс (Debug TTL UART)
Используется, чтобы получить выход UART консоли, для проверки состояния системы и сообщении журнала.
1×3 Выводов | |
---|---|
1 | GND |
2 | RX |
3 | TX |
Orange Pi Plus, Orange Pi Plus 2 и Orange Pi Plus 2E имеют одинаковые выводы общего назначения GPIO, разъемы камер CSI и UART интерфейсы для отладки.
Спецификация GPIO на Orange Pi Plus & Plus 2 & Plus 2E
Orange Pi Plus, Orange Pi Plus 2 и Orange Pi Plus 2E имеют 40 выводов общего назначения GPIO, совместим с GPIO Raspberry Pi B+.
2×20 Выводов (h4) | |||
---|---|---|---|
1 | 3.3V | 2 | VCC-5V |
3 | PA12 (TWI0-SDA/DI_RX/EINT12) | 4 | VCC-5V |
5 | PA11 (TWI0-SCK/DI_TX/EINT11) | 6 | GND |
7 | PA6 (SIM_PWREN/PWM1/PA_EINT6) | 8 | PA13 (SPI1_CS/UART3_TX/PA_EINT13) |
9 | GND | 10 | PA14 (SPI1_CLK/UART3_RX/PA_EINT14) |
11 | PA1 (UART2_RX/JTAG_CK0/PA_EINT1) | 12 | PD14(RGMII_NULL/MII_TXERR/RMII_NULL) |
13 | PA0 (UART2_TX/JTAG_MS0/PA_EINT0) | 14 | GND |
15 | PA3 (UART2_CTS/JTAG_DI0/PA_EINT3) | 16 | PC4 (NAND_CE0) |
17 | 3.3V | 18 | PC7 (NAND_RB1) |
19 | PC0 (NAND_WE/SPI0_MOSI) | 20 | GND |
21 | PC1 (NAND_ALE/SPI0_MISO) | 22 | PA2 (UART2_RTS/JTAG_DO0/PA_EINT2) |
23 | PC2 (NAND_CLE/SPI0_CLK) | 24 | PC3 (NAND_CE1/SPI0_CS) |
25 | GND | 26 | PA21 (PCM0_DIN/SIM_VPPPP/PA_EINT21) |
27 | PA19 (PCM0_CLK/TWI1_SDA/PA_EINT19) | 28 | PA18 (PCM0_SYNC/TWI1_SCK/PA_EINT18) |
29 | PA7 (SIM_CLK/PA_EINT7) | 30 | GND |
31 | PA8 (SIM_DATA/PA_EINT8) | 32 | PG8 (UART1_RTS/PG_EINT8) |
33 | PA9 (SIM_RST/PA_EINT9) | 34 | GND |
35 | PA10 (SIM_DET/PA_EINT10) | 36 | PG9 (UART1_CTS/PG_EINT9) |
37 | PA20 (PCM0_DOUT/SIM_VPPEN/PA_EINT20) | 38 | PG6 (UART1_TX/PG_EINT6) |
39 | GND | 40 | PG7 (UART1_RX/PG_EINT7) |
CSI (Camera Serial Interface) — Разъем камеры
На Orange Pi Plus, Orange Pi Plus 2 и Orange Pi Plus 2E есть FPC разъем CSI на 24 выводов для подключения камеры.
1×24 Выводов | |
---|---|
1 | NC |
2 | GND |
3 | TWI2-SDA PE13 |
4 | VCC-CSI |
5 | TWI2-SCK PE12 |
6 | CSI-RESET# PE15 |
7 | CSI-VSYNC PE3 |
8 | CSI-STBY-EN PE15 |
9 | CSI-HSYNC PE2 |
10 | VDD1V8-CSI |
11 | VCC-CSI |
12 | CSI-D7 PE11 |
13 | CSI-MCLK PE1 |
14 | CSI-D6 PE10 |
15 | GND |
16 | CSI-D5 PE9 |
17 | CSI-PCLK PE0 |
18 | CSI-D4 PE8 |
19 | CSI-D0 PE4 |
20 | CSI-D3 PE7 |
21 | CSI-D1 PE5 |
22 | CSI-D2 PE6 |
23 | GND |
24 | AFVCC-CSI |
UART Интерфейс для отладки (Debug TTL UART)
1×3 Выводов | |
---|---|
1 | GND |
2 | RX |
3 | TX |
GPIO на 26 выводов
26-контактный разъем GPIO на Orange Pi Zero совпадает с GPIO на Orange Pi.
2×13 Выводов (h3) | |||
---|---|---|---|
1 | 3.3V | 2 | 5V |
3 | PB21 TWI2-SDA | 4 | 5V |
5 | PB20 TWI2-SCK | 6 | GND |
7 | PI3 PWM1 | 8 | PH0 UART3_TX |
9 | GND | 10 | Ph2 UART3_RX |
11 | PI19 UART2_RX | 12 | Ph3 |
13 | PI18 UART2_TX | 14 | GND |
15 | PI17 UART2_CTS | 16 | Ph30 CAN_TX |
17 | 3.3V | 18 | Ph31 CAN_RX |
19 | PI12 SPI0_MOSI | 20 | GND |
21 | PI13 SPI0_MISO | 22 | PI16 UART2_RTS |
23 | PI11 SPI0_CLK | 24 | PI10 SPI0_CS0 |
25 | GND | 26 | PI14 SPI0_CS1 |
GPIO на 13 выводов
Orange Pi Zero д
micro-pi.ru
Orange PI PC 2 GPIO доступ через sysfs
GPIO – интерфейс ввода/вывода общего назначения (general-purpose input/output). В Orange PI PC 2 используется микроконтроллер AllWiner H5 Quad-core (ARM Cortex-A53 64bit). Часть портов этого микроконтроллера соединены с GPIO (интерфейс 40 pin платы Orange Pi). Этими портами можно управлять программно. В этой инструкции будет подробно описано управление GPIO (портами микроконтроллера ARM Cortex-A53) с помощью командной строки Bash через системное окружение в файловой системе sysfs.
Для управления GPIO через SYSFS в дистрибутиве LINUX ARMBIAN Ubuntu 16.04 для Orange Pi PC 2 имеются все средства, что не гарантировано в других дистрибутивах. Все изложенное далее проверено на этом дистрибутиве.
Прежде всего, необходимо изучить распиновку GPIO на вашей плате микрокомпьютера. Для этого, воспользуемся альбомом схем от производителя платы. Скачать схему Вы можете на странице загрузки Orange Pi проекта. Рядом с первой ножкой GPIO разъема на плате микрокомпьютера Orangr Pi белой краской нарисован треугольник. Мы составили таблицу с распиновкой так, как нам было удобно подключать к GPIO на плате микрокомпьютера Orange Pi провода. Плата сама занимала на столе положение первой ножкой GPIO к нам, поэтому и на таблице мы разместили первую ножку внизу справа. Надеемся и Вам этой таблицей будет удобно пользоваться.
Распиновка GPIO Orange Pi PC 2 (разъем 40 pin)
Функции | Порт | gpioX | pin | pin | gpioX | Порт | Функции | |
---|---|---|---|---|---|---|---|---|
UART1_RX/PG_EINT7 | PG7 | 199 |
40 |
39 |
GND | |||
UART1_TX/PG_EINT6 | PG6 | 198 |
38 |
37 |
107 | PD11 | RGMII_NULL/MII_CRS/RMII_NULL | |
UART1_CTS/PG_EINT9 | PG9 | 201 |
36 |
35 |
10 | PA10 | SIM_DET/PA_EINT10 | |
GND |
34 |
33 |
9 | PA9 | SIM_RST/PA_EINT9 | |||
UART1_RTS/PG_EINT8 | PG8 | 200 |
32 |
31 |
8 | PA8 | SIM_DATA/PA_EINT8 | |
GND |
30 |
29 |
7 | PA7 | SIM_CLK/PA_EINT7 | |||
PCM0_SYNC/TWI1_SCK/PA_EINT18 | PA18 | 18 |
28 |
27 |
19 | PA19 | PCM0_CLK/TWI1_SDA/PA_EINT19 | |
PCM0_DIN/SIM_VPPPP/PA_EINT21 | PA21 | 21 |
26 |
25 |
GND | |||
SPI1_CS/UART3_TX/PA_EINT13 | PA13 | 13 |
24 |
23 |
14 | PA14 | SPI1_CLK/UART3_RX/PA_EINT14 | |
UART2_RTS/JTAG_DO0/PA_EINT2 | PA2 | 2 |
22 |
21 |
16 | PA16 | SPI1_MISO/UART3_CTS/PA_EINT16 | |
GND |
20 |
19 |
15 | PA15 | SPI1_MOSI/UART3_RTS/PA_EINT15 | |||
NAND_RB1 | PC7 | 71 |
18 |
17 |
VCC3V3-EXT | |||
NAND_CE0 | PC4 | 68 |
16 |
15 |
3 | PA3 | UART2_CTS/JTAG_DI0/PA_EINT3 | |
GND |
14 |
13 |
0 | PA0 | UART2_TX/JTAG_MS0/PA_EINT0 | |||
RGMII_NULL/MII_TXERR/RMII_NULL | PD14 | 110 |
12 |
11 |
1 | PA1 | UART2_RX/JTAG_CK0/PA_EINT1 | |
NAND_RB0/SDC2_CMD | PC6 | 70 |
10 |
9 |
GND | |||
NAND_RE/SDC2_CLK | PC5 | 69 |
8 |
7 |
6 | PA6 | SIM_PWREN/PWM1/PA_EINT6 | |
GND |
6 |
5 |
11 | PA11 | TWI0_SCK/DI_TX/PA_EINT11 | |||
DCIN-5V |
4 |
3 |
12 | PA12 | TWI0_SDA/DI_RX/PA_EINT12 | |||
DCIN-5V |
2 |
1 |
VCC3V3-EXT |
ИТОГО: 28 портов, чуть больше чем на Arduino Uno/Nano. На принципиальной схеме видно, что порты TWI0 и TWA1 (pin 3, 5, 27, 28) нагружены на землю резисторами по 2 кОм, это нужно учитывать.
Допустим нам нужно управлять 21-й ножкой разъема GPIO на плате Orange Pi PC 2. К 21-й ножке подключен порт PA16 микроконтроллера. Выполним, обязательно под root, команду:
root@orangepipc2:~# echo 16 > /sys/class/gpio/export
В каталоге /sys/class/gpio появилась папка gpio16. Посмотрим структуру этой папки.
root@orangepipc2:~# tree /sys/class/gpio/gpio16 /sys/class/gpio/gpio16 ├── active_low ├── device -> ../../../gpiochip1 ├── direction ├── edge ├── power │ ├── autosuspend_delay_ms │ ├── control │ ├── runtime_active_time │ ├── runtime_status │ └── runtime_suspended_time ├── subsystem -> ../../../../../../../class/gpio ├── uevent └── value
Файлы direction и value содержат значения параметров, которые определяют состояниe порта (в частности PA16). По умолчанию, в direction записано in, то есть порт работает как вход, а value содержит значение, соответствующее состоянию порта (0 или 1). Настроим порт как выход подадим на него 1 и зажжем на выходе светодиод.
echo out > /sys/class/gpio/gpio16/direction echo 1 > /sys/class/gpio/gpio16/value
Так же, как мы включили драйвер порта, мы его можем и выключить:
root@orangepipc2:~# echo 16 > /sys/class/gpio/unexport
Для инициализации нескольких или всех портов GPIO и установки в них начальных параметров можно создать файл gpioini:
#!/bin/bash ## gpio0 PA0 pin 13 #echo 0 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio0/direction #echo 1 > /sys/class/gpio/gpio0/value ## gpio1 PA1 pin11 #echo 1 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio1/direction #echo 1 > /sys/class/gpio/gpio1/value ## gpio2 PA2 pin22 #echo 2 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio2/direction #echo 1 > /sys/class/gpio/gpio2/value ## gpio3 PA3 pin15 #echo 3 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio3/direction #echo 1 > /sys/class/gpio/gpio3/value ## gpio6 PA6 pin7 #echo 6 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio6/direction #echo 1 > /sys/class/gpio/gpio6/value ## gpio7 PA7 pin29 #echo 7 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio7/direction #echo 1 > /sys/class/gpio/gpio7/value ## gpio8 PA8 pin31 #echo 8 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio8/direction #echo 1 > /sys/class/gpio/gpio8/value ## gpio9 PA9 pin33 #echo 9 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio9/direction #echo 1 > /sys/class/gpio/gpio9/value ## gpio10 PA10 pin35 #echo 10 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio10/direction #echo 1 > /sys/class/gpio/gpio10/value ## gpio11 PA11 pin5 #echo 11 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio11/direction #echo 1 > /sys/class/gpio/gpio11/value ## gpio12 PA12 pin3 #echo 12 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio12/direction #echo 1 > /sys/class/gpio/gpio12/value ## gpio13 PA13 pin24 #echo 13 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio13/direction #echo 1 > /sys/class/gpio/gpio13/value ## gpio14 PA14 pin23 #echo 14 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio14/direction #echo 1 > /sys/class/gpio/gpio14/value ## gpio15 PA15 pin19 #echo 15 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio15/direction #echo 1 > /sys/class/gpio/gpio15/value ## gpio16 PA16 pin21 #echo 16 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio16/direction #echo 1 > /sys/class/gpio/gpio16/value ## gpio18 PA18 pin28 #echo 18 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio18/direction #echo 1 > /sys/class/gpio/gpio18/value ## gpio19 PA19 pin27 #echo 19 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio19/direction #echo 1 > /sys/class/gpio/gpio19/value ## gpio21 PA21 pin26 #echo 21 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio21/direction #echo 1 > /sys/class/gpio/gpio21/value ## gpio68 PC4 pin16 #echo 68 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio68/direction #echo 1 > /sys/class/gpio/gpio68/value ## gpio69 PC5 pin8 #echo 69 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio69/direction #echo 1 > /sys/class/gpio/gpio69/value ## gpio70 PC6 pin10 #echo 70 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio70/direction #echo 1 > /sys/class/gpio/gpio70/value ## gpio71 PC7 pin18 #echo 71 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio71/direction #echo 1 > /sys/class/gpio/gpio71/value ## gpio107 PD11 pin37 #echo 107 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio107/direction #echo 1 > /sys/class/gpio/gpio107/value ## gpio110 PD14 pin12 #echo 110 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio110/direction #echo 1 > /sys/class/gpio/gpio110/value ## gpio198 PG6 pin38 #echo 198 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio198/direction #echo 1 > /sys/class/gpio/gpio198/value ## gpio199 PG7 pin40 #echo 199 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio199/direction #echo 1 > /sys/class/gpio/gpio199/value ## gpio200 PG8 pin32 #echo 200 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio200/direction #echo 1 > /sys/class/gpio/gpio200/value ## gpio201 PG9 pin36 #echo 201 > /sys/class/gpio/export #echo out > /sys/class/gpio/gpio201/direction #echo 1 > /sys/class/gpio/gpio201/value
Нужные строчки раскомментируйте. Файлу дайте права на выполнение.
integrator.adior.ru
gpio — Доступ к GPIO на OrangePI PC Plus (h4) на Armbian 3.4.113 и новее
Общее разбирательство описано в https://linux-sunxi.org/GPIO
Доступ к контактам GPIO осуществляется через файловую систему sysfs
. Чтобы включить конкретный вывод, он должен быть экспортирован в /sys/class/gpio/export
для вывода PA1 команда будет echo 1 > sys/class/gpio/export
. Номер штыря вычисляется по следующей формуле:
(position of letter in alphabet - 1) * 32 + pin number
PA1 имеет номер штыря (‘A’ — первая буква) 1
, PB2 имеет номер контакта 34
(‘B’ — вторая буква), PG7 имеет номер контакта 199
(‘G’ — 7-я буква (7-1) * 32 + 7 = 199)
позиции в заголовке физический снова различаются, см. рисунок ниже
поэтому для включения PG7, который является выводом 40 на физическом заголовке, можно использовать
echo 199 > sys/class/gpio/export
источник изображения: https://orange314.com/Hardware
обычно команда echo как echo "199" sys/class/gpio/export
дает ошибку Permission denied
простое решение:
Чтобы сделать одноразовое манипулирование выводом GPIO, вам нужно запустить сначала откройте оболочку в качестве суперпользователя, затем используйте эхо. Например, для поверните штифт A10:
$ sudo sh
# echo 10 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio10/direction
# echo 1 > /sys/class/gpio/gpio10/value
Или вы можете использовать тройник, чтобы избежать создания подоболочки:
$ echo 10 | sudo tee /sys/class/gpio/export
$ echo out | sudo tee /sys/class/gpio/gpio10/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio10/value
источник: https://forum.armbian.com/index.php?/topic/4052-problem-using-gpio-pins-on-legacy-kernel/
Альтернативой может быть создание новой группы и изменение группы каталога /sys/class/gpio для этой новой группы:
вы можете создать группу gpio, добавить пользователя к ней, экспортировать gpio и т.д. следующим образом:
sudo groupadd gpio
sudo usermod -aG gpio <myusername>
su <myusername>
sudo chgrp gpio /sys/class/gpio/export
sudo chgrp gpio /sys/class/gpio/unexport
sudo chmod 775 /sys/class/gpio/export
sudo chmod 775 /sys/class/gpio/unexport
Это дает возможность пользователю экспортировать и экспортировать.
Как только вы экспортируете контакты, вы можете chgrp и chmod их также (не забыть их содержимое) и использовать их как обычно.
echo "18" > /sys/class/gpio/export
chgrp -HR /sys/class/gpio/gpio18
chmod -R 775 /sys/class/gpio/gpio18
Теперь ваш пользователь имеет доступ к первому выводу GPIO 18.
источник: https://www.raspberrypi.org/forums/viewtopic.php?t=5185
при выполнении echo
с разрешениями в каталоге /sys/class/gpio
появляется новый каталог, т.е. для PA2 (который является номером вывода 2 и номером 22 на физическом заголовке), это /sys/class/gpio/gpio2
чтобы настроить контактный номер 2, вы должны записать определенные значения в файлы в /sys/class/gpio/gpio2
т.е. установка вывода 2 для вывода и «высокая» запись
echo "out" > /sys/class/gpio/gpio2/direction
echo "1" > /sys/class/gpio/gpio2/value
при выключении GPIO контакты должны быть не показаны с помощью i.e.
echo 2 > /sys/class/gpio/unexport
для вывода 2 (PA2, номер 22 на физическом заголовке)
Альтернативой для доступа к GPIO является использование python, однако для плат на базе h4 WiringOP еще не доступен
qaru.site
orange pi raspberry pi программируем gpio видео Видео уроки
…
2 лет назад
Управляем GPIO портами Orange Pi или Raspbery Pi в програме и мигаем светодиодами. Программу можно скачать по адресу…
…
3 лет назад
В этом видео: — Что такое GPIO на Raspberry Pi? — Какие функции выполняют пины GPIO? — Что можно делать с GPIO? — Пример python…
…
2 лет назад
Вводное видео о пинах ввода-вывода общего назначения GPIO миникомпьютера Raspberry Pi 3 Model B. Это видео не предназна…
…
2 лет назад
Creating a wiringPi program for the OrangePi!
…
2 лет назад
1. Качаем Armbian http://www.armbian.com/orange-pi/ Я взял http://www.armbian.com/donate/?f=Armbian_5.20_Orangepi_Debian_jessie_3.4.112.7z …
…
2 лет назад
Use the GPIO on Orange PI One: 1. update and upgrade your system. 2. Download and install python library python-dev 3. Then download the pyh4 library from: …
…
2 лет назад
ORANGE PI ZERO настраиваем UART используем Python и Debian сборку от ARMBIAN.Отправляем и принимаем данные по UART и управляем…
…
2 лет назад
Getting the GPIO working on the OrangePi Lite.
…
7 меc назад
Пока пропущен ролик с логическим типом параметров. Пробел будет восполнен. Проект LCD: http://walhi.ru/wp-content/uploads/2018/…
…
2 лет назад
Lets look at the circuit diagrams to find out why, and how to work around the problem! Circuit for OPi PC …
…
2 лет назад
This is a simple tutorial on using GPIO of Orange Pi Zero using JAVA. For this, I have used Pi4J library which also works with Raspberry Pi. This tutorial might …
…
4 лет назад
Умный дом на расбери пай.
…
3 лет назад
Остальные видео обзоры плей-листа Orangr PI Orange Pi PC Оранжевый Пи — Обзор Часть 1 — внешний осмотр https://youtu.be/oVjO4kasulM…
…
3 лет назад
Orange Pi one GPIO Qt demo Visit http://www.iot-dev.net for more news about IoT (Internet of Things). Here is link to our forum about orange pi one: …
…
3 лет назад
Группа ВК: https://vk.com/butpub Исходный код: http://butylk.us/raspberry-pi-2-v-bytu-modul-rele/ Учусь и успешно использую модуль из 4 реле…
…
3 лет назад
Orange Pi with php project under Netbeans.
…
2 лет назад
Реализация обмена данными между Raspberry PI и Arduino UNO используя I2C Купить товар можно на aliexpress Arduino UNO: http://goo.gl/…
…
12 меc назад
orange pi gpio test relay.
…
11 меc назад
Хочешь хороший подарок — подари себе сам. Например, набор с Raspberry Pi внутри: https://goo.gl/HFYtyh Набор построен вокру…
…
2 лет назад
http://orange-pi.blogspot.com.
…
8 меc назад
Control Orange PI GPIO through Nodejs. In this project, I demonstrate how you can make a LED animation (motion of lights) by controlling the GPIO on an …
videouroki.su
Домашняя автоматизация на Orange Pi. Введение
Домашняя автоматизация на Orange Pi. Введение
Автор: Alexsis_76
Сегодня хочу Вам представить альтернативную систему домашней автоматизации на аппаратной платформе Orange Pi,китайском аналоге Raspberry Pi и программной реализации основанной на широко распространенной связке называемой LEMP стек.
Сказаное, впрочем будет работать и на Raspberry Pi за исключением некоторых аппаратно-зависимых моментов, касаемых управления портами GPIO.Схема взаимодействия модулей примерно следующая
Nginx-полноценный web-сервер обеспечивающий работу с браузерами, берет на себя все аспекты взаимодействия обеспечивая надежную поддержку протокола и освобождает пользователя от рутинных операций по реализации протокола позволяя сосредоточится на написании программного кода .
PHP -скриптовый язык Personal Home Page Tools — «Инструменты для создания персональных веб-страниц» предназначен для написания веб страниц, работа с ним очень проста и понятная, синтаксис очень сильно напоминает язык Си и содержит встроенные функции работы с базой данных, очень прост в освоении, если начать с утра то к обеду можете довольно не плохо программировать. Отвечает за работу с интерфейсом с одной стороны и базой mysql с другой.
Следующий компонент Python ,который непосредственно в модель LEMP не входит, отвечает за управления портами ввода вывода,GPIO можно управлять и из PHP,но Python справится с этим лучше,PHP заточен больше для веб, собственно использование Python не принципиально, можно использовать Perl или Bash скрипт, у меня были наработки на Python поэтому используется он и отвечает за взаимодействие с портами вода-вывода с одной стороны и базы с другой.
Последний элемент системы MySQL,используется для взаимодействия части программы с PHP и Python, обеспечивает хранение результатов работы системы при отключении питания, использование базы предпочтительнее использования файла, запись-выборка из базы гораздо удобнее, в языках программирования имеются удобные функции для работы с базой.
Теперь когда мы разобрались с устройством можно составить схему взаимодействия компонентов.
Когда Вы набираете в адресной строке браузера адрес сервера в работу вступает Nginx который вызывает интерфейс php-fpm и запускает скрипт PHP,в моем случае это index.php, скрипту передаются переменные окружения(то что получил от браузера Nginx )при выполнении скрипта(напомню PHP это серверный скрипт),результаты выполнения скрипта(в данном случае веб страница)передается в обратном направлении и отображается в браузере в виде странички, если Вы нажали кнопку на странице в сеть уходит запрос с указанием имени скрипта и данных ,запускается скрипт и парсер пишет в нем данные, если найдет то выполняется требуемое действие и выполнение скрипта завершается, если нет то скрипт завершает работу,PHP заполняет базу данными в зависимости от запросов пользователя, с другой стороны работает python скрипт. Скрипт работает постоянно и опрашивает базу, если данные в базе поменялись скрипт производит необходимые действия и продолжает работу.
Вот собственно краткий обзор системы. Из приведенного текста можно получить некоторое представления о работе системы. Если будет заинтересованность ,можно организовать детальный разбор модулей с разбором реального кода и веб программирования.
Благодарю за внимание.
От Admin: По всем вопросам, касательно применительно Orange Pi для домашней автоматизации обращаемся к автору в этой ветке форума.
Добавил: Admin Дата: 07.05.2017 18:48 Просмотры: 1338
electromost.com