Outils pour utilisateurs

Outils du site


wiki:projets:mineemon

Ceci est une ancienne révision du document !


Mineemon

DOS SANTOS Bérénice, BENZEGGOUTA Djihane, HELLY D'ANGELIN Valentine, KE Wenqi, KOUADOU Elane, LE FLOCH Alicia,

Contact :valentinedangelin@hotmail.fr

Nous avons pour projet de construire un robot qui sera apte à combattre d'autres robots. Pour se faire nous avons du réfléchir à la meilleure configuration de robot possible (taille,forme, poids, centre d'inertie, matériel, spécificités…) tout en respectant un budget de cinquante euros. La grande spécificité de notre robot, en comparaison avec les robots adversaires, est qu'il est rond. L'idée de lui donner une forme ronde vient du fait qu'on pense que les autres robots auront davantage de difficultés à pousser Mineemon hors de l'arène.

Machines nécessaires

Nous avons utilisé:

  • Découpe laser: nous avons utilisé la découpe laser pour découper nos planches de bois afin de leurs donner une forme ronde constituants la base de notre robot.Elle nous a également permis de créer les trous pour les vices et de découper le devant de Mineemon pour lui créer un plan incliné.

  • Imprimante 3D: nous avons utilisé l'imprimante 3D pour créer diverses pièces support et des pièces de jonction comme le fixeur des capteurs, les fixeurs des roues…

Matériels nécessaires

Mineemon est constitué de:.

  • Deux planches de bois constituant la base de Mineemon.
  • Plaque d’aluminium entourant le robot formant une taule.
  • Deux roues chenilles LEGO.
  • Une arduino
  • Deux servomoteurs de couples 5 kg/cm.
  • Des capteurs infrarouge.
  • Des capteurs à ultrasons.
  • Des piles AA pour alimenter le robot et une pile de 9V pour alimenter d'arduino.

.

Construction

Partie conceptuelle

Pour élaborer notre robot nous avons, en premier lieu, réfléchi aux différentes stratégies (formes, couple des moteurs, tailles des roues, matériaux de construction…) sur lesquelles la construction de notre robot devait reposée. Pour se faire nous nous sommes aidées du TD5 de physique du mouvement et nous avons également regarder des vidéos sur Youtube.

Partie 2

mettre :

  • lien vers les fichiers STL et autres (pour cela, il faut l'uploader sur un cloud, le partager en mode public et le mettre en lien sur le wiki)
  • les schéma, par exemple, si vous faite un montage Arduino, utiliser |fritzing, pour avoir un beau schéma comme le suivant :

//img11.hostingpics.net/pics/327668PCRrelayfrizt.png

  • Code qui donne vie à Mineemon:

#include <Servo.h> #define trigPin 1 0 #define echoPin 9

int gauchesensorPin1 = 2;

int centresensorPin1 = 3;

int droitesensorPin1 = 4;

int gauchesensorPin2 = 5;

int centresensorPin2 = 6;

int droitesensorPin2 = 7;

Servo myservo1; Servo myservo2;

void setup () {

 myservo1.attach (12);
 myservo2.attach (13);
  
Serial.begin (9600);

pinMode (trigPin,OUTPUT); pinMode (echoPin,INPUT);

pinMode(gauchesensorPin1,INPUT);
pinMode(centresensorPin1,INPUT);
pinMode(droitesensorPin1,INPUT);
pinMode(gauchesensorPin2,INPUT);
pinMode(centresensorPin2,INPUT);
pinMode(droitesensorPin2,INPUT);

}

void loop () {

int duration,distance; 
digitalWrite (trigPin,HIGH);
delayMicroseconds (1000);
digitalWrite (trigPin,LOW);
duration = pulseIn (echoPin,HIGH); 
distance = (duration/2)/29.1;
Serial.print (distance);
Serial.println ("cm");

byte gauche1,centre1,droite1,gauche2,centre2,droite2;

gauche1 = digitalRead (gauchesensorPin1); centre1 = digitalRead (centresensorPin1); droite1 = digitalRead (droitesensorPin1);

gauche2 = digitalRead (gauchesensorPin2); centre2 = digitalRead (centresensorPin2); droite2 = digitalRead (droitesensorPin2);

if ( gauche1== LOW ){

Serial.println ("noirgauche");
myservo1.writeMicroseconds (1500);
myservo2.writeMicroseconds (2000);

}

if ( gauche2== LOW ){

Serial.println ("noirgauche");
myservo1.writeMicroseconds (1500);
myservo2.writeMicroseconds (2000);

}

if ( droite1== LOW ){

Serial.println ("noirdroite");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1520);

}

if ( droite2== LOW ){

Serial.println ("noirdroite");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1520);

}

