Présentation de l’andronessness
Définition L’andronessness est classé parmi les robots explorateur. Leurs rôle est d’exploiter les endroits que l’homme n’est pas capable d’atteindre . Par exemple les endroits ou on a une forte température, ou un champs nucléaire… Le robot explorateur était envoyer sur la lune pour prélever des échantions
Relation entre andronessness et Android L’idée principale c’est d’exploiter les capteurs intégrés dans l’Androphone pour avoir une vision très claire de l’environnement qui entoure le robot: L’accéléromètre :pour connaitre l’accélération du robot sur les 3 axes X,Y et Z Le capteur champs magnétique: donne l’évolution du champs magnétique Compas magnétique: l’angle de rotation Température Baromètre: donne la pression Caméra: l’image de l’environnement en temps réel
Principe de fonctionnement
Principe de fonctionnement La commande passe du pc vers Xbee par un protocole de communication série RS232 puis elle seras transmis du Xbee émetteur par Xbee récepteur par le protocole Zigbee .le microcontrôleur pic reçoive la commande grâce au protocole UART puis le pic commande les 4 servomoteur
Principe de fonctionnement Le pc envoie une chaine de 9 caractères: 8 pour la commande et un caractère # pour délimiter la chaine C1 C2 C3 C4 C5 C6 C8 C9 V1[0] V1[1] V1[2] sens1 V2[0] V2[1] V2[2] sens2
Principe de fonctionnement Si on veut tourner le robot à gauche au augmente la vitesse des roues de droite et on diminue celle des roues de gauche . De même si on veut tourner le robot à droite VG>VD Si sens=1 alors les moteurs tourne en avant si sens=0 les moteurs tournes en arrière On a 2 commande * une pour les moteurs de droite * une pour les moteur de gauche
Initialisation et le main Déclaration & Initialisation Fonction main char commande[9]; char vit1[3]; char vit2[3]; unsigned char v1=0,v2=0; //Déclaration de variable void init(){ uart1_init(9600); pwm1_init(10000); pwm2_init(10000); pwm1_set_duty(0); pwm2_set_duty(0), pwm1_start(); pwm2_start(); } } void main() { init(); while(1){ if(uart1_data_ready()==1){ uart1_read_text(commande,"#",255); extractData(); } } }
Fonction de traitement extractData(){ unsigned char i=0; for(i=0;i<3;i++){ vit1[i]=commande[i]; } v1=(vit1[0]-48)*100+(vit1[1]-48)*10+(vit1[2]-48); for(i=4;i<7;i++){ vit2[i-4]=commande[i]; } v2=(vit2[0]-48)*100+(vit2[1]-48)*10+(vit2[2]-48); if(commande[3]==1){ portb.rb1=0; portb.rb2=1; } else{ portb.rb1=1; portb.rb2=0; } if(commande[7]==1){ portb.rb3=0; portb.rb4=1; } else{ portb.rb3=0; portb.rb4=1; } pwm1_set_duty(v1); pwm2_set_duty(v2); }
Merci pour votre attention