Aller au contenu


Photo
- - - - -

[2WD]mon robot Jardise


202 réponses à ce sujet

#101 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 30 juillet 2011 - 03:18

..

#102 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 05 août 2011 - 08:55

..

#103 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 06:20

...

#104 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 août 2011 - 06:40

Les capteurs US sont sujets aux nuisances sonors comme les capteyrs IR sont sendibles auc nuisances lumineuses.

Pour la programmation fe ce czateur, sans dire de bêtise, ils ont plusieurs facons d'être connectés. (I2C, serial etc).
Quellr est la solution sue tu as choisies.

Cdlt
Yves

 


#105 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 07:02

....

#106 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 août 2011 - 07:10

http://www.arduino.cc/en/Tutorial/UltrasoundSensor

Voila qui devrait t'aidee

 


#107 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 07:22

...

#108 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 août 2011 - 07:22

Attention confusion

Je dit que les Capteurs IR sont sensibles a la lumiere
Les Capteurs US sont sensibles aux sons.

Tu as aparament choisie la connexion serial
Mais le RX du capteur doit etre connecté au TX de la carte
Et le TX tx du capteur au RX de la carte.

C'est le sens logique d'une liaison serie.

Sinon, la age que je t'ai donnee ne correspond pas a une liaison serie.

 


#109 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 07:31

...

#110 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 août 2011 - 07:40

Oui je suis certain

TX = send
RX = recive

Tu envois d'un coté et tu recois de l'autre.
Tu branche toujours un emetrur vers un recepteur
Et pas un emeteur vers un autre emetteur

 


#111 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 07:48

...

#112 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 août 2011 - 08:11

Je ne suis pas la personne qu'il ce faut pour examiner le code.
Mais celii qui te l'as donné l'a vraiment bien commenté.

J'ai bien une idée, mais je prefere na pas en parler tellement je n'ai pas confiance en mes connaissances en C++

Attends un programmeur confirmé vas passer.

Cdlt
Yves

 


#113 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 08:16

...

#114 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 12 août 2011 - 08:30

Bon je te parle de mon idée.

Tu as une fonction
Void direction ( et des valeurs)

Une fonction void (c'est sa spécificité) ne retourne eucune vzleua
Void moteur2()
Voila comment declarer une fonction void
Les valeurs sui se trouvent entre tes parenteses ne dont donc pas valides.
Tes moteurs ne changent changent pas de direction

 


#115 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 12 août 2011 - 08:58

....

#116 Astondb8

Astondb8

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 111 messages
  • Gender:Male
  • Location:Paris

Posté 13 août 2011 - 03:40

Si ce code fonctionnait, ma supposition est fausse.
Désolé. Encore une annerie.
Décidément.

 


#117 zeroc00l

zeroc00l

    Membre

  • Membres
  • 40 messages
  • Gender:Male

Posté 13 août 2011 - 11:33

Bonjour,
int i;
for(i=5;i<=8;i++)
pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie 
Déjà, là ça ne va pas, i commence à 5 donc, le pin 4 n'est pas pris en compte, et il met le pin 8 en sortie car 'i<=8 ' ce qui ne correspond pas à ton commentaire.
Actuellement donc, les pin en sortie sont 5,6,7,8.

à remplacer par

for(int i=4;i<8;i++){
   pinMode(i, OUTPUT); //met les pin 4,5,6,7 en mode sortie 
}
Comme quoi, apprendre les fondamentaux de l'algorithmie ça sert à quelque chose avant de s'attaquer à un langage, et de faire son propre code pour le comprendre.
Ayant de l'expérience en la matière, je sais que bosser sur un code qui n'est pas le sien c'est plutôt chi*** car personne n'a les même connaissances et les même méthodologie.

Par exemple, pour ça:
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);
}
}

vitesse2 et direction2 sont directement appelé en global ????


J'aurai fait :

// CONSTANTES ...
#define VITESSE_2 = 5;
#define DIRECTION_2 = 4;

void Moteur2(int valeur_vitesse, boolean sens_avant){
  analogWrite(VITESSE_2,valeur_vitesse); //valeur_vitesse = 0 à l'arrêt, et 255 pour vitesse maximum
  type = (sens_avant ? HIGH : LOW);
  digitalWrite(DIRECTION_2,type);
}


Cdlt

#118 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 04 octobre 2011 - 11:55

Ok merci je teste .

#119 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 10 février 2012 - 01:07

Bonjour a tous.

Pour évité d'ouvrir un nouveaux sujet , je me remet sur mon sujet.

