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

M1 Rover : Robot autonome d'extérieur pour terrains accidentés

Composants et fournitures

Pilote de moteur double pont en H SparkFun L298 × 1
Moteur DC (générique) × 4
Arduino UNO × 1
LED (générique) × 8
Résistance 221 Ω × 8
Servomoteur Tower Pro MG996R × 1
Capteur ultrasons HC-SR04 × 1

Applications et services en ligne

À propos du projet

Après avoir construit plusieurs robots d'intérieur, j'ai décidé de créer un robot d'extérieur capable d'évoluer sur des terrains accidentés. Je l'ai nommé « M1-Robot ».

Le M1-Robot pilote aisément quatre moteurs DC via Arduino, ce qui en fait une base idéale pour des projets robotiques plus puissants. J'ai donc conçu de zéro ce robot 4 roues motrices tout-terrain.

Ce n'est pas une simple voiture radiocommandée : il peut être programmé pour suivre de manière autonome un ensemble d'instructions, être contrôlé depuis un ordinateur distant, ou être piloté via des manettes de jeu et joysticks personnalisés comme une voiture télécommandée classique.

Étape 1 : Conception

Concevoir son propre produit ou prototype est passionnant, mais la complexité augmente lorsqu'on passe à l'échelle réelle. J'ai choisi Google SketchUp 2017 comme outil de conception puissant et accessible, permettant d'exporter les plans vers une découpe laser ou une imprimante 3D.

J'ai passé les trois premières semaines à concevoir et construire la coque du robot. Pour les matériaux, j'ai utilisé une planche de bois de 3 mm d'épaisseur.

Le câblage final, réalisé dans l'urgence, consistait à loger l'ensemble des composants dans la coque.

J'ai nommé mon robot M1Rover, dans l'optique de développer une série M2, M3, etc. Il est conçu comme un kit : il suffit de l'assembler à l'aide de vis.

Étape 2 : Composants et fonctionnalités

Étape 3 : Le contrôleur de moteur

Les ponts en H sont généralement utilisés pour contrôler la vitesse et le sens des moteurs, mais peuvent aussi piloter la luminosité de projets d'éclairage comme des matrices de LED haute puissance.

Étape 4 : Assemblage du châssis

Le châssis a été découpé au laser en plusieurs pièces. Comme mentionné, le modèle est conçu en kit pour un assemblage facile : il suffit de suivre les instructions.

Le design intègre des feux avant et arrière. À l'avant, 4 LED blanches avec résistances de 220 Ω chacune ; à l'arrière, 2 LED rouges avec résistances de 220 Ω. Ces LED sont contrôlables via la même application.

Étape 5 : Circuits

Le câblage est délicat car le contrôle simultané de nombreux composants électroniques exige une attention particulière à la séquence de chaque élément.

Étape 6 : Logiciel

J'ai pris en compte de nombreux aspects lors de l'écriture du code du M1-Robot. Avec un logiciel GUI, vous obtenez plus d'informations sur l'état du robot.

Code de base pour le kit de démarrage, contrôlable par mobile ou ordinateur portable via Bluetooth :

int frontled = 3;
int rearled = 4;
int outPin1 = 5;
int outPin2 = 6;
int outPin4 = 11;
int outPin3 = 12;
char bt = 0;
int buzzerPin = 2;
const int pingPin = 9;
const int echoPin = 8;

