Работа с GPIO

Настройка GPIO на Orange Pi 5 для работы с интерфейсами UART, I2C и SPI включает в себя несколько шагов: установку необходимых пакетов, конфигурацию интерфейсов и проверку их работы.

1. Установка необходимых пакетов

Для работы с GPIO на Orange Pi 5, вам потребуется установить библиотеки, которые помогут в управлении пинами и интерфейсами:

sudo apt update
sudo apt install -y python3-pip python3-dev
sudo pip3 install RPi.GPIO spidev smbus pyserial
  • RPi.GPIO - библиотека для работы с GPIO.

  • spidev - библиотека для работы с SPI.

  • smbus - библиотека для работы с I2C.

  • pyserial - библиотека для работы с UART.

2. Настройка и проверка UART

Настройка

UART на Orange Pi 5 может быть сконфигурирован через файл /boot/armbianEnv.txt:

sudo nano /boot/armbianEnv.txt

Добавьте следующие строки, чтобы активировать UART:

overlays=uart1
param_uart1_rxd=1
param_uart1_txd=1

Сохраните файл и перезагрузите устройство:

sudo reboot

Проверка

Для проверки UART можно использовать два Orange Pi, соединенных между собой через UART, или один Orange Pi соединенный с компьютером через USB-UART адаптер. Запустите мини-терминал для чтения данных:

sudo apt install minicom
minicom -b 115200 -o -D /dev/ttyS1

Отправьте данные с другого устройства или компьютера на Orange Pi и проверьте, что данные корректно принимаются.

3. Настройка и проверка I2C

Настройка

Активируйте I2C через файл /boot/armbianEnv.txt:

sudo nano /boot/armbianEnv.txt

Добавьте следующую строку для активации I2C:

overlays=i2c0

Перезагрузите устройство:

sudo reboot

Проверка

Установите утилиты для работы с I2C и сканируйте шину, чтобы увидеть подключенные устройства:

sudo apt install i2c-tools
sudo i2cdetect -y 0

4. Настройка и проверка SPI

Настройка

Активируйте SPI через файл /boot/armbianEnv.txt:

sudo nano /boot/armbianEnv.txt

Добавьте следующие строки:

overlays=spi-spidev
param_spidev_spi_bus=0

Перезагрузите устройство:

sudo reboot

Проверка

Можно использовать Python-скрипт для отправки и приема данных через SPI. Вот пример скрипта:

import spidev
spi = spidev.SpiDev()
spi.open(0, 0)  # Open SPI bus 0, device (CS) 0

# Пример отправки и получения данных
to_send = [0x01, 0x02, 0x03]
response = spi.xfer(to_send)
print(response)

spi.close()

Выполните этот скрипт, используя Python:

python3 test_spi.py

Last updated