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

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Composants et Fournitures

Composant Quantité Notes
Arduino UNO 1
PCB Personnalisé PCBWay 1 Fichiers de conception
Rail Linéaire V-Slot 20×40 1 Longueur au choix
Kit Roues V Solides 4
Écrous en T à Insertion 4
Entretroise Excentrique 2
Entretroise Aluminium 9 mm 2
Entretroise Aluminium 3 mm 2
Vis M5 Tête Basse 20 mm avec Écrou 4
Vis M5 Tête Basse 10 mm 4
Vis M3 Allen HEX 16 mm avec Écrou 8
Palier à Bride Auto-alignant 8 mm 2
Poulie Aluminium GT2 Alésage 8 mm, 20 Dents 1
Arbre Linéaire 8 mm 1 Longueur 60 mm
Poulie Aluminium GT2 Alésage 5 mm, 20 Dents 1
Courroie Dentée GT2 6 mm (Open) 1 Longueur selon le rail
Moteur Pas à Pas Bipolaire NEMA 17 1
Driver Moteur Pas à Pas A4988 1
Batterie Rechargeable 12V 3A 1
Module Bluetooth HC-05 1

Outils et Machines Nécessaires

Applications et Services en Ligne

À Propos du Projet

Vue d'Ensemble

Pour les amateurs de vidéo, l'achat d'un slider motorisé représente un investissement conséquent. Ce tutoriel vous guide pas à pas dans la construction de votre propre slider motorisé contrôlé par Bluetooth.

Nous allons réaliser un slider pilotable sans fil depuis une application Android personnalisée, développée avec MIT App Inventor. L'application offre un contrôle complet : vitesse de déplacement, distance de parcours, taux d'accélération/décélération, et bien plus. Elle permet de définir la longueur de votre rail (jusqu'à 10 mètres), vous offrant une grande liberté de conception.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

L'actionneur est un moteur pas à pas NEMA 17, piloté via un driver A4988 Pololu. Ce dernier propose cinq résolutions de micro-pas (jusqu'au 1/16 de pas), garantissant une précision et une fluidité de mouvement maximales.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Le projet est conçu pour être réalisable en fablab, makerspace ou hackerspace.

CAO et Modélisation 3D

La conception a été réalisée sous Fusion 360, en privilégiant des composants mécaniques standards, faciles à se procurer partout dans le monde.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

La structure mécanique utilise du matériel OpenBuilds :

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

L'arbre lisse 8 mm est maintenu par deux paliers à bride auto-alignants, fixés sur les plaques supérieure et inférieure par quatre vis M5.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Quatre roues V-Slot en Delrin assurent un glissement extrêmement fluide dans la gorge du rail. La plaque caméra intègre un filetage standard 1/4 pouce pour le montage direct.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Un boîtier accueille l'électronique. L'ensemble est assemblé avec des vis M3×16 mm et écrous.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Fabrication Numérique (Impression 3D)

Toutes les pièces du corps du slider sont imprimées en 3D :

Fichiers STL disponibles sur Thingiverse.

Assemblage du Kit Roues V

Chaque roue V solide se compose d'une roue en caoutchouc, deux roulements, deux bagues de précision et un écrou de blocage.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Procédure :

  1. Insérer un premier roulement d'un côté de la roue
  2. Retourner la roue, insérer une bague de précision
  3. Insérer le second roulement de l'autre face
  4. Serrer l'écrou de blocage
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Assemblage Mécanique du Slider

1. Plaque Caméra et Roues V

Monter les quatre roues sur la plaque caméra :

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Insérer la plaque dans le profilé V-Slot. Si du jeu subsiste, serrer l'écrou excentrique jusqu'à obtention d'un guidage ferme sans point dur.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

2. Fixation du Rail sur les Pattes

Insérer deux écrous en T à chaque extrémité du profilé, puis emboîter les pattes gauche et droite. Fixer avec quatre vis M5×10 mm.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

3. Montage du Moteur NEMA 17

Fixer le moteur sur sa plaque avec quatre vis M3×16 mm, puis installer l'ensemble sur la patte gauche (deux vis M3×16 mm dans les écrous pré-insérés).

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

4. Installation des Poulies et Courroie

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

5. Pose de la Courroie

Enrouler la courroie GT2 6 mm sur les deux poulies, puis la tendre et la fixer sur la plaque caméra.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

6. Électronique et Boîtier de Contrôle

