Outils pour utilisateurs

Outils du site


wiki:projets:confucius

Ceci est une ancienne révision du document !


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 fin estimée : 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, 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.

Matériels nécessaires

- 1 Arduino Uno ou similaire - 4 roues

- 4 moteurs et leurs contrôleurs - dominos, équerres, … - plaque à souder

Construction

Réalisation du châssis

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.

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 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 :

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); 
}
}
}

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.
Enfin nous avons fixé un mur pour que l'adversaire ne puisse pas passer par dessus notre robot.

Journal de bord

Hors Fablab:

  • commande des roues
  • première découpe du châssis
  • deuxième découpe du châssis (La première n'était pas optimale, les roues étaient trop éloignées du châssis)
  • commande de la batterie lipo et du chargeur associé
  • programmation sur Arduino pour commander les contrôleurs et faire fonctionner les moteurs
  • relier les contrôleurs aux moteurs (utilisation de dominos)
  • relier les 4 contrôleurs entre eux (utilisation de dominos)
  • achat d'adaptateur dans un magasin de modélisme

13/11/2017 :

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

20/11/17 :

  • fixation des moteurs au châssis

30/11/2017 :

  • Raccourcir les axes des roues (couper et limer).
  • Tester les valeurs de démarrage limites de chaque moteur.
  • Améliorer le programme Arduino
  • réalisation d'un interrupteur sur une plaque à souder

04/12/2017 :

  • rallonger les fils des contrôleurs pour éviter la perte de transmission du signal et éviter l'utilisation de dominos
  • fixation de la rampe
  • revoir les 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 car trop longue
  • collage Teflon
  • peinture
  • fixation caisse sous le châssis
LDAP: couldn't connect to LDAP server
wiki/projets/confucius.1512591807.txt.gz · Dernière modification: 2017/12/06 20:23 de lucileauz