Dans ce Instructable, nous allons prendre ce que nous avons appris à « Make : on Robotics Starter Kit – Wireless Connectivity » et « Make : on Robotics Starter Kit – capture données capteur » et associer ces données pour capturer les données des capteurs en temps réel et envoyer ces données à un programme exécuté sur votre ordinateur sans fil.
Donc si vous n’avez pas votre robot configuré pour utiliser l’émetteur et le récepteur, jetez un oeil à l’article de blog « Make : on Robotics Starter Kit – capture données capteur » et re-configurer votre robot et câble FTDI.
Pour envoyer des données de capteur à notre ordinateur, on doit encore faire quelques petits changements à notre programme d’Arduino lineFollow.ino :
Mettez en commentaire la ligne suivante, que nous ne devons plus notre variable de compteur.
int compteur ;
L’initialisation de variable de la variable de compteur mettez en commentaire :
compteur = 0 ;
Dans la fonction loop() du programme d’observation sur les lignes suivantes :
mySerial.println (comptoir, DEC) ;
compteur ++ ;
Ajoutez la ligne suivante à la fonction loop() :
mySerial.println (action1, HEX) ;
Si (action1! = action2)
{
Si (action1 == 3)
line_following.go_forward(50) ;
Si (action1 == 1)
line_following.line_following_turn_left(50) ;
Si (action1 == 2)
line_following.line_following_turn_right(50) ;
Si (action1 == 0)
line_following.go_forward(50) ;
}
Action2 = action1 ;
}
Lorsque nous exécutons le robot seront nos données de capteur sans fil envoient à notre ordinateur, mais nous ne voulons pas juste capturer les données séries, en utilisant le Serial Monitor avec les résultats affichés comme nombres hexadécimaux.
Nous voulons afficher en temps réel les indications réelles qu'est envisagé le robot basées sur les données du capteur. Pour ce faire, nous ne pouvons utiliser le Serial Monitor.
Nous devons écrire un programme qui a une logique semblable comme notre programme lineFollow.ino. Donc, nous allons à élaborer un programme Python qui lit les données de port série et imprimer les directions que le Robot est envisagé en langage clair.
Est jointe au programme Python, nous allons analyser le programme un peu. Si vous n'avez pas fait, consultez le précédent post de blog "Make : on Robotics Starter Kit – partie binaire" 1 "et regardez la vidéo sur comment installer Python sur votre ordinateur.
importation de série
moment de l’importation
Les déclarations d’importation offrent des fonctions de bibliothèque dont notre programme Python ont besoin pour communiquer sur le port série.
def main() :
La déclaration définit une fonction appelée main()
SER = serial. Série (« COM3 », 1200, timeout = 0)
Cette instruction crée un objet série et indique à l’objet quel port série à l’écoute, quel débit en bauds à utiliser et timeout = 0 est utilisé pour lire les données lorsqu’il est disponible sans attendre.
tout en 1 :
Le tout en 1: instruction sert à démarrer une boucle qui se répète et ne se termine pas comme la condition 1 est toujours vraie.
valeur = ser.read(1)
Ici nous lire un octet de données le numéro de port et de stocker cette valeur à la variable de valeur.
Si valeur > = « 0 » et la valeur < = « 3 » :
Si le contenu de la variable de la valeur est comprise entre 0 et 3 exécuter le contenu du if instruction
Si valeur == « 0 » ou valeur == « 3 »
imprimer « Aller de l’avant »
Si la variable de la valeur est 1 ou 3 exécute ensuite le message impression « Foward aller ».
Si valeur == « 1 » :
imprimer « Tourner à gauche »
Si la variable de la valeur est 1, puis imprimer le message « Tourner à gauche »
Si valeur == « 2 » :
imprimer « Tourner à droite »
Si la variable value est 2, puis imprimer le message « Tourner à droite »
Si __name__ == « __main__ »: main()
Si ce programme est en cours d’exécution et non un fichier bibliothèque exécutent ensuite la fonction principale.
N’oubliez pas le que Python est un langage sensible sensible de tiret. Si votre retrait n’est pas correct de que votre programme générera des erreurs de syntaxe lorsque vous essayez de l’exécuter. Comptez vos espaces d’indentation quand composer le code dans votre éditeur de texte.
N’oubliez pas lorsque vous branchez votre câble USB dans au programme de l’Arduino, vous devrez vous assurer que votre port série est correct pour les paramètres du Port série dans l’IDE Arduino.
Consultez le blog « Make : on Robotics Starter Kit - capture données capteur » pour plus d’informations sur la façon de déterminer le bon Port série et comment configurer l’IDE Arduino.
Si vous utilisez un autre Port USB de votre câble USB FTDI, votre Port série sera aussi bien différente.
Placez votre programme de readSerial.py dans un dossier sur votre ordinateur et démarrez une invite de commande et modifiez le répertoire sur le même emplacement de dossier de votre programme de readSerial.py.
Exécutez la commande de votre invite de commandes :
Python runSerial.py
Si vous rencontrez des erreurs, vérifiez que votre programme runSerial.py est définie sur le port série correct.
Assurez-vous de qu'avoir votre carte de conducteur et câblés FTDI correctement.
Si vous obtenez des caractères étranges en cours d’impression à votre invite de commandes, vérifiez que votre débit en bauds est la même dans les programmes de lineFollow.ino et readSerial.py d’Arduino.
Si vous avez fait tout corriger, lorsque votre robot suit la ligne noire votre programme Python devrait sortie quelque chose montré dans l’image ci-dessus.