Bon voila j'ai perfectionner mon robot je luis et rajouter des nouveaux composants , et ce n’est pas fini , voila se que j'ai pu faire depuis tous se

temps.

Pour commencé voici quelque photo de mon robot Jardise , attention ya beaucoup de files lol.

Image IPB
Image IPB
Image IPB
Image IPB
Image IPB
Image IPB
Image IPB
Image IPB

Au cours de quelque moi j'ai voulu me remettre sur mon robot Jardise , j'avais stipulé qu'il été fini , mes j'ai voulue l’amélioré en luit rajoutent

de nouveau composent.


J’ai bien sûr grâce aux logiciels Arduino , amélioré mon code de Jardise , grâce à la télécommande et son capteur de son fonctionnement manuel , et

autonome.

Voici son code:

#include <IRremote.h>
#include <IRremoteInt.h>
#include <Servo.h>

//Servomoteur
// Créer un objet pour contrôler un servomoteur
Servo myservo;

//Capteur de Distance infrarouge IR Sharp GP2Y0A02YK0F
int capteur = 0;

//Capteur de distance infrarouge Sharp GP2Y0A21
int capteur2 = 1;

// Variable pour lire la valeur du capteur de la broche analogique
int val;

// Variable pour lire la valeur du capteur2 de la broche analogique
int val2;

//LED bleu
int LEDBLEU = 2;

//Motoreducteur
const int vitesse1=6;
const int vitesse2=5;
const int direction1=7;
const int direction2=4;

////Fonctions motoréducteur pour le mode déplacement automatique
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(7,HIGH);
}
else
{
digitalWrite(7,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(4,HIGH);
}
else
{
digitalWrite(4,LOW);
}
}

// IR PIN module récepteur et variable
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

//mode d'execution
const int MODE_AUTO = 0;
const int MODE_MANUEL = 1;
int mode = MODE_MANUEL;

const int MODE_STOP           = 10;
const int MODE_AVANCE         = 11;
const int MODE_RECULE         = 12;
const int MODE_AV_RAPIDE      = 13;
const int MODE_AR_RAPIDE      = 14;
const int MODE_DROITE         = 15;
const int MODE_GAUCHE         = 16;
const int MODE_AV_DROITE      = 17;
const int MODE_AV_GAUCHE      = 18;
const int MODE_AR_DROITE      = 19;
const int MODE_AR_GAUCHE      = 20;
const int MODE_LED            = 21;
int sous_mode_manuel = MODE_STOP;

void setup()
{ 
//LEDBLEU broche en mode sortie
pinMode(LEDBLEU,OUTPUT);

// Attache le servo sur la broche 3 à l'objet servo
myservo.attach(3);

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

Serial.begin(9600);

// désactiver les moteur par défaut
digitalWrite(5,LOW);
digitalWrite(6,LOW);

// début de récepteur IR
irrecv.enableIRIn();
}

