présentation de landronessness. définition landronessness est classé parmi les robots...
TRANSCRIPT
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 char commande[9];
char vit1[3];char vit2[3];unsigned char v1=0,v2=0;//Déclaration de variablevoid init(){uart1_init(9600);pwm1_init(10000);pwm2_init(10000);pwm1_set_duty(0);pwm2_set_duty(0),pwm1_start();pwm2_start();}
}
Fonction main
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