Enficher le shield Arduino « Cairo Camera Slider » sur l'Arduino UNO, insérer le tout dans le boîtier, puis fixer celui-ci sur la patte gauche (deux écrous M3 + vis M3×16 mm). Fermer le boîtier.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Test de Contrôle du Moteur Pas à Pas

Le Driver A4988

Le driver A4988 fait l'interface entre l'Arduino et le moteur bipolaire. Caractéristiques clés :

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Pins de configuration micro-pas (MS1, MS2, MS3) : tirées à l'état bas par défaut → mode pas entier. Appliquer les niveaux logiques appropriés pour sélectionner la résolution souhaitée.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Pins de contrôle :

Moteur NEMA 17 Bipolaire

Angle de pas : 1,8° (200 pas/révolution en pas entier). Tension nominale 9 V, 12 V recommandé pour couple maximal. 4 fils (2 bobines).

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Schéma de Câblage (Test)

Connexion : Moteur → A4988 → Arduino UNO + Batterie 12 V 3 A.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Code Arduino (Test avec AccelStepper)

Installer la bibliothèque AccelStepper (Mike McCauley) via le gestionnaire de bibliothèques de l'IDE Arduino.

// Test rebond simple
#include <AccelStepper.h>
#define stepPin 2
#define dirPin 3

AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin);

void setup() {
  stepper.setMaxSpeed(100);
  stepper.setAcceleration(20);
  stepper.moveTo(500);
}

void loop() {
  if (stepper.distanceToGo() == 0)
    stepper.moveTo(-stepper.currentPosition());
  stepper.run();
}

Logique : l'objet AccelStepper gère l'accélération/décélération. En setup(), on définit vitesse max, accélération et position cible. En loop(), le moteur fait l'aller-retour entre les positions extrêmes.

Contrôle Sans Fil Complet

Application Mobile (MIT App Inventor)

L'application communique en Bluetooth avec le slider. Elle permet de régler :

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Code source de l'application open-source disponible.

Schéma de Câblage Final (avec HC-05)

Le module HC-05 (configurable maître/esclave, protocole SPP) se câble en série sur l'UART de l'Arduino :

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Conception PCB : Shield Arduino « Cairo Camera Slider »

Un shield PCB personnalisé élimine le câblage volant. Composants à souder : connecteur HC-05, support A4988, connecteur batterie. Fabrication chez PCBWay (qualité excellente, ~5 $).

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Fichiers source et commande PCB : PCBWay

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Code Arduino Final & Communication Bluetooth

Le code utilise AccelStepper et implémente un protocole série 2 octets (poids fort + poids faible) pour recevoir les commandes de l'application.

Principaux paramètres reçus :

Calcul du nombre de pas :

Le setup() attend trois paramètres critiques (homing, micro-pas, longueur rail) avant de passer à la boucle principale. La loop() traite les commandes entrantes en temps réel et pilote le moteur via stepper.run().

Afficher le code complet (cliquer pour déplier)
/* Cairo Camera Slider - Code Final */
#include <MultiStepper.h>
#include <AccelStepper.h>

#define stepPin 2
#define dirPin 3

bool homingPositionFlag = false;
int startupSetupFlag = 0;
bool delayedStart = false;
int incomingData = 0;
int movementDistance = 50;
long steps = 0;
int microStepResolution = 0;
long railLength = 0;
int sliderSpeed = 10;

AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin);

void setup() {
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  Serial.begin(9600);
  stepper.setMaxSpeed(10.00);
  stepper.setAcceleration(500.00);

  while (startupSetupFlag < 3) {
    if (Serial.available() > 1) {
      unsigned int dataOne = Serial.read();
      unsigned int dataOne1 = Serial.read();
      unsigned int incomingData = (dataOne1 * 256) + dataOne;

      // Homing
      if (incomingData == 16) { stepper.setCurrentPosition(steps); homingPositionFlag = false; startupSetupFlag++; }
      else if (incomingData == 17) { stepper.setCurrentPosition(-(steps)); homingPositionFlag = true; startupSetupFlag++; }

      // Micro-pas
      if (incomingData == 18) { microStepResolution = 4; startupSetupFlag++; }
      else if (incomingData == 19) { microStepResolution = 16; startupSetupFlag++; }

      // Longueur rail
      if (incomingData >= 1301 && incomingData <= 2300) {
        railLength = incomingData - 1300;
        if (microStepResolution == 4) { steps = ((6100L * railLength) / 50L); startupSetupFlag++; }
        else if (microStepResolution == 16) { steps = ((25000L * railLength) / 50L); startupSetupFlag++; }
      }
    }
  }
}

