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
На языке Си
Пример программы, мигание светодиодом
Цифровыми выходами можно управлять активацией/деактивацией подключенных к ним внешних элементов, таких как светодиоды, транзисторы, реле.
Сделаем программу 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
Комментарии
Отправить комментарий