Bonjour à tous,
Aujourd'hui c'est l'étape finale, la programmation !
Bon voici le code simple :
/*
Capteur de distance à ultrasons HC-SR04 avec Arduino Uno
TipTopBoards.com 06 01 2014 Rolland
Cabler +5V et GND du détecteur sur l'arduino
Trig -> pin 13
Echo -> pin 12
moteurDroit + 470R -> pin 10
Le robot tourne selon la distance trop près / trop loin
*/
#define trigPin 13 //Trig Ultrasons (sortie)
#define echoPin 12 //Echo Ultrasons (entrée)
#define moteurDroit 6 // moteurDroit
#define moteurGauche 5 // moteurGauche
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT); //Trig est une sortie
pinMode(echoPin, INPUT); //Echo est le retour, en entrée
pinMode(moteurDroit, OUTPUT);
}
void loop()
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); //Trig déclenché 10ms sur HIGH
digitalWrite(trigPin, LOW);
// Calcul de l'écho
duration = pulseIn(echoPin, HIGH);
// Distance proportionnelle à la durée de sortie
distance = duration*340/(2*10000); //Vitesse du son théorique
if (distance < 35)
{// Distance trop près
digitalWrite(moteurDroit,LOW); //moteur gauche activé seulement
digitalWrite(moteurGauche,HIGH); // moteur Gauche tourne
}
else
{//Trop loin
digitalWrite(moteurDroit,HIGH);
delay(100);
digitalWrite(moteurGauche,HIGH);
}
delay(100); //0.1 sec entre deux mesures
}
Et voici un code un peut plus poussé :
/* Utilisation du capteur Ultrason HC-SR04 */
// définition des broches utilisées
int trig = 13;
int echo = 12;
long lecture_echo;
long cm;
int val;
int vitesse_u;
int vitesse_lente_u;
#define vitesse 200
#define dure_virage 800
#define vitesse_lente 80
int etat;
unsigned long temps;
int EN1 = 6;
int EN2 = 5; //Roboduino Motor shield uses Pin 9
int IN1 = 7;
int IN2 = 4; //Latest version use pin 4 instead of pin 8
void MotorD(int pwm, boolean reverse)
{
analogWrite(EN1,pwm); //set pwm control, 0 for stop, and 255 for maximum speed
if(!reverse)
{
digitalWrite(IN1,HIGH);
}
else
{
digitalWrite(IN1,LOW);
}
}
void MotorG(int pwm, boolean reverse)
{
analogWrite(EN2,pwm);
if(!reverse)
{
digitalWrite(IN2,HIGH);
}
else
{
digitalWrite(IN2,LOW);
}
}
void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
Serial.begin(9600);
etat = 0;
temps = millis();
vitesse_lente_u = vitesse_lente;
vitesse_u = vitesse;
delay(8000); //delai avant mise en route des moteurs
}
void loop()
{
// mesure de distance
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = lecture_echo / 58;
Serial.print("Distancem : ");
Serial.println(cm);
if (etat ==0) //virage gauche
{
MotorD(vitesse_u,true);
MotorG(vitesse_lente_u,true);
if ((temps + dure_virage) < millis())
{
etat = 1;
temps = millis();
}
}
else if(etat ==1) //virage droite
{
MotorD(vitesse_lente_u,true);
MotorG(vitesse_u,true);
if ((temps + dure_virage) < millis())
{
etat = 0;
temps = millis();
}
}
if (cm < 30) //detection murale
{
if(etat ==1)//si mur pendant virage droite on tourne a gauche
{
MotorD(vitesse_u,true);
MotorG(vitesse_u,false);
delay(3000);
}
else if(etat ==0) //si mur pendant virage gauche on tourne a droite
{
MotorD(vitesse_u,false);
MotorG(vitesse_u,true);
delay(3000);
}
}
val = Serial.read(); //reception de commande
if(val!=-1)
{
switch(val)
{
case 's'://arret
vitesse_lente_u = 0;
vitesse_u = 0;
break;
case 'r'://redemarre
vitesse_lente_u = vitesse_lente;
vitesse_u = vitesse;
break;
}
}
}
Tuto Arduino
mardi 10 mars 2015
mercredi 4 mars 2015
Montage
Bonjour à tous,
Aujourd'hui on commence l'étape cruciale de notre Robot, le montage !
Pour commencer Nous allons monter les moteurs :
Je l'ai fixé avec une "patte" en zinc, mais le coller sera amplement suffisant si vous n'utilisez pas de charges trop lourdes.
Soudez les fils aux moteurs.
Emboîtez le Shield Moteur à la carte Arduino Uno, 2 Pins du Shield Moteur dépassent sur les côtés, ce n'est pas grave. Pliez les vers l’intérieur du dessous du Shield.
Ensuite le capteur à Ultrasons :
Voici les Pins (ou broches) :
Vcc : Se connecte au Pin 5 V du Shield Moteur.
Trig : Se connecte au Pin 13 du Shield Moteur
Echo : Se connecte au Pin 12 du Shield Moteur
GND : Se connecte au Pin GND du Shield Moteur
Connectez les fils à la plaque de test puis le capteur à Ultrasons :
Maintenant, branchez les fils sur le Shield Moteur emboîté sur la carte Arduino Uno.
J'ai mis mas carte Arduino Uno et mon Shield Moteur dans une boîte.
connectez les fils des moteurs au Shield Moteur, si les roues ne tournes pas dans le bon sens pendant que le robot fonctionne, alors essayez de changer la position des fils car les moteur n'ont pas marqués leurs polarités.
Voilà, votre robot est terminé ! Enfin presque...
Il ne manque plus que l'alimentation,
Trouvez un boitier à piles de 1.5 V ou de 1.2 V pouvant en contenir au moins 6.
Pour être tranquille j'ai mis 8 piles de 1.2 V.
Connectez le boitier à piles sur la carte Arduino, et non sur le Shield Moteur !
Maintenant, il ne manque que le programme.
Bonne journée
Donkey1793
mardi 3 mars 2015
Première partie Le Matériel
Bonjour à tous,
Voici la première partie du tuto pour le robot aspirateur Arduino.
Pour le matériel, nous aurons besoin de :
-Câbles pour prototypage : 9.90€
-D'une plaque de montage rapide : 2.95€
-D'une carte Arduino Uno : 23.90€
-D'un Shield contrôleur pour moteur : 13.96€
-D'un capteur à Ultrasons : 3.90€
-De deux moteurs à courant continu : 16.90€
-D'un support (ex en contreplaqué)
-D'outil :
-Scie
-Tournevis
-Colle
- etc...
Total : 71.51 €
Total sans Arduino et sans cables : 37.91
Pour le montage et la programation on se retrouve demain !
Bonne journée,
PS: Voici les liens :
http://www.gotronic.fr/art-pack-de-cables-de-connexion-12411.htm
http://www.gotronic.fr/art-carte-arduino-uno-12420.htm
http://www.gotronic.fr/art-shield-motor-2-x-1-a-dri0001-19343.htm
http://www.gotronic.fr/art-plaque-de-montage-rapide-19620.htm
http://www.gotronic.fr/art-kit-2-roues-moteurs-ktam-s-19349.htm
http://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm
Donkey1793
Robot aspirateur/Roomba avec Arduino !
Bonjour à tous,
Aujourd'hui nous nous retrouvons pour le premier tuto !!!
Nous allons fabriquer un robot aspirateur (ou robot Roomba) avec la carte arduino.
Pour commencer je vais vous dire le matériel nécéssaire à la réalisation de ce projet.
Bien sur nous ne dépasserons pas le seuil des 100 €.
Bonne chances à tous !
Donkey1793
Bienvenue !
Bonjour,
Bienvenue sur ce blog dédié aux tutoriels Arduino !
Bonne journée !!!
Donkey1793
Inscription à :
Articles (Atom)