void setup() {
  Serial.begin(9600);
  pinMode(outPin1, OUTPUT);
  pinMode(outPin2, OUTPUT);
  pinMode(outPin3, OUTPUT);
  pinMode(outPin4, OUTPUT);
  pinMode(frontled, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    bt = Serial.read();
    digitalWrite(frontled, HIGH);
    
    long duration, inches, cm;
    pinMode(pingPin, OUTPUT);
    digitalWrite(pingPin, LOW);
    delayMicroseconds(2);
    digitalWrite(pingPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(pingPin, LOW);
    pinMode(echoPin, INPUT);
    duration = pulseIn(echoPin, HIGH);
    inches = microsecondsToInches(duration);
    cm = microsecondsToCentimeters(duration);
    
    if (cm > 10) {
      if (bt == 'F') {
        digitalWrite(outPin1, HIGH);
        digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, HIGH);
        digitalWrite(outPin4, LOW);
      } else if (bt == 'B') {
        digitalWrite(outPin1, LOW);
        digitalWrite(outPin2, HIGH);
        digitalWrite(outPin3, LOW);
        digitalWrite(outPin4, HIGH);
      } else if (bt == 'S') {
        digitalWrite(outPin1, LOW);
        digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, LOW);
        digitalWrite(outPin4, LOW);
      } else if (bt == 'R') {
        digitalWrite(outPin1, HIGH);
        digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, LOW);
        digitalWrite(outPin4, LOW);
      } else if (bt == 'L') {
        digitalWrite(outPin1, LOW);
        digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, HIGH);
        digitalWrite(outPin4, LOW);
      } else if (bt == 'I') {
        digitalWrite(outPin1, HIGH);
        digitalWrite(outPin2, LOW);
        digitalWrite(outPin3, LOW);
        digitalWrite(outPin4, HIGH);
      } else if (bt == 'G') {
        digitalWrite(outPin1, LOW);
        digitalWrite(outPin2, HIGH);
        digitalWrite(outPin3, HIGH);
        digitalWrite(outPin4, LOW);
      }
    } else {
      digitalWrite(buzzerPin, HIGH);
      delay(500);
      digitalWrite(buzzerPin, LOW);
      delay(500);
    }
  }
}

long microsecondsToInches(long microseconds) {
  return microseconds / 74 / 2;
}

long microsecondsToCentimeters(long microseconds) {
  return microseconds / 29 / 2;
}

Le code Arduino est compatible avec tout type de contrôleur car tous les composants électroniques sont programmés pour fonctionner via des ordres sur port série : module Bluetooth émetteur/récepteur, PC, téléphone portable.

Étape 7 : Packs

PACK STARTER

Ce pack M1-Robot inclut les composants de base tandis que la plaque supérieure permet le montage aisé de tout matériel de détection, manipulation ou informatique. Il suffit de connecter les capteurs aux alimentations embarquées et du Rover pour démarrer.

PACK EXPLORER

Le pack Explorer permet une fonctionnalité autonome basique en intérieur et extérieur. Au lieu d'une caméra IP, j'ai utilisé la caméra d'un téléphone portable connectée à Internet via adresse IP.

PACK MAPPING

Le pack Explorer inclut un suivi GPS basique, bien sûr uniquement en extérieur. C'est très pratique de visualiser les parcours de coordonnées en temps réel.

PACK MANIPULATION

Interaction avec le monde via un bras robotique et une pince à deux doigts de 50 mm.

Astuce importante : Tous les servomoteurs n'ont pas une rotation complète de 180 degrés. Vous pouvez écrire un test pour déterminer les limites mécaniques. Préférez servo.writeMicroseconds à servo.write car cela permet d'utiliser 1000-2000 comme plage de base. Beaucoup de servos supportent une plage plus large, de 600 à 2400.

Testez différentes valeurs et repérez le bourdonnement indiquant la limite atteinte. Restez ensuite dans ces limites. Vous pouvez les définir avec servo.attach(pin, min, max).

Si vous le souhaitez, définissez les min/max en microsecondes dans l'attache, puis utilisez simplement servo.write. La fonction map() convertira la valeur 0-180 degrés en microsecondes.

Attention : Maintenir le servo en butée fait monter le courant et la température rapidement – il est facile de « griller » un servo ainsi.

Trouvez la vraie plage de mouvement et assurez-vous que le code ne tente pas de la dépasser. La fonction Arduino constrain() est utile :

servo.write(constrain(angle, 10, 160)); // contraindre l'angle entre 10 et 160

Pièces personnalisées et boîtiers

m1rover_dxf_hackaday_4o7WTGHUGE.dxf

Schémas

M1 Rover : Robot autonome d extérieur pour terrains accidentés

Processus de fabrication

  1. Moteurs à réluctance variable : types, fonctionnement et applications
  2. Raspoulette : Prototype de système autonome de porte de poulailler à énergie solaire
  3. Construire un Rover Windows IoT Core avec Raspberry Pi 2 – Guide débutant à avancé
  4. Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi
  5. Jeu UFO Attack DIY avec Arduino UNO et Afficheur MAX7219
  6. Horloge 3D RGB Arduclock – Montre LED Bluetooth avec horloge temps réel
  7. Médiator Motorisé et Pédale d'Effet DIY – Impression 3D et Arduino
  8. Comprendre les moteurs linéaires : de l'énergie électrique au mouvement linéaire précis
  9. Servomoteurs expliqués : fonctionnement et importance