WiringOP на Orange Pi + Python



Устанавливаем необходимые инструменты:


sudo apt-get install git
sudo apt-get install python
sudo apt-get install python-dev


Клонируем git-репозиторий из библиотеки 

git clone https://github.com/duxingkei33/orangepi_PC_gpio_pyH3.git
cd orangepi_PC_gpio_pyH3


Устанавливаем библиотеку:

sudo python setup.py install


На языке Си

Пример программы, мигание светодиодом

Цифровой выход может использоваться для вывода двоичного логического значения, соответствующему логическому уровню контактов, OPi имеет логический уровень 3,3 В, что означает, что цифровые значения соответствуют форме: 0 ‘(LOW) 0В; ‘1’ (HIGH) 3,3 В.
Цифровыми выходами можно управлять активацией/деактивацией подключенных к ним внешних элементов, таких как светодиоды, транзисторы, реле.

Сделаем программу Blink, чтобы мигать светодиодом, подключенный к GPIO1 , физический контакт № 12 (WiringPi Pin 1). 
Чтобы знать метки каждого вывода библиотеки WiringOP, мы можем использовать следующее изображение (контакт № 12, который мы будем использовать, соответствует выводу 1 внутри библиотеки).


Создаем общий каталог для хранения программы:

mkdir -p programas_gpio/blink
cd programas_gpio/blink

Создаем программу:

sudo nano blink.c

Код программы:

#include <wiringPi.h>
 
#define PIN_LED 1
#define ESPERA 1000 // 1s
 
int main (void)
{
    wiringPiSetup();
    pinMode(PIN_LED, OUTPUT);
    while(1)
    {
        digitalWrite(PIN_LED, HIGH);
        delay(ESPERA);
        digitalWrite(PIN_LED, LOW);
        delay(ESPERA);
    }
    return 0;
}
Закроем файл, сохранив его: 

Ctrl X, Y (Yes), Enter 

Компилируем делая ссылку к библиотеке pthread.

gcc -o dht dht.c -lwiringPi -lpthread 

Выполняем программу: 

sudo ./blink

На языке Python

Создаем программу:

sudo nano testgpio.py


Код программы:

# -*- coding: utf-8 -*-
##############################
# Importar librerias
import os
import sys
 
from time import sleep
from pyA20.gpio import gpio
from pyA20.gpio import port
##############################
# Comprobar que se ejecuta como root
if not os.getegid() == 0:
    sys.exit('El Script debe ser ejecutado con permisos de administracion')
 
# Crear variable correspondiente al LED de estado (consultar https://github.com/duxingkei33/orangepi_PC_gpio_pyH3/blob/master/pyA20/gpio/mapping.h para conocer la etiqueta de cada pin)
led = port.STATUS_LED
 
# Inicializamos el objeto gpio
gpio.init()
 
# Establecemos el pin asociado al LED como salida digital
gpio.setcfg(led, gpio.OUTPUT)
 
# Realizar un parpadeo del LED hasta que se reciba la senial del sistema correspondiente a Ctrl+C
try:
    # Mostrar por pantalla
    print ("Presiona CTRL+C para salir")
 
    # Bucle infinito
    while True:
        gpio.output(led, 1) # Encender LED
        sleep(0.25) # Esperar 250ms
        gpio.output(led, 0) # Apagar LED
        sleep(0.25) # Esperar 250ms
 
        gpio.output(led, 1) # Encender LED
        sleep(0.25) # Esperar 250ms
        gpio.output(led, 0) # Apagar LED
        sleep(0.25) # Esperar 250ms
 
        sleep(1) # Esperar 1 segundo
 
# Senial provocada por Ctrl+C
except KeyboardInterrupt:
    # Mostrar por pantalla
    print ("\nFin del programa")

Выполняем программу:

sudo python testgpio.py

Всё, за исключением маленькой поправки, взято с сайта pcminipro.ru

Комментарии

Популярные сообщения из этого блога

Перенос Armbian на SSD

Установка Home Assistants на Orange pi

Радиореле 220В 433МГц c кодировкой сигнала eV1527