Создаем файл для первого скрипта на Python3

touch py1ex.py

Ниже представлен код для своего рода “Hello World” для нашего теста. Это мигалка светодиодом раз в 200 мс, все по классике.

Распиновка нашей платы Orange Pi
import time
from pyA20.gpio import gpio
from pyA20.gpio import port

gpio.init()
gpio.setcfg(port.PG7, gpio.OUTPUT)

while True:
    gpio.output(port.PG7, gpio.HIGH)
    time.sleep(0.2)
    gpio.output(port.PG7, gpio.LOW)
    time.sleep(0.2)

Можно импортировать модуль sleep из time, заменить строку import time на from time import sleep, тогда соответственно строку time.sleep(0.2) требуется заменить на sleep(0.2)

Видим меандр длительностью 200 мс импульс

Усложним задачу и добавим опрос состояния кнопки.

import time
from pyA20.gpio import gpio
from pyA20.gpio import port
from pyA20.gpio import connector

led = port.PG7
button = port.PG6

gpio.init()
gpio.setcfg(led, gpio.OUTPUT)
gpio.setcfg(button, gpio.INPUT)
gpio.pullup(button, gpio.PULLUP)

while True:
    if (gpio.input(button) == 0):
        gpio.output(led, gpio.HIGH)
        time.sleep(1)
        gpio.output(led, gpio.LOW)
        time.sleep(1)

Когда кнопка не нажата, на входе вывода PG6 логическая единица, так как он был подтянут к питанию (gpio.pullup(button, gpio.PULLUP), можно было бы подтянуть к земле, а кнопкой замыкать на питание, тогда gpio.PULLUP заменить на gpio.PULLDOWN, посмотреть подробнее про это можно здесь https://pypi.org/project/pyA20/
Строка «if (gpio.input(button) == 0):» проверяет состояние цифрового входа, где висит наша кнопка и в случае, когда на выводе 0, т.е. притянута к земле, выполнять условие.

Кнопки не зажата, импульсов на выходе нет.
«Ты всего лишь пинцет… Имитация кнопки..»

В ближайших статьях будет рассмотрена работа с интерфейсом UART.