Содержание

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, принтсервер&nbsp&nbsp 2016-04-22&nbsp&nbsp &nbsp&nbsp Раздел: Настройка, Принт-сервер&nbsp&nbsp
Автор: wolfs_SG Просмотров: 8 778&nbsp&nbsp 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)

ФункцииПортgpioXpin   pingpioXПортФункции
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, команду:

[email protected]:~# echo 16 > /sys/class/gpio/export

В каталоге /sys/class/gpio появилась папка gpio16. Посмотрим структуру этой папки.

[email protected]:~# 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

Так же, как мы включили драйвер порта, мы его можем и выключить:

[email protected]:~# 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

alexxlab

leave a Comment