Paso 7: Software, parte 2: Pi enviar datos a Arduino (un LED parpadeante)
Arduino cuántos tiempo a parpadear un LED. Vamos a usar el Arduino de a bordo
CONDUJO en D13 para simplificar, aunque es ciertamente posible para cambiar la
Variable LedPin en el bosquejo y conecte un LED más resistencia motor fuera de borda
entre el correspondiente pin digital y la tierra.
El "conductor" es un script corto. Así es, un humilde script Bash .
De hecho, es posible hacerlo desde la línea de comandos en
la consola o en un xterm: echo 3 >/dev/ttyAMA0 de tres parpadeos, para
ejemplo, o echo 7 >/dev/ttyAMA0 para siete parpadeos. Ninguna programación Python
y no las bibliotecas a instalar! Bueno, no me importa mucho para pitones o desagradable
clases de serpientes alrededor y el agolpamiento. Si corro en uno,
Estoy obligado a golpear en la cabeza.
Es necesario ejecutar una sesión minicom para inicializar el
puerto serial /dev/ttyAMA0 . Entonces, Control-A Q para salir del minicom sin
restablecer el puerto serie. Tenga en cuenta que también es posible enviar blink
comandos directamente en minicom --escribiendo un 5 en el minicom
ventana parpadea de Arduino LED 5 veces, y no es necesario
para establecer el eco local. El Arduino recibe cualquier cosa enviar a /dev/ttyAMA0
en su puerto serial hardware (Rx y Tx) y se puede interpretar lo que viene su manera
Si programada por un bosquejo apropiado. Ves, la gente, si se utiliza el
Arduino como intermediario, no necesita meterse con Python o bibliotecas.
Control-A Q para salir. Y nota que el Arduino tiene que tener las siguientes
dibujo cargado. Por último, ejecute el script de Bash por debajo de la consola
o un xterm.
Este es el sketch de Arduino:
/*ArduinoListens.ino
PI envía un dígito (1-9) para Arduino,
y Arduino parpadea LED en D13 que muchas veces.
*/
#define DELA 500 / tiempo de retardo.
#define STOCKCHARTS 250 / / corto retardo.
const int ledPin = 13;
void setup() {}
pinMode (ledPin, salida); Inicializa el pin como salida.
Perno de 13 tiene un LED conectado a él.
Serial.Begin(9600);
}
void loop() {}
Si (Serial.available())
{light(Serial.read() - '0');} ¿Cuántas posición pasado ASCII 0?
retardo (DELA);
}
anular luz (int n) {}
para (int i = 0; i < n; i ++)
{
digitalWrite (ledPin, HIGH); Encienda el LED.
Delay(DSHORT);
digitalWrite (ledPin, LOW); Apague el LED.
Delay(DSHORT); Esperar.
}
}
Lo puedes descargar aquí:
http://Bash.deta.in/ArduinoListens.ino
Y aquí está el script de Bash:
#! / bin/bash# Acepta arg de línea de comandos que dice Arduino cuantas veces a parpadear
#+ (0 - 9).
Por defecto = One blink # 1 si no de línea de comandos Arg.
Si [- z "$1"] # si no de línea de comandos arg...
entonces
parpadea = $DEFAULT
otra cosa
parpadea = $1
fi
Port = / dev/ttyAMA0 # conexión directa a los pines rx y dx de Pi.
echo $blinks > $port
¿salida $?
# TODO:
# ----
# 1) error de comprobación en la entrada de línea de comandos.
# 2) más de 9 centelleos por análisis multi-carácter de línea de comandos Arg.
Lo puedes descargar aquí:
http://Bash.deta.in/Blink-ARD.sh
Bosquejo no un muy complejo y creo de lo fácil que sería modificarlo para
funcionar un servo o paso a paso motor.
Blink! Abrir y cerrar! Parpadear!