Cómo operar GPIO directamente en un sistema Linux
1
Instale el sistema SD Linux
Como se muestra en la figura, el software Arduino 1.5.3 (Arduino IDE) y la tarjeta SD La imagen de Linux se descarga en esta computadora, que Arduino IDE necesita para encontrar la relación de mapeo entre GPIO y Arduino IO más adelante.
Como se muestra en la figura, después de extraer SDCard1.0.4.tar.bz2, aparece una carpeta "image-full-galileo".
Antes de utilizar la microSD, debes formatearla con Fat32 y luego copiar todos los archivos de la carpeta "image-full-galileo" directamente al directorio raíz de la tarjeta MicroSD.
Ingrese a Galileo
Inserte la MicroSD en Galileo. Verá un dispositivo de conexión por cable llamado "clanton" en la lista de dispositivos conectados en la página del enrutador. Busque su dirección IP y haga clic en .
Ingrese a Galileo vía ssh desde la terminal (Unix y Linux, Putty está disponible para Windows), "ssh
root @192.168.199.121.
Curiosamente, esto El sistema Linux que se ejecuta en MicroSD ha iniciado el servicio ssh. La cuenta raíz no tiene contraseña y se puede acceder a ella directamente. Como se muestra en la figura anterior, aparece un cuadro de diálogo y luego ingresa "Sí" para ingresar la palabra Galileo. "root@clanton" en la siguiente figura indica. Este paso se ha completado con éxito.
En este punto, es posible que también tenga preguntas sobre cómo garantizarlo. ¿Está el sistema en la tarjeta microSD? p>¿Qué pasa con Unification? Ingrese "cat/proc/version" en la terminal para verificar la versión del sistema Linux, que se muestra como "3.8.7-Yocto-standard". sistema operativo yocto personalizado para Galileo.
Encuentre su propio GPIO
Comencemos con la parte principal de este artículo, que también es la parte más difícil de encontrar la relación de mapeo entre Linux. GPIO y Arduino IO
¡Como se muestra a la derecha! Como se muestra en la imagen, hay más de 60 GPIO en "/sys/class/gpio/". ¿GPIO y el IDE de Arduino izquierdo?
Primero, configura todos los puertos 0-13IO en modo de entrada para
void setup(){//pon tu código de configuración aquí, torunonce:
p>
pinMode(0, entrada); pinMode(1, entrada); pinMode(2, entrada);
pinMode (4, entrada); , entrada); pinMode (6, entrada); pinMode (7, entrada);
pinMode(8, entrada); pinMode(10, entrada);
pinMode(11, entrada); pinMode(12, entrada); pinMode(13, entrada);} voidloop(){
//pon tu código principal aquí, para ejecutarlo repetitivamente:}
Como se muestra en la figura, el "pinMode(13, OUTPUT)" a la izquierda cambia el pin 13 al modo de salida, gpio7 a la derecha pasa al modo de salida, por lo que gpio7 corresponde a Arduino IO 13 (pin13).
Sigue este método y descubre la siguiente correspondencia entre Arduino IO y GPIO.
GPIO DigitalI/ogpio 11 pines 0
gpio 12 pines 1 gpio 13 pines 2 gpio 14 pines 3 gpio 6 pines 4 gpio 0 pines 5 gpio 1 pin 6
gpio 38 pin 7 gpio 40 pin 8 gpio 4 pin 9 gpio 10 pin 10 gpio 5 pin 11 gpio 15 pin 12
gpio7pin13
Es necesario verificar la correspondencia gpio encontrada arriba. "Echo 'out'
gt/sys/class/gpio/gpio */direction" es para cambiar gpio al modo de salida, "echo "1".
gt/sys/ class/gpio/gpio*/value" indica el gpio que genera un nivel alto. Luego está el programa Python a continuación, que a su vez enciende y apaga los LED de los cuatro pines (pin 13, pin 12, pin 11 y pin 10). Sin embargo, debido a la eficiencia de ejecución del programa Python, hay un retraso en el encendido de todos los LED al mismo tiempo.
Se convierte en una lámpara de agua corriente, como se muestra en la siguiente imagen. Este programa se puede encontrar en cualquier carpeta del sistema Linux.
importos, tiempo mientras es verdadero: OS . system(' echo " out " gt;/sys/class/gpio/gpio 7/direction')
OS system(' echo . " 1 " gt;/sys/class/gpio/gpio7/value ')
Sistema OS(' echo " out " gt;/sys/class/gpio/gpio 15/direction') p>
Sistema OS(' echo " 1 " gt;/sys/class/gpio/gpio 15/value ')
Sistema OS(' echo " out " gt;/sys/. class/gpio/gpio 5/direction')
OS system(' echo " 1 " gt;/sys/class/gpio/gpio5/value ')
OS . (' echo " out " gt;/sys/class/gpio/gpio 10/direction')
Sistema OS(' echo " 1 " gt;/sys/class/gpio/gpio 10/value . ')tiempo .sleep(0.2)
Sistema OS(' echo " 0 " gt;/sys/class/gpio/gpio5/value ')
Sistema OS ('. echo " 0 " gt;/sys/class/gpio/gpio 15/value ')
OS system(' echo " 0 " gt;/sys/class/gpio/gpio7/value ')<. /p>
sistema operativo (' echo " 0 " gt;/sys/class/gpio/gpio 10/value ') tiempo de suspensión (0.2)
.