Ceci est une ancienne révision du document !
Porteurs du projet: Lucile Auzeméry (contact : lucileauzemery@orange.fr) Ivanna Langan (contact : langan.annavi@gmail.com) Adrien Avramoglou (contact : adrienavra@yahoo.fr) Théo Jesu (contact : theojesu@gmail.com) Aurélien Cintioni (contact : aurelien_cintioni@hotmail.fr)
Nous avons dès le départ récupéré des moteurs brushless avec leurs contrôleurs associés.
Bien que déconseillés, nous avons décidé de les utiliser.
Nous avons opté pour une stratégie simple : alourdir au maximum notre robot et le faire foncer sur l'adversaire.
- 1 Arduino Uno ou similaire - 4 roues
- 4 moteurs et leurs contrôleurs - dominos, équerres, … - batterie LIPO - plaque à souder
Dans un premier temps, pour la version 0, nous avions découpé un châssis rectangulaire.
Mais nous l'avons ensuite modifié : La découpe est faite de sorte à ce que les roues puissent être au plus proche du châssis possible (cf. les encoches au niveau des 4 angles), et de sorte à laisser une rampe s'insérer sur l'avant.
Chaque moteur est relié à son contrôleur qui reçoit le signal PWM de la carte Arduino, ainsi chaque moteur est indépendant. Nous avons donc testé chaque moteur indépendamment pour trouver le bon sens de rotation et connaître la valeur minimale à partir de laquelle un moteur tourne.
Les moteurs sont reliés à leurs contrôleurs par des dominos (il suffit d'inverser les deux câbles des extrémités pour inverser le sens de rotation du moteur)
Une des premières grosses étapes a été de réussir à faire tourner ces moteurs, ce qui nécessite obligatoirement un programme :
On programme sur Arduino :
#include <Servo.h> // appel bibliothèque Servo Servo ctrl_1 ; // création de variables Servo Servo ctrl_2 ; // on leur donne leurs noms Servo ctrl_3 ; Servo ctrl_4 ; boolean premierefois = true;
void setup() {
pinMode(7,INPUT); pinMode(3,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(8,OUTPUT);
On choisit 4 pins de la carte qui délivrent des signaux PWM. Ce sera donc la 3, 5, 6 et 8. La 7 est réservée à notre interrupteur.
ctrl_1.attach(3); ctrl_2.attach(5); ctrl_3.attach(6); ctrl_4.attach(8);
On associe chaque contrôleur à une sortie.
ctrl_1.writeMicroseconds(1000); // On attribue la valeur min
// moteur ne démarre pas a sa val min
ctrl_2.writeMicroseconds(1000);
ctrl_3.writeMicroseconds(1000); ctrl_4.writeMicroseconds(1000); Serial.begin(9600); }
void loop() {
boolean etatBouton = digitalRead(7);
if (etatBouton == HIGH)
{
if (premierefois == true)
{
delay(5000);
ctrl_1.writeMicroseconds(1180); // 1130
ctrl_2.writeMicroseconds(1160); //1110
ctrl_3.writeMicroseconds(1160); //1120
ctrl_4.writeMicroseconds(1190); //1150
delay(10000);
premierefois = false;
}
Le delay (5000) est notre départ différé de 5 secondes. Les moteurs sont donc mis en marche après ce temps, la valeur entre parenthèses nous permettant de régler la vitesse. Le delay (10000) correspond au temps de rotation des moteurs, ici 10 secondes.
if (premierefois == false)
{
ctrl_1.writeMicroseconds(1000);
ctrl_2.writeMicroseconds(1000);
ctrl_3.writeMicroseconds(1000);
ctrl_4.writeMicroseconds(1000);
}
}
if (etatBouton==LOW)
{
ctrl_1.writeMicroseconds(1000);
ctrl_2.writeMicroseconds(1000);
ctrl_3.writeMicroseconds(1000);
ctrl_4.writeMicroseconds(1000);
}
}
}
La découpe est faite de sorte à pouvoir s'insérer dans le châssis, et la longueur est maximale de sorte à compléter les 40 centimètres.
Nous l'avons également recouverte de Teflon, afin que l'adversaire n'adhère pas à notre rampe.
Enfin nous avons fixé un mur pour que l'adversaire ne puisse pas passer par dessus notre robot.
Hors Fablab:
13/11/2017 :
20/11/17 :
30/11/2017 :
04/12/2017 :
05/12/2017 :
06/12/2017 :
Malheureusement, après la pesée et à moins d'une demie heure de la compétition, il s'avère que notre robot pèse + de 2,5 kg !
Nous avons donc essayé de l'alléger au maximum (retrait du mur, retrait de pièces de bois sur le coté qui maintenaient le châssis, trous dans le mur et le châssis,…) mais impossible d'atteindre les 2 kg réglementaires.
Prêts à déclarer forfait, nous avons néanmoins pu concourir.