Étape 5: Mettre en œuvre les fonctions de base
Premier tableau indique les valeurs du récepteur, lecture est la même qu’à l’étape 3 dans ce tutoriel. Vous pouvez découper votre émetteur à 1500 sorcière est position médiane (1ms est min, 2ms est max, sorcière de 1500 = 1,5ms est le centre).
Étiquette d’État indique si nous sommes connectés au jury de IOIO et si nous sommes en mode armé ou désarmé. Il n’y a exemple de code qui basculent au armé et désarmé : } ElseIf (ch3_val < throttle_min & & ch4_val > arm_pos) {}
si (ch3_val < throttle_min & & ch4_val < disarm_pos) {}
désarmer
armé = false ;
bras
armé = true ;
}
ch3_val est la valeur de l’accélérateur et ch4_val est ruddler (lacet), armement s’affiche sur l’image principale que j’ai utilisez mode3 émetteur mi. throttle_min, arm_pos et disarm_pos sont des positions où le bâton doit être pour armer ou désarmer.
Deuxième tableau présentent les données de sortie, valeur est send longueur exacte impulsion aux sorties.
En premier lieu, que j’ai essayé de voler sans PID (nous discuterons PID plus tard), la logique était simple :
-en raison de Tricoptères M1 et M2 (moteurs avant) doivent travailler sur mi-vitesse à M3, M3 étant solitaire sur le dos.
-Si je veux aller à l’avance je vais mettre plus de gaz arrière M3 et moins aux front M1 et M2 (vers l’arrière est en face)
-Si je veux aller à droite j’ai mis plus de gaz pour M1 et moins de M2 (le reste est opposée)
-lacet - rotation est contrôlé par servo
Mon implémentation ressemble à ceci (ne l’utilisez pas j’ai il discutera plus tard) : contrôle de l’accélérateur commande de tangage rouleau controll
//yaw servo controll
servo_val = ch4_val ;
m1_val = 1000 + (ch3_val - 1000) / 2 ;
m2_val = 1000 + (ch3_val - 1000) / 2 ;
m3_val = ch3_val ;
m1_val += - (ch2_val - 1500) / 2 ;
m2_val += - (ch2_val - 1500) / 2 ;
m3_val += + (ch2_val - 1500) ;
m1_val += + (ch1_val - 1500) ;
m2_val += - (ch1_val - 1500) ;
servo_val et mx_val sont calculés à partir des valeurs d’entrée des valeurs de sortie. Problème avec cette implémentation est bâton sensibilité, si vous tirez vers l’ascenseur vers l’avant à vitesse lente (gaz), le M1, M2 est diminué plus que la manette des gaz sont définie, alors ils s’arrêtent. Le sentiment sur banc d’essai est vraiment agressif, vous ne pouvez pas voler avec cette implémentation. Donc j’ai ajouter la case à cocher à l’interface graphique, que passer à seulement mode incrémentiel. Cela signifie, programme ne decrement, moteurs d’un côté, seulement l’incrément de l’autre côté. Comportement de ces modes est montré dans la vidéo suivante :
Donc, comme vous pouvez le voir je n’ai pas été capable de voler stable comme à l’étape 4, quand je test mon stand avec jury de KK. La bonne façon est d’utiliser l’accéléromètre et règlement de PID.