Outils pour utilisateurs

Outils du site


wiki:projets:confucius

CONFUCIUS

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)

  • Date de début : Octobre 2017.
  • Les objectifs de ce projet : Construire un robot pour une compétition de robots sumo.
  • Cahier des charges : 2kg maximum - dimensions max : 40cm x 40cm x 40cm
  • Date de la compétition : 6 décembre 2017.

Descriptif

Nous avons dès le départ récupéré des moteurs brushless avec leurs contrôleurs associés.
Bien que déconseillés, puisqu'ils ne sont pas simples d'utilisation, nous avons quand même décidé d'apprendre à les utiliser.
Nous avons opté pour une stratégie simple : alourdir au maximum notre robot et le faire foncer sur l'adversaire afin de pousser ce dernier hors du dohyo.

Matériels nécessaires

- 1 Arduino Uno ou similaire - 4 roues

- 4 moteurs brushless et leurs contrôleurs (entouré en rouge)

- dominos, équerres, vis… - batterie LIPO de 11,1 volts - chargeur associé à la batterie (il doit vraiment être choisi en fonction de la batterie, au risque de.. tout faire exploser!) - plaque à souder (interrupteur)

Construction

Réalisation du châssis

Dans un premier temps, pour la version 0, nous avions découpé un simple châssis rectangulaire.

Mais nous l'avons ensuite modifié dans le but de rapprocher les roues du châssis : 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.

Contrôle des moteurs

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 (si le sens de rotation n'était pas celui souhaité, il suffisait d'inverser deux fils du moteur) et connaître la valeur minimale à partir de laquelle un moteur tourne.

Les moteurs sont reliés à leurs contrôleurs par le biais de dominos.

Une des premières grosses étapes a été de réussir à faire tourner ces moteurs, ce qui nécessite obligatoirement un programme…

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 de rotation. 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); 
}
}
}

Rampe

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 et perde donc toute accroche.
Enfin nous avons fixé un “mur” en haut de cette rampe, pour éviter que l'adversaire ne puisse pas passer par dessus notre robot.

Journal de bord

13/11/2017 :

  • perçage du châssis pour y fixer les moteurs
  • découpe des axes des moteurs
  • fixation des axes des moteurs dans les axes des roues

20/11/17 :

  • fixation des moteurs au châssis

30/11/2017 :

  • Raccourcissement des axes des roues (couper et limer).
  • Test des valeurs de démarrage limites de chaque moteur.
  • Amélioration le programme Arduino
  • Réalisation d'un interrupteur sur une plaque à souder

04/12/2017 :

  • Rallongement des fils des contrôleurs pour éviter la perte de transmission du signal et éviter l'utilisation de dominos, grâce à des soudures
  • fixation de la rampe

  • Révision des valeurs limites de chaque moteur

05/12/2017 :

  • fixation caisse sous le châssis
  • fixation mur au dessus de la rampe

06/12/2017 :

  • découpe de la rampe, elle était trop longue et une roue ne touchait plus le sol
  • collage du Téflon sur la rampe
  • peinture
  • collage du drapeau
  • fixation caisse sous le châssis

Hors Fablab (chez soi, dans l'atrium, dans un couloir…):

  • Commande des roues
  • Première découpe du châssis
  • Deuxième découpe du châssis (La première n'étant pas optimale)
  • Commande de la batterie lipo et du chargeur associé
  • Programmation sur Arduino pour commander les contrôleurs et faire fonctionner les moteurs
  • Liaison des contrôleurs aux moteurs (utilisation de dominos)
  • Liaison des 4 contrôleurs entre eux (utilisation de dominos)
  • Faire tourner les 4 moteurs https://youtu.be/y7dvd80t1Ck
  • Création d'un interrupteur grâce à une résistance et une breadboard https://youtu.be/hyoUFEE1dgE
  • Validation de la version 1: départ différé de 5 secondes et capable de pousser une masse fixe d'1kg https://youtu.be/Uvqwzvaau5c
  • Tests avec l'interrupteur (voir deux liens plus haut) une fois soudé sur une plaque

  • Achat d'adaptateur dans un magasin de modélisme

Rendu final

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 plus 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 mais avec des points de pénalité.

wiki/projets/confucius.txt · Dernière modification: 2017/12/06 23:14 de lucileauz