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

Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande

Composants et Fournitures

ComposantQuantitéRemarques
Arduino UNO1Contrôleur principal
Condensateur 100 µF1Protection surtensions servo
LED (standard)5Voyants état capteurs PIR
Capteur PIR Mouvement (HC-SR501)5Détection 180° total (5 zones)
Résistance 220 Ω5Limitation courant LEDs
Servomoteur Tower Pro MG996R1Rotation base caméra

À Propos du Projet

Idée née d'un problème réel : une caméra de surveillance fixée entre deux pièces ne voit qu'une pièce à la fois. Rotation manuelle via logiciel = lenteur. Solution : base motorisée qui oriente automatiquement la caméra vers la zone où un mouvement est détecté.

Fonctionnement

5 capteurs PIR couvrent un rayon de 180°. Détection mouvement → servomoteur pivote base caméra vers capteur actif. 5 LEDs « état » s'allument correspondant au capteur déclenché.

Câblage

Simple mais nombreux fils (5 × tout sauf servo). Voir schémas en bas de page.

LEDs d'état

Mini breadboard séparée pour facilité retrait. Chaque LED → broche numérique 9‑13 Arduino, masse via 220 Ω.

Capteurs PIR (HC-SR501)

Chaque PIR : broche signal → entrée numérique 2‑6 Arduino, VCC 5 V, GND. Retirer couvercle pour voir marquage broches. Chaque PIR associé à sa LED correspondante dans le code.

Servomoteur

Fixé sur support caméra. Broches : alimentation, signal → broche numérique 7 Arduino, masse. IMPORTANT : Condensateur 100 µF entre alimentation et masse DU SERVO (côté moteur) pour absorber pics de courant au démarrage mouvement.

Tous les servos n'ont pas 180° de course. Le mien ~160°. Adapter angles dans le code si grincement en position extrême.

Construction Mécanique

Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande

Base : ancienne étiqueteuse CD Memorex. Disque plat arrière récupéré comme plateau caméra. 4 pieds caoutchouc amovibles = adhérence. Centrale noire retirée (cassée). Trous percés (Dremel) pour fixer servo. Vis reliant servo ↔ plateau caméra.

Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande

Problème : poids caméra faisait basculer base. Solution : cylindre carton entre servo et plateau = support supplémentaire, rotation libre conservée.

Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande
Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande

Plusieurs breadboards utilisés : facilité insertion dans base, dépannage modulaire.

Finition : peinture noire spray sur parties carton visibles pour aspect uniforme.

Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande
Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande
Base Caméra à Suivi de Mouvement Automatisée avec Arduino et Servocommande

Code Arduino

Calibration PIR 15 s au démarrage (quitter la pièce). Servo positionné au centre (78,5°). Boucle principale : lecture séquentielle 5 PIRs. Si mouvement détecté (HIGH) et état précédent LOW → allumer LED correspondante, pivoter servo vers angle prédéfini pour ce capteur. Délai 50 ms entre mouvements. Si plus de mouvement → éteindre LED, état précédent = LOW.

/*************************************************
 *** Base Caméra Motorisée à Suivi de Mouvement ***
 *** par Lindsay Fox ***
 *************************************************/
#include <Servo.h>
Servo camServo;
int currentPIRposition = 0;
int LEDpin[] = {9,10,11,12,13};
int currentLEDpin = 9;
int PIRpin[] = {2,3,4,5,6};
int currentPIRpin = 2;
int PIRprevState[] = {1,1,1,1,1}; // 1 = HIGH (pas de mouvement au repos pour HC-SR501? Voir note)
int PIRposition[] = {157, 117.75, 78.5, 39.25, 0}; // Angles servo pour 5 capteurs
boolean PIRstatus;

void setup() {
  Serial.begin(9600);
  camServo.attach(7);
  for (int p=0; p<5; p++) pinMode(PIRpin[p], INPUT);
  for (int l=0; l<5; l++) pinMode(LEDpin[l], OUTPUT);
  // Calibration 15 s
  Serial.print("Calibration PIR ");
  for(int c=0; c<15; c++) { Serial.print("."); delay(1000); }
  Serial.println(" PIR Prets");
  camServo.write(78.5); // Centre
}

void loop() {
  for (int PIR=0; PIR<5; PIR++) {
    currentPIRpin = PIRpin[PIR];
    currentLEDpin = LEDpin[PIR];
    PIRstatus = digitalRead(currentPIRpin);
    if (PIRstatus == HIGH) { // Mouvement détecté
      digitalWrite(currentLEDpin, HIGH);
      if (PIRprevState[PIR] == 0) { // Transition LOW→HIGH
        if (currentPIRposition != currentPIRpin) {
          camServo.write(PIRposition[PIR]);
          Serial.print("Angle actuel : "); Serial.println(PIRposition[PIR]);
          delay(50);
          currentPIRposition = currentPIRpin;
        }
        PIRprevState[PIR] = 1;
      }
    } else { // Pas de mouvement
      digitalWrite(currentLEDpin, LOW);
      PIRprevState[PIR] = 0;
    }
  }
}
Note sur logique PIR : HC-SR501 sort HIGH au repos, LOW à la détection (selon configuration jumpers). Le code ci-dessus suppose HIGH = détection. Vérifiez votre module et inversez la logique si nécessaire.

Schémas

Voir section schémas (diagrammes Fritzing/images non fournis dans le source original).

Processus de fabrication

  1. L'Évolution et la Conception des Appareils Photo Modernes
  2. Boîtier minimaliste Raspberry Pi pour protection contre les dommages statiques
  3. Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
  4. Système d'alarme détection mouvement avec Java et Reactive Blocks – Déploiement sur Raspberry Pi et envoi SMS
  5. Construire un bouton IoT AWS contrôlé par mouvement avec Raspberry Pi, capteur PIR et MQTT
  6. Installation d'une Caméra Raspberry Pi dans un Nichoir — Guide Étape par Étape
  7. BrickPi Bookreader : Automatiser la lecture Kindle avec Raspberry Pi et LEGO Mindstorms
  8. Configurer une caméra IP live sur Raspberry Pi avec Motion – Guide pas à pas
  9. Technologie de mouvement linéaire : solutions de précision pour l'automatisation