Aller au contenu


Photo
- - - - -

Projet Robot detecteur d'obstacle avec arduino


6 réponses à ce sujet

#1 SanDStorm360

SanDStorm360

    Nouveau membre

  • Membres
  • 5 messages

Posté 06 avril 2013 - 11:58

Bonjour à tous Image IPB/>/> actuellement en terminale sti2d option sin, mon groupe et moi devons faire un robot danseur qui devra effectuer une choregraphie avec un jeu de lumiere et aussi l'evitemment d'obstacle à distance.
Ma partie dans ce projet est l'evitemment d'obstacle à distance, pour ma partie j'ai choisit le capteur Maxsonar EZ2 (le EZ0 et 1 n'etant plus disponible sur lextronic).
Le probleme c'est que je dois créer un programme en langage arduino et que c'est la premiere fois!! du coup je suis un peut perdu :/
Pour l'instant je dois programmer sur une Arduino Uno (pour essayer le programme), pour le projet finale ce sera sur une Mega.

Pour l'instant j'ai trouveé ce programme pour la detection de distance et je vous demande si vous trouvez ce programme "bon" pour la detection de distance. Si j'ai bien compris, le programme comportera deux parties ? le premier celui de la detection de distance puis celui de l'evitemment de l'obstacle?

J'aimerai vraiment y arriver tout seul mais etant un debutant c'est assez dur de compendre les autres programmes similaire à celui que je devrais faire.


/*
   MaxBotix LV-EZ2 ultrasonic ranger reader
   Context : Arduino
*/

int ez2Analog = 0; // Analog  Pin, A0

void setup()  {
pinMode(ez2Analog, INPUT);
//  initialize serial communications at 9600 bps :
Serial.begin (9600);
}

void loop()  {
// read the sensor value and convert to a voltage :
int sensorValue = analogRead(ez2Analog);
float voltage = map(sensorValue, 0 , 5, 0, 1023) ;

//  the sensor’s output is about 9.8mV per inch,
//  so multiply by 2.54 to get it in centimeters :
float distance = voltage * 2.54 / 0.0098;

//  print the sensor value
Serial.print(distance) ;
Serial.println(" cm") ;
//  wait 50 milliseconds before the next reading
//  so the sensor can stabilize :
delay(50) ;
}

Merci de votre aide! Image IPB/>/>

Modifié par Black Templar, 06 avril 2013 - 12:18 .
Ajout des balises [code]


#2 R1D1

R1D1

    Modérateur et Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 211 messages
  • Gender:Male
  • Location:Autriche

Posté 06 avril 2013 - 02:51

Le meilleur moyen de dire si ton programme est "bon", c'est de le tester et de vérifier qu'il fait ce que tu veux ...

Si tu es débutant, commence par jeter un oeil aux tutoriels : ça te permettra de comprendre comment Arduino fonctionne, et d'être capable de vraiment savoir ce que fait le code que tu proposes. Et ça te fera travailler ton anglais, même si ça n'est pas le plus important. :D/>
Le code que tu postes est compréhensible avec l'aide de la documentation. C'est le premier réflexe à avoir quand on est confronté à un langage qu'on ne connaît pas.

http://arduino.cc/en/Tutorial/HomePage
http://www.kepeklian.com/blog/2012/10/28/arduino-une-petite-selection-de-bons-tutoriels/
http://arduino.cc/en/Reference/HomePage
R1D1 - Calculo Sed Ergo Sum -- en ce moment, M.A.R.C.E.L.
Avatar tiré du site bottlebot

#3 geek maxou

geek maxou

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 663 messages
  • Gender:Male
  • Location:Pas-de-Calais 62
  • Interests:Monde UNIX, Développement Web, Jeux Vidéo & tout se qui touche à l'électronique

Posté 06 avril 2013 - 03:18

Salut ! :)
Simple question ^^
Sti2d c'est bien Science et technologie de l'ingénieur Et Développement Durable ??
Si oui tu fais quoi comme cour ? (je me pose des question pour mon orientation ^_^)
Bon journée
GeekMaxou

A.R.M.I

Autonomous Robotics Mechanics Intelligent


#4 SanDStorm360

SanDStorm360

    Nouveau membre

  • Membres
  • 5 messages

Posté 06 avril 2013 - 06:36

Salut! excuse moi pour le retard :D/>/> , Sti2d c'est "sciences et technologies de l'industrie et du développement durable" alors comme cours particuliers à cette filiere il y a Enseignement Tranversale (que de la theorie pour ma part, electronique, mecanique) et les options "SIN" (systèmes d’information et numérique, pour ma part que de la theorie à part pour le projet technologique de terminale ce que je fait, ne n'attend pas à faire de la programmation, il n'y en aura pas à part peut etre en Terminale mais tres peut) ITEC (innovation technologique et éco-conception, de la theorie aussi orienté mecanique(fluides etc)), EE (énergies et environnement, theorique aussi mais je ne connais pas vraiment ce qu'ils font) et "architecture et construction" (pas enseigné dans mon lycée) enfin ces otpions dependent des etablissements, car ils y en a qui en font certains d'autres non.

