Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire un robot voiture 4WD à télécommande IR avec Arduino

Composants et fournitures

Composant Quantité
Kit module récepteur IR sans fil WINGONEER pour Arduino 1
Module pilote moteur double pont en H L298N (SainSmart) 1
Kit châssis voiture robot 4WD 1
Arduino UNO 1

Outils nécessaires

À propos du projet

J'ai trouvé le design original sur Instructables et j'en ai construit une version. L'original était un véhicule à chenilles, celui-ci est en 4 roues motrices. L'adaptation concerne la configuration du récepteur IR. Le design original souffrait de parasites lorsque les moteurs tournaient, interférant avec le récepteur IR. Les moteurs agissaient comme générateurs au niveau des fils de masse. J'ai changé les broches et affectations pour le récepteur IR.

Assemblage de la base

Assemblez le châssis en suivant les instructions fournies si vous utilisez le kit rover SAINSMART. Disponible ici

Construire un robot voiture 4WD à télécommande IR avec Arduino

Récepteur IR :

int receiver_pin = 4; // Sortie broche 4 vers récepteur IR (signal Y)
int vcc = 5;          // Sortie broche 5 vers récepteur IR (VCC)
int gnd = 6;          // Sortie broche 6 vers récepteur IR (GND)
Construire un robot voiture 4WD à télécommande IR avec Arduino

Module pilote moteur L298N :

// Moteur A

int enA = 8;
int in1 = 12;
int in2 = 11;

// Moteur B

int enB = 7;
int in3 = 10;
int in4 = 9;

GND du module L298N vers GND de l'Arduino

Construire un robot voiture 4WD à télécommande IR avec Arduino

Module L298N vers les moteurs :

// Jeu de moteurs A (côté droit)

// Jeu de moteurs B (côté gauche)

Connecter la batterie au module L298N : "+" (Rouge) à VCC et "-" (Noir) à GND

Schéma complet

Construire un robot voiture 4WD à télécommande IR avec Arduino
Construire un robot voiture 4WD à télécommande IR avec Arduino

Code

Voiture télécommandée IR (C/C++)

#include <IRremote.h>

char command;
int receiver_pin = 4;
int vcc = 5;
int gnd = 6;
int statusled = 13;

IRrecv irrecv(receiver_pin);
decode_results results;

// Moteur A
int enA = 8; int in1 = 12; int in2 = 11;
// Moteur B
int enB = 7; int in3 = 10; int in4 = 9;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(statusled, OUTPUT);
  digitalWrite(statusled, LOW);
  pinMode(enA, OUTPUT); pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT); pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);
  pinMode(vcc, OUTPUT); pinMode(gnd, OUTPUT);
  digitalWrite(vcc, HIGH); // Alimentation récepteur IR
}

void loop() {
  if (irrecv.decode(&results)) {
    digitalWrite(statusled, LOW);
    irrecv.resume();
    // Bouton 2 : Avancer
    if (results.value == 0xFF18E7) {
      Serial.println("Bouton 2");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
    }
    // Bouton 4 : Tourner à gauche (moteur A avance, B arrêt)
    else if (results.value == 0xFF10EF) {
      Serial.println("Bouton 4");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enB, 100);
    }
    // Bouton 1 : Rotation gauche (A avance, B recule)
    else if (results.value == 0xFF30CF) {
      Serial.println("Bouton Tourner Droite"); // Note: commentaire original dit "Turn Right" mais code fait rotation gauche
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enB, 100);
    }
    // Bouton 6 : Tourner à droite (A arrêt, B avance)
    else if (results.value == 0xFF5AA5) {
      Serial.println("Bouton Tourner Gauche"); // Note: commentaire original dit "Turn Left"
      digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
    }
    // Bouton 3 : Rotation droite (A recule, B avance)
    else if (results.value == 0xFF7A85) {
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
    }
    // Bouton 8 : Reculer
    else if (results.value == 0xFF4AB5) {
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enB, 100);
    }
    // Bouton 5 : Arrêt
    else if (results.value == 0xFF38C7) {
      digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enB, 100);
    }
  }
}

Schémas

Construire un robot voiture 4WD à télécommande IR avec Arduino

Processus de fabrication

  1. Constructeurs C# : Types, exemples et patterns avancés
  2. Construire une télécommande universelle Raspberry Pi professionnelle avec LIRC
  3. Système automatisé de remplissage et de surveillance de piscine
  4. Système de surveillance cardiaque à distance avec alertes AWS IoT
  5. Contrôler votre Raspberry Pi avec une télécommande IR recyclée : Arrêt & Redémarrage via LIRC
  6. Vulnérabilité enteliBUS de Delta Controls : Contrôle à distance des systèmes de bâtiment exposé
  7. Surveillance Cloud : système de contrôle à distance pour la gestion d'actifs en temps réel
  8. 5 avantages clés du contrôle de production à distance pour l'industrie moderne
  9. Maîtriser la radiocommande de pont roulant : sécurité et efficacité en entrepôt