Etape 7: Logiciel, partie 2: Pi envoie des données à l’Arduino (un témoin clignotant)
Arduino combien de temps à clignoter une LED. Nous utiliserons l’Arduino du bord
CONDUIT à D13 pour plus de simplicité, mais il est certainement possible de changer la
LedPin variable dans le croquis et le crochet vers le haut un hors-bord LED-plus-résistance
entre le appropriée broche numérique et de la terre.
Le « conducteur » est un script shell court. C’est vrai, un humble script Bash .
En fait, il est même possible de le faire directement à partir de la ligne de commande dans
la console ou dans un xterm: echo 3 >/dev/ttyAMA0 pour trois clignotements, pour
exemple, ou écho 7 >/dev/ttyAMA0 pour sept clignote. Aucune programmation Python
et aucune bibliothèque d’installer ! Eh bien, je n’ai pas beaucoup de soin pour les pythons ou méchant
sortes de serpents qui enveloppent et la cohue vous. Si je fais tourner en un seul,
Je suis responsable envers le Bash sur la tête.
Il est nécessaire de lancer une session de minicom afin d’initialiser le
/dev/ttyAMA0 port série. Puis, Control-A Q pour quitter minicom sans
réinitialiser le port série. Notez qu’il est également possible d’envoyer des clin
commandes directement à partir de minicom --un 5 en tapant dans le minicom
fenêtre clignote LED 5 fois de l’Arduino, et c’est même pas nécessaire
pour définir l’écho local. L’Arduino reçoit rien envoyé à /dev/ttyAMA0
sur son port série hardware ( TxetRx ) et il il peut interpréter ce qui vient à sa rencontre
Si elle est programmée par une esquisse appropriée. Vous le voyez, les gens, si vous utilisez le
Arduino comme intermédiaire, vous n’avez pas besoin de salir avec Python ou bibliothèques.
Control-A Q pour quitter. Et notez que l’Arduino doit disposer des éléments suivants
chargé de croquis. Puis enfin, exécutez le script Bash ci-dessous dans la console
ou un xterm.
Voici l’esquisse de l’Arduino :
/*ArduinoListens.ino
Pi envoie un chiffre (1-9) pour Arduino,
et Arduino clignote LED à D13 que plusieurs fois.
*/
#define DELA 500 / / temps de latence.
#define DSHORT 250 / / court retard.
const int ledPin = 13 ;
void setup() {}
pinMode (ledPin, sortie) ; Initialise les broches en sortie.
Broche 13 intègre une LED accrochée à elle.
Serial.Begin(9600) ;
}
void loop() {}
Si (Serial.available())
{light(Serial.read() - '0');} Combien les positions passées ASCII 0 ?
retard (Denis) ;
}
Sub lumière (int n) {}
pour (int i = 0; i < n; i ++)
{
digitalWrite (ledPin, HIGH) ; Allumer la LED.
Delay(DSHORT) ;
digitalWrite (ledPin, basse) ; Éteindre la LED.
Delay(DSHORT) ; Attendre.
}
}
Vous pouvez le télécharger ici:
http://bash.DETA.in/ArduinoListens.INO
Et voici le script Bash :
#! / bin/bash# Accepte de ligne de commande arg dire Arduino combien de fois à clignoter
#+ (0 - 9).
Par défaut = un clignotement # 1 si aucune ligne de commande arg.
Si [- z « $1 »] # si pas de ligne de commande arg...
puis
clignote = $DEFAULT
d’autre
clignote = $1
FI
port = / dev/ttyAMA0 # connexion directe à broches rx et dx de Pi.
echo $blinks > $port
sortie $?
# TODO :
# ----
# 1) vérification d’erreur sur l’entrée de ligne de commande.
# 2) clignote plus de 9 en analysant le multi-caractère ARG de ligne de commande.
Vous pouvez le télécharger ici:
http://bash.DETA.in/Blink-ARD.sh
Pas une très complexe d’esquisse et pense qu’il serait de combien facile à modifier pour
exécuter un servo ou un stepper motor.
Blink ! Cligner des yeux ! Cligner des yeux!