void loop()
{
int led_on =false;

// Signal IR reçu
if (irrecv.decode(&results))
{   
// changement de mode par le bouton rouge de la télécommande (POWER)
//automatique  ou  manuel
if(results.value==16580863)
{
if (mode == MODE_AUTO)
mode = MODE_MANUEL;
else
mode = MODE_AUTO;
}
else if(mode == MODE_MANUEL)
{
if(results.value==16597183)                      // Stop (FUNC / STOP) bouton de la télécommande
sous_mode_manuel  = MODE_STOP;

else if(results.value==16613503)                //  (VOL +) bouton de la télécommande faire avancer le robot
sous_mode_manuel  = MODE_AVANCE;

else if(results.value==16617583)               // (VOL-) bouton de la télécommande faire reculer le robot
sous_mode_manuel  = MODE_RECULE;

else if(results.value==16589023)              // rotation gauche (<<) touche recule rapide de la télécommande
sous_mode_manuel  = MODE_GAUCHE;

else if(results.value==16605343)             // rotation droite (>>) bouton avance rapide la télécommande
sous_mode_manuel  = MODE_DROITE;

else if(results.value==16609423)            // avant droite  avec la touche ( ST/REPT ) de la télécommande
sous_mode_manuel  = MODE_AV_DROITE;

else if(results.value==16621663)           // avant gauche (playe) bouton  de la télécommande
sous_mode_manuel  = MODE_AV_GAUCHE;

else if(results.value==16601263)          // inverse à droite (HAUT) bouton de la télécommande
sous_mode_manuel  = MODE_AR_DROITE;

else if(results.value==16584943)        // inverse à gauche (BAS) bonton de la télécommande
sous_mode_manuel  = MODE_AR_GAUCHE;

else if(results.value==16625743)      //Allume la LED bleu avec la touche ( EQ ) de la télécommande
sous_mode_manuel  = MODE_LED;

if(results.value==16593103)          // Arrêt de la LED bleu avec la touche ( 0 ) de la télécommande
{
digitalWrite(LEDBLEU,LOW);
}
}
// recevoir la prochaine valeur
irrecv.resume();

// court délai d'attente pour répéter le signal IR
// (L'empêcher d'arrêter si aucun signal reçu)
delay(550);
} 
// mode automatique
if(mode == MODE_AUTO)
{
// Définit la position d'asservissement en fonction de la valeur à l'échelle
myservo.write(val); 

// L'échelle pour l'utiliser avec le servo (valeur entre 0 et 300)
val = map(val, 0, 115, 0, 300);
val = analogRead(capteur);
val2 = analogRead(capteur2);

// Attend que le servo pour y arriver
delay(200);

// Si on est à moins de quelque cm d'un obstacle pour les deux capteurs
if ((val >= 215) || (val2 >= 215)) 
{
moteur1(0,true);           //J'arrete le moteur 1
moteur2(0,true);          // J'arrete le moteur 2
delay(150);              //J'attend 2 seconde
moteur1(160,true);      //J'avance tout droit
moteur2(0,true);       // J'arrete le moteur 2
delay(300);           //La valeur à mettre reste à définir en fonction de la vitesse du robot
moteur1(160,false);  //J'avance tout droit
moteur2(160,true); //J'avance tout droit
}
else
{
moteur1(160,true);   //J'avance tout droit
moteur2(160,false); //J'avance tout droit
}
}
else  
{
Serial.println(results.value, DEC);

switch (sous_mode_manuel) // Mode Manuel controle le robot avec la télécommande
{
case MODE_LED:          //Allume la LED bleu avec la touche ( EQ ) de la télécommande
if (led_on)
{
digitalWrite(LEDBLEU,LOW);
led_on = false;
}
else
{
digitalWrite(LEDBLEU,HIGH);
led_on = true;
}
break;
case MODE_STOP:                      // Stop (FUNC / STOP) bouton de la télécommande
digitalWrite(5,LOW);         // roue droite  a l'arrêt
digitalWrite(6,LOW);        // roue gauche a l'arrêt
break;
case MODE_AVANCE:                 //  (VOL +) bouton de la télécommande faire avancer le robot
motor(100,100);
break;
case MODE_RECULE:               // (VOL-) bouton de la télécommande faire reculer le robot
motor(-100,-100);
break;
case MODE_DROITE:             // rotation droite (>>) bouton avance rapide la télécommande
motor(0,-90);
break;
case MODE_GAUCHE:           // rotation gauche (<<) bouton avance rapide la télécommande
motor(-90,0);
break;
case MODE_AV_DROITE:      // avant droite  avec la touche ( ST/REPT ) de la télécommande
motor(120,45);
break;
case MODE_AV_GAUCHE:    // avant gauche (playe) bouton  de la télécommande
motor(65,110);
break;
case MODE_AR_DROITE:  // inverse à droite (HAUT) bouton de la télécommande
motor(255,255);
break;
case MODE_AR_GAUCHE:// inverse à gauche (BAS) bonton de la télécommande
motor(-255,-255);
break;   
}
}
}
// fonction pour contrôler le mode moteur ( motoréducteur pour le mode manuel )
void motor(int left, int right)
{
// limiter la vitesse max
if(left>255)left=255;             //gauche
else if(left<-255)left=-255;     //gauche
if(right>255)right=255;         //droite
else if(right<-255)right=-255; //droite

if(left>0)//gauche a l'arrét
{
digitalWrite(7,HIGH);    // direction roue gauche avant
analogWrite(6,left);      // vitesse de la roue gauche
}
//inverser la roue gauche
else if(left<0)
{
digitalWrite(7,LOW);      // inverse à gauche en direction
analogWrite(6,-left);      // vitesse de la roue gauche
}
else      
{
digitalWrite(6,LOW); // roue gauche a l'arrêt
}
if(right>0)               // roue droite avant
{
// direction de la roue droite avant
digitalWrite(4,LOW);
analogWrite(5,right);
}
else if(right<0)      // roue droite en arrière
{
digitalWrite(4,HIGH); // inverse à droite en direction
analogWrite(5,-right);
}
else     
{
digitalWrite(5,LOW); // roue droite a l'arrêt
}
}

// FIN
// SEB03000

J'ai voulu rajouté une deuxième carte Arduino pour luit donné quelque fonction.

Une Fonction , qui est:

Un module de capteur de mouvement PIR , qui permet dès qu'il capte un mouvement , une LED s'allume , pour me

