Binome2017-3
Objectif : - Réaliser un robot capable d'éviter collisions et prédateurs.
Cahier des charges :
- Robot de dimensions inférieures à un cube de 10cm. - Mode "Échappement" permettant de facilité l'évitement de prédateur. - Capable de détecter un prédateur situé à une distance inférieure à X cm. - Capable d'éviter un mur, objet... situé sur le chemin du robot.
Matériel utilisé :
- Arduino MEGA - 2 Moteur CC - 1 LED IR - 1 Récepteur IR - 1 "Shield" adapté à l'Arduino - Sonar HCSR04 - Contrôleur de moteur TB6612FNG - 4x Pile 1.5V - 1 Buzzer - 1 Servomoteur
Introduction :
Journal de Bord :
Après avoir pris connaissance du sujet, nous avons préparé une ligne directrice pour notre projet. L'objectif est de réaliser un robot de petite taille, rapide et capable d'éviter toutes collisions. Afin que notre binôme comprennent bien les objectifs à atteindre et les souhaits individuelles, nous avons mis en place le cahier des charges et l'avons modifié afin de ne pas rendre impossible le projet. Nous avons également réfléchis à l'aspect esthétique du robot en s'inspirant de ceux déjà présent dans la salle.
Cahier des charges commencé, nous avons réfléchis à la mise en œuvre de nos idées. Pour cela, nous avons pris connaissance de l'ensemble du matériel actuel disponible. Afin de modéliser plus facilement le circuit électronique présent dans notre robot, nous avons utilisé Freezing tout d'abord à l'aide d'un Arduino ainsi qu'une Breadboard.
Conception des fonctionnalités (servomoteur et système mécanique associé). Nous avons finis la modélisation de notre partie électronique sur Breadboard, il faut à présent transféré ceci sur un Shield. Afin d'avoir un coté "Fun" au robot lorsqu'il s'échappe, nous avons mis en place un mode dit "furtif".
Mise en place du Shield.
Planification 1-4 :
Après avoir décidé de partir sur un robot proie, nous avons dû décider de la forme que prendra celui-ci. Nous nous sommes dit qu’il valait mieux faire un robot de petite taille, agile et rapide. Il nous faudra donc modéliser le châssis. Nous partirions sur un Adruino, que nous avons déjà eu le plaisir de découvrir en cours de spécialité IMA au S3. Afin de rendre notre robot original, nous avons décidé de partir sur un châssis modélisé en 3D, que nous imprimeront au Fabricarium.
- Fritzing 5-10
description
Châssis 3D 6-7 : Partant de notre première planification nous avons modélisé un camion 3D sur Sketchup adapté aux dimensions de notre robot. La prise en main s’est avérée laborieuse mais instructive. Cependant, nous du faire face à de nombreux problèmes. Tout d’abord le modèle était un peu trop complexe pour être imprimable en 3D, il aurait fallu de nombreuses calles et réimpression afin d’avoir un châssis de robot acceptable. Le 2ème problème était dû au faite, que la modélisation du châssis avait était conçue en une seule pièce. Ainsi le modèle posait problème avec le logiciel 3D car il considérait que certain solide était positionné au dessus de certain autres solides creux. De plus, le logiciel, Cura, prévoyait plus de 10h d’impression pour un robot de 20x12x10cm. Ce qui est presque impossible à réaliser avec le matériel du Fabricarium, à moins de lancer l’impression la nuit, auquel cas nous n’aurions pas pu intervenir sur l’imprimante en cas de bug. C’est alors que nous nous sommes tournés vers nos professeurs afin de leur demander conseils. Ils nous ont alors précisé que les impressions 3D n’étaient pas très robustes, et qu’il valait mieux partir sur un châssis en plexiglas ou en bois. Après plus d’une dizaine d’heures de travaux personnels pour la modélisation de notre robot, nous avons pris la décision de repartir de zéros et de partir sur un châssis en plexiglas. Le choix a été difficile à prendre car plusieurs fonctionnalités « fun » de notre robot reposaient sur ce modèle 3D.
Code – Première partie 8-9 : Dans une première partie, nous avons déclarer nos ports en tant que constantes, afin de nous faciliter la tâche lors de la programmation de l’Arduino. Ensuite nous nous sommes occupés des fonctions de déplacement du robot : avancer, reculer, tourner à gauche ou à droite. Une fois ces fonctions codées, nous avons relié le sonar à l’Arduino, puis nous avons déterminé une distance minimal raisonnable à partir de laquelle le robot tourne à gauche pour éviter l’obstacle.
Conception du châssis 2D 10-11 : Après notre échec en modélisation 3D, nous sommes repartis pour la modélisation mais cette fois ci en 2D. La prise en main du logiciel s’est avéré plus facile que celle de skecthup, et nos bonnes pratiques de mesures et de précision, développées lors de la modélisation 3D, nous ont permis de concevoir un châssis fiable et précis. Nous sommes partis sur une conception de 2 étages superposables, munis de 2 encoches pour les roues. Les piles et les moteurs CC seront fixés en dessous du 1er étage, l’Arduino et le shield au dessus de celui-ci, et enfin les leds et les différents capteurs au dessus du 2ème étage dans un souci d’esthétique.
Code - Seconde partie 12-13 : Dans notre deuxième phase de programmation, nous nous sommes occupés du TSOP. Tout d’abord, nous avons codé la fonction de détection du signal, que nous convertissons en hexadécimal dans un second temps. Pour tester notre TSOP, nous avons utilisé une télécommande mise à notre disposition. C’est alors que nous avons eu l’idée de récupérer le code hexadécimal du bouton on/off de la télécommande. Nous avons ainsi programmé notre Arduino pour qu’il s’arrête dès qu’il détecte ce code hexadécimal. Il est aussi capable de reprendre son fonctionnement lorsqu’il le redétecte.
Montage 14 : Après avoir dessiné nos 2 étages, nous nous sommes rendus au Fabricarium afin de réaliser la découpe. Nous avons appris à régler la machine et à lancer la découpe de A à Z. Cela a été très enrichissant pour nous, et nous a permis de nous rendre compte de la simplicité de réalisation d’un châssis 2D comparé à un modèle 3D. Cependant nous nous sommes aperçus que les moteurs ne tenaient pas très bien sur notre 1er étage.
Châssis 2D - Rectification 15-16 : Dans un premier temps nous nous sommes dit qu’il valait mieux coller les moteurs sur la plaque de plexiglas, afin d’éviter qu’ils bougent, mais après avoir demandé conseils aux professeurs, nous avons décidé de nous inspirer des robots des sessions précédentes, et de partir sur un système 4 encodes (contre 2 actuellement), tout en réduisant légèrement la taille des pièces de fixation du robot.
*Soudure 17 : description
Assemblage 18 : Fort de notre expérience en découpe laser, c’est avec facilité que nous avons découpé le 2ème étage de notre robot. Une fois les 2 étages découpés et le shield soudé, il ne nous resté plus qu’une étape dans la conception mécanique de notre robot : l’assemblage. En une petite demi-heure, nous avons collé, visé... et notre robot pris forme ! Nous avons décidé d’acheter une petite batterie 9V plutôt que de prendre les 6 piles fournis par l’école dans un souci de place et de poids.
Test 19 : Une fois le robot assemblé nous avons procédé à quelques test afin de nous assurer que le montage avait bien était fait et que le shield avait bien été soudé. C’est avec joie que nous avons pu voir notre robot rouler de façon autonome dans la classe tout en évitant les murs et les armoires ! Il ne nous restait plus qu’à coder les leds et le capteur à effet hall. Cependant nous nous sommes vite aperçus que la batterie 9V se déchargeait beaucoup trop vite, nous avons donc dû repartir sur 6 piles de 1,5V.
*Code – Dernière partie 20 - et plus : Pour finir, nous avons codé la leds IR et le capteur à effet hall. Description (leds IR, capteur à effet hall)