Aller au contenu


- - - - -

MicroRupteurMan


  • Veuillez vous connecter pour répondre
132 réponses à ce sujet

#1 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 24 septembre 2011 - 11:39

Re !

Voila, comme dit dans ma présentation mon budget initiale est de 80€. J'ai un certain niveaux de connaissance en electronique, on va dire 5/20 étant donné le nombre de donné concerné !
Le must pour moi serai de monter mes circuits sur ca:

Mon lien

Ce châssis est composé de 2 moteurs, un pour chaque coté, je pense que c'est adaptable pour un 'gros' cocotix.

Je voudrais quelque capteur IR dessus (normal) pour contourner les objets(je préférerai) ou un pour suivre une ligne.
Donc j'attend vos proposition. Et savoir quelle matériel acheté.

Voila.

edit: Aprés feuilletage du fofo, je pense adapter l'electronique de Roby
Roby

re-edit: Image IPB

Les cartes Arduino Duemilanove ATmga328, se font plus, je peut mettre une Arduino UNO Atmega328 a la place ?
Arduino UNO
ou
DFRduino
Faut quoi comme capteur ?

Aprés feuilletage du web je pense prendre une DFRduino Romeo 328 . Car pas besoin d'extension pour brancher un moteur CC.

Avec :
DFRduino Romeo Robotique 328
Capteur de distance Sharp GP2D12 à infra-rouge
Et le chassis, je suis pile dans le budget .

#2 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 25 septembre 2011 - 07:13

???

#3 PapaPoilut

PapaPoilut

    Membre occasionnel

  • Membres
  • Pip
  • 115 messages
  • Gender:Male
  • Location:Etampes (91)
  • Interests:Informatique (Ingé)
    Robotique (Débutant)

Posté 26 septembre 2011 - 10:40

si j'ai bien compris tu veux deux moteur (pour avancer/reculer) et 1 seul capteur?



dans ce cas la arduino uno me semble plus que performante pour ca ! même avec un peu + de capteurs ;)


je l'ai achetée et simple d'utilisation donc je la conseille pour les débutants comme moi !

#4 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 26 septembre 2011 - 03:52

Sur le châssis il y a deux moteur, c'est un chenillard donc il pourra tourné . Peut être par la suite quand j'aurai réussi a programmé le capteur IR et les moteur, je rajouterai un capteur a l'avant et a l’arrière dirigé vers le bas pour évite qu'il tombe dans les escalier !!

Et je vais lui rajouté des phare avec 4 led Haute luminosité branché sur un détecteur crépusculaire.

J'ai commandé le matos, on est un peu au dessus du budget mais bon..
J'ai pris une arduino uno atmega328 avec un shield moteur, et le capteur sharp.

#5 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 29 septembre 2011 - 05:48

Si quelqu'un a fait un robot similaire (1capteur IR, 2MOTEURs) j'aimerai avoir des exemple de programmation.
merci

#6 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 29 septembre 2011 - 07:04

Bonjour MicroRupteurman.

Aisé se si c'est un de mes programmes ça pourrait t’être utile

#include <Servo.h>
int vitesse1 = 6;
int vitesse2 = 5;
int direction1 = 7;
int direction2 = 4; 

int capteur = 0; // broche analogique utilisé pour connecter le capteur
int val;        // variable pour lire la valeur de la broche analogique

Servo myservo;// créer un objet de servo pour contrôler un servomoteur
 

