voila la présentation de mon robot V1.0 et bientôt je mettrais la Version V2.0. Donc dans un premier temps les composants :
_Arduino (Mega2560 dans mon cas)
_Kit Magician Châssis (contient: 2 moteurs, 2 roues , un châssis , une roue folle , support piles)
_Contrôleur de moteur L293D
_Capteur infrarouge TSOP1838 (voir modèle joint)
_Télécommande infrarouge (télé, DVD, ou n'importe)
_Pile 9V (alimention Arduino)
_4 piles AA 1.5V (alimentation moteurs)
ensuite le schéma électronique (Le capteur Infrarouge n'est pas bon mais le câblage oui , regarder image jointe du capteur )
Et pour finir le code !
Télécharger la bibliotheque : NECIRrcv.h et installer la sur Arduino.
Ensuite il faut d'abord noter les codes Hex des touches de la télécommande pour les attribuer a des directions/ordres. Donc on upload le code suivant et des qu'il est uploader , ouvrir le serial monitor et appuyer sur une touches de la télécommande pour afficher a l'écran le code HEX de la touche pressée. Après avoir noter la touche et son code vous aller copier le code HEX dans la partie a changer du code :
// telecharger la librairie sur ce lien http://www.4shared.com/zip/JgqhuOpr/NECIRrcv.html #include <NECIRrcv.h> //declaration du capteur qui est sur le pin 10 #define IRPIN 10 //declaration des moteurs + L293D #define motor1Pin1 3 #define motor1Pin2 4 #define motor2Pin1 6 #define motor2Pin2 7 #define enable1 2 #define enable2 5 //Partie du code a changer ! #define n1 3877174785 //noter le code HEX ,reçu sur le serial monitor pour la touche 1 #define n2 3108437505 // faites de même avec les autres #define n3 3191995905 #define n4 3058302465 #define n5 3125149185 NECIRrcv ir(IRPIN) ; unsigned long ircode; // Variable servant à mémoriser le code reçu void setup() { //reglage des moteurs en mode sortie pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); Serial.begin(9600); ir.begin() ; } void loop() { while (ir.available()) // tant que le capteur est disponible ... { // Lire et mémoriser le code dans la variable ircode ircode = ir.read(); Serial.print(ircode); switch(ircode) { case n1: { digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); break; } case n2: { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); break; } case n3: { digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); break; } case n4: { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); break; } case n5: { digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); break; } } } }
Re-Uploader le code pour que le robot fonctionne avec la télécommande.