Je te conseillerai d'aller en S mais si tu ne peux pas vas en sti2d c'est pas trop mal, enfin si j'avais su je serai aller en S.. pour une note de la sti2d je donnerai 6.5/10. Ce qui ma surtout déçu c'est que je pensai programmer etc mais au final c'est que de la theorie avec un tsunami de formules en tout genre.






Et merci pour vos réponses! ;)/>/>

#5 SanDStorm360

SanDStorm360

    Nouveau membre

  • Membres
  • 5 messages

Posté 08 avril 2013 - 03:39

Bonjour, j'ai trouvé ce programme avec le capteur srf08 en sortie I2C, c'est ce capteur que j'utiliserai pour le robot Image IPB/> et ayant trouvé ce programme pour la detection d'obstacle je voudrais vous demandez si il vous parait bon ?


#include <Wire.h>
    #include <SonarSRF08.h>
    SonarSRF08 MySonar;
    #define CommandRegister 0x00
    int New_Address = 248; // 0xF8
    #define ResultRegister  0x02
    #define GainRegister 0x00 // Setup Analogue Gain -- [url="http://www.robot-electronics.co.uk/htm/srf08tech.html"]http://www.robot-ele.../srf08tech.html[/url] section "Analogue Gain"
    #define RangeLocation 0xFF // Setup Range Location -- [url="http://www.robot-electronics.co.uk/htm/srf08tech.html"]http://www.robot-ele.../srf08tech.html[/url] section "Changing the Range"
    int DEBUG = 1;
    char unit = 'c'; // 'i' for inches, 'c' for centimeters, 'm' for micro-seconds
    float sensorReading = 0;
    int time = 70;
    void setup()
    {
      MySonar.connect();  
      MySonar.changeAddress(CommandRegister, New_Address, GainRegister, RangeLocation);
      if (DEBUG){
        Serial.begin(9600);
      }
      New_Address += 4;
      // offset address not sure why this is but it works for this address
    }
    void loop()
    {
      // set units, gain, and range location for reading out distance
      MySonar.setUnit(CommandRegister, New_Address, unit, GainRegister, RangeLocation);
      // pause
      delay(time);
      // set register for reading
      MySonar.setRegister(New_Address, ResultRegister);
      // read data from result register
      sensorReading = MySonar.readData(New_Address, 2);
      // print out distance
      Serial.print("Distance: ");
      Serial.print(sensorReading);
      Serial.print(" units");
      Serial.println();
      // pause
      delay(time);
    }

Modifié par Black Templar, 08 avril 2013 - 04:34 .
Ajout des balises code


#6 Newbies

Newbies

    Membre passionné

  • Membres
  • PipPipPip
  • 487 messages
  • Gender:Male
  • Location:Paris
  • Interests:Programmation et robotique

Posté 14 avril 2013 - 10:35

Je te conseil ce capteur la au lieu du tient http://www.arobose.com/shop/capteurs-robot/157-capteur-de-distance-a-ultrasons-hc-sr04.html il est vraiment pas cher, très pratique et facile a utiliser.

Voila un code te montrant comment l’utiliser
#include <DistanceSRF04.h>

DistanceSRF04 Dist;
int distance;

void setup()
{
  Serial.begin(9600);

  // Connect ECHO pin to pin 2 in the Arduino 
  // Connect TRIG pin to pin 3 in the Arduino
  Dist.begin(2, 3);
}

void loop()
{
  distance = Dist.getDistanceCentimeter();

  Serial.print("\nDistance in centimers: ");
  Serial.print(distance);  

  delay(100);
}



PS: Je suis en seconde la et j’hésite entre un BAC S et STI2D. Peut tu me décrire brièvement ce que l'on fais dans cette filiere :)

#7 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 15 avril 2013 - 03:03

Si tu ne connais pas du tout tout ça, les capteurs analogiques simples seront peut être plus simples à utiliser que des capteurs I²C.
La question est de savoir si ton robot possède déjà une liste de capteurs, ou si vous devez choisir?

En dehors de ça, les codes que tu as posté, bah ils se contentent de lire la distance et de l'afficher...

Il te manque la partie évitement d'obstacle.

Si c'est un projet d'études, à mon avis, tu as largement le temps d'apprendre les bases de la programmation Arduino.
Pour ce qui est de faire un robot à évitement d'obstacle, c'est très simple à faire, et très rapide. C'est l'objet d'une après midi tout au plus pour avoir un système fonctionnel :)

Je pense que le mieux, c'est que tu essaies directement, car programmer un Arduino sans essayer, ça ne t'apportera pas grand chose :)
(ce que je veux dire, c'est que c'est en essayant sur le Arduino qu'on apprend des choses, et que sinon, on pourrait aussi bien te donner
du code fonctionnel, mais tu n'en retirerais rien, il te faut donc essayer pour voir !)

Et ce qui est intéressant, c'est que tu peux déjà faire des montages simples, avec juste un Arduino et un capteur, même si tu n'as pas le reste du robot...

Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/




Répondre à ce sujet



  


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

0 members, 0 guests, 0 anonymous users