Étape 4: Arduino Tilt contrôle
1. incliner l’accéléromètre Arduino envoie des données vers Python sur le PC
2. Python déplace la souris du PC
3. Google Earth fonctionne le simulateur de vol selon la Position de la souris
Nous allons commencer par faire l’Arduino pour détecter l’inclinaison de l’accéléromètre et envoyer les données sur le port série (via USB) vers le PC.
Obtenir le code complet est affiché à l' Étape suivante. Pour l’instant, nous allons voir les principales idées qui rendent le code fonctionnent.
1.
Au début du code, il faut établir quelles lectures de l’accéléromètre correspondent au niveau. Nous devons faire de sorte que nous saurons si l’appareil a été inclinée de niveau.
Nous écrire une fonction appelée average() utilisant une boucle for pour mesurer les données relatives à la broche et il en moyenne comme suit :
Obtenir la moyenne des 8 lectures du « code pin »
int moyenne (int NIP) {}
int Ave = 0 ;
pour (int i = 0; i < 8; i ++) {}
Ave = Ave + analogRead(pin) ;
}
retour Ave/8 ;
}
Nous appelons average() pour x, y et z mesures de l’axe au cours de la section setup() est exécutée une fois, au début du programme.
2.
Nous établissons que l’appareil est incliné par une simple soustraction comme suit :
xTilt = analogRead (xpin)-llila ;
3.
Nous devons communiquer l’état de l’interrupteur à bouton-poussoir à Python, ainsi il peut contrôle souris Busters lorsqu’il est pressé et y renoncer lorsque vous appuyez sur nouveau.
Pour ce faire, il faut activer une Pullup sur swpin dans la section setup() :
digitalWrite (swpin, HIGH) ; Activez Pullup sur interrupteur Pin
et lisez la goupille dans la section loop() :
swState = digitalRead(swpin) ; swState = 0 lorsque vous appuyez sur
4.
Nous communiquons avec Python sur PC via la connexion USB série en écrivant un Format prédéterminé de chaîne :
« Données, xTilt, yTilt, zTilt, swState\n »
qui est une chaîne commençant par « Données », les valeurs d’inclinaison séparés par des virgules, l’interrupteur, État et un caractère de nouvelle ligne.
Donc, si les xTilt, les yTilt, les zTilt et les swState où 2, 5, -1 et 0 respectivement la chaîne envoyée serait :
"Données, 2, 5, -1, 0 »
Toutes les données s’éteint via le Port série, vous pouvez utiliser le moniteur série < Ctrl + Maj + M > pour la voir.
5.
Passez à l' Étape suivante, copiez le code dans un croquis vierge et Upload à l’Arduino.