void loop() {
  if (Serial.available() > 1) {
    unsigned int dataOne = Serial.read();
    unsigned int dataOne1 = Serial.read();
    unsigned int incomingData = (dataOne1 * 256) + dataOne;

    // Contrôle moteur
    if (incomingData == 1 && !stepper.isRunning() && stepper.currentPosition() != 6050 && homingPositionFlag) {
      if (delayedStart) delay(15000);
      stepper.setCurrentPosition(0);
      stepper.moveTo(steps);
      homingPositionFlag = false;
    }
    else if (incomingData == 2 && !stepper.isRunning() && stepper.currentPosition() != -6050 && !homingPositionFlag) {
      if (delayedStart) delay(15000);
      stepper.setCurrentPosition(0);
      stepper.moveTo(-(steps));
      homingPositionFlag = true;
    }
    else if (incomingData == 3 && stepper.isRunning()) {
      homing();
    }
    // Vitesse
    else if (incomingData >= 5001 && incomingData <= 9000) {
      sliderSpeed = incomingData - 5000;
      stepper.setMaxSpeed(sliderSpeed);
    }
    // Démarrage différé
    else if (incomingData == 7) delayedStart = true;
    else if (incomingData == 8) delayedStart = false;
    // Distance
    else if (incomingData >= 201 && incomingData <= 1200) {
      movementDistance = incomingData - 200;
      if (microStepResolution == 4) steps = ((6100L * movementDistance) / 50L);
      else if (microStepResolution == 16) steps = ((25000L * movementDistance) / 50L);
    }
    // Accélération
    else if (incomingData == 11 && !stepper.isRunning()) stepper.setAcceleration(3000);
    else if (incomingData == 12 && !stepper.isRunning()) stepper.setAcceleration(1000);
    else if (incomingData == 13 && !stepper.isRunning()) stepper.setAcceleration(500);
    else if (incomingData == 14 && !stepper.isRunning()) stepper.setAcceleration(4000);
    else if (incomingData == 15 && !stepper.isRunning()) stepper.setAcceleration(10);
  }
  stepper.run();
}

void homing() {
  homingPositionFlag = (stepper.currentPosition() > 0);
  stepper.moveTo(0);
}

Guide Utilisateur & Dépannage

  1. Alimenter l'Arduino (12 V) → le shield est alimenté.
  2. Activer Bluetooth sur le smartphone, appairer le module HC-05 (code par défaut : 1234 ou 0000).
  3. Lancer l'application, appuyer sur « Press here to connect with Cairo camera slider », sélectionner HC-05.
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

L'application demande ensuite :

  1. Résolution micro-pas : « Smooth » (1/4) ou « Very Smooth » (1/16) — doit correspondre aux jumpers MS1-MS3 sur l'A4988.
  2. Longueur du rail (cm) : ex. 50 cm.
  3. Position de homing : placer le chariot sur l'extrémité gauche OU droite, puis sélectionner l'option correspondante.
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides
Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Attention : si le chariot n'est pas en butée au démarrage, il risque de heurter les limites.

Après validation, l'écran principal affiche les paramètres et les commandes de mouvement.

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Slider en Action

Le slider est désormais opérationnel pour réaliser des travellings fluides, des timelapses ou des plans cinématiques précis, le tout piloté depuis votre smartphone.

Code Source

Le code complet est disponible dans la section « Code » du projet original (fichier Cairo Camera Slider Final Code.ino).

Pièces Imprimées 3D

Fichiers CAO (STL) sur Thingiverse : « Cairo Camera Slider STLs ».

Schémas

Slider Motorisé pour Caméra Contrôlé par Bluetooth avec Arduino : Pour des Plans Cinématiques Fluides

Processus de fabrication

  1. L'Évolution et la Conception des Appareils Photo Modernes
  2. Comprendre les objectifs d'appareil photo : conception, histoire et innovations futures
  3. BrickPi Bookreader : Automatiser la lecture Kindle avec Raspberry Pi et LEGO Mindstorms
  4. Construire un Spybot Arduino piloté par Bluetooth
  5. FlickMote : Télécommande IR à gestes pour maison connectée
  6. TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
  7. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  8. Find Me : Localisateur d'objets intelligent avec Arduino et Bluetooth
  9. Caméra d'imagerie THz avancée révèle des vues internes haute résolution d'objets solides