Home
Projet Robus Armus - PascalNet.Net Blog
Contents
1. if kiwi getButtonState BBLU if tableturn turn turn kiwi setPin LBLUE 1 AUDIO PlayMP3File bouton3 mp3 THREAD_MSleep 250 kiwi setPin LBLUE 0 jelse lose true break E Le bouton bleu est appuy 2 1 THREAD MSleep 50 if lose Si la personne n a pas fait la bonne s quence AUDIO PlayMP3FileAndWait pasbonnesequence mp3 Le robot parle pour dire que ce n tait pas la bonne s quence if memturn gt 9 Si le score est plus haut que 10 s quences AUDIO PlayMP3FileAndWait felicitationbonscore mp3 On dit l enfant que son score est tr s bon jelse AUDIO PlayMP3FileAndWait bravoamelioration mp3 Sinon on dit l enfant Bravo mais il y a place a am lioration writesimon memturn 1 On crit le score que obtenu par l enfant dans un fichier kiwi setPin FLY 1 On fait battre des ailes et clignoter les lumi res du robot kiwi blinkmode 2 THREAD_MSleep 1000 kiwi blinkmode 4 THREAD_MSleep 1000 kiwi blinkmode 0 THREAD_MSleep 1000 kiwi setPin FLY 0 turn 0 On r initialise tout pour que le robot pour continuer une nouvelle partie memturn 1 lose false THREAD_MSleep 1000 memturn turn 0 12 void dance Fonction danser kiwi mindist 20 Distance minimale d vitement while 1 if kiwi dance THREAD MSleep 1000
2. jelse La mauvaise r ponse dit mauvaise r ponse kiwi setPin LRED 0 kiwi setPin LGREEN 1 goodanswer false L enfant a choisi la mauvaise r ponse AUDIO PlayMP3FileAndWait mauvaisereponse mp3 Le robot if kiwi getButtonState BRE AUDIO StopPlayback kiwi setPin LGREEN 0 break D v rification du bouton faux kiwi blinkmode 0 if answer false V rification si l enfant la bonne r ponse al atoire f licite l enfant jelse break kiwi setPin FLY 1 On bat des ailes et une voix kiwi setPin LGREEN 0 kiwi setPin LRED 1 goodanswer true AUDIO PlayMP3FileAndWait bonnereponse mp3 switch randomvar case 0 AUDIO PlayMP3FileAndWait bravo mp3 AUDIO PlayMP3FileAndWait rire7 mp3 break case 1 AUDIO PlayMP3FileAndWait felicitation mp3 AUDIO PlayMP3FileAndWait rire8 mp3 break case 2 AUDIO PlayMP3FileAndWait excellent mp3 AUDIO PlayMP3FileAndWait rire10 mp3 break kiwi setPin LRED 0 kiwi setPin FLY 0 Mauvaise r ponse kiwi setPin LGREEN 0 kiwi setPin LRED 1 goodanswer false AUDIO PlayMP3FileAndWait mauvaisereponse mp3 kiwi setPin LRED 0 if kiwi getButtonState BBLUE Si l enfant appuie sur le bouton bleu goto repeat
3. Jouer une musique en faisant clignoter des lumi res al atoirement et en battant des ailes istance du sonar droi plus petite que distance du sonar gauche Vrai y Faux Robot tourne vers la droite istance du sonar droi plus grande que distance du sonar gauche Vrai y Robot tourne vers Faux la gauche La distance des deux sonars est grande Vrai y Faux On fait avancer le robot tout droit Le robot est arr t pendant un certain temps et recul par gt la suite pour trouver quelque chose d autre suivre C Fin de la fonction de suivie gt X 7 Comme c est le cas pour la fonction vitement le robot fait jouer une musique diff rente tout en battant des ailes et en faisant clignoter al atoirement ses lumi res afin de lui donner l impression qu il est vivant Dans ce mode le robot v rifie la distance 17 du sonar droit et la compare avec celle du sonar gauche Si la diff rence de la distance entre les deux sonars est plus grande que 20 centim tres alors le robot tourne en direction du sonar qui mesurait la distance la plus courte Lorsque le robot s arr te devant un obstacle il v rifie si celui ci est immobile pour valuer s il fait face un mur par exemple Le robot s arr te pendant un certain temps et si la distance de l objet ne change pas alors il recule en tournant pour lui
4. d une chauve souris kiwi blinkmode 3 Mode de clinotement des DELS al atoire kiwi setPin FLY 1 On fait battre des ailes le robot kiwi avoid true On met la variable avoid true break On quitte le switch Les m mes types de comementaires s appliquent pour le reste des modes case 2 Mode suivi THREAD Destroy amp thread avoid On d truit la fonction d vitement afin qu elle n agisse plus sur le robot kiwi reset thread follow THREAD CreateSimple follow AUDIO PlayMP3FileAndWait modesuivi mp3 AUDIO PlayMP3File batman mp3 kiwi blinkmode 0 kiwi setPin FLY 1 kiwi follow true break case 3 Mode questions THREAD Destroy amp thread follow kiwi reset thread askquestion THREAD CreateSimple askquestion AUDIO PlayMP3FileAndWait modequestion mp3 AUDIO PlayMP3File quiz mp3 kiwi askquestion true break case 4 Mode jeu Simon THREAD Destroy thread askquestion kiwi reset thread simon THREAD CreateSimple simon AUDIO PlayMP3FileAndWait modesimon mp3 kiwi simon true break case 5 Mode danser THREAD Destroy thread simon kiwi reset thread dance THREAD CreateSimple dance AUDIO PlayMP3FileAndWait modealeatoire mp3 kiwi blinkmode 4 kiwi setPin FLY 1 kiwi dance true AUDIO PlayMP3File canttouchthis mp3 break case 6 Mode autonomie THREAD Destroy amp thread dance kiwi reset AUDI
5. 10 le robot dit Bravo mais tu peux t am liorer tandis que pour un r sultat sup rieur 10 il dit bravo tu es bon Le robot bat ensuite des ailes et fait clignoter les lumi res pour f liciter l enfant Mode danse a de la fonction To Jouer de la musique en faisant clignoter des lumi res et en battant des ailes Le robot se d place al atoirement sur des petits intervalles Fin de la fonction danser Ce mode fait danser le robot sur une musique qui bouge Le robot bat des ailes et fait clignoter les lumi res tout en se d pla ant al atoirement sur de petites distances afin de lui donner l impression de danser 21 Mode autonomie D but de la fonction autonomie Y Le robot se d place al atoirement Y Le robot se met en mode suivie Le robot s arr te et pose des questions Le robot danse Fin de la fonction autonomie Dans le mode autonomie le robot se d place al atoirement dans la pi ce pendant un certain temps pour ensuite tomber en mode suivi Le robot suit une personne et s arr te pour lui poser trois questions Lorsque la personne a fini de r pondre aux trois questions le robot se met danser pendant 20 secondes pour ensuite continuer le cycle Ce mode permet au robot de passer lui m me par diff rentes actions afin de le rendre autonome pour qu il puisse interagir av
6. Si c est le mode suivi timemusic 100 On additionne une variable temps if timemusic gt musicduration Si la variable temps d passe la dur e de la musique AUDIO PlayMP3File slowride mp3 On fait rejouer la musique en boucle timemusic 0 musicduration 238000 if mode 2 timemusic 100 if timemusic gt musicduration AUDIO PlayMP3File batman mp3 timemusic 0 musicduration 55000 if mode 6 timemusic 100 if timemusic gt musicduration AUDIO PlayMP3File canttouchthis mp3 timemusic 0 musicduration 257000 Fin du code de r p tition de la musique THREAD MSleep 100 Chaque boucle doit avoir une fonction permettant de la faire dormir afin de ne pas prendre 100 du CPU FPGA StopAll Arr te les circuits int gr s de la carte armus return 0 Ceci est la fonction permettant de changer de mode en appuyant sur le bouton mode cette fonction est appel e avec en param tre le num ro du mode 7 void setMode int mode switch mode case 1 Mode vitement kiwi reset Permet de r initialiser les variables du robot thread avoid THREAD CreateSimple avoid On cr e le thread d vitement d obstacle AUDIO PlayMP3FileAndWait modeevitement mp3 Parole permettant de savoir dans quel mode le robot vient de se mettr AUDIO PlayMP3File explication mp3 Le robot explique le principe des sonars
7. Susciter l int r t de l enfant interagir de fa on compr hensible du point de vue de l enfant tre robuste et s curitaire Permettre d valuer la progression de l enfant tre document de fa on ad quate mode d emploi manuel de service tre facile d utilisation Doit parler ou mettre des sons Doit tre ducatif tre capable d interagir d au moins 2 fa ons diff rentes avec l humain Minimum de 4 r actions diff rentes une bonne ou mauvaise r ponse Minimum de 4 questions et maximum de 10 Le robot doit choisir de fa on al atoire ses questions parmi son r pertoire Esth tique simple mais attirante Des points suppl mentaires seront accord s pour la qualit du d placement du robot Les r glements du concours respecter sont les suivantes Les quipes participantes doivent avoir un maximum de 10 membres Il est possible d obtenir de l aide ext rieure pour l esth tisme et la m canique du robot Les dimensions maximales du robot sont de 1 5 x 1 5 x 2 5 pieds cette derni re mesure repr sentant la hauteur Un poids maximal de 45 lb est impos Les commandites sont autoris es et g r es par les quipes Toutefois ces d marches ne sont pas en lien avec le concours robot jouet De plus aucun espace sp cial n est offert cette fin Une fiche descriptive du robot est requise Un espace de 8 pieds par 6 pieds est disponible pour
8. break timewait question if timewait On r p te la question 1 Si la musique d attente se termine on r p te la gt 370 1 goto repeat break THREAD MSleep 100 On oublie pas de mettre un sleep dans les boucles afin de ne pas utiliser 100 du CPU writeanswer TableQuestion numquestion goodanswer On crit la r ponse de l enfant dans un fichier statistique switch TableQuestion numquestion On dit plus de d tail sur la question pos e l enfant case 0 AUDIO PlayMP3FileAndWait reponsel mp3 break case 1 AUDIO PlayMP3FileAndWait reponse2 mp3 break case 2 AUDIO PlayMP3FileAndWait reponse3 mp3 break case 3 AUDIO PlayMP3FileAndWait reponse4 mp3 break case 4 AUDIO PlayMP3FileAndWait reponses mp3 break case 5 AUDIO PlayMP3FileAndWait reponse6 mp3 break case 6 AUDIO PlayMP3FileAndWait reponse7 mp3 break case 7 AUDIO PlayMP3FileAndWait reponse8 mp3 break case 8 AUDIO PlayMP3FileAndWait reponse9 mp3 break numquestion On incr mente la prochaine question if kiwi autonomous Si le robot est en mode autonome on pose seulement trois questions threequestion if numquestion gt NQUEST 1 Si le robot a pos les 9 questions on revient au d but de la fonction numquestion 0 threequestion 0 if threequestion gt 2 Si le robot a poser trois questions en mode auto
9. else THREAD MSleep 50 if kiwi getSonar 1 lt kiwi mindist amp amp kiwi getSonar 1 0 Si le sonar gauche est plus petit que la distance minimale kiwi setSpeed SYSTEM Random 90 SYSTEM Random 90 On tourne droite al atoirement pendant un court lapse de temps THREAD_MSleep 250 jelse if kiwi getSonar 2 lt kiwi mindist amp amp kiwi getSonar 2 0 Si le sonar droit est plus petit que la distance minimale kiwi setSpeed SYSTEM Random 90 SYSTEM Random 90 On tourne gauche al atoirement pendant un court lapse de temps THREAD_MSleep 250 jelse kiwi setSpeed SYSTEM Random 90 SYSTEM Random 90 On fait avancer le robot par petit pas al atoires void autonomous Fonction d autonomie while 1 if kiwi autonomous THREAD_MSleep 1000 jelse kiwi reset Le robot pass n mode vitement d objet pendant 10 secondes kiwi avoid true kiwi setPin FLY 1 thread avoid THREAD CreateSimple avoid kiwi blinkmode 3 AUDIO PlayMP3File slowride mp3 THREAD MSleep 10000 THREAD Destroy amp thread avoid kiwi reset AUDIO PlayMP3File batman mp3 kiwi setPin FLY 1 kiwi blinkmode 3 kiwi follow true Le robot passe en mode suivie pendant 10 secondes thread follow THREAD CreateSimple follow THREAD MSleep 10000 THREAD Destroy amp thread follow kiwi reset kiwi askquestion true Le robot pose trois questions
10. 6 if timestop lt 4 kiwi setSpeed 100 100 Le robot recule pendant un certain temps if timestop gt 4 kiwi setSpeed 100 0 Le robot se tourne THREAD_MSleep 500 timestop timestop 0 kiwi setSpeed 0 0 Sinon on arr te le robot void askquestion Fonction questions int numquestion 0 Variable pour tenir en m moire quel questions on est rendu int threequestion 0 Variable servant pour poser 3 questions dans le mode autonome int TableQuestion NQUEST 0 Table al atoire des num ros de questions bool answer Variable stockant la r ponse la question bool goodanswer Variable de l enfant permettant de savoir si sa r ponse est exacte while 1 if kiwi askquestion int numquestion 0 int threequestion 0 int TableQuestion NQUEST 0 THREAD MSleep 1000 jelse if numquestion 0 Si nous sommes la premi re question le robot se pr sent t explique l enfant le principe de ce mode AUDIO PlayMP3FileAndWait bonjour mp3 AUDIO PlayMP3FileAndWait appellekiwi mp3 if kiwi autonomous AUDIO PlayMP3FileAndWait 3questions mp3 jelse AUDIO PlayMP3FileAndWait 9questions mp3 AUDIO PlayMP3FileAndWait boutonsfauxvrai mp3 AUDIO PlayMP3FileAndWait boutonrepete mp3 if numquestion 0 int numquestion 0 int threequestion 0 int TableQuestion NQUEST
11. L ordre des plaquettes en commen ant par le bas est Robus Armus la carte o et la plaque d exp rimentation Logiciel La programmation du robot se fait l aide du logiciel C Il est possible de le programmer directement avec un ordinateur ou l aide d une cl USB Lorsque le robot d marre les ailes ainsi que toutes les DELs sont activent d marrage d Armus Ensuite il faut peser sur le bouton user situ sur la plaque d exp rimentation afin d int grer le programme au robot Ensuite il est pr t l utilisation Ajustements Il est possible d ajuster le volume des haut parleurs l aide de potentiom tre R55 de la plaquette Robus Il est possible d ajuster la tension d alimentation du moteur des ailes AVcc l aide du potentiom tre R16 Il est tr s fortement d conseill de descendre cette tension en bas de 6V car le moteur des ailes aura de la difficult tourner convenablement Principe de montage Ins rer la coque en faisant attention de ne pas accrocher les plaquettes lectroniques La coque doit tre positionn e afin que les ailes puissent tre appuy es l endroit pr vu Ins rer les ailes en utilisant dans l ordre espaceur premi re aile rondelle deuxi me aile bloqueur Le tout doit tre suffisamment serr tout en vitant les frottements Branchez le connecteur DB 25 reliant les circuits lectroniques Il faut galement s assurer que les connexions
12. a tr s bien fonctionn galement Cependant nous avons d tester diff rentes valeurs de r sistances afin de trouver un niveau d intensit lumineuse ad quat pour nos DELs car nous ne voulions pas blouir les enfants lors de la pr sentation Un petit circuit r sistif a t mis en place pour faire fonctionner nos boutons poussoirs rien de bien compliqu Finalement nous avons test nos sonars un l ment essentiel au bon fonctionnement de notre robot Les sonars utilis s nous taient fournis par le d partement Nous n avions donc pas le choix des sonars La position des sonars devait tre la plus haute possible pour ne pas interf rer avec le sol 25 Nous n tions pas limit s avec les distances d op ration du sonar puisque sa plage de distances tait amplement suffisante moins de 5 cm plus de 3 m tres Ils ont tr s bien fonctionn et leur simplicit d utilisation nous a favoris la t che apr s avoir effectu les mises jour de la plaquette Armus Pour permettre une grande facilitation de branchement et pour notre espace restreint nous sommes venus la conclusion que nous devions souder tous les composants lectroniques sur un connecteur DB 25 Une fois la structure de notre chauve souris termin e il ne nous restait qu effectuer la programmation Nous avons constat qu il y avait souvent des d faillances ce qui n cessitait fr quemment des tests tests de d placement simple tests de son t
13. ainsi que toutes les lumi res vont se mettre en marche pendant le d marrage de celui ci Veuillez patienter 2 Lorsque tout s arr te attendez encore environ 10 secondes afin de laisser le temps au programme de se charger 3 Vous pouvez maintenant lancer le programme l aide du bouton situ l int rieur de la trappe dorsale Il s agit d un tout petit bouton rouge situ sur la plaquette de montage des circuits Une fois les yeux allum s par l action de ce bouton le robot est d marr en mode Arr t expliqu la page suivante Les boutons Le robot chauve souris poss de 4 boutons ext rieurs 1 bouton vert 3 bouton bleu cach sous la 2 bouton rouge 4 bouton mode fourrure Le bouton mode est situ en arri re de la chauve souris sur son dos Il permet de changer le mode de Les modes de fonctionnement se sch ma suivant fonctionnement de la chauve souris s lectionnent de fa on cyclique selon le Mode Arr t gt Mode vitement gt Mode Chasse gt Mode Questions gt Mode Simon gt Mode Danse gt Mode al atoire gt Les boutons bleu rouge et vert sont situ s sur le front de la chauve souris dans une disposition triangulaire et occupent diverses fonctions d pendamment du mode en cours Les modes Le mode Arr t est le mode de d part et ne fait absolument rien C est en quelque sorte un mode repos o
14. avons tout de suite choisi de faire le corps le plus petit possible pour obtenir des ailes pas trop longues et qui gardent une bonne proportionnalit avec le corps Ensuite nous avons choisi le mat riau dans lequel nous allions fabriquer cette coque Nous avons opt pour le papier m ch appliqu sur de la cage poule comme moule pour sa facilit de construction et de manipulation En m me temps il fallait installer un support pour le syst me de battement d ailes sur la plate forme m canique du robot Afin d conomiser l espace au maximum et de faire notre robot le plus petit possible nous avons choisi de reconfigurer le montage propos d empilement de cartes lectroniques On a appos la plaque de plexiglas d j de la bonne taille directement au dessus de Robus pour s en servir comme support Nous nous sommes servis de cette plaque afin de fixer notre support interne Ainsi nous tions le plus bas possible Des trous furent perc s dans cette plaquette de plexiglas afin d y visser une structure dessus faite partir de Meccano Les Meccanos furent choisis pour leur facilit d utilisation aucune scie ni soudure requise et leur solidit Beaucoup de montage et de d montage furent n cessaires avant d obtenir un support qui permettait aux ailes de bien se mouvoir Par la suite un support viss au plexiglas au dessus d Armus fut install pour le moteur ll ne restait alors qu raccorder le moteur aux ailes ce
15. de la programmation notre robot tait alors 100 fonctionnel et nous tions donc pr s la comp tition Nous avions donc toutes les chances de notre c t Conclusion En fin de compte l ch ancier fut assez bien respect si ce n est que certains retards qui ont t compens s par l avancement plus rapide de d autres sections De plus il est noter que la programmation de ce mat riel fut tr s ardue puisqu il fallait optimiser le code pour viter les erreurs du type SPI_Init qui indiquent une surcharge dans le bus de donn es Le syst me de battement des ailes a n cessit beaucoup plus de temps qu initialement pr vu consid rant les nombreux ajustements n cessaires afin d assurer un bon glissement et un m canisme qui fonctionne la perfection Avoir eu plus de temps nous aurions aim ajouter des d tecteurs suppl mentaires sur les autres c t s du robot afin de permettre une meilleure d tection des obstacles Sommes toutes nous sommes assez satisfaits du r sultat 27 R f rences R f rences lectroniques Pour le Pont H http focus ti com lit ds symlink sn754410 pdf Pour le transistor 2N3904 http www fairchildsemi com ds MM MMBT3904 pdf R f rences manuscrites Guide tudiant S1 Manuel d assemblage Robus 28 Annexe 1 Manuel de service Pr face Le projet pr sent dans ce manuel est un robot jouet con u par les tudiants au baccalaur at en g nie lectrique
16. en premi re session Ce robot est en fait une chauve souris qui a pour but d int resser les enfants en bas ge l ing nierie Notre chauve souris pr sente donc plusieurs modes afin de r aliser cet objectif ces modes sont pr sent s dans le guide de l utilisateur Dans ce manuel vous retrouverez le principe de fonctionnement du robot les diff rents ajustements effectuer son principe de montage et de d montage un proc d de r paration ainsi que plusieurs sch mas qui pourraient vous tre utiles Principe de fonctionnement lectrique tous les sch mas lectriques sont fournis en annexe Contr le du moteur des ailes Le moteur des ailes est contr l par un pont en H via une sortie de la plaquette Armus En fait il sert donner suffisamment de courant au moteur pour fonctionner Ce n est donc pas la sortie de la plaque Armus qui fournit le courant mais plut t l alimentation Circuit des DELs Les DELs sont ins r es dans un petit circuit a transistor Ce dernier fonctionne en commutation c est a dire qu il ne possede que deux modes satur ou bloquant Le courant dans les diodes est contr l par une r sistance en s rie avec ces diodes Bien entendu la r sistance la base du transistor sert faire saturer le transistor Circuit des boutons Dans le circuit des boutons il y a une r sistance reli e la r f rence en parall le avec chaque bouton Cela vite que les entr es
17. et les boutons vert vrai et rouge faux clignotent alternativement Une fois la r ponse donn e le robot f licitera l utilisateur par une commande vocale un effet lumineux et un battement des ailes Ensuite une nouvelle question est pos e Si l utilisateur ne r pond pas avant la fin du th me musical la question est r p t e Le mode Simon est le cinqui me mode et est une reprise du populaire jeu Simon Il s agit d un jeu ducatif faisant appel la m moire Le robot indique une s quence de couleurs ayant chacune leur son correspondant Vous devez r p ter celle ci par les boutons bleu vert et rouge Le mode Danse est le sixi me mode La chauve souris ex cute des mouvements al atoires durant une chanson afin d imiter une danse C est purement un mode divertissant Le mode Autonome est le septi me et dernier mode La chauve souris ex cute les modes vitement Chasse et Questions tour de r le Annexe 3 Code Source du robot Gotham Project Kiwi la chauve souris robotique gothamproject cpp Version 1 Dec 2008 Author Pascal Guay include lt libarmus h gt Librairie armus include lt fstream gt Librairie utilis e pour crire dans un fichier using namespace std Liste des sorties des lumi res define LRED 9 DEL du bouton rouge define LGREEN 10 DEL du bouton vert define LBLUE 11 DEL du bouton bleu define LEYES 12 DELS des ye
18. qui fut une t che beaucoup plus difficile que pr vu En effet les 10 recherches furent longues pour trouver la bonne combinaison de boulons et de vis afin d viter que les ailes se d vissent lors de leur fonctionnement Il fallait galement garder un l ger espace afin de permettre une rotation libre au niveau de la bielle qui aurait t impossible si le tout avait t bien serr Le syst me d ailes moteur fonctionnait donc sur la base suivante 11 Guide Rondelle Bielle ALLI LULA DDD 5 Bloqueur anti retour Rondelle Aile1 Aile 2 en plastique Par la suite une autre t che difficile apparut lorsque vint le temps d installer l lectronique sous la coque l espace limit par notre choix de faire la taille du robot le plus petit possible a rendu la t che assez difficile Plusieurs essais furent tent s jusqu ce qu une solution permette un maximum d optimisation de l espace l int rieur de la coque afin de laisser un espace accessible sur le dessus pour le c blage Apr s laccomplissement de cette t che la structure m canique et informatique tait compl t e ce qui inclut videmment la coque ext rieure C tait maintenant l heure d habiller l ext rieur de la coque de notre robot afin de lui donner l apparence souhait e Pour se faire une protub rance au niveau du museau fut model e par l ajout de mati re bourrant sac de plastique boule de
19. setPin LGREEN 1 kiwi setPin LEYES 1 CI T ct EF THREAD MSleep 500 kiwi setPin LRED 0 kiwi setPin LBLUE 0 kiwi setPin LGREEN 0 kiwi setPin LEYES 0 THREAD MSleep 500 break void Robots reset Fonction servant r initialiser les variables du robot kiwi setSpeed 0 0 kiwi avoid false kiwi follow false kiwi askquestion false kiwi simon false kiwi dance false kiwi blinkmode 0 kiwi setSpeed 0 0 kiwi setPin LEYES 1 kiwi setPin FLY 0 kiwi setPin LRED 0 kiwi setPin LBLUE 0 kiwi setPin LGREEN 0 AUDIO StopPlayback bool Robots getButtonState int num V rification de l tat d un bouton if DIGITALIO Read num return true Retourne vrai si le bouton est appuy jelse return false Retourne faux si le bouton n est pas appuy void writeanswer int question bool success Fonction servant crire les statistiques dans le fichier ofstream OutputFile media usb0 reponses txt ios app On ouvre le fichier en se positionnant a la fin avec la commande ios app if success Si l enfant a r pondu la bonne r ponse on crit dans le fichier le de la question suivi du chiffre 1 OutputFile lt lt question lt lt Mi lt lt 1 lt lt jelse Si l enfant n a pas r pondu la bonne r ponse on
20. seulement les yeux sont allum s Le mode vitement est le second mode et active le d placement de la chauve souris Le d placement se fait en ligne droite jusqu ce qu un obstacle soit d tect la d tection d un obstacle celui ci recule en faisant un arc afin de s orienter dans une nouvelle direction et ensuite repartir en ligne droite jusqu au prochain obstacle d tect par les sonars dans les oreilles En tout temps la chanson Slow ride de Foghat joue un bon vieux rock que l on peut retrouver dans le jeu vid o Guitar Hero 3 Le mode Chasse est le troisi me mode et correspond l inverse du pr c dent La chauve souris se d place jusqu ce qu elle d tecte un obstacle Elle se d placera alors vers celui ci et le suivra jusqu l atteinte d une distance minimale afin de ne pas foncer dessus Si l obstacle est passager comme une personne qui passait devant par exemple elle poursuivra son chemin Si toutefois l obstacle est fixe elle attendra quelques instants puis reculera en d crivant un arc pour ensuite partir dans une nouvelle direction En tout temps la chanson th me de l mission Batman des ann es 70 joue Le mode Questions est le quatri me mode La chauve souris pose une question puis invite l enfant y r pondre par Vrai ou Faux Durant l attente de la r ponse la chanson theme de l mission t l vis e am ricaine Jeopardy joue
21. 0 ER TableQuestion numquestion SYSTEM Random NQUEST On g n re le nombre al atoire for int i 0 i lt numquestion i Boucle servant v rifier si la question a d ja t pos afin de g n rer un num ro al atoire pour une question qui n a pas t pos e if numquestion 0 if TableQuestion numquestion TableQuestion i 1 Est ce que les questions sont les m mes TableQuestion numquestion SYSTEM Random NQUEST On reg n re un num ro de question al atoire i 0 On recommence la boucle repeat Saut permettant de r p ter la question au cas o l enfant sur le bouton bleu switch TableQuestion numquestion Le robot pose la question correspondante l enfant case 0 AUDIO PlayMP3FileAndWait questionl mp3 answer true La r ponse cette question est vraie break Case 1 AUDIO PlayMP3FileAndWait question2 mp3 answer true break Case 2 AUDIO PlayMP3FileAndWait question3 mp3 answer true break case 3 AUDIO PlayMP3FileAndWait question4 mp3 answer true break Case 1 AUDIO PlayMP3FileAndWait question5 mp3 answer false La r ponse cette question est fausse break case 5 AUDIO PlayMP3FileAndWait question6 mp3 answer false break Case 6 AUDIO PlayMP3FileAndWait question7 mp3 answer false break case 7 AUDIO PlayMP3FileAndWait question8 mp3 an
22. 0 0 On tourne droite time 0 jelse kiwi setSpeed 80 80 On avance tout droit si la distance est assez void follow Fonction de suivi d objets int timestop 0 Permet d valuer le temps d arr t du robot pour viter de suivre un objet qui est fixe while 1 if kiwi follow THREAD_MSleep 1000 jelse THREAD_MSleep 10 while kiwi getSonar 1 lt kiwi getSonar 2 amp amp SYSTEM_Abs kiwi getSonar 1 kiwi getSonar 2 gt 25 Comparaisons de la distance entre les deux sonars kiwi setSpeed 0 75 Tourne gauche pour se positionner sur l objet le plus proche si la distance du sonar gauche est la plus petite THREAD MSleep 5 while kiwi getSonar 1 gt kiwi getSonar 2 amp amp SYSTEM_Abs kiwi getSonar 1 kiwi getSonar 2 gt 25 Comparaisons de la distance entre les deux sonars kiwi setSpeed 75 0 Tourne a droite pour se positionner sur 1 objet le plus proche si la distance du sonar droit est la plus petit ntre les deux THREAD_MSleep 5 if kiwi getSonar 1 gt 40 amp amp kiwi getSonar 2 gt 40 Si la distance des deux sonars est plus grande que 40 alors kiwi setSpeed 80 80 On fait avancer tout droit jelse timestop 100 On additionne depuis combien de temps le robot est en arr t sur la cible poursuivi if timestop gt 1500 Apr s un certains temps on fait reculer et tourner le robot timestop 0 while timestop lt
23. O PlayMP3FileAndWait modeautonome mp3 thread autonomous THREAD CreateSimple autonomous kiwi autonomous true break case 7 Mode arr t THREAD Destroy amp thread autonomous On d truit les autres modes THREAD Destroy amp thread avoid THREAD Destroy amp thread follow THREAD Destroy thread askquestion THREAD Destroy amp thread dance kiwi reset AUDIO PlayMP3FileAndWait modearret mp3 break void avoid Fonction d vitement d objets int time 0 Temps mis par le robot dans sa phase de contournement d objets kiwi mindist 35 Distance minimale d vitement while 1 if kiwi avoid f Si la fonction n est pas enclench e alors on fait la fait dormir THREAD_MSleep 1000 jelse THREAD MSleep 10 if kiwi getSonar 1 lt kiwi mindist amp amp kiwi getSonar 1 0 Si le sonar gauche est plus petit que la distance minimale while time lt 6 time if time lt 4 kiwi setSpeed 90 90 On recule pendant un certain temps if time gt 4 kiwi setSpeed THREAD_MSleep 500 0 100 On tourne droite time 0 jelse if kiwi getSonar 2 lt kiwi mindist amp amp kiwi getSonar 2 0 Si le sonar droit est plus petit que la distance minimale while time lt 6 time if time lt 4 kiwi setSpeed 90 90 On recule pendant un certain temps if time gt 4 kiwi setSpeed THREAD_MSleep 500 10
24. UNIVERSIT DE SHERBROOKE Projet Robus Armus Rapport de conception Rapport pr sent l quipe professorale de S1 Par L quipe P11 Gotham Project Adrien Burghgraeve 08358074 Gan Laporte 07242316 J r mie Faucher Goulet 08341911 Mathieu Foucault 07206739 Mathieu Fournier 08381235 Nicolas Roy 08365501 Pascal Guay 07197446 Steve Pelchat 08346881 Universit de Sherbrooke 3 d cembre 2008 Table des mati res PAS TETE me A A ER AS A i Table d s Maestro aa ii EAS 1 nonc du ro e o os cerca le a dE ds co 1 Pr sentation des options de solution ss 2 Formulation de la solution sssssssseeessssesesssssrerssrrrtsstttsteteeressreerssrrtssttttttereeeteerennssteetsnt 3 Planification a A A E A EG A 5 Description des taches ne M M At a larme O fit dames sde 6 A A NAAA 8 Liste des PROS ni da 9 Portrallinal Laca a ra lali 9 Conception mat rielle iii 9 Conception logiciel tii s 15 A O 23 CONO ner Re CR ne een lu Medias aten 27 ROTO a oo 28 Annexe 1 Manuel de Servite a 1 Annexe 2 Guide de IU NS tU ein 1 Annexe 3 Code Source du FOO 1 Introduction Consid rant la baisse des inscriptions en g nie ann e apr s ann e l quipe professorale de S1 donne comme mandat ses tudiants d laborer un robot qui int resserait les enfants la science videmment nous profitons de l occasion pour donner un but ducatif celui ci puisqu un robot peut tre amusant et ducati
25. Variable du mode autonomie int getSonar int Cette fonction sert a obtenir la distance du sonar 1 ou 2 selon le param tre void setSpeed int int Cette fonction sert modifier la vitesse du robot le moteur gauch n premier et le droit en deuxi me param tres void setPin int bool Cette fonction sert modifier l tat des pins sur la carte 1 0 int getSpeedleft Cette fonction sert obtenir la vitesse du moteur gauche int getSpeedright Cette fonction sert obtenir la vitesse du moteur droit bool getButtonState int Fonction afin d obtenir l tat des boutons le num ro de la sortie tant appel en param tre void reset Robots kiwi Ici on d clare l objet kiwi qui est membre de la classe Robots void avoid Fonction d vitement void follow Fonction de suivie void askquestion Fonction pour poser des questions void simon Fonction du jeu simon void dance Fonction de danse void autonomous Fonction autonome void writeanswer int bool Fonction pour crire les statistiques des r ponses des enfants dans un fichier void writesimon int Fonction pour crire le score des jours du jeu simon dans un fichier void blink Fonction des diff rents mode de clignottement des LEDS void setMode int Fonction servant changer le mode du robot Voici les diff rents thread qui pourront s ex cuter en para
26. aire bouger le robot seulement en passant sa main proximit Cela stimule donc la vue de l enfant et permet une interaction physique avec le robot Le battement des ailes a galement jou un tr s grand r le dans le choix de la chauve souris Il est possible de faire battre les ailes d une luciole mais le 4 battement d ailes d une chauve souris est plus imposant donc plus attrayant visuellement pour un enfant Pour r pondre la probl matique il faut aussi s assurer que la chauve souris respecte les r glements et les crit res initiaux Plusieurs de ces crit res sont remplis dans les fonctions du programme qui permet la chauve souris d augmenter ses interactions On veut donc d velopper une chauve souris qui peut battre des ailes et viter les obstacles Celle ci serait d une taille suffisamment grande pour pouvoir bien interagir avec les enfants et pas trop grande pour pouvoir se d placer sans encombrement Le corps du robot devra tre assez solide pour r sister tout assaut de la part d un enfant La chauve souris devra aussi poser des questions aux enfants qui concernent la chauve souris l tat sauvage Pour conclure cette section les id es retenues sont nombreuses et chacune a des avantages et des inconv nients mais nous trouvions plus facile d int grer les sens d interaction choisis la chauve souris Il va tre plus facile pour nous de remplir les crit res du concours et d optimiser les
27. ci l ch ancier qui a t utilis pour la r alisation du projet 13 20 27 10 17 24 Ur oct oct oct 3 nov nov nov nov 4 d c Activit s Squelette de la chauve souris X X Finition apparence chauve OA X IX Ix souris Fabrication m canisme pour x bouger les ailes Programmer mouvements de X X base Programmer mouvements des ailes Programmer sonars x x ultrasoniques crire les messages et x x x questions dict s par le robot Enregistrer les messages et questions Programmer les interactions vocales avec boutons Tests d verminage et finition du robot R daction du rapport de X conception du guide de X service et d utilisateur Conception et montage du x X kiosque Liste des priorit s Voici la liste des t ches nonc es dans l ch ancier Celles ci sont bas es sur le principe que le robot doit tre fonctionnel pour la journ e de pr sentation du 4 d cembre C est pourquoi les fonctionnalit s de base sont prioritaires 1 Programmation des mouvements de bases 2 Structure de la chauve souris et m canisme des ailes 3 Programmer les sonars et le mouvement des ailes 4 crire les questions et les programmer 5 Conception du kiosque 6 R daction des rapports Portrait final Notre robot est assez fid le au mod le fix au d part En effet il bat des ailes tout en se d pla ant sauf que nous avons ajout diff rents types de d placements Il se d place en vi
28. crit dans le fichier le de la question suivi du chiffre 0 OutputFile lt lt question lt lt Mi lt lt 0 lt lt OutputFile close On ferme le fichier void writesimon int score Fonction servant crire les statistiques dans le fichier ofstream OutputFile media usb0 simon txt ios app On ouvre le fichier en se positionnant a la fin avec la commande ios app OutputFile lt lt score lt lt On inscrit le score obtenu s par par une virgule OutputFile close int Robots getSpeedleft Fonction renvoyant la vitesse gauche du moteur return kiwi speedleft int Robots getSpeedright Fonction renvoyant la vitesse droit du moteur return kiwi speedright 15 void Robots setPin int pin bool state Fonction permettant de controller les sorties DIGITALIO Write pin state void Robots setSpeed int speedleft int speedright vitesse aux moteurs Fonction servant donner la MOTOR SetSpeed MOTOR LEFT speedleft kiwi speedleft speedleft MOTOR SetSpeed MOTOR RIGHT speedright Vitesse moteur droit kiwi speedright speedright Vitesse moteur gauche int Robots getSonar int sonarnumber Fonction servant obtenir la ditance du moteur THREAD MSleep 65 D lai n cessaire pour ne pas que les sonars entrent en conflit return SONAR Detect sonarnumber On renvoie la distance capt
29. de la plaquette Armus ne soient flottantes lorsqu un bouton n est pas enfonc car la r f rence est report e l entr e Lorsque le bouton est enfonc il y a 5V l entr e et un faible courant dans la r sistance d sa grande valeur M canique M canisme des ailes Les ailes peuvent battre l aide d un moteur en rotation En fait l axe de rotation du moteur est allong afin d augmenter l amplitude des ailes Cet axe est reli aux ailes ce qui les fait battre On obtient ainsi un mouvement de haut en bas des ailes ainsi qu un mouvement de gauche droite Pour liminer ce mouvement de gauche droite on utilise un guide qui limite le d placement des ailes de haut en bas Pour soutenir les ailes on utilise galement un support de chaque c t afin de les garder une certaine hauteur Le connecteur Tous les circuits lectriques qui se doivent d tre utilis s aux entr es sorties de la plaquette Armus sont reli s avec un connecteur DB 25 afin de faciliter le d montage de la coque Plaquette d exp rimentation breadboard Toutes les connexions des circuits lectriques l exception des sonars sont reli es via la plaquette d exp rimentation afin de faciliter les possibles modifications des circuits lectriques Elle est disponible par une trappe situ e sur le dos de la chauve souris Disposition des plaquettes La disposition des plaquettes est con ue afin de maximiser l espace
30. diqu es dans le guide Ensuite nous avons test chacun des moteurs dans chacun de leur sens Une fois les moteurs des roues fonctionnels nous avons alors pu tester les encodeurs de roue avec l oscilloscope Une fois les ajustements effectu s le syntoniseur de fr quence PLL l oscillateur ainsi que les capteurs infrarouges ont t test s Ensuite nous avons test l amplificateur audio en y injectant un signal de 1 KHz Ces tests se sont tr s bien d roul s puisque nous n avions aucune conception effectuer pour cette partie Les premiers tests de programmation ont t effectu s par la suite Ceux ci ont t effectu s avant la mise jour du logiciel d Armus Il y avait donc de nombreux 23 probl mes lors de la programmation Une fois les mises jour effectu es tout tait fonctionnel Pour ce qui est du corps de la chauve souris nous avons conclu lors d une r union de la faire en papier m ch d son poids minime et sa facilit de fabrication Pour le faire nous avons d effectuer un premier test sur la cage poule notre soutien car nous ne connaissions pas la difficult de la t che La premi re n ayant pas la bonne forme une deuxi me a t con ue Nous avions maintenant notre corps de la chauve souris Nous savions cependant qu en utilisant une structure en papier m ch nous devions faire un certain compromis entre la robustesse et la solidit Notre robot serait probable
31. e par le sonar 16
32. e robot dit ensuite plus d informations propos de la question l enfant Mode jeu Simon D but de la fonction du jeu simon Le robot affiche progressivement p Une s quence al atoire sur trois boutons en mettant un son distinct pour chacun l Le robot affiche et met un son lorsque l enfant appui sur un bouton pour r p ter la Faux s quence enfant se tromp dans la s quence Vrai y Le score est stock dans un fichier y Le robot analyse le nombre de s quence r ussie par l enfant et dit un score selon ses performances y Le robot bat des ailes et fait clignoter ses lumi res Fin de la fonction du jeu simon Le jeu Simon est un jeu de r p tition de s quences qui permet d amuser l enfant tout en permettant d exercer sa m moire Le robot affiche progressivement une 20 s quence al atoire sur ses boutons rouge bleu et vert en mettant un son pour chacun L enfant doit ensuite r p ter la m me s quence que le robot vient de lui montrer La s quence devient de plus en plus longue au fur et mesure que l enfant r ussit les r p ter Lorsque l enfant se trompe le robot enregistre le score obtenu par l enfant dans un fichier simon txt analyse le nombre de s quences r ussies et lui dit un commentaire sur ses performances Si l enfant a r ussi une s rie de s quences inf rieure
33. ec les gens Il a fallu ajuster plusieurs fonctions dans notre programme afin qu il puisse se conformer aux limitations des performances de la plate forme robotique Armus Robus En effet il a fallu r duire le nombre d actions simultan es que le robot pouvait faire ou bien r duire sa vitesse d ex cution afin de ne pas surcharger son bus de transfert de 22 donn es Cette surcharge du bus de donn es nous donnait l erreur SPL INIT et faisait arr ter certaines fonctionnalit s du robot al atoirement lors de ses performances Il est donc important de limiter le plus possible les possibilit s d une telle erreur Tests Lors de la conception du robot nous avons eu accomplir certaines t ches afin de parvenir au but ultime qui est la r alisation de notre chauve souris Pour tre certains que chacune des t ches a bien t r alis e nous avons effectu plusieurs tests afin de nous assurer du bon fonctionnement du robot Les tests ont t faits par rapport aux plaquettes Robus et Armus le corps de la chauve souris la structure des ailes le m canisme de battement des ailes l lectronique ainsi que la programmation finale de la chauve souris Nous avons commenc par nous assurer du bon fonctionnement de la plaquette Robus Pour ce faire nous avons suivi les proc dures dans le manuel d assemblage et d utilisation de Robus et d Armus Nous nous sommes d abord assur que les tensions d alimentation taient bien celles in
34. espect de l ch ancier Il doit aussi s assurer que le travail avance et qu il est bien fait Il s occupe d emp cher les d rapages lors des travaux en quipe M canisme de battement des ailes Il doit pr senter et mettre au point un m canisme permettant de faire battre les ailes Structure des ailes Doit trouver une fa on de fabriquer des ailes qui repr sente bien celle de la chauve souris Rev tement et coupe du tissu Doit s assurer des bonnes dimensions du tissu des types de tissus utilis s et de la fixation du tissu au robot Conception de la coquille Doit concevoir une coquille qui recouvre le robot et qui est en mesure d accueillir les ailes ainsi que la fourrure du robot Magasinier Responsable de se procurer les mat riaux n cessaires la conception du robot C est aussi la personne qui est responsable de l achat de ces mat riaux Responsable de la programmation Avec l aide de l quipe il doit trouver les id es r alisables pour la programmation du robot Il doit aussi guider et subdiviser les t ches de programmations C est aussi lui qui fixe les d lais associ s la programmation Circuits lectroniques Il est responsable de la conception des circuits et d assister les soudures effectuer Il effectue un contr le de qualit sur les circuits soud s Il est aussi responsable de trouver les fa ons les plus efficaces pour parvenir nos fins ch ancier Voi
35. ests de sonars tests des entr es sorties de la plate forme Armus Tous ces tests ont t effectu s ind pendamment afin de s assurer qu aucun autre l ment ne venait interf rer Une fois tous les l ments fonctionnels nous avons labor un programme pour les diff rentes fonctionnalit s du robot Nous voulions mettre beaucoup d emphase sur le c t interaction avec l enfant C est pour cette raison que nous avons d cid d ins rer un jeu ainsi que diff rents modes chasse al atoire questions Le mode chasse permettait l enfant d avoir un r le jouer pour les d placements du robot Le mode al atoire faisait danser notre chauve souris ce qui nous croyions augmenterait l int r t de l enfant pour notre robot Nous avons donc effectu les premiers tests avec le bloc d alimentation fourni afin de ne pas occasionner d autres probl mes Une fois les d placements fonctionnels ainsi que tous les autres l ments du robot il tait alors le temps de tout tester mais de fa on autonome c est dire avec les batteries Ce changement s est tr s bien d roul malgr nos craintes par rapport la consommation du moteur des ailes Finalement un test global a t effectu en milieu similaire la pr sentation pour s assurer du bon fonctionnement du robot et de voir les possibles d faillances qui pourraient survenir Quelques correctifs furent apport s mais rien de majeur 26 Apr s la r alisation
36. f la fois Toutefois la conception d un projet de cette envergure comporte plusieurs tapes Il y a d abord la g n ration d une solution la probl matique puis vient ensuite la planification la conception mat rielle la conception logicielle et les tests effectu s En annexe vous trouverez le guide de l utilisateur et le manuel de service nonc du probl me La t che soumise en d but de section consiste en quelques points bien pr cis Tout d abord il faut construire un robot autonome capable d interagir avec des enfants en bas ge r pondant aux crit res du concours Robot Jouet Par autonomie on consid re un robot capable de se comporter de mani re s curitaire sans aucun contr le ext rieur D ailleurs pour tre autonome il doit poss der sa propre alimentation nerg tique Par interaction il est question d un robot capable d interagir avec les enfants Selon les crit res du projet le robot doit interagir en faisant appel un minimum de 2 sens Les crit res respecter pour le robot sont Respecter le th me de l exposition permanente Au fil des saisons du mus e de la nature et des sciences de Sherbrooke Dans cette exposition il y est pr sent la flore et la faune du sud du Qu bec en choisissant une des sections correspondant l une des quatre saisons Se d placer de fa on autonome dans un milieu courant peu importe sa configuration Se comporter de mani re courtoise
37. interactions avec l enfant Planification La section suivante du rapport contient la planification donc un ch ancier ainsi que les t ches et les personnes associ es ces t ches L importance et la priorit de chacune de ces t ches sont aussi discut es dans cette section Le tableau suivant num re les responsables des diff rentes t ches entourant la conception du robot jouet Il s agit de t ches administratives et de conception Une description sommaire suit le tableau et d crit les t ches en question Responsable logistique Mathieu Fournier M canisme de battement des ailes Structure des ailes Rev tement et coupe du tissu Conception de la coquille Adrien Steve Magasinier Mathieu Foucault Circuits lectroniques TOUS Les responsables des t ches suivantes ont la responsabilit de s assurer de l ex cution du travail dans les d lais pr vus Les autres membres de l quipe ont l obligation d aider et de participer le plus possible aux diff rentes t ches ex cuter Description des t ches Responsable logistique Doit s assurer du transport de l entreposage et de la commande des pi ces Il doit aussi trouver les locaux pour le travail en quipe Son travail s effectue tout au long du projet Secr taire C est la personne responsable de prendre des notes de l avancement du robot jouet C est aussi celui qui s assure de la remise des travaux Mod rateur Il doit s assurer du r
38. l installation d un kiosque de pr sentation par quipe Il est possible que des m dias demandent une d monstration L utilisation de mat riel bruyant ou salissant ainsi que la distribution de nourriture ou d objet sont interdites En respectant ces r glements crit res et exigences nous aurons r pondu au probl me Pr sentation des options de solution Pour la cr ation d un robot jouet il est possible de fabriquer un animal ou une plante de la faune et la flore du sud du Qu bec L animal et la plante pr sentent plusieurs aspects qui peuvent r pondent la probl matique Le plus important est de choisir un robot capable d attirer l attention d un enfant Cet aspect est important consid rer Puisque le robot doit tre attrayant et capter l attention d un enfant il faut choisir quelque chose qui attirera son attention Le sens que nous croyons le plus 2 pratique est la vue puisqu il agit sur de longues distances Un autre sens important chez un enfant est l ouie Il s agit d une bonne fa on d interagir avec l enfant en lui donnant des instructions et des informations dans un cadre ducatif et ludique La vari t de sons que l enfant peut percevoir permet une multitude d effets sur les capacit s intellectuelles de l enfant Les interactions sonores sont pratiquement infinies Le toucher est le troisi me sens qui facilite l apprentissage chez un enfant Ce sens peut tre utilis tant sur une p
39. lante que sur un animal Les sens du go ter et de l odorat ne sont pas beaucoup associ s la m moire ce qui les rend beaucoup moins attrayants Bien sur il est possible d obtenir une certaine forme de divertissement avec le go ter ou l odorat Les cinq sens en association avec un robot sont les solutions trouv es pour choisir et construire un robot jouet respectant les sp cifications de la probl matique ainsi que les r glements Formulation de la solution En fonction des solutions trouv es pr c demment nous avons d les comparer pour nous permettre de choisir un animal ou une plante qui correspondait le mieux et qui s adaptait le mieux aux solutions retenues Le sens du toucher de la vue et de l ou e sont les meilleures solutions pour les conditions initiales de la probl matique L odorat est un sens difficile stimuler avec un robot et cela n attire pas vraiment l attention des enfants Le sens du go t est une bonne id e mais les r glements nous interdisent de donner de la nourriture aux enfants Cela aurait t une bonne id e de r compenser les bonnes r ponses par des bonbons Les trois autres solutions sont excellentes dans un cadre ludique et ducatif Le mieux est d utiliser ces trois solutions en m me temps pour permettre un apprentissage et divertissement plus efficace chez l enfant En fonction de ces solutions retenues nous avons choisi un animal au lieu d une plante Pour nous un animal est plus attiran
40. llele THREAD thread avoid THREAD thread askquestion THREAD thread follow THREAD thread simon THREAD thread blink THREAD thread dance THREAD thread autonomous int main ERROR SetMode LCD ONLY Permet de visualiser les erreurs sur le LCD thread blink THREAD CreateSimple blink Cr ation du thread pour faire clignoter les lumi res AUDIO SetVolume 100 Mise du volume au maximum int mode Variable permettant de changer de mode int timemusic 0 Variable permettant de stocker le lapse de temps depuis le d but de la musique int musicduration 0 Variable permettant de stocker le temps de la musique kiwi setPin LEYES 1 Les yeux de la chauve souris se mettent en fonction while 1 Boucle de la fonction main if kiwi getButtonState BMODE Attente d appuie sur le bouton mode mode if mode 1 Si c est le mode vitement obstacle timemusic 0 musicduration 24000 Le fichier explication mp3 dure 24 secondes if mode 2 Si c est le mode suivi timemusic 0 musicduration 55000 Musique batman mp3 dure 55 secondes if mode 6 Si c est le mode dans timemusic 0 musicduration 257000 Chanson canttouchthis dure 257 secondes setMode mode On active le mode if mode gt 6 Si le mode d passe le nombre de mode mode 0 THREAD MSleep 1000 Code afin de r p ter la musique if mode 1
41. ment plus fragile que les autres Pour la structure des ailes nous avons fait plusieurs tentatives afin d arriver notre produit final Notre but tait d avoir les ailes les plus solides possible tout en gardant une bonne rigidit Tout d abord nous avons utilis des cintres en m tal afin d obtenir la structure des ailes voulue Consid rant leur poids nous avons estim que nous devions utiliser des tiges en aluminium pour obtenir plus de l g ret Une fois les tiges en aluminium trouv es nous avions les r unir ensemble afin d obtenir la structure des ailes finale Nous voulions tout d abord souder toutes ces tiges afin d avoir des ailes solides Cependant des techniciens en g nie m canique nous ont dit que cela n tait pas possible Finalement nous avons utilis un principe de serres afin de garder les tiges en place La longueur des ailes faisait en sorte de faire forcer davantage le moteur En utilisant une structure en aluminium nous avons gagn au niveau du poids Nous savions cependant qu elles ne devraient pas battre tr s vite pour ne pas les endommager car elles restaient fragiles La structure des ailes tait alors termin e Il ne nous suffisait alors qu les recouvrir d un tissu pour obtenir l esth tisme voulu 24 Les ailes tant termin es nous devions nous attarder au m canisme de battement des ailes Nous savions que cette partie serait probablement la plus difficile du robot Pour
42. mes la premier SYSTEM Random 3 Le robot fait jouer la s quence avec un son Allume la Di s quence robot d un D termination al atoir E lumi r un bouton r r AUDIO PlayMP3File bouton2 mp3 THREAD _MSleep 750 kiwi setPin LGREEN 0 THREAD MSleep 100 break Bouton bleu kiwi setPin LRED 0 kiwi setPin LGREEN 0 kiwi setPin LBLUE 1 t t AUDIO PlayMP3File bouton3 mp3 gt THREAD_MSleep 750 kiwi setPin LBLUE THREAD_MSleep 100 break 0 lappuie sur un bouton turn amp amp kiwi simon Boucle v rifiant si On EL du bouton rouge RED 1 THREAD_MSleep 250 kiwi setPin RED 0 ED Le bouton rouge est appuy On v rifie si c est bien la bonne s quence additionne la position o l enfant est dans la s quence On fait allumer le bouton rouge On fait jouer le son correspondant jelse Si ce n est pas le bon bouton qui a t appuy lose true break L enfant perd un Fait jouer le bruit correspondant la s quence qui doit if kiwi getButtonState BGREEN if tableturn turn 1 turn kiwi setPin LGREEN 1 AUDIO PlayMP3File bouton2 mp3 THREAD_MSleep 250 kiwi setPin LGREEN 0 jelse lose true break Le bouton vert est appuy
43. nome alors on met le mode question OFF threequestion 0 kiwi askquestion false void simon Fonction du jeu de r p tition de s quences Simon kiwi blinkmode 0 bool lose false Variable stockant si l enfant perdu int memturn 0 Variable servant stocker le nombre de s quences atteint par l enfant int turn 0 Variable servant stocker la position dans la s quence int tableturn SIMONTURN 0 Initialisation de la table de stockage des s quences while 1 10 if kiwi simon jelse THREAD_MSleep 1000 if memturn explique l enfant comment jouer AUDIO PlayMP3FileAndWait joueavecmoi mp3 AUDIO PlayMP3FileAndWait explicationsimon mp3 s quence 1 correspondante for int i 0 i lt memturn 1 switch tableturn i case 0 Bouton rouge kiwi setPin LRED 1 kiwi setPin LGREEN 0 kiwi setPin LBLUE 0 AUDIO PlayMP3File boutonl mp3 THREAD_MSleep 750 kiwi setPin LRED 0 Case 1 Case 2 Attente d while turn lt memi st bonne tonState BR if tableturn turn turn kiwi setPin AUDIO PlayMP3File boutonl mp3 Stra r p t if kiwi getBut THREAD_MSleep 750 tableturn memturn THREAD MSleep 100 break Bouton vert kiwi setPin LRED 0 kiwi setPin LGREEN 1 kiwi setPin LBLUE 0 Si nous som
44. nous faciliter la t che nous avons d cid d utiliser un syst me de meccanos pour sa facilit d utilisation et pour un montage fiable et solide que cela nous donnerait Nous avons effectu plusieurs combinaisons de meccanos afin de faire fonctionner le m canisme Notre but tait d liminer le plus de friction possible car notre principale limitation venait de la force du moteur Nous tions galement limit s la tension d utilisation du moteur puisque qu il y avait un seuil de 5 5 V d passer afin d amorcer la rotation du moteur videmment notre premi re tentative n tait pas tr s efficace puisqu il y avait beaucoup de friction Nous avons cependant gard le m me principe de fonctionnement tout au long de nos tentatives mais toujours en l am liorant Mesurant le courant de consommation du moteur et l estimant environ 250 mA nous avions finalement r ussi obtenir un syst me fiable long terme et qui consomme le moins de courant possible Pour ce qui est de l lectronique cela comporte plusieurs parties dont un pont en H des transistors pour le DELs un petit circuit pour les boutons poussoirs ainsi que les sonars Nous avons choisi un pont en H pour sa facilit d utilisation et parce qu il y en avait d j un sur la plaquette Robus pour les roues Nous avions donc le circuit int gr notre disposition Il a tr s bien fonctionn du premier coup Ensuite le circuit pour les diodes lectroluminescentes
45. papier etc maintenu en place par un large ruban collant gris Un tissu noir fut coll sur la coque sur la superficie du visage puis le reste du corps fut recouvert d un tissu fourrure trouv en magasin Les trous pour l ajout des boutons et des lumi res lectroluminescentes furent perc s ainsi qu une trappe au dessus du robot pour donner acc s l int rieur La flexibilit et la tension de la coque suffisent maintenir 12 celle ci en place sur la plateforme de mani re suffisamment serr e pour qu elle ne bouge pas Les boutons et les lumi res install s il ne restait plus qu b tir les circuits et c bler l int rieur du robot afin de contr ler tous les p riph riques depuis l int rieur Les circuits furent assembl s sur le breadboard Un connecteur DB 25 fut utilis afin de faire les liens entre tous les fils qui passent de la coque au ch ssis pour permettre le d montage de la coque Une fois toutes ces tapes accomplies et corrig es maintes reprises en cours de route nous tions pr ts passer la programmation Circuit des boutons 13 Circuit des DELs Circuit du Pont H 14 Conception logicielle La conception logicielle du robot repose sur 7 modes diff rents Ces modes sont destin s rendre le robot autonome et duquer l enfant en lui permettant de s amuser Les modes sont chang s comme suit D but de la fonction changement de modes Attente d a
46. permettre de suivre une autre cible Finalement si une distance assez grande est mesur e par les sonars il avance tout droit jusqu ce qu il trouve une nouvelle cible suivre 18 Mode questions D but de la fonction de questions Pose une question un enfant Attente de la r ponse en jouant une musique d attente et en faisant clignoter les boutons vrai ou Le robot dit mauvaise r ponse criture des statistiques de la r ponse dans un fichier Le robot f licite l enfant Le robot en dit plus au sujet de la question Fin de la fonction questions Ce mode sert duquer l enfant propos des chauves souris Le robot pose 9 questions l enfant dans un ordre al atoire sans r p ter aucune question Afin de permettre cela il est n cessaire de stocker les questions d j pos es par le robot dans un tableau afin qu elles ne se r p tent pas Le robot attend ensuite la r ponse de la personne avec une musique d attente en faisant clignoter le bouton vert et rouge qui correspondent respectivement vrai ou faux Lorsque la personne appuie sur un bouton la r ponse de l enfant est enregistr e dans un fichier de compilation des r sultats appel s reponses txt Le robot v rifie si la r ponse cette question est bonne 19 et f licite l enfant tout en battant des ailes et en faisant clignoter ses lumi res Si la r ponse n est pas bonne le robot dit l enfant que c est la mauvaise r ponse L
47. ppui sur le bouton mode Mode vitement de pa pam Fin de la fonction changement de modes Voici l explication de la conception logicielle de chacun de ces modes Mode arr t Dans ce mode le robot est arr t il n y a que ses yeux qui sont allum s Il ne poss de aucune interaction et attend que le bouton mode soit press afin de passer au mode suivant 15 Mode vitement D but de la fonction d vitement Jouer une musique en faisant clignoter des lumi res al atoirement et en battant des ailes istance du sonar droit trop courte Vrai Faux Robot recule vers la gauche istance du sonar gauche trop courte Vrai O SA Robot recule vers la droite ee Faux Robot avance tout droit devant lui Fin de la fonction viement Tout d abord le robot commence par battre des ailes tout en faisant jouer de la musique et en faisant clignoter al atoirement ses lumi res Ces actions ont pour but de le rendre plus vivant aux yeux des gens Le robot v rifie ensuite la distance mesur e par le sonar droit et le sonar gauche Si cette distance est trop courte le robot tourne tout en reculant afin d viter l obstacle auquel il fait face Lorsque la distance mesur e par les sonars est suffisamment grande le robot avance tout droit 16 Mode suivie D but de la fonction de suivi
48. soient ad quates sur la plaquette d exp rimentation ainsi que les connexions sur la carte 1 0 Principe de d montage e D branchez le connecteur DB 25 e Enlevez les ailes e Enlevez la coque en prenant soin de ne pas accrocher les plaques lectroniques Proc dures de r paration Si les DELs ne fonctionnent pas vous pouvez v rifier les connexions sur la plaquette d exp rimentation telles que vues en annexe Vous pouvez galement regarder si le signal se rend correctement la carte o Finalement v rifiez que le connecteur DB 25 est bien branch Si les boutons ne fonctionnent pas vous pouvez appliquer la m me proc dure de v rification que pour les DELs Si les sonars ne fonctionnent pas v rifiez que leurs connexions sont bien faites et qu ils sont connect s dans le bon sens Si le moteur des ailes ne fonctionne pas v rifiez d abord que le signal logique du pont en H contr lant le moteur est bien reli la plaque I o Ensuite v rifiez le circuit lectrique du pont en H Annexes Circuit des boutons Circuit des DELs Circuit du Pont H Annexe 2 Guide de l utilisateur Guide de l utilisateur D marrage du robot 1 Pour faire d marrer la chauve souris il faut tout d abord mettre l interrupteur situ l arri re du robot sur la position active Il est accessible en soulevant l gerement la coque Il est assez gros et ais ment identifiable Les ailes
49. swer false break Case 8 AUDIO PlayMP3FileAndWait question9 mp3 answer true break AUDIO PlayMP3FileAndWait vraioufaux mp3 Le robot dit vrai ou faux AUDIO PlayMP3File appui sur le bouton kiwi blinkmode quiz mp3 Une musique joue pour attendre que l enfant 1 Mode clignotement des lumi res vrai faux int randomvar SYSTEM Random 3 Nombre al atoire servant exprimer diff rentes r actions au robo int timewait 0 t while kiwi askquestion if kiwi getButtonState BGR T EN V rification du bouton vrai AUDIO StopPlayback On arr te la musique d attente kiwi blinkmode 0 if answer true l enfant plusieurs possiblit s kiwi setPin FLY 1 Le robot bat des ailes pour f liciter kiwi setPin LRED 0 kiwi setPin LGREEN 1 goodanswer true L enfant a choisi la bonne r ponse AUDIO PlayMP3FileAndWait bonnereponse mp3 switch randomvar Le robot f licite l enfant selon T case 0 AUDIO PlayMP3FileAndWait bravo mp3 AUDIO PlayMP3FileAndWait rirel mp3 break case 1 AUDIO PlayMP3FileAndWait felicitation mp3 AUDIO PlayMP3FileAndWait rire3 mp3 break case 2 AUDIO PlayMP3FileAndWait excellent mp3 AUDIO PlayMP3FileAndWait rire4 mp3 kiwi setPin LGREEN 0 break kiwi setPin LGREEN 0 kiwi setPin FLY 0 break
50. t pour un enfant et se d place plus naturellement qu une plante C est visuellement plus attirant qu une plante qui bouge peu Apr s avoir choisi de concevoir un animal il est ressorti quatre id es principales d animaux Les avantages et les inconv nients de la grenouille de la chauve souris de la luciole et de la tortue sont pr sent s dans le tableau comparatif suivant Grenouille Chauve souris Pour Contre Pour Contre Ultra sons Gonflement de la Pas assez de buts ducatif et Laid gorge mouvements technique Simple Non attrayant Ailes qui bougent Complexit Coassement Moins original Plus original Luciole Tortue Pour Contre Pour Contre Simple DEL pour le derri re Besoin d agrandir forme de demi Encombrant de la luciole sph re Lumi res attirent les Solide et Ces ultra sons fragiles R action lente enfants s curitaire Ressemble une Association rapide mouche r pugnant avec ennui La chauve souris nous a sembl le meilleur choix en fonction des arguments cit s plus haut En effet cela nous a sembl tre une id e originale Les ultra sons ont jou un grand r le dans la d cision de l animal parce que cela fait correspondre la r alit m canique la nature En effet la chauve souris et le robot fonctionnent sur le m me principe des ultra sons par l utilisation des sonars On tire partie du d placement l aide des sonars pour permettre un enfant de f
51. tant les objets comme nous l avions planifi mais il se d place aussi en suivant les objets qu il d tecte Il pose 9 questions de fa on al atoire aux enfants et enregistre les r ponses dans un fichier afin de compiler des statistiques De plus nous avons r alis un jeu de Simon a l aide des boutons de couleurs situ s sur le robot Conception mat rielle Le choix de la plate forme Robus Armus s est impos de lui m me De plus cette plate forme est particuli rement adapt e pour le pr sent concours avec plusieurs capteurs et plusieurs fonctions d j programm es pour l utilisation de dispositifs et de capteurs mis notre disposition Pour l assemblage de la plate forme Robus la documentation fournie a rendu le processus relativement facile comprendre L assemblage de Robus n cessitait toutefois beaucoup de soudure pour les personnes leur d but en soudure L une des plaques fut compl tement fonctionnelle d s le d part alors que l autre n cessita beaucoup de d verminage De nombreux tests furent effectu s afin de v rifier le montage avant d y connecter l ordinateur et les autres cartes pour les premiers tests de l assemblage lectronique de la plate forme Une fois la plate forme assembl e la partie cr ative du robot commen ait Avec le choix d une chauve souris comme robot il fallait d abord s interroger sur la forme et la taille de celle ci Sachant que nous voulions faire des ailes nous
52. thread askquestion THREAD CreateSimple askquestion while kiwi askquestion THREAD MSleep 1000 THREAD Destroy thread askquestion kiwi reset 13 kiwi setPin FLY 1 kiwi blinkmode 4 AUDIO PlayMP3File canttouchthis mp3 kiwi dance true Le robot danse thread dance THREAD CreateSimple dance THREAD MSleep 10000 THREAD Destroy amp thread dance void blink Fonction de clingotement des lumi res while 1 switch kiwi blinkmode case 0 THREAD MSleep 250 break case 1 mode de clignotement vrai ou faux kiwi setPin LGREEN 0 kiwi setPin LRED 1 THREAD _MSleep 1000 kiwi setPin LRED 0 kiwi setPin LGREEN 1 THREAD_MSleep 1000 break case 2 Lorsqu on gagne on fait clignoter les dels de cette manier kiwi setPin LRED 1 THREAD_MSleep 100 kiwi setPin LRED 0 kiwi setPin LBLUE 1 THREAD MSleep 100 kiwi setPin LBLUE 0 kiwi setPin LGREEN 1 THREAD_MSleep 100 kiwi setPin LGREEN 0 break case 3 Fonction al atoire de clinotement des dels kiwi setPin LRED SYSTEM Random 2 Q CI kiwi setPin LBLUE SYSTEM Random 2 kiwi setPin LGREEN SYSTEM Random 2 kiwi setPin LEYES SYSTEM Random 2 THREAD_MSleep 500 break case 4 Fonction clingotement stroboscopique kiwi setPin LRED 1 kiwi setPin LBLUE 1 kiwi
53. ux E T Liste des entr es des boutons define BGREEN 9 Bouton vert define BRED 10 Bouton rouge define BBL 11 Bouton bleu define BMO 12 Bouton mode GG G E td E define FLY 16 Sortie pour contr ler le battement des ailes define NQUEST 9 Nombre de questions totales que le robot peut poser define SIMONTURN 999 Nombre de s quences totales possibles dans le jeu simon Voici la classe robots cette classe contient les variables du robot Une classe s utilise en d clarant une objet comme tant une classe par exemple Robots kiwi et la construction de la classe permet de bien organiser les variables et de les utiliser de cette mani re kiwi follow true par exemple permet de mettre 1 robot en mode suivi 7 class Robots public int sonarl Distance du sonar gauche int sonar2 Distance du sonar droit int speedleft Vitesse du moteur gauche int speedright Vitesse du moteur droit int mindist Distance minimum utilis pour viter les obstacles int blinkmode Variable de changement de mode de clignotement des lumi res int mode Variable de changement de mod bool avoid Variable du mode vitement des obstacles bool follow Variable du mode suivie bool askquestion Variable du mode question bool simon Variable du mode jeu Simon bool dance Variable du mode danser bool autonomous
Download Pdf Manuals
Related Search
Related Contents
TDSHーBA 東芝壁掛形非常放送アンプ取扱説明書 PDF資料 Publicação - Câmara dos Deputados hier klicken und die Bedienungsanleitung downloaden 取扱説明書 GE GEH50DEED Water Heater User Manual Blade ICE G8000 User's Manual KB-7351 - CONRAD Produktinfo. Copyright © All rights reserved.
Failed to retrieve file