lundi 16 janvier 2012

phase 4 : Le chassis du robot

 Ben oui, fini le code, place au bricolage.

Après une recherche dans mon stock de revue d'électronique pratique et de micro robot je suis parti sur un châssis circulaire. En effet, il semble que c’est la forme qui puisse s’échapper le plus facilement des impasses (si les roues ne dépasse pas du châssis).

Deux contre-plaqué de 3 mm d’un diamètre de 20 cm vont prendre en sandwich les deux servo-moteurs modifiés pour qu’ils assurent une rotation continue.







En ce qui concerne la modification des servos moteurs, cela m'a pris 5 minutes par appareil avec deux enfants qui veulent absolument VOIR et TOUCHER à tout.
J'ai choisi cette méthode : http://fribotte.free.fr/bdtech/pic/servoCC.html

En contre-partie, mon fils m'a donné deux roues légo diamètre 4cm largeur 3cm (bonheur suprême, le palonnier du servo moteur rentre directement dans la jante de la roue)


Petit problème, les écrous frottent parfois dans les joints du carrelage, il faut que je trouve un patin téflon pour l'arrière.
Avec une pile 9V et le code ci-après, le robot commence à avoir une certaine autonomie.

// include the library code:
#include <LiquidCrystal.h>
#include <Servo.h>
//Déclaration des servomoteurs comme une variable typée 
Servo servoD; 
Servo servoG;
//Déclaration du capteur à ultrason
const int ultrason = 11;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int capteur1 = 1; // variable identifiant un port ana. 0 de la carte
int LED1 = 13; // variable identifiant le port num. 13 de la carte
int lum1 = 0; // variable identifiant la valeur de la luminosité du capteur 1
//Initialisation du programme
void setup() 

  servoD.attach(2); // le servomoteur est sur une patte PWM
  servoG.attach(3); // le servomoteur est sur une patte PWM
  lcd.begin(16, 2);  // set up the LCD's number of columns and rows:

void loop()

  long duration, cm;
 
  pinMode(ultrason, OUTPUT);
  digitalWrite(ultrason, LOW);
  delayMicroseconds(2);
  digitalWrite(ultrason, HIGH);
  delayMicroseconds(5);
  digitalWrite(ultrason, LOW);
  pinMode(ultrason, INPUT);
  duration = pulseIn(ultrason, HIGH);

  cm = microsecondsToCentimeters(duration);

 if (cm>20)
 {
   servoD.write(95);
   servoG.write(85); 
 }
  if (cm<20)
 {
   servoD.write(95);
   servoG.write(95);
  delay(3000); 
 }
 
  delay(200);
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(cm),lcd.print(" cm");
 
}
long microsecondsToCentimeters(long microseconds)
 {
   // The speed of sound is 340 m/s or 29 microseconds per centimeter.
   // The ping travels out and back, so to find the distance of the
   // object we take half of the distance travelled.
   return microseconds / 29 / 2;
 }
J'ai trouvé sur le net comment mettre de la couleur dans le code ce sera certainement la prochaine étape
http://code18.blogspot.com/2009/01/ajouter-de-la-coloration-syntaxique-au.html

Aucun commentaire:

Enregistrer un commentaire