if ( gauche1== LOW && centre1== LOW && droite1== LOW ){

Serial.println ("noirtout1");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (2000);

}

if ( gauche2== LOW && centre2== LOW && droite2== LOW ){

Serial.println ("noirtout2");
myservo1.writeMicroseconds (2000);
myservo2.writeMicroseconds (1000);

}

if ( gauche1== HIGH && centre1== HIGH && droite1== HIGH && gauche2== HIGH && centre2== HIGH && droite2== HIGH && distance < 10){

Serial.println ("blanctout");
myservo1.writeMicroseconds (2000);
myservo2.writeMicroseconds (1000);

}

if ( gauche1== HIGH && centre1== HIGH && droite1== HIGH && gauche2== HIGH && centre2== HIGH && droite2== HIGH && distance > 10){
Serial.println ("blanctout");
myservo1.writeMicroseconds (2000);
myservo2.writeMicroseconds (1500);

}

if ( gauche1== HIGH && centre1== HIGH && droite1== HIGH && gauche2== HIGH && centre2== HIGH && droite2== HIGH ){
Serial.println ("noirtout");
myservo1.writeMicroseconds (1530);
myservo2.writeMicroseconds (1500);

}

if ( gauche1== LOW && centre1== LOW){

Serial.println ("noirgauchecentre1");
myservo1.writeMicroseconds (1500);
myservo2.writeMicroseconds (2000);

}

if ( gauche2== LOW && centre2== LOW){

Serial.println ("noirgauchecentre2");
myservo1.writeMicroseconds (1500);
myservo2.writeMicroseconds (2000);

}

if ( centre1== LOW && droite1== LOW){

Serial.println ("noircentredroite1");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( centre2== LOW && droite2== LOW){

Serial.println ("noircentredroite2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( gauche1== LOW && droite1== LOW && distance > 10){

Serial.println ("noirgauchedroite1+");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (2000);

}

if ( gauche2== LOW && droite2== LOW && distance > 10){

Serial.println ("noirgauchedroite2+");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (2000);

}

if ( gauche1== LOW && droite1== LOW && distance < 10){

Serial.println ("noirgauchedroite1-");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (2000);

}

if ( gauche2== LOW && droite2== LOW && distance < 10){

Serial.println ("noirgauchedroite2-");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (2000);

}

if ( gauche1== LOW && gauche2== LOW){

Serial.println ("noirgauche1gauche2");
myservo1.writeMicroseconds (1500);
myservo2.writeMicroseconds (2000);

}

if ( droite1== LOW && droite2== LOW){

Serial.println ("noirdroite1droite2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( gauche1== LOW && centre2== LOW){

Serial.println ("noirgauche2centre2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( gauche1== LOW && droite2== LOW){

Serial.println ("noirgauche1droite2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( centre1== LOW && gauche2== LOW){

Serial.println ("noircentre1gauche2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( centre1== LOW && droite2== LOW){

Serial.println ("noircentre1droite2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( gauche2== LOW && droite1== LOW){

Serial.println ("noirgauche2droite1");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( centre2== LOW && droite1== LOW){

Serial.println ("noircentre2droite1");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( gauche2== LOW && centre2== LOW && gauche1== LOW && centre1== LOW){

Serial.println ("noirg2c2g1c1");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( centre2== LOW && droite2== LOW && centre1== LOW && droite1== LOW){

Serial.println ("noirc2d2c1d1");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);

}

if ( gauche2== LOW && droite2== LOW && gauche1== LOW && droite1== LOW){

Serial.println ("noirg2d2g1d2");
myservo1.writeMicroseconds (1000);
myservo2.writeMicroseconds (1500);
 }
 

}

Journal de bord

  • 11/11: Découpe de la planche constituant la base de notre robot et découpe des espaces pour faire passer nos roues.
  • 14/11: Construction des roues à l'imprimante 3D.
  • 16/11: Assemblage du robot en vue du premier test.
  • 22/11: Découpe des nouvelles planches à la découpe laser.
  • 24/11: Perçage de troues à la découpe laser.
  • 28/11: Création de la taule en aluminium entourant Mineemon.
  • 30/11: Impression des roues grâce à l'imprimante 3D.
  • 01/12: Impression de pièces jonction reliant les roues aux servomoteurs et assemblage définitif de Mineemon.
  • 02/12: Impression de pièces pour fixer les moteurs, Finition de Mineemon.
wiki/projets/mineemon.1480883995.txt.gz · Dernière modification: 2016/12/04 20:39 de mineemon