prévenir qu'il y a un mouvement détecté.

J'ai aussi rajouté pour le fun un bouton poussoir qui me permet d’allumé une LED , je pense par la suite rajouter d'autre

composent pour utilisé se bouton poussoir.

Voici le deuxième code pour la deuxième carte Arduino:

const int bouton = 2;     //Le bouton est connecté à la broche 2 de la carte Adruino
const int led = 13;      //La LED à la broche 13

int etatBouton;         //Variable qui enregistre l'état du bouton 
int LED8 = 8;          // Choisir la broche pour la LED 8
int Mouvement = 5;    // Choisir la broche d'entrée (pour le capteur PIR)
int EX = LOW;        // Je commence, en supposant qu'aucun mouvement sera détecté
int val3 = 0;       // Variable pour la lecture de l'état de la broches

void setup()
{
pinMode(led, OUTPUT);            //La LED est une sortie
pinMode(bouton, INPUT);         //Le bouton est une entrée
etatBouton = HIGH;             //On initialise l'état du bouton comme "relaché"
pinMode(LED8, OUTPUT);        // Déclare la LED 8 en sortie
pinMode(Mouvement, INPUT);   // Déclare le capteur comme une entrée
Serial.begin(9600);         //Démarrage de la connexion en série avec l'ordinateur.
}
void loop()
{
etatBouton = digitalRead(bouton); //Rappel : bouton = 2
if(etatBouton == HIGH)           //Test si le bouton a un niveau logique HAUT
{
digitalWrite(led,LOW);         //La LED reste éteinte
}
else                         //Test si le bouton a un niveau logique différent de HAUT (donc BAS)
{
digitalWrite(led,HIGH);    //Le bouton est appuyé, la LED est allumée
delay(9000);              //La LED reste allumé 9 seconde après éxtinction
}
{

val3 = digitalRead(Mouvement);    // Lire la valeur d'entrée
if (val3 == HIGH)                // Vérifier si l'entrée est HAUTE
{             
digitalWrite(LED8, HIGH);      // Clignotants LED 8 ON
if (EX == LOW)  
{  
// allumage
Serial.println("Mouvement detecte!!!!!");  
EX = HIGH;
}
}
else
{
digitalWrite(LED8, LOW);  // Clignotants à LED 8 OFF
if (EX == HIGH)
delay(1);
{  
//éteinte 
Serial.println("Mouvement terminee!");
EX = LOW;
delay(2);
}
 }
  }
   }

De plus je me suis amusé a contrôlé mon robot Jardise avec le serial monitor du logiciel Arduino , c'est plutôt marrent , mes ça permet aussi de voir si nos motoreducteur fonctionnent bien qu'il nous permet aussi de bien réglé les mouvements des motoreducteurs.

Voila un code d'aisé que j'ai pu faire , ça peux vous servir:

int EN1 = 6; 
int EN2 = 5; 
int IN1 = 7;
int IN2 = 4;

void Motor1(int pwm, boolean reverse)
{
analogWrite(EN1,pwm); //mais un contrôle PWM, 0 pour l'arrêter, et 255 pour une vitesse maximale
if(reverse)
{
digitalWrite(IN1,HIGH);   
}
else
{
digitalWrite(IN1,LOW);   
}
} 

void Motor2(int pwm, boolean reverse)
{
analogWrite(EN2,pwm);
if(reverse)
{
digitalWrite(IN2,HIGH);   
}
else
{
digitalWrite(IN2,LOW);   
}
} 

void setup()
{
int i;
// for(i=6;i<=9;i++)
// pinMode(i, OUTPUT);  //set pin 6,7,8,9 au mode de sortie

for(i=5;i<=8;i++)  //Pour Arduino Blindage
pinMode(i, OUTPUT);  //set pin 4,5,6,7 au mode de sortie

Serial.begin(9600);  
}


