Projet de l'UE Physique Experimentale
composé de : Lavilluniere Léo (modelisation et structure), Ly Helene(structure et modelisation), Bo Oda(codage et connectique), Altman Einat(codage connectique), Mercier Mathias et Kremer Margerie.
contact @ einat.altman@etu.upmc.fr
Servomoteurs : on se base sur un code trouvé dans la page qui suit http://eskimon.fr/287-arduino-602-un-moteur-qui-de-la-tete-le-servo-moteur .
Pour tester la rotation de nos moteurs on utilise le code suivant :
Les valeurs 1000 et 2000 correspondent à des impulsions en microsecondes, qui permettent de contrôler la rotation des servomoteurs, la vitesse et le sens. Le point où le servomoteur ne tourne pas doit être réglé et est à 1500us.
On cherche à obtenir un départ retardé de 5 secondes à l'allumage des moteurs, c'est pourquoi on inclut une fonction millis() qui compte le temps depuis l'allumage de la carte arduino. On s'en sert pour condition dans une boucle if : si le temps est inférieur à 5 secondes, les moteurs sont réglés à zéro.
Le but du programme et de déterminer les actions du robot après le top départ. Nous voulons que quand le robot est allumé, son capteur d'ultrasons s'allume dès l'allumage de l'arduino, avant les moteurs, pour voir si le robot adverse est en face de lui (à moins d'un mètre).
Si oui, au bout des 5 secondes du départ différé, le robot avance droit devant lui à pleine vitesse dans le but de pousser le robot adverse hors du ring (le réglage est à 2500 et 500 car les moteurs sont dans des sens opposé donc il leur faut des consignes opposées pour les faire tourner dans le même sens).
Si non, il ne capte pas de robot en face de lui avant les cinq première secondes, le robot va chercher son adversaire a la fin des cinq secondes du départ différé. Pour cela il va faire faire un balayage droite gauche pour chercher son adversaire sur le ring. Une fois détectée il va stopper son balayage et avancer a pleine vitesse vers l'objet détecté.
En parallèle le capteur de ligne s'allume pour que le robot s’arrête une fois que la ligne noire de sortie de ring passe sous lui. Cependant nous voulons que la fonction du capteur de ligne soit prioritaire par rapport à celle de l'ultrason pour être sûrs que notre robot ne passe pas la ligne du ring quoiqu'il arrive. C'est pourquoi nous écrivons le programme sous forme de plusieurs fonctions if imbriquées.
Dans le cas où le robot adverse n'a pas été poussé hors du ring car il aurait glissé le long du flanc du robot ou l'aurait évité, le robot, après avoir atteint la ligne noire, va faire demi-tour et recommencer son balayage du ring pour retrouver son adversaire et le repousser hors du ring. Il recommencera ainsi de suite jusqu'à ce que le robot adverse soit hors du ring ou jusqu’à la fin des 30 secondes.
Voici le schéma des branchements des deux moteurs:
Chaque moteur est branché sur une alimentation de 6V
Le robot est en bois (compressé pour la partie châssis et contreplaqué pour le biseau) en raison du côté pratique puisqu'on peut le fixer (visser, clouer, coller) facilement, et de sa légèreté, qui permet de contrôler l'évolution et la répartition de la masse. Nous avons conçu un avant biseauté pour que le robot puisse passer sous les roues avant du robot adverse, et ainsi lui enlever de l'adhérence au sol. La partie la plus en avant est biseautée d'un angle inférieur à celui du “gros” biseau, qui a un angle de 30°, pour faciliter, amorcer la montée de l'adversaire. Pour fabriquer cette pièce, on a râpé et poncé une pièce de bois découpée à la découpeuse laser, à l'aide d'une râpe à bois et d'une cale à poncer. Vient ensuite une marche de 5mm de haut, que l'adversaire pourra, idéalement, facilement surmonter pour arriver sur la pente de 30°.
Nous avons réalisé un patron des pièces pour le biseau, à découper dans une planche de bois 300x600x5mm avec la découpeuse laser. La position initiale du laser ayant été mal réglée à la première découpe (en raison de la faible marge de manoeuvre permise par les pièces très proches du bord de la planche), certaines pièces étaient trop courtes. L'image suivante représente les pièces redécoupées.