17.03.2021

GPIO

 Если ты начнёшь гуглить, как добраться до пинов Кубика? то тебя ждут крекс-пекс-фекс. И не делай это с собой. Но если ты всё же решишься на это колдунство, то тебе придётся гуглить, почему в Armbian нету соответствующих ингридиентов? И так ты попадёшь в зазеркалье. Астанавись! Лучше делай так

1. Подключись к пину (кликабельно)


2. Найди его в таблице - https://linux-sunxi.org/A20/PIO

Предположим, это будет PG09 (201)

3. Проверяемся. Берём английский алфавит и калькулятор, подсчитываем номер пина по формуле: (G-1)*32+9=201, где G - порядковый номер этого символа в алфавите. Получилось значение, как в таблице? Отлично! Теперь PG09 мы отныне будем звать 201


 

 4. Пишем скрипты

#!/bin/bash
# PG9 - (G-1)*32+9=201

PIN=$1	# 201
PIN_STRING="gpio$PIN"

# Выведем красиво пин, с которым будем работать
echo -e "\033[0;32m"	# Зелёненьким
echo -e "\n"
echo $PIN - $PIN_STRING
echo -e "\n"
tput sgr0	# Вернуть настройки терминала

# Активация пина
echo $PIN > /sys/class/gpio/export
# Проверка
ls /sys/class/gpio/
# Инициализация направления пина
echo out > /sys/class/gpio/$PIN_STRING/direction
# Прочитать пин
cat /sys/class/gpio/$PIN_STRING/value
# Установить пин
echo 1 > /sys/class/gpio/$PIN_STRING/value
# Проверить пин
cat /sys/class/gpio/$PIN_STRING/value
5. Что творится у нас по пинам?
gpiodetect
gpioinfo | grep "\[used\]"
И в качестве бонуса запрограммируем светодиоды. Сначала узнаем, какие есть триггеры. Далее задаём триггер светодиоду. В примере камень и флешка.
# All Trigers
cat /sys/class/leds/cubieboard2:blue:usr/trigger
# Set Blue LED
echo cpu > /sys/class/leds/cubieboard2:blue:usr/trigger
# Set Green LED
echo mmc0 > /sys/class/leds/cubieboard2:green:usr/trigger

Комментариев нет: