Ecole Suprieure des Sciences et des Technologies de Hammam Sousse
Licence 2 lectronique informatique
Module : Travail personnalis RAPPORT DU MINI PROJET SmartCar Elabor par : DABBOUBI Walid & RAIS Mohamed Encadr par : HERGLI Monir Rali! dan! le cadre d "ra#ail per!onnali! A#ril $%%& Sommaire SmartCar, de quoi sagit-il ? Mcanisme Moteurs courant continue Moteur pas pas Jeu de capteurs Capteur mcanique Capteur optique Programme Modes de fonctionnement Possibilit de control distance SmartCar, de quoi sagit-il Comme son nom lindique, SmartCar est un robot mobile (!icule intelligent" capable deffectuer plusieurs t#c!es et de ragir aec le monde e$trieur gr#ce un mcanisme et un %eu de capteurs commands par un programme install dans le fameu$ microcontr&leur '()*++ de M,C-.S/,P0 )igure ' !" moteurs # $oura%t $o%ti%ue &" $ir$uit de $omma%de '" moteur (as # (as )" $ir$uit i%*rarouge +" roues ! ! & + + ' ) Q1 2N2222 Q20 2N2222 Q3 2N2222 Q25 2N2222 R1 100 R2 100 R3 100 R4 100 Q46 2N2222 Q47 2N2222 Q48 2N2222 Q45 2N2222 R7 100 R6 100 R5 100 R8 100 BAT? 9V M,$a%isme du ro-ot . 1a mobilit de SmartCar est assure par trois moteurs, 2 moteurs courants continue tournant c!acun un roue pour faire aancer ou reculer le robot et un autre moteur pas pas unipolaire (( fils" qui sert tourner la carcasse droite ou gauc!e selon les ordres proenant du circuit de commande programm en aance0 /es moteurs # $oura%t $o%ti%ue . )igure 2 1es deu$ moteurs courant continue (3-45 oir figure 2" du notre robot assurent sa mobilit proprement dite, c!aque un de ces deu$ moteurs est associ 6 transistors P7P c!arg diners le sens de rotation afin daancer ou de reculer le robot0 C!aque transistor est protg par une rsistance et command ia sa base par le microcontr&leur (figure 8" 5ers P,C )igure 6 /e moteur (as # (as . 1e moteur pas pas est c!arger de donner lorientation demande au robot selon les conditions e$trieures (emplacement, collision9" et selon les besoins de lutilisateur et :a diff;re selon le mode de fonctionnement0 )igure < C!aque bobine du moteur est contr&le par un transistor (figure (" afin de dassurer la squence ncessaire pour donner langle de rotation sou!ait et de faire tourner donc le robot0 )igure ( Jeu de $a(teurs du ro-ot . 1a communication du SmartCar aec son entourage est assure par deu$ capteurs de t=pes diffrents> Ca(teur m,$a%ique 0d,te$teur de $ollisio%1 ?n cas de collision du robot aec un ob%et e$trieur un bouton poussoir prolong laide dun (antenne" sera en tat ferm, une information sera donc eno= au microcontr&leur, ce dernier se comporter comme son programmateur la indiquer, il peut faire tourner les roues dans le sens inerse afin de reculer le !icule par e$emple ou donner un signal lutilisateur0 5ers P,C )igure + Ca(teur o(tique 0d,te$teur do-sta$le IR1 1e C, 7?<<< qui %oue le r&le dun oscillateur dans notre montage (figure * et 4" est le c@ur du capteur optique, ce dernier fournit la diode ,- une frquence a%uste selon celle du rcepteur AS.P'+8* (8*B!C"0 1a frquence gnre par loscillateur qui doit Dtre identique celle du rcepteur doit obir lquation suiante> )igure * )igure 4 ?n cas de prsence dun obstacle deant le robot le ra=on ,- mis par le 1?E infrarouge se refl;te et sera capt par le rcepteur (AS.P '+8*" ce qui lui permet deno=er une information au microcontr&leur0 )igure '3 > dtecteur dobstacle Programme de SmartCar 1e programme commandant le robot est crit en langage C utilis souent dans la programmation des microcontr&leurs0 #include <16F877.h>//bibliothque du PIC167877 #use delay(cloc!"######$ #de%ine d# in&ut(&in'd#$//bouton &oussoi((d(oite$ #de%ine d1 in&ut(&in'd1$//bouton &oussoi((a)ant$ #de%ine d* in&ut(&in'd*$//bouton &oussoi((d(oite$ #de%ine d" in&ut(&in'd"$//bouton &oussoi((+auche$ #de%ine d, in&ut(&in'd,$//ca&teu((d-tecteu( de collision$ #de%ine d. in&ut(&in'd.$//bouton &oussoi((/ode auto$ #de%ine 0 &in'b1//0 est le %il noi( du /oteu( P1P #de%ine 2 &in'b*//2 est le %il 3aune du /oteu( P1P #de%ine 4 &in'b"//4 est le %il /a((on du /oteu( P1P #de%ine 5 &in'b,//0 est le %il o(an+e du /oteu( P1P )oid 6785'97:877($ ; out&ut'bit(&in'b,<#$=//t(ansisto( 5 bloqu- out&ut'bit(&in'b*<#$=//t(ansisto( 2 bloqu- out&ut'bit(&in'b1<#$=//t(ansisto( 0 bloqu- out&ut'bit(&in'b"<#$=//t(ansisto( 4 bloqu- out&ut'bit(&in'd6<#$=//>79 +auche eteinte out&ut'bit(&in'd7<#$=//>79 +auche eteinte ?//tous les t(ansisto(s co//andant le /oteu( P1P se(ont (ou (estent$ bloqu-s d@oA le /aintien de son -tat initial celle de #B )oid :5'CP ($ ; out&ut'bit(&in'c1<#$=//(ecule/ent d-sacti)-(s@il est acti)e$ out&ut'bit(&in'c#<1$=//a)ance/ent acti)- ?//le (obot a)ance )oid :5'95D0 ($ ; out&ut'bit(&in'c#<#$=//a)ance/ent d-sacti)-(s@il est acti)e$ out&ut'bit(&in'c1<1$=//(ecule/ent acti)- ?//le (obot (ecule )oid EF5P ($ ; out&ut'bit(&in'c#<#$=//a)ance/ent d-sacti)- out&ut'bit(&in'c1<#$=//(ecule/ent d-sacti)- out&ut'bit(&in'b,<#$=//t(ansisto( 5 bloqu- out&ut'bit(&in'b1<#$=//EF7PP78 45F58 out&ut'bit(&in'b"<#$=//EF7PP78 45F58//# 87FC80 out&ut'bit(&in'd6<#$= out&ut'bit(&in'd7<#$= ?//le (obot s@a((Gte quelque soit son -tat actuel )oid FC80'8I:HF($// ; out&ut'bit(&in'd6<1$= out&ut'bit(4<1$=//EF7PP78 45F58//FC80 8I:HF ,. delay'/s(1##$= out&ut'bit(2<1$= //&ou( (etou(ne( I la &osition initialeJ delay'/s(.##$= out&ut'bit(4<#$= out&ut'bit(2<#$= out&ut'bit(5<1$= delay'/s(1##$= out&ut'bit(0<1$= delay'/s(1##$= ? )oid FC80'>7FF($ ; out&ut'bit(&in'd7<1$= out&ut'bit(5<1$=//EF7PP78 45F58//FC80 8I:HF ,. delay'/s(1##$= out&ut'bit(0<1$= //&ou( (etou(ne( I la &osition initialeJ delay'/s(.##$= out&ut'bit(5<#$= out&ut'bit(0<#$= out&ut'bit(4<1$=//EF7PP78 45F58//FC80 8I:HF ,. delay'/s(1##$= out&ut'bit(2<1$= delay'/s(1##$= ? )oid /od'auto($; :5'CP($= i% (d,!!#$; //buKK($= sto&($= delay'/s(1###$= +o'doLn($= delay'/s(.###$= tu(n'le%t($= delay'/s(*###$= Ke(o'de+(ee($= +o'u&($= ? ? /ain($ ; //E7F'F8IE'd( #F $= out&ut'bit(&in'd6<#$= out&ut'bit(&in'd7<#$= Lhile(1$; i% (d.!!%alse$ /od'auto($= else i% (d#!!%alse$; +o'u&($= i%(d*!!%alse$ tu(n'le%t($= else i%(d"!!%alse$ tu(n'(i+ht($= else i% (d,!!%alse$; sto&($ = delay'/s(.##$= +o'doLn($= delay'/s(.###$= ? else Ke(o'de+(ee($= ? else i%(d1!!%alse$; +o'doLn($= i%(d*!!%alse$ tu(n'le%t($= else i%(d"!!%alse$ tu(n'(i+ht($= else i% (d,!!%alse$; sto&($ = delay'/s(.##$= +o'u&($= delay'/s(.###$= ? else Ke(o'de+(ee($= ? else i% (d,!!%alse$; sto&($ = delay'/s(.##$= +o'doLn($= delay'/s(.###$=? else i% (d"!!%alse$; tu(n'(i+ht($=? else i% (d*!!%alse$; tu(n'le%t($=? else ; Ke(o'de+(ee($= sto&($= ?? ? /Mi% (d#!!%alse$ +o'u&($= else i%(d1!!%alse$ +o'doLn($= else i%(d1!!%alse$ +o'doLn($= else i%(d*!!%alse$ tu(n'le%t($= else i%(d"!!%alse$ tu(n'(i+ht($= else i% (d,!!%alse$; sto&($ = delay'/s(.##$= +o'doLn($= delay'/s(.###$=? else sto&($= M/ ////////MMMMMMMMMMM4597 1CF5MMMMMMMMMMMMMMMMM// /M :5'CP($= delay'4E(1####$= FC80'8I:HF($= delay'4E(1####$= FC80'>7FF($= 97>1N'4E(1####$= :5'95D0($= delay'/s(.###$= EF5P($= 97>1N'4E(.###$= out&ut'bit(&in'c"<1$= M/ Mode de *o%$tio%%eme%t . 1a ersion actuelle du pro%et comprend 8 modes fonctionnement qui peuent Dtre e$tensibles> -Mode )iloguid> 1utilisateur guide le !icule partir dune manette comprenant ( boutons > F aancer F reculer F droite F gauc!e F auto -Mode Gutomatique> Es que le bouton GHA. est acti le robot commence circuler et iter les obstacle dune mani;re autonome gr#ce ces capteurs -Mode parcours> 1e robot doit parcourir un circuit donner par le programmateur -SmartCar peut Dtre galement utilis comme un %ouet amusant pour les enfants Possi-ilit, de $o%trol # dista%$e . 5u la souplesse de programmation du P,C '()*++ et la prsence du AS.P'+8* capable de dmoduler les codes du protocole -C< (utilis dans les tlcommandes de la tl" dans le circuit rcepteur ,- (dtecteur dobstacle", SmartCar peut e$ploiter son intelligence dans des domaines diffrents saoir les besoins du programmateur, on peut par e$emple > - fi$er une camra sur la carcasse du !icule et e$plorer un Milieu (dangereu$" en utilisant une tlcommande compatible -C<0