void Moteur1(int valeur_vitesse, boolean sens_avant)
{
analogWrite(vitesse1,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
if(sens_avant)
{
digitalWrite(direction1,HIGH);
}
else
{
digitalWrite(direction1,LOW);
}
}
 
void Moteur2(int valeur_vitesse, boolean sens_avant)
{
analogWrite(vitesse2,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
if(sens_avant)
{
digitalWrite(direction2,HIGH);
}
else
{
digitalWrite(direction2,LOW);
}
} 


void setup()
{
  
myservo.attach(2);    // attache le servo sur la broche 2 à l'objet servo
int i;
for(i=4;i<=8;i++)
pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie 
}
 
void loop()
{
  
val = analogRead(capteur);       // lit la valeur du capteur (valeur comprise entre 0 et 115)
val = map(val, 0, 115, 0, 300); // l'échelle pour l'utiliser avec le servo (valeur entre 0 et 300)
myservo.write(val);            // définit la position d'asservissement en fonction de la valeur à l'échelle
delay(1000);                  // attend que le servo pour y arriver
 
if (val <= 170) // si on est à moins de quelque cm d'un obstacle

{
  Moteur1(0,true);          //j’arrête le moteur 1
 Moteur2(0,true);          // j’arrête le moteur 2
 delay(300);              //j’attends quelque secondes
  Moteur1(255,true);     //j'avance le moteur 1 a fond
 Moteur2(0,true);       // j’arrête le moteur 2
 delay(400);           //j’attends quelque secondes
  Moteur1(255,true);  //J'avance tout droit en mettant les 1 moteurs à fond
 Moteur2(255,false); //J'avance tout droit en mettant les 2 moteurs à fond
 
}
else
{
 Moteur1(255,false);
 Moteur2(255,true); 
}
  
}


#7 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 29 septembre 2011 - 08:00

Merci !! enfin de quoi bosser !! :rolleyes:

#8 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 29 septembre 2011 - 08:03

De rien MicroRupteurMan aux plaisirs.

#9 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 30 septembre 2011 - 12:53

tu as quoi comme shield moteur ?

#10 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 30 septembre 2011 - 01:22

Comment ça???

Tu parles d'une Carte d'extension c'est ça???

#11 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 30 septembre 2011 - 02:10

Comment on inverse le sens du moteur ??
J'ai la meme carte que toi pour le moteur.
Voici la partie du code qui me pose problème : (je sais, c'est faux >)

Broche pour le moteur : 4&5
le reste c'est des led.

void setup()
{
  pinMode(9,OUTPUT);   
  pinMode(7,OUTPUT); 
  pinMode(13,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  
 
  
  //initialisation broche n°/sortie;
  
}


void loop()
{
   int sensorValue = analogRead(A0);
   
    if (sensorValue >400)
    {
      delay(250);
      digitalWrite(2,HIGH);
      delay (100);
      digitalWrite(2,LOW);
      delay (100);
      digitalWrite(2,HIGH);
      delay (100);
      digitalWrite(2,LOW);  
      delay(100);
      digitalWrite(5,HIGH); //moteur sens2
      delay(2000);       	//pendant2s
      digitalWrite(5,LOW);    //moteur sens2 Stop
      digitalWrite(2,HIGH);
      delay (100);
      digitalWrite(2,LOW);
      delay (1000);
      >digitalWrite(4,HIGH); //moteur sens1
      >delay(2000);       	//pendant2s
      >digitalWrite(4,LOW);    //moteur sens1 Stop
      delay(1000);
    }


#12 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 30 septembre 2011 - 04:30

j'ai celle si Image IPB

#13 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 30 septembre 2011 - 06:39

j'ai la 1A, tu doit avoir la deux, seul différence.

#14 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 01 octobre 2011 - 11:38

voila, j'ai reçu mon châssis chenille, mes led et...... j' "ai" programmé, (merci seb)

Voila 'mon' programme:


// Les Moteurs

int vitesse1 = 6;
int vitesse2 = 5;
int direction1 = 7;
int direction2 = 4;


void Moteur1(int valeur_vitesse, boolean sens_avant)
{
analogWrite(vitesse1,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
if(sens_avant)
{
digitalWrite(direction1,HIGH); // HIGH (=HAUT)
}
else
{
digitalWrite(direction1,LOW);// LOW (=BAS)
}
}

void Moteur2(int valeur_vitesse, boolean sens_avant)
{
analogWrite(vitesse2,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
if(sens_avant)
{
digitalWrite(direction2,HIGH);// HIGH (=HAUT)
}
else
{
digitalWrite(direction2,LOW);// LOW (=BAS)
}
} 

void setup()
{
pinMode(9,OUTPUT);//OUTPUT (= en sortie)
pinMode(7,OUTPUT);//OUTPUT (= en sortie)
pinMode(13,OUTPUT);//OUTPUT (= en sortie)
pinMode(2,OUTPUT);//OUTPUT (= en sortie)

int i;
for(i=5;i<=8;i++)
pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie

//initialisation broche n°/sortie;

}


void loop()
{
int sensorValue = analogRead(A0);

if (sensorValue >180)
{
digitalWrite(2,HIGH);// HIGH (=HAUT)
delay (100);
digitalWrite(2,LOW);// LOW (=BAS)
delay (100);
digitalWrite(2,HIGH);// HIGH (=HAUT)
delay (100);
digitalWrite(2,LOW);// LOW (=BAS)
delay(100);
digitalWrite(2,HIGH);// HIGH (=HAUT)
delay (100);
digitalWrite(2,LOW);// HIGH (=HAUT)
delay (100);

Moteur1(0,true); // true (=VRAI) j'arrete le moteur 1
Moteur2(0,true); // true (=VRAI) j'arrete le moteur 2
delay(25); 
Moteur1(255,true); // true (=VRAI) j'allume le moteur 1
Moteur2(255,true); //j'allume le moteur2 = m1+m2 = tourne sur place

}
else
{
Moteur1(255,false);//false (= FAUX)
Moteur2(255,true);//true (=VRAI) 
}
}
//
Donc le bot avance a fond les bananes, et quand il voit un obstacle devant lui (30cm) il se met a tourne sur place jusqu'à ce qu'il trouve un chemin dégager .
Équipé de :

Eclairage:
-5 led 5mm blanche 18000mdc a l'avant(ca éclaire loin....)
-2led rouge a l'arrière simple en 5mm

Je fait les test pour adapter un détecteur crépusculaire.

Electronique:
-2moteurs CC
- Carte Arduino Uno Atmega328
- Shield moteur 1a (un peu juste) DFRduino de DF robot
- Capteur Infra-Rouge Sharp Gp2D12
- PILE RECHARGEABLE !

Prochaine étape, rajout de capteur IR Sharp a l'avant Dirigé vers le sol pour pas qu'il tombe dans les escaliers !!!

#15 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 01 octobre 2011 - 11:50

Beaux travail MicroRupteurMan , tu voie que tu peux y arrivé tous seul félicitation

#16 Guest_MicroRupteurMan_*

Guest_MicroRupteurMan_*
  • Guests

Posté 03 octobre 2011 - 03:29

8HR apres des tests et des programmation il évite (enfin) tout les objets détectable.


#include <Servo.h>

//servo, l'angle du servo est a 0° bloqué, 90°centré

#define INCR 10

Servo servo1;
int angle = 0;
int sens = 0;


 // Les Moteurs

int vitesse1 = 6;
int vitesse2 = 5;
int direction1 = 7;
int direction2 = 4;
int ledRouge = 11;
int ledBleue = 12;



void Moteur1(int valeur_vitesse, boolean sens_avant)
{
analogWrite(vitesse1,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
if(sens_avant)
{
digitalWrite(direction1,HIGH); // HIGH (=HAUT)
}
else
{
digitalWrite(direction1,LOW);// LOW (=BAS)
}
}

void Moteur2(int valeur_vitesse, boolean sens_avant)
{
analogWrite(vitesse2,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
if(sens_avant)
{
digitalWrite(direction2,HIGH);// HIGH (=HAUT)
}
else
{
digitalWrite(direction2,LOW);// LOW (=BAS)
}
} 

void setup()
{ 
  servo1.attach(9); //servo conecte sur pin9, pwm
pinMode(9,OUTPUT);
pinMode(7,OUTPUT);
pinMode(2,OUTPUT);
pinMode (ledBleue,OUTPUT);
pinMode (ledRouge,OUTPUT);





int i;
for(i=5;i<=8;i++)
pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie

//initialisation broche n°/sortie;

}



void loop()
{

 { digitalWrite(ledRouge,HIGH);
delay(70);
digitalWrite(ledRouge,LOW);
digitalWrite (ledBleue,HIGH);
delay(70);
digitalWrite (ledBleue,LOW); }


int sensorValue = analogRead(A0);



if (sensorValue >280 && angle <45)
{
 angle = angle;


Moteur1(0,true); // true (=VRAI) j'arrete le moteur 1
Moteur2(0,true); // true (=VRAI) j'arrete le moteur 2
delay(150); 
Moteur1(255,true); // true (=VRAI) j'allume  le moteur 1
Moteur2(255,true); //j'allume le moteur2 = tourne sur place
delay(50);
}


else if (sensorValue >280 && angle >135)
{
  angle = angle;

  Moteur1 (0,false);
  Moteur2(0,false);
  delay(150);
  Moteur1 (255,false);
  Moteur2 (255,false);
  delay(50);
}

else if (sensorValue >230 && angle<130 && angle>50)
{
  
   angle = angle;
  
Moteur1(0,true); // true (=VRAI) j'arrete le moteur 1
Moteur2(0,true); // true (=VRAI) j'arrete le moteur 2
delay(150); 
Moteur1(230,true);
Moteur2(230,false);
delay(350);
Moteur1(0,true);
Moteur2(0,true);
delay(200);
Moteur1(255,true); // true (=VRAI) j'allume  le moteur 1
Moteur2(255,true);
delay(430);
}

else
{   Moteur1(255,false);//false (= FAUX)
    Moteur2(250,true);//true (=VRAI) 
 	}      
 	
 	
 	
 	
   {   
    // faire tourner le servomoteur  
    if (sens == 0)  
    {  
      angle += 34;  
    }   
    else {  
      angle -= 34;  
    }  
    // si on est arrivé à une extremité  
    if (angle == 0)  
    {  
      sens = 0; 
 	
    }   
    
    if (angle == 170) {  
      sens = 1;  
    }  
    delay(6);  
    servo1.write(angle);  

 	}}




// j'expose mais code pour que d'autre personne puissent s'en INSPIRé.

#17 Black Templar

Black Templar

    Membre

  • Membres
  • PipPipPipPipPip
  • 1 430 messages
  • Gender:Male
  • Location:Lille

Posté 03 octobre 2011 - 05:38

Bonjour MicroRupteurMan,

Pour placer du code dans un message, entoure les de balises [ code] [ /code] afin d'avoir une mise en page qui facilite la lisibilité.
J'ai modifié tes derniers messages en rajoutant ces balises.
Pour info, dans l'éditeur de texte des messages, tu peux automatiquement ajouter les balises en :
  • sélectionnant le code du message
  • cliquant sur le bouton <> (seconde ligne, 14ème bouton)

Merci
Black Templar

Mon site internet : http://ferdinandpiette.com/


#18 microrupteurman2

microrupteurman2

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 2 066 messages
  • Gender:Male
  • Location:33
  • Interests:Tout

Posté 05 octobre 2011 - 10:46

Image IPB

Image IPB

Image IPB
 
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
 

#19 microrupteurman2

microrupteurman2

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 2 066 messages
  • Gender:Male
  • Location:33
  • Interests:Tout

Posté 05 octobre 2011 - 11:16

http://imageshack.us/photo/my-images/197/dsc00693zz.jpg/
 
Page Twitter :  https://twitter.com/2Appartelier (bateau seulement)
 

#20 seb03000

seb03000

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 192 messages
  • Gender:Male
  • Location:Loins dérrière toi.
  • Interests:La Robotique , plus l'informatique

Posté 05 octobre 2011 - 11:43

Pas mal il claque ton robot , les LED blanche éclaire très fore je trouve.

Sinon je voie que ta mis un interrupteur ,le mieux prend un bouton poussoir numérique.




0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users