Home
Rapport du Projet de conception
Contents
1. ATS on TX Settings Set font Auto Dis Connect Time Steam log custom BR Ri El ASCIItable Scripting ECTS ESCP AutoStart Script CR LF Stay an Tap 3600 27 e Graph Remote EI ERI Recerve fal C HEX M Dec M Bin CLEAR Reset Counter 13 1 Counter 0 amp ASCI v Hex StartLog CLEAR Send File CR CR LF ESDTR ESRTS Macros Set Macros MI M2 M3 M4 ME ME MY Ma M3 MIO M11 M12 wins TA Transm Error port is not available Avant de cr er notre propre programme qui communiquera avec le robot WII STIA nous avons d couvert la communication entre deux PC grace aux ports RS32 en utilisant le logiciel Terminal Ce programme nous permet d envoyer et de recevoir des chaines de caracteres d un PC a autre en utilisant les cartes sans fils radiometrix On a d couvert plusieurs caract ristiques d un signal passant par un port RS32 a savoir e Le d bit e La parit e Bits d arr ts e Nombre de bits transmis e Handshaking em 0 0 58 70 amp vm LUE RE A UE UE s gt f Mutiple Wiimote Tester De Wiimote 1 t Battery Balance Board n Sensiblit du robot Fan 49 56257 31 73585 Le Y initiation el E 92 98533 193 0464 97 09644 St 2 Facile _ Pounds 3 Intermedaire cole d ing nieurs Si Expert X 6 395663 6 7541 de Universite d Angers personalis e Pourc
2. f 355 pourg Int Math Abs ws BalanceBoardState SensorValuesKg TopLeft Math Abs ws BalanceBoardState SensorValuesKg BottomLeft Math Abs ws BalanceBoardState SensorValuesKg TopLeft Math Abs ws BalanceBoardState SensorValuesKg BottomLeft Math Abs ws BalanceBoardState SensorValueskg TopRight Math Abs ws BalanceBoardState SensorValuesKg BottomRight 255 355 pourd Int Math Abs ws BalanceBoardState SensorValuesKg TopRight Math Abs ws BalanceBoardState SensorValuesKg BottomRight Math Abs ws BalanceBoardState SensorValuesKg TopLeft Math Abs ws BalanceBoardState SensorValueskg BottomLeft Math Abs ws BalanceBoardState SensorValueskg TopRight Math Abs ws BalanceBoardState SensorValuesKg BottomRight 255 355 EGXLgs TexL pourg textd Text pourd vu que la balance board detecte une petite pression meme si il n y a perssone donc on mets les pourcentages 0 355 dans notre ch le voir compte rendu si le poid est en dessous de 10 If ws BalanceBoardState WeightKg 10 Then pourg 555 pourd 355 End LE cette partie correspond a l affichage de la wii et modelisation avec couleur des differentes pressions If a gt 10 Then Panell BackColor Color FromArgb 0 0 255 a Else Panell BackColor Color White End If LE c gt 10 Then Panel3 BackColor Color FromArgb 0 0 255 Else Panel3 BackColor Color White End IT If e gt 10 Then Panel
3. 7 V et fournir une vitesse de 440 tpm pour une alimentation de 6 V D une paire de roues Dimensions 42 x 19 mm De 2 roues folles une l avant et une l arri re pour assurer l quilibre du robot hauteur de 10 cm entraxe de fixation 13 2 mm Carte Arduino Mega La carte m re du robot Wii Stia est la carte Arduino Mega C est un module Arduino construit autour d un microcontr leur dans notre cas un ATmega1280 et de composants compl mentaires qui facilitent la programmation et l interfacage avec d autres circuits Le microcontr leur est pr programm avec un bootloader de facon a ce qu un programmateur d di ne soit pas n cessaire La carte se programme au travers d une connexion s rie RS 232 mais les connexions permettant cette programmation different selon les modeles Dans le cas de la Mega c est un port USB L Arduino utilise la plupart des entr es sorties du microcontr leur pour l interfacage avec les autres circuits Notre mod le poss de 54 entr es sorties num riques dont on se sert grace aux fonctions pinMode digitalWrite anddigitalRead dont 14 peuvent produire des signaux PWM permettant d obtenir une tension continue variable a partir d une source de tension continue fixe et 16 entr es analogiques Les connections se font par les connecteurs femelles situ s sur le dessus de la carte Les modules d extension viennent s empiler sur I Ardui
4. 255 En Lr If d 255 Then d 255 End If g Clear Color Black elelver les petites virgules qui sont proches du 0 If ws BalanceBoardState SensorValuesKg TopLeft 0 Then ws BalanceBoardState SensorValuesKg TopLeft 0 End If If ws BalanceBoardState SensorValuesKg TopRight lt 0 Then ws BalanceBoardState SensorValueskg TopRight 0 End LE If ws BalanceBoardState SensorValueskg BottomLeft lt 0 Then ws BalanceBoardState SensorValuesKg BottomLeft 0 If ws BalanceBoardState SensorValuesKg BottomRight lt 0 Then ws BalanceBoardState SensorValueskg BottomRight 0 End If End If definir les pourecentages qu ils faut envoyer au robot voir compte rendu et les afficher pourg Int Math Abs ws BalanceBoardState SensorValuesKg TopLeft Math Abs ws BalanceBoardState SensorValuesKg BottomLeft Math Abs ws BalanceBoardState SensorValuesKg TopLeft Math Abs ws BalanceBoardState SensorValueskg BottomLeft Math Abs ws BalanceBoardState SensorValueskg TopRight Math Abs ws BalanceBoardState SensorValuesKg BottomRight f 355 pourd Int Math Abs ws BalanceBoardState SensorValueskg TopRight Math Abs ws BalanceBoardState SensorValuesKg BottomRight Math Abs ws BalanceBoardState SensorValueskg TopLeft Math Abs ws BalanceBoardState SensorValuesKg BottomLeft Math Abs ws BalanceBoardState SensorValueskg TopRight Math Abs ws BalanceBoardState SensorValuesKg BottomRight
5. Selection du port et de la carte Avant de transf rer le programme compile il faut tout d abord s lectionner la carte Arduino que Von utilise menu Tools gt Boards On pourra choisir COM 1 ou 2 pour une carte s rie et COM 4 5 7 et plus pour une carte USB 3 Transfert du programme Une fois le port et la carte s lectionn s il suffit de cliquer sur le bouton Upload La carte va se r initialiser automatiquement et le transfert va d marrer Les LEDs des lignes TX et RX de la carte Arduino vont clignoter indiquant que le programme est bien transf r Le message Done uploading confirmera le bon transfert du programme 4 Programme transf r Lorsque l on transfert un programme en utilisant le bootloader Arduino un code binaire a t charg dans le u contr leur sur la carte Ceci permet de transf rer le programme sans avoir besoin d aucun mat riel externe Quand le transfert est termin le bootloader est actif pendant un petit temps il coute pour voir si un nouveau programme arrive une fois que la carte est r initialis e la fin du transfert du programme et le dernier programme stock dans la carte s ex cute 2 Explication du code D clarations void setup Seriall begin 9600 int vitesselint int int transfofint chaine int tableauvit Nous initialisons le port s rie 1 Le port s rie est initialis a 9600 bits seconde Pour ceci nous utilisons l instruction begin No
6. chaque moteur la vitesse qui lui correspond et on r gle la direction des moteurs vers l avant High sinon si la vitesse gauche est inf rieure O gt on r gle la vitesse du moteur gauche vers l arri re Low Sila vitesse droite est lt 0 et la vitesse gauche gt 0 on fait l inverse et siles deux vitesses sont lt 0 gt onr gle la direction des 2 moteurs vers l arri re d Conclusion Ce projet nous a permis de d velopper nos comp tences en Visual Basic et en C En effet le groupe compos Khalil et Omar a pu d couvrir la communication via le port Com et les diff rents outils Windows Form propos s par Visual Basic Le bin me compos par Pierre et Abdelkarim a pu d couvrir le protocole pour tablir une communication via le port COM en C et les diff rentes fonctions propres a une carte Arduino En fin les deux bin mes ont pu consolider les structures logiques soit en C soit en Visual Basic D autre part nous avons pu approfondir nos connaissances en lectronique et en lectrotechnique Initialement le robot tait aliment avec des piles mais cela ne suffisait le robot ne roule pas il faut un courant important au d marrage que les piles ne d bitent pas Nous avons donc choisi une batterie ad quate au robot Au cours de ce projet nous avons rencontr quelques problemes soit d ordre technique soit d ordre organisationnel En effet nous avons rencontr des problemes avec une car
7. 4800 End If If ComboBoxl SelectedlIndex 4 Then RS232 BaudRate 9600 End LE If ComboBoxl SelectedlIndex 5 Then RS232 BaudRate 14400 End If If ComboBoxl SelectedIndex 6 Then RS232 BaudRate 19200 End IT If ComboBoxl SelectedIndex 7 Then RS232 BaudRate 28800 End If If ComboBoxl SelectedlIndex 8 Then RS232 BaudRate 38200 End IT If ComboBoxl SelectedIndex 9 Then RS232 BaudRate 56000 End LE If ComboBoxl SelectedIndex 10 Then RS232 BaudRate 57600 End If If ComboBoxl SelectedlIndex 0 Then RS232 BaudRate 115200 End If If ComboBoxl SelectedIndex 0 Then RS232 BaudRate 128000 End If If ComboBoxl SelectedlIndex 0 Then RS232 BaudRate 258000 End If If ComboBoxl SelectedIndex 4 Then RS232 BaudRate 9600 End If Bnd sub Private Sub WiimoteTest Load ByVal sender As System Object ByVal e As System EventArgs Handles MyBase Load Dim ports As String IO Ports SerialPort GetPortNames tableau de string acceuillant les ports present sur la machine reconfiguration d port BRAAI RS232 BaudRate defini pr cedement RS232 Parity IO Ports Parity None pas de parit RS232 StOpBLES I1O PortssStopBits One vn bit d arret par OCLOL RS232 DataBits 8 nombre de bit par octet RS232 RtsEnable True ligne Rts activ RS232 DtrEnable True ligne Dtr activ Choix Port tems AddRange ports on ajoute le nom des ports dans le combobox TES Choix Port celectedinde
8. Cette fonction recoit en entr e deux chaines de caracteres Comme nous l avons mentionn avant les trois premieres cases repr sentent la vitesse de la roue droite En effet le premier chiffre repr sente les centaines le second repr sente les dizaines et le troisieme repr sente les unit s La carte recoit les chiffres en Ascii il faut donc les d caler Nous savons que le code Ascii de 1 est 48 Nous d calons alors les chiffres de 48 D autre part la valeur de chaque vitesse est d cal e de 355 voir partie Programmation express 2008 explication du code il faut donc la d caler de 355 Une fois tous ces chiffres d cal s multipli s par leur coefficient 100 ou 10 ou 1 ils sont somm s et gard en m moire dans la premiere case du tableau tableauvit Les m mes op rations sont r p t es pour les valeurs suivantes pour obtenir la vitesse de la roue gauche La fonction vitesse int vitesse int vitD int vitG Cette fonction recoit en entr e deux variables vitesse droite vitesse gauche Les valeurs recues par la fonction sont comprises dans l intervalle 255 255 La vitesse du moteur est cod e sur un octet donc V moteur 0 255 coeff On distingue 5 cas diff rents pour le contr le du robot si la vitesse droite amp la vitesse gauche sont nulles gt on ne transmet rien sur les moteurs Sinon si la vitesse droite amp la vitesse gauche sont sup rieures a 0 gt on transmet
9. carte sera utilis e pour envoyer les informations au robot On va donc en utiliser 2 une sera install e sur le robot et l autre li e au pc logiciel de contr le Wii Board La Wii Balance Board est un accessoire en forme de p se personne lectronique pour la console de jeux vid o Nintendo Wii Elle a t d voil e pour la premiere fois le 11 juillet 2007 VE3 en combinaison avec le logiciel Wii Fit Principe de fonctionnement Elle n cessite Vutilisation de 4 piles de type AA pour fonctionner Son autonomie annonc e est de 60 heures La balance n utilise pas de fils pour se connecter la console Elle est constitu e de plusieurs capteurs de pression utilis s pour mesurer le centre des pressions des pieds de l utilisateur donc gr ce 4 capteurs de poids dans la Balance on peut calculer l inclinaison du joueur et son centre de gravit Dans une entrevue avec le site IGN Entertainment Il s est av r que les capacit s de mesure de la Wii Balance Board taient probablement sup rieures celles des p se personnes lectroniques classiques La Balance est autoris e pour des personnes pesant jusqu 150 kg Dans le manuel d utilisation il est dit que la Wii Balance doit tre utilis e sur des surfaces stables et que son utilisation sur une moquette ou un tapis pais peut cr er disfonctionnement Dimensions 511 X 316 X 53 2 c Logiciel I Programmation en VB express 2008 1 Prise en main et
10. d tecte tout les ports series disponibles et apres on les mets dans un tableau de chaine de chasracteres Configuration du port RS232 e pas de parite e un bit d arr t par octet e nombre de bit par octet e ligne Rts activ pour envoyer des donn es e ligne Dtr activ pour recevoir des donn es Enfin on mets tout les ports s ries trouver dans une combobox Et si on trouve pas on affiche un message et on ferme l application Connexion au port s rie Apr s le choix du port et la vitesse l utilisateur doit se connecter pour cela il faut e ouvrir le port d sir l aide de la fonction RS232 Open envoie un message d erreur si le port est d j utilis e Sile port fonctionne on se connecte au port en affichant la vitesse du port et en d sactivant le combobox pendant l utilisation du port e Sile port ne marche pas on efface la vitesse on ferme le port et on r active le combobox Envoyer les donn es au robot Apres la connexion au robot on passe a la connexion au robot c est dire l envoie des donn es a la carte du robot pour cela il faut e Convertissant les 2 pourcentages des moteur en char puis on les envoie en utilisant la fonction RS232 Write pourg amp pourd e Mettant le code dans un Timer d intervalle 100 ms Donc l utilisateur n a qu se connecter l aide du bouton connexion qui active le timer li Programmation en en C Arduino 1 Prise en main et premier
11. probl mes rencontr s tout au long de ce projet Le choix de ce projet est loin d tre al atoire notre volont relever les d fis notre int r t la d couverte ainsi que l originalit du projet nous ont pouss choisir ce dernier Mener bien ce projet nous aidera concr tiser nos connaissances th oriques acquises durant le cycle pr paratoire d autant plus que ce projet s inscrit dans le domaine de l automatique et du g nie informatique qui nous int resse particuli rement Pour mener bien ce projet sans perte de temps et avec efficacit nous nous sommes partag s en deux groupes EL HAJJI Khalil Groupe 1 FOUGHALI Omar MERLAUD Pierre Groupe 2 GRIRA Abdelkarim FOUGHALI Omar et EL HAJJI Khalil avaient une pr f rence pour le langage VB alors que MERLAUD Pierre et GRIRA Abdelkarim avaient une pr f rence le langage C Pour le bon d roulement de notre projet chacun a choisi le langage ou il se sentait alaise pour ainsi tre le plus productif possible Le groupe 1 s est charg de la parie logiciel en VB faite sur PC Le groupe 2 s est charg de la partie logiciel en C sur la carte Arduino Mega On d taillera avec pr cision le travail de chaque groupe et son utilit dans le chapitre Logiciel Pr sentation du projet C Bluetooth ALL C Bluetooth L originalit du projet consiste dans le rait qu on utilise notre corps pour commander un robot et tout cela sans fil bi
12. 2 BackColor Color FromArgb 0 0 255 e Else Panel2 BackColor Color White End IT If d gt 10 Then Panel4 BackColor Color FromArgb 0 0 255 d Else Panel4 BackColor Color White Bnd If code r cuper sur coding4fun qui utilise la librarie wii pour donner des infos sur l etat de la batterieet la wiifit If ws Battery gt amp HC8 Then pbBattery Value amp HC8 Else pbBattery Value CInt Fix ws Battery End If lblBattery Text ws Battery ToString lblDevicePath Text Device Path amp mWiimote HIDDevicePath End Sub code r cuper sur coding4fun qui utilise la librarie wii Private Sub UpdateExtensionChanged ByVal args As WiimoteExtensionChangedEventArgs chkExtension Text args ExtensionType ToString chkExtension Checked args Inserted End Sub code r cuper sur coding4fun qui utilise la librarie wii Public WriteOnly Property Wiimote As Wiimote Set ByVal value As Wiimote mWiimote value End Set End Property cette patie du code correspond la combobox du choix de la vitesse Private Sub ComboBoxl SelectedIndexChanged ByVal sender As System Object ByVal e As System EventArgs Handles ComboBoxl SelectedIndexChanged If ComboBoxl SelectedIndex 0 Then RS232 BaudRate 600 End If If ComboBoxl SelectedlIndex I Then RS232 BaudRate 1200 End If If ComboBoxl SelectedIndex 2 Then RS232 BaudRate 2400 En Lt If ComboBoxl SelectedIndex 3 Then RS232 BaudRate
13. Rapport du Projet de conception T l guider un robot gr ce la WIIFIT Merlaud Pierre Foughali Omar Grira Abdelkarim EL hajji Khalil Sommaire a Introduction i Nos motivations ii Pr sentation du projet b Materiel i Description des composants ii Montage du robot c Logiciel i Programmation en VB express 2008 1 Prise en main lers essais 2 Explication du code ii Programmation en en C Arduino 1 Prise en main 1ers essais 2 Explication du code d Conclusion e Annexes i Code sur VB express 2008 il Code en C sur Arduino a Introduction Nos motivations En premier temps nous aborderons l aspect mat riel de notre projet dans lequel nous allons d tailler les differents composants utilis s les probl mes relatifs aux mat riels ainsi que le montage du robot en deuxi me temps nous parlerons de la partie logicielle divis e son tour en deux sous parties Dans la premi re nous expliquerons avec pr cision les diff rentes portions du code utilis es sous Visual Basic express 2008 concernant la deuxi me sous partie nous l avons r serv e l explication du programme en C qui commandera le robot gr ce la carte Arduino Pour Finir nous noncerons tous ce que nous a apport ce projet autant sur le plan organisationnelle que sur le plan technique nous proposerons aussi quelques id es de projets pour l ann e prochaine sans oublier les diff rents
14. alanceBoardState SensorValuesLb TopLeft ToString lblBBTR Text ws BalanceBoardState SensorValuesLb TopRight ToString lblBBBL Text ws BalanceBoardState SensorValuesLb BottomLeft ToString lblBBBR Text ws BalanceBoardState SensorValuesLb BottomRight ToString lblBBTotal Text ws BalanceBoardState WeightLb ToString Poid Text ws BalanceBoardState WeightLb ToString Else lblBBTL Text ws BalanceBoardState SensorValuesKg TopLeft ToString lblBBTR Text ws BalanceBoardState SensorValuesKg TopRight ToString lblBBBL Text ws BalanceBoardState SensorValuesKg BottomLeft ToString lblBBBR Text ws BalanceBoardState SensorValuesKg BottomRight ToStringY lblBBTotal Text ws BalanceBoardState WeightKg ToString Poid Text ws BalanceBoardState WeightKg ToString End If lblCOG Text ws BalanceBoardState CenterOfGravity ToString position du centre de gravit de la wiifit End Select pour raison des operations qu on va effectuer sur les pressios des capteurs apr s on les affecte des differentes variables ws BalanceBoardState SensorValuesKg TopLeft ws BalanceBoardState SensorValuesKg TopRight ws BalanceBoardState SensorValuesKg BottomLeft ws BalanceBoardState SensorValuesKg BottomRight Q O0 on mets un seuil aux pressions pour ne pas depacer 255 puisque en RGB on peut pas depacer ce seuil If gt 255 Then a 255 End II If e gt 255 Then e 255 End If IT gt 255 Then c
15. en j ges Get D Mom du Port Serie 2 256 C 309 POET LOM Vitesse du Port Serie EF None Device Path MM hids400001124 0000 1000 8000 00805f9b34fb vid0002057e pid0306 836c5227100000 4dle55b2 f16f 11cf 88cb 001111000030 2 Explication du code 1 Sensibilit du robot ici on peut changer la vitesse maximale des deux pourcentages qu on calcule partir des pressions sur la balance board du coup on change la sensibilit des deux moteur qui dirigent les deux roues 2 Choix du port s rie I s agit d une ComboBox qui d tecte tout les ports s ries disponibles dans le pc et donne l utilisateur le choix entre ces derniers et s y connecter l aide d un bouton qui sert aussi de bouton d connexion 3 Choix de la vitesse du port serie I s agit d une combobox qui mets la disposition de l utilisateur le choix entre plusieurs vitesse du port s rie la valeur de 9600 est mise automatiquement si aucune vitesse n est choisie 4 Bouton connexion au robot Ce bouton d clenche le Timer qui envoie les pourcentages de pressions toutes les 100 ms 5 Bouton d connexion du robot Ce bouton arr te le Timer le robot ne recoit donc plus d informations puis on envoi 355 amp 355 pour l arr ter 6 Pourcentage gauche II s agit du pourcentage qu on calcule partir des deux pressions qui correspondent la partie gauche de la balance board et qui correspond aussi la vitesse et la direction de la roue
16. en s r Expliquons un peu tout ce qui se cache derri re cette magie Quand une personne se me debout sur la WII fit les quatre capteurs de pression pr sents sur cette derniere d tecte diff rentes pressions selon la position du corps par rapport au centre de de la WII fit Par exemple si le corps est pench devant les capteurs avant d tectent une plus grande pression que ceux de derri res Les valeurs donn es par chaque capteurs sont envoy en continue l ordinateur via un signal Bluetooth Grace un r cepteur Bluetooth branch sur le PC nous r cup rons les valeurs relev es par les quatre capteurs puis nous fessons des calculs qu on d taillera plus tard pour n envoyer ensuite que deux valeurs pour commander les deux moteurs de notre robot La communication entre le robot et le PC se fait gr ce deux carte FM Radiometrix une connect sur le PC et la deuxi me branch sur le robot C est donc ainsi qu op re notre magie b Mat riel Ch ssis du robot La base du robot est constitu e D un ch ssis Pololu qui consiste en un disque de mati re plastique usin par laser avec un grand nombre de percages permettant de fixer un module Arduino par exemple sur la photo ci dessus c est une carte Duemilanove mais dans notre cas c est une Mega De 2 moteurs r ducteurs courant continu de petite taille 24 x 10 x 12 mm dot s d un rapport de r duction de 30 1 qui peuvent tre aliment s de 3
17. gauche 7 Pourcentage Droite s agit du pourcentage qu on calcule partir des deux pressions qui correspondent la partie droite de la balance board et qui correspond aussi la vitesse et la direction de la roue droite 8 Information de la balance board Ici on expose les quatre pressions sur les capteurs de la balance board et le poids de l utilisateur si il est dessus 9 Unit il s agit d une checkboxe qui permet de passer du kilogramme au pound 10 Centre de gravit de la balance board ce label donne les coordon es du centre de gravit de la balance board 11 Batterie de la balance board I s agit d un affichange qui montre l tat de la batterie de la balance board 12 Simulation du fonctionnement de la balence board II s agit d une simulation de la balance board avec la clart de la couleur qui change en fonction de la pression sur les capteurs de la balence board Analyser les valeurs des diff rents capteurs de la Wii fit 70 63017 e Affichage de wiifit sur l cran avec un changement de l intensit en fonction de la pression exerc e sur chaque capteur On a d cid de repr senter l intensit de la couleur bleu de en fonction de la pression appliqu sur chaque capteur pour aider mieux trouver notre quilibre et diriger notre robot e Explication des diff rents calculs Pour commencer on a d babord ignorer les valeurs dues l impressision des capteurs de la WIIFIT quand perso
18. i on initialise un timer qui va envoy les 2 pourcentages aux robot chaques 100 ms Private Sub Timer Tick ByVal sender s System ObTect Byval A5 System EventArgs Handles Timerl Tick Try RS232 Write pourg amp pourd ecrire dans le port serie convertion des 2 pourcentage en chaine de char pourg String Empty pourd String Empty Catch ex As Exception MsgBox ex ToString End Try End Sub boutton pour se connecter du robot en activant le timer Private Sub Buttonl Click ByVal sender As System Object ByVal e As System EventArgs Handles Buttonl Click Connexion Enabled False Timerl En bled gt True End Sub boutton pour se d connecter du robot en d sactivant le timer Private Sub Button2 Click ByVal sender As System Object ByVal e As System EventArgs Handles Button2 Click Timerl Enabled False RS232 Write 355 amp 355 arretez le robot Connexion Enabled True End sub End Class End Namespace Code en C sur Arduino Hdefine PwmPinMotorD 10 Hdefine PwmPinMotorG 11 Hdefine DirectionPinMotorD 12 Hdefine DirectionPinMotorG 13 void setup Serial1 begin 9600 int vitesse int int int transfo int chaine int tableauvit void loop int kap 100 int vat 2 inti int j int vitD int vitG while Serial1 available gt 0 for j 0 j lt 2 j delay 10 j transfo amp kap 0 amp vat O vitesse vat 0 vat 1 int vitesse int vitD int vitG pinMode PwmPinMoto
19. nge de niveau de sensibilit du robot Private Sub RadioButtonl CheckedChanged ByVal sender As System Object ByVal e As System EventArgs Handles RadioButtonl CheckedChanged f 100 facile End Sub Private Sub RadioButton2 CheckedChanged ByVal sender As System Object ByVal e As System EventArgs Handles RadioButton2 CheckedChanged f 170 intermediaire End Sub Private Sub RadioButton3 CheckedChanged ByVal sender As System Object ByVal e As System EventArgs Handles RadioButton3 CheckedChanged f 255 expert End Sub Private Sub RadioButton4 CheckedChanged ByVal sender As System Object ByVal e As System EventArgs Handles RadioButton4 CheckedChanged f 70 initiation End Sub Private Sub TextBoxl TextChanged ByVal sender As System Ob ect ByVal e As System EventArgs Handles TextBoxl TextChanged If TextBoxl Text Then la condition c est pour eviter 1 interuption de l envoie des donn es au robot quand on efface la case TextBoxl f 0 Else f TextBoxl Text End LE End sub Private Sub UpdateWiimoteChanged ByVal args As WiimoteChangedEventArgs Dim ws As WiimoteState args WiimoteState Select Case ws ExtensionType choix de la balance board comme outil et initialis les variable Dans la cas ou la wiifit sera branch on affiche les pressions sur les capteurs et le poid en kg ou en pound celon le choix de l utilisateur Case ExtensionType BalanceBoard If chkLbs Checked Then lblBBTL Text ws B
20. nne n est dessus C est dire annuler les valeurs qui sont proche du z ro pour ne pas faire bouger le robot quand personne n est sur la WIIFIT on expliquera plus blus bas pourquoi on envoi 355 et non pas 0 Balance Board 3 34814 20 54 2 z 0 1198294 Pourcentages G et D 1 88 0 9849582 355 355 Pounds X 116 5558 Y 56 8158 ADICL pression Comme Indique la photo ci dessus chaque capteur de pression nous donne une valeur A B C D a partir desquels ils faudra calculer 2 pourcentages qui vont d finir la vitesse et le sens des 2 roues du robot Les 2 pourcentages Pourcentage pour la roue droite A B A B C D Pourcentage pour la roue gauche C D A B C D Ce qui nous donne des valeurs comprises entre 1 et 1 Les valeurs n gatives feront tourner la moteur dans le sens inverse de celui des valeurs positives Ensuite on multiplie par 255 puis on d cale les valeurs de 355 vers la droite On a choisi de multiplier par 255 pour faciliter l interpr tation des valeurs re u par le robot puisque les moteurs tournent sur une plage de 255 255 Puis on ajoute 355 aux valeurs calcul es pour n envoyer que des nombres trois chiffres compris entre 100 et 610 Dans ce cas notre z ro devient le 355 Dans notre logiciel on propose de donner le choix a Vutilisateur de choisir les ports serie disponibles sur son pc Pour s y faire on utilise la fonction TO Ports SerialPort GetPortNames de vbexpress qui
21. no par exemple la carte Ardumoto sur Wii Stia Carte Ardumoto Cette carte qui vient s empiler sur la carte principale Mega est ce qui nous permet de contr ler les 2 moteurs courant continu de notre robot Elle s alimente partir de la m me ligne VIN que la carte Arduino Elle dispose de LEDs bleu et jaune qui indiquent la direction active sens de rotation des moteurs La commande moteur fix e OUT1 2 est connect e la ligne num rique 12 direction A et a la ligne num rique 10 MID A La commande moteur fix e OUT3 4 est connect e la ligne num rique 13 direction B et a la ligne num rique 11 MID B Carte Radiometrix ondes radio Un module TDL2A 433 9600 bds Un circuit d interfacage MAX232 Un connecteur SUB D 9 broches Une led de visualisation permettant de valider la r ception de donn es Un tage de r gulation Un connecteur pour alimentation externe via une pile 9 V Une antenne avec raccordement sur connecteur SMA Radiometrix 3 TDi2 433 9 TOLA R5232 Interface Board Frequency 49 284 AM ANDI Cet ED 2 platines TDi2 433 pourront tre utilis es au moyen d un terminal de saisie type HyperTerminal par exemple pour effectuer des essais de transmission de fichiers entre PC Il vous sera galement possible d effectuer des tests de communication entre 2 platines TDi2 433 ou entre une platine TDi2 433 et un ou plusieurs modules TDL2A 433 Cette
22. om DO to 2545 analogirite ledPin fadeValue wait for 30 milliseconds to see the dimming effect delay 3s0 ff fade out from max to min in increments of 5 points forfint fadeValue 255 fadeValue gt 0 fadeValue sets the value rande from O to 255 Actions en cours analonlriteftledPin fadeValuei po Console d affichage des messages de compilation Terminal s rie Un terminal s rie est int gr dans le logiciel Arduino Il permet l affichage de messages textes en provenance la carte Arduino et l envoi de caract res vers celle ci Le terminal permet de facilit la mise au point des programmes en affichant sur le PC l tat des variables de r sultats de conversions Analogique Num rique Il est essentiel pour am liorer tester debugger et am liorer ses programmes Envoi des informations Champ de saisie des informations envoyer la carte Arduino Zone d affichage des informations recues Serial port TOM not found Did you select the right one Choix du d bit de la communication Transf rer des programmes vers la carte Arduino 1 Saisie du programme et verification du code On crit le programme et on v rifie si la syntaxe est correcte en le compilant bouton Verify t 4 Si tout est correct aucun message d erreur n apparait dans la console et Done compiling s affiche indiquant que la v rification s est d roul e sans probleme 2
23. om WiimoteLib for more information NNN CELLER Imports Microsoft VisualBasic Imports System Imports System Drawing Imports System Drawing Imaging Imports System Windows Forms Imports WiimoteLib Namespace WiimoteTest D claration de variables Partial Public Class WiimoteInfo Inherits UserControl Private Delegate Sub UpdateWiimoteStateDelegate ByVal args As WiimoteChangedEventArgs Private Delegate Sub UpdateExtensionChangedDelegate ByVal args As WiimoteExtensionChangedEventArgs Dim com As System IO Ports SerialPort Private b As New Bitmap 256 192 PixelFormat Format24bppRgb Private g As Graphics Private mWiimote As Wiimote Dim a c d f As Long Dim pourg As String Dim pourd As String Public Sub New charger l image de la wiifit InitializeComponent g Graphics FromImage b End sub Public Sub New ByVal wm As Wiimote initialisation de la wiifit ici on va l appel wm Me New mWiimote wm End Sub Public Sub UpdateState ByVal args As WiimoteChangedEventArgs code r cuper sur coding4fun gui utilise la librarie wii BeginInvoke New UpdateWiimoteStateDelegate AddressOf UpdateWiimoteChanged args End Sub Public Sub UpdateExtension ByVal args As WiimoteExtensionChangedEventArgs code r cuper sur coding4fun qui utilise la librarie wii BeginInvoke New UpdateExtensionChangedDelegate AddressOf UpdateExtensionChanged args End Sub changement a effectuer quand l utilisateur cha
24. premiers essais Avant de se lancer dans la r daction du code pour l application d finitive nous avons d abord d cortiquer notre projet en plusieurs missions Ensuite nous avons essay d accomplir chaque mission s par ment R cup ration de l application de Codingforfun com qui gere la communication entre la WIIFit et le PC all ger le code Wiimote Wiimote Accel IR Accel Values IR IR2 IR3 IRA Nunchuk IR1Raw Accel Values IR Raw IR3Raw IR4Raw Joystick Values im Fini Hira c ER 7 IR 4 F z capture d cran du programme avant nos modifications Le programme que nous avons r cup r depuis le site www codingforfun com pouvait g rer la communication entre tous les accessoires de la WII et le PC or que nous utilisons qu un seul la WIIFit Pour all ger le programme il ne fallait pas juste supprimer les parties du code concernant les autres accessoires mais aussi fait attention au variables utilis es dans diff rentes parties du code pour ne conserver que les parties vitales du code I fallait bien s r comprendre code et assimiler sa logique afin de r utiliser convenablement les parties qui nous int ressent qui sont encadr es sur la capture d cran ci dessus D couvrir la communication entre 2 PC gr ce aux ports RS32 gt tester les cartes sans fils d Terminal v1 9b 20041226 by Br y ES Connect amp none RISACTS C XONA ASOFF RTS CTSX DNZX FF
25. rD OUTPUT pinMode PwmPinMotorG OUTPUT pinMode DirectionPinMotorD OUTPUT pinMode DirectionPinMotorG OUTPUT if vitD 0 amp amp vitG OY analogWrite PwmPinMotorD 0 digitalWrite DirectionPinMotorD HIGH analogWrite PwmPinMotorG 0 digitalWrite DirectionPinMotorG HIGH j else if vitD gt 0 if vitG gt O analogWrite PwmPinMotorD vitD digitalWrite DirectionPinMotorD HIGH analogWrite PwmPinMotorG vitG digitalWrite DirectionPinMotorG HIGH j else analogWrite PwmPinMotorD vitD digitalWrite DirectionPinMotorD HIGH analogWrite PwmPinMotorG vitG digitalWrite DirectionPinMotorG LOW j else I if vitG gt O analogWrite PwmPinMotorD vitD digitalWrite DirectionPinMotorD LOW analogWrite PwmPinMotorG vitG digitalWrite DirectionPinMotorG HIGH j else I analogWrite PwmPinMotorD vitD digitalWrite DirectionPinMotorD LOW analogWrite PwmPinMotorG vitG digitalWrite DirectionPinMotorG LOW j j j int transfo int chaine int tableauvit tableauvit 0 chaine 0 53 50 tableauvit 1 chaine 1 53 50 j
26. s essais Programmation du robot Arduino Nous avons utilis le logiciel Arduino disponible sur le site officiel d Arduino http arduino cc pour programmer Wii Stia Cette application Java open source fonctionne sur tous les systemes d exploitation et permet de programmer des modules Arduino dans notre cas la carte Arduino Mega Ce logiciel permet D crire et de compiler des programmes pour la carte Arduino De se connecter avec la carte arduino pour y transf rer nos programmes Et de communique avec la carte Le langage de programmation utilis est une variante all g e du C et du C restreinte a l utilisation d un module Arduino de ses entr es sorties et des librairies associ es Nous avions d j quelques bases en langage C gr ce nos cours de programmation au 1 semestre d Ei2 ce qui nous a permis de nous familiariser assez rapidement avec le logiciel et donc de d velopper le programme de notre robot Pr sentation du programme Espace de d veloppement int gr Barre de menus F Fading Arduino 001 File Edit Sketch Tools Help SGT ESME Barre de boutons Onglet des fichiers ouverts int ledPin 9 LED connected to digital pin 9 void setup i f f nothing happens in setup void loopi Fen tre d dition des programmes f f fade in from min to max in increments of 5 points forfint fadeValue 0 fadeValue lt 255 fadeValue ma sets the value range fr
27. te Arduino pendant 3 s ances nous avons effectu des tests sur le port s rie d une carte Duemilanove dui n ont pas aboutis nous avons t dans Vobligation de changer de carte Nous avons utilis par la suite une carte Arduino Mega D autre part une des deux cartes FM est tomb e en panne durant le projet nous avons donc command une autre carte que nous avons recue tardivement Dans l ensemble ce projet tait b n fique pour le groupe Nous avons eu l id e avec Mr Lagrange d exposer Wii Stia a la journ e porte ouverte ca attirera les curieux et surtout a montrera l aboutissement d un projet r alis compl tement par des tudiants Pour finir nous nous sommes rendus compte au cours de ce projet qu il y avait d autres pistes a explorer dans la m me voie Remplacer le robot par une voiture un avion Commander un robot avec une WiiMote Pour finir nous proposons de monter un club de robotique au sein de l Istia En effet un tel club pourra initier les tudiants aux nouvelles technologies d velopper leurs sens de cr ativit et apprendre en dehors du cadre d un cours e Annexes Code sur VB Express OT TN ALAA NNN NNN oan MultipleWiimoteForm cs Managed Wiimote Library Tester Written by Brian Peek http www brianpeek com for MSDN s Coding4Fun httpt msdn microsoft com codingZfun i Visit http blogs uwsdsu comycodingdrun archive 2007 03 24 19879033 4989pX and http www codeplex c
28. us d clarons les deux fonctions vitesse et transfo qui vont nous servir traiter les donn es recues et les envoy es sur les moteurs R ception des donn es while 5eraialil1 a ailabler u I for j20 4x6 jor delavilOlv Serial print iEap 11 4681 La carte re oit 6 caract res ces sont des chiffres cod s en Ascii Une fois que la carte re oit quelque chose sur son port s rie 1 la carte lit les caract res un par un avec un intervalle de temps de 10 ms Nous utilisons instruction read pour lire les caract res qui sont sur le port s rie 1 Cet intervalle est plus petit que l intervalle de temps d envoi des donn es Les caract res sont gard s en m moire dans un tableau Une fois que ces six chiffres sont trait s la carte enregistre les suivants et ainsi de suite Traitement des donn es Les donn es recues par la carte seront trait es avant d tre envoy es aux moteurs En effet les trois premiers caracteres repr sentent la vitesse de la roue droite les trois suivants repr sentent la vitesse de la roue gauche Pour d composer traiter et envoyer sur les moteurs les donn es nous avons programme deux fonctions la fonction vitesse et la fonction transfo La fonction transfo int transfofint chaine int tableauvit tableauvit O fchaine O0 45 100 chaine l 481 10 chaine O0 48 355 tableauvit l chaine 3 46 100 chaine 4 4o l0 chaine 5 45 355
29. x 0 on donne le Tocus al premier port du combobox Catch message d erreur si aucun port COM n est d tect sur la machine et on ferme l application MsgBox Il semble ne pas y avoir de port RS232 sur votre machine cette application ne pourra pas marcher Application Exit End Try End Sub cette partie du code correspond a la programmation du port serie et la connexion robot Private Suk Connexion Click ByVal sender As System Ob ect ByVal e As System EventArgs Handles Connexion Click Buttonl Enabled False Button2 Enabled False If Connexion Text Connexion Then Try on ouvre le port d sir RS252 PortName Choix Por Test RS232 Open Catch message d erreur si l on ne peut pas ouvrir le port MsgBox Il semble que le port choisi est d ja en cours d utilisation par une autre application merci de choisir un port libre pour se connecter Exit Sub End Try Vitesse Text RS232 BaudRate amp Space 1 amp Bauds on affiche la vitesse du port Connexion Text D connexion on change l intitul du bouton Choix Port Enabled False on d sactive le combobox pendant l utilisation du port Else Vitesse Text on efface la vitesse Connexion Text Connexion on change l intitul du bouton RS232 Close on ferme le port Choix Port En bl d True on reactive Le combobox End If If Connexion Text D connexion Then Buttonl Enabled True Button2 Enabled True End Ir End Sub ic
Download Pdf Manuals
Related Search
Related Contents
Samsung LW32A33W Инструкция по использованию A guide for those considering birth control with Mirena® Maytag Refrigerator MFI2269VEM User's Manual ダウンロード SBS TETRAV2USB2A mobile device charger mise en garde Recherche artistique du conteur AnneLope[...] Copyright © All rights reserved.
Failed to retrieve file