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

Radar ultrasonique Arduino HC-SR04 : Affichage temps réel avec servo et Processing

Composants nécessaires

Composant Quantité
Arduino UNO 1
Capteur ultrasonique HC-SR04 1
Servomoteur standard (ex: SG90, MG996R) 1
Plaque d'essai et fils de connexion 1
Ordinateur avec Processing IDE 1

Principe général

Ce projet réalise un radar à balayage : un servomoteur fait pivoter le capteur HC-SR04 sur un arc de 160° (-80° à +80°), et l'Arduino envoie les mesures de distance (angle, distance) via le port série. Un programme Processing sur PC reçoit ces données et dessine une visualisation temps réel en vue de dessus (type écran radar).

Architecture du système

Côté Arduino (Serveur)

  • Pilote le servo par pas de 1°
  • À chaque position, lit la distance via HC-SR04 (bibliothèque NewPing)
  • Envoie sur le port série : angle,distance\n (ex: -45,123\n)
  • Inverse la direction aux bornes (±80°)

Côté Processing (Client)

  • Ouvre le port série (9600 bauds)
  • Parse chaque ligne : angle, distance
  • Trace un trait depuis le centre à l'angle reçu, longueur proportionnelle à la distance
  • Moyenne les deux balayages (aller/retour) pour réduire le bruit
  • Affiche une interface type radar (grille, échelle, trace persistante)

Code Arduino (Arduino_radar_server_arduino.ino)

/* Radar HC-SR04 + Servo - Envoi série pour Processing
 * Basé sur le travail de faweiz (GitHub)
 */
#include <NewPing.h>
#include <Servo.h>

#define TRIGGER_PIN  2
#define ECHO_PIN     3
#define MAX_DISTANCE 150   // cm (max fiable ~400-500 cm)
#define SERVO_PIN    9

#define ANGLE_BOUNDS 80    // ±80°
#define ANGLE_STEP   1     // Pas de 1°

Servo myservo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

int angle = 0;   // Angle courant (-80..+80)
int dir = 1;     // Direction : +1 ou -1

void setup() {
  Serial.begin(9600);
  myservo.attach(SERVO_PIN);
}

void loop() {
  delay(50); // Temps de stabilisation servo + mesure

  // Convertir angle [-80,80] en position servo [0,180]
  myservo.write(angle + ANGLE_BOUNDS);

  // Mesure et envoi série
  int cm = sonar.ping_cm();
  Serial.print(angle, DEC);
  Serial.print(",");
  Serial.println(cm, DEC);

  // Prochain angle
  if (angle >= ANGLE_BOUNDS || angle <= -ANGLE_BOUNDS) dir = -dir;
  angle += dir * ANGLE_STEP;
}

Code Processing (Arduino_radar_client_processing.pde)

Le code complet est disponible sur le GitHub de l'auteur : faweiz/My-Arduino/arduino_radar

Points clés du sketch Processing :

Schéma de câblage

HC-SR04 Arduino
VCC 5V
Trig Pin 2
Echo Pin 3
GND GND
Servo Arduino
Signal (orange/jaune) Pin 9 (PWM)
VCC (rouge) 5V (ou alimentation externe si servo puissant)
GND (marron/noir) GND

Important : Alimentez le servo depuis une source externe (ou au moins un condensateur 470-1000 µF sur l'alimentation 5V de l'Arduino) pour éviter les réinitialisations dues aux pics de courant.

Installation et lancement

  1. Installez la bibliothèque NewPing dans l'IDE Arduino (Gestionnaire de bibliothèques).
  2. Téléversez le code Arduino.
  3. Installez Processing 3/4 depuis processing.org.
  4. Ouvrez le sketch Processing, adaptez le nom du port série (Serial.list()).
  5. Lancez le sketch Processing → la fenêtre radar s'ouvre et affiche les mesures en temps réel.

Personnalisation et extensions

Limites connues

Processus de fabrication

  1. Construire un Spybot Arduino piloté par Bluetooth
  2. FlickMote : Télécommande IR à gestes pour maison connectée
  3. TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
  4. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  5. Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
  6. Solutions d'alimentation optimisées pour projets Arduino
  7. Morpion sur matrice LED MAX7219 avec boîtier en carton
  8. Construire un robot quadrupède Arduino intelligent : guide étape par étape
  9. Mesure de distance en temps réel par sonar Arduino et visualisation Processing