void loop()
{
int x,delay_en;
char val;
while(1)
{
val = Serial.read();
if(val!=-1)
{
switch(val)
{
case 'w'://Move ahead
Motor1(100,true); 
Motor2(100,true);

break;
case 'x'://move back
Motor1(100,false);
Motor2(100,false);
break;
case 'a'://turn left
Motor1(100,false);
Motor2(100,true);
break;      
case 'd'://turn right
Motor1(100,true);
Motor2(100,false);
break;  
case 's'://stop
Motor1(0,false);
Motor2(0,false);
break;                      
}     
 }       
  }

Ou alors vous pouviez contrôlé une LED aussi avec le sérial monitor du logiciel Arduino.
Je vous passe aussi un des codes que j'ai pu faire pour contrôler une LED , ( PS la LED je les pris sur mon robot ).

Voici le code:

int ledPin = 2;  // j'initialise une led
int octetRecu; //Déclaration de la variable contenant la valeur de la touche saisi au clavier

void setup() // inisialisation des interface
{

Serial.begin(9600); // je commence le serial a 9600 bit par seconde

pinMode(ledPin, OUTPUT); //je define la led en sortie

}
void loop(){
if (Serial.available() > 0) {          //si il y a une valeur dans le serial

// Lecture de l'octet présent dans la mémoire tampon (buffer)
octetRecu = Serial.read();

if (octetRecu == 'A' || octetRecu == 'a') //Si l'octet recuz est égal à A ou a
{   
digitalWrite(ledPin, HIGH); //Allume la LED A
Serial.println("allume"); //Affiche "allume"  la LED série
}

if (octetRecu == 'E' || octetRecu == 'e') //Si l'octet recu est égal à E ou e
{
//Eteindre la LED connectées
digitalWrite(ledPin, LOW);
Serial.println("eteinte");//Affiche " eteinte" dans le moniteur série
}
 }
  }


#120 seb03000

seb03000

    @pump_upp - best crypto pumps on telegram !

  • Membres
  • PipPipPipPipPip
  • 1 193 messages
  • Location:https://t.me/pump_upp

Posté 10 février 2012 - 01:07

Je conte luis rajouté un étage supplémentaire ( en bois on en PVC ) sur mon robot du coup ça luit fera une plateforme

neutre je rajoute une deuxième carte Arduino pour rajouté la carte mémoire et le module son , et voir a rachouté la pince

aluminium celle si.

Image IPB

J'ai fait un petit programme que j'ai amélioré pour la pince , ce programme n'est pas fini , car je vais luis implanté un capteur infrarouge sharp ( ou autre ) voir a le contrôle avec une autre télécommande , c'est a réfléchir , et a étudié bien sûr.

Voici le début du code:

#include <Servo.h>

Servo myservo;    // creer l'objet servo pour controller un servo

// Déclaration des constantes
//position des servomoteure
const int position_minimum_Z = 900;     // Position min pour le servo pour ça rotation sur l'axe z
const int position_maximum_Z = 2300;   // Position max pour le servo pour ça rotation sur l'axe z
const int position_minimum_X = 1200;  // Position min pour le servo pour ça rotation sur l'axe x
const int position_maximum_X = 2400; // Position max pour le servo pour ça rotation sur l'axe x
const int servo = 3;                //declaration de la broche 3 du servo de la pince.

// Déclaration des variables

int position1 = 0;  // Position 1
int position2 = 0; // Position 2

// les servos

Servo Servo1;  //Servo pince
Servo Servo2; // Servo pince factice

void setup()
{
pinMode(servo, OUTPUT); //met la broche en sortie

Servo1.attach(servo, position_minimum_Z, position_maximum_Z);
Servo1.attach(servo, position_minimum_X, position_maximum_X);

position1 = position_minimum_Z;
position2 = position_minimum_X;
}
void loop()
{

if(position1 == position_minimum_Z)
{
for(position2 = position_minimum_Z; position1 <= position_maximum_Z; position1++)
{
Servo1.writeMicroseconds(position1); // durée voulue pour le servomoteur
delay(1);
}
for(position2 = position_minimum_X; position2 <= position_maximum_X; position2++)
{
Servo2.writeMicroseconds(position2); //  durée voulue pour le servomoteur
delay(1);
}
}
else
{
for(position1 = position_maximum_Z; position1 >= position_minimum_Z; position1--)
{
Servo1.writeMicroseconds(position1); //  durée voulue pour le servomoteur
delay(1);
}
for(position2 = position_maximum_X; position2 >= position_minimum_X; position2--)
{
Servo2.writeMicroseconds(position2); //  durée voulue  pour le servomoteur
delay(1);
}
position1 = position_minimum_Z;
position2 = position_minimum_X;
}
 }

Et voici une vidéo du fonctionnement de la pince aluminium dagu:

http://www.dailymotion.com/video/xog6vq_pince-aluminium-dagu-en-fonction_lifestyle

Je me suis acheter cette pièce:

Image IPB

Vas falloir que je face de la soudure , il va falloir être précis , car je les reçu en kit , voici une photo:

Image IPB

Et je possède se module aussi pour qu'il puisse parlé:

Image IPB

C'est un module Amplificateur Audio DFRobot:

La suite bientôt.



Répondre à ce sujet



  


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

0 members, 1 guests, 0 anonymous users