Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Onderdelen en benodigdheden

Arduino UNO × 1
PCBWay Custom PCB (projectlink) × 1
V-Slot 20×40 Lineaire Rail (lengte naar keuze) × 1
Solid V Wheel Kit × 4
Drop In Tee Nuts × 4
Excentrische spacer × 2
9 mm Aluminium spacer × 2
3 mm Aluminium spacer × 2
Low Profile M5 schroeven 20 mm met moeren × 4
Low Profile M5 schroeven 10 mm × 4
M3 Allen HEX schroeven 16 mm met moeren × 8
8 mm Zelf-uitlijnende Kussenflens Lagerblokken × 2
GT2 Bore 8 mm 20 Tanden Tijdband Aluminium Katrol × 1
8 mm Lineaire railas (60 mm lengte) × 1
GT2 Bore 5 mm 20 Tanden Tijdband Aluminium Katrol × 1
GT2-6 mm Open Tijdband (lengte afhankelijk van rail) × 1
Bipolaire NEMA17 Stapelmotor × 1
A4988 Stapelmotor driver × 1
12V 3A Op laadbare accu × 1
HC-05 Bluetooth Module × 1

Benodigde tools en machines

  • 3D-printer (generic)

Apps en online diensten

  • Autodesk Fusion 360
  • Autodesk Eagle
  • Arduino IDE

Over dit project

Projectoverzicht

Als iemand die graag hobbyfilmpjes maakt, is een professionele gemotoriseerde camerashuif vaak te duur. Daarom bouwde ik er zelf een. In deze tutorial loop ik stap voor stap door het bouwproces van een eigen Bluetooth-gestuurde motorische camerashuif.

We bouwen een camerashuif die draadloos via Bluetooth te bedienen is met een zelfgemaakte Android-app. De app is gemaakt met MIT App Inventor en biedt controle over snelheid, afstand, versnelling/vertraging en meer. De app is robuust: je kunt de lengte van je schuif (tot 10 meter) instellen, zodat je vrij bent in de afmetingen van je build.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Als actuator dient een NEMA17 stapelmotor, wat precieze stapsgewijze beweging mogelijk maakt. Voor de aansturing gebruiken we de A4988 Pololu stapelmotor driver, die vijf microstap-resoluties ondersteunt (tot 1/16 stap) voor maximale nauwkeurigheid en vloeiende beweging.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Het project is ontworpen met maakbaarheid in een fablab/makerspace in gedachten.

CAD en 3D-modellering

De camerashuif is ontworpen in Fusion 360. We kozen voor standaard, makkelijk verkrijgbare mechanische componenten die overal ter wereld te koop zijn.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

We gebruiken OpenBuilds hardware voor de mechanische structuur: de V-slot 2040 lineaire rail als geleiding. Twee katrollen – één op de motoras, de andere op een 8 mm lineaire as aan de overkant – met een open tijdband ertussen zetten de rotatiebeweging om in lineaire beweging.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

De 8 mm lineaire as zit tussen twee zelf-uitlijnende kussenflens lagerblokken, bevestigd met vier M5 schroeven op de boven- en onderplaat.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Vier Delrin V-slot wielen lopen in de V-groef van de rail voor extreem soepele beweging. De cameraplaat heeft een standaard 1/4-inch gat voor een statiefschroef.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Tot slot een behuizing voor de elektronica. Alle onderdelen worden samengehouden met M3×16 mm schroeven en moeren.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Digitale fabricatie (3D-printen)

Alle 3D-geprinte delen worden geprint met 0,2 mm laaghogte en 20% infill, behalve de linker- en rechterpoot van de schuif (50% infill voor extra stevigheid).

STL-bestanden zijn te downloaden via Thingiverse.

V-Wiel kit montage

De montage is eenvoudig. Elk Solid V-wiel kit bevat een rubber wiel, twee lagers, twee precisiespacers en een borgmoer.

  1. Plaats een lager aan één kant van het rubber wiel.
  2. Keer het wiel om en plaats een precisiespacer.
  3. Plaats het tweede lager aan de andere kant.
  4. Bevestig met de borgmoer.
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Mechanische montage camerashuif

Cameraplaat en wielen

Monteer de vier V-wielen op de cameraplaat met de 9 mm aluminium spacers, precisiespacers en borgmoeren. Bij de twee rechter wielen gebruik je de 9 mm spacer; bij de linker wielen de excentrische spacer met een 3 mm spacer.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Schuif de cameraplaat in het V-slot profiel. Als er spel is, draai de excentrische moer vast tot de plaat stevig zit.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Profiel en poten

Plaats twee drop-in tee nuts aan elk uiteinde van het V-slot profiel. Schuif de linker- en rechterpoot erop en bevestig met vier M5×10 mm schroeven.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Stapelmotor montage

Monteer de NEMA17 motor op zijn plaat en bevestig met vier M3×16 mm schroeven. Plaats vervolgens de motorplaat op de linker poot en bevestig met twee M3×16 mm schroeven.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Plaats de GT2 5 mm boor katrol op de motoras en vastzetschroef vast.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Rechter poot: lagers en katrol

Plaats vier M3 moeren in de rechter poot. Monteer de twee lagerplaten en bevestig met vier M3×16 mm schroeven.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Monteer de twee 8 mm flenslagerblokken (boven en onder) met M5×20 mm schroeven en moeren.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Schuif de 8 mm lineaire as door de lagerblokken (van onder naar boven). Plaats de 8 mm boor katrol op de as en vast de zetschroef.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Tijdband montage

Leg de 6 mm tijdband om beide katrollen en spen het vast aan de cameraplaat.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Elektronica behuizing

Plaats de Cairo Camera Slider Arduino Shield op de Arduino UNO. Monteer alles in de behuizing en bevestig deze aan de linker poot met M3×16 mm schroeven. Sluit de behuizing met twee M3 schroeven en moeren.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Stapelmotor test & A4988 driver uitleg

Na montage testen we de motor via de A4988 driver. De A4988 fungeert als vertaler tussen Arduino en de bipolaire stapelmotor. Belangrijkste kenmerken:

  • Tot 2A per spoel
  • Alleen 2 digitale pinnen nodig (STEP, DIR)
  • Stroom instelbaar via onboard potentiometer
  • Microstap resoluties: full, half, 1/4, 1/8, 1/16
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Belangrijkste pinnen:

  • VMOT, GND: Motorvoeding 8-35V (hier 12V 3A + 100µF condensator)
  • 2B, 2A / 1A, 1B: Motor spoel uitgangen
  • VDD, GND: Logica voeding 3-5.5V
  • EN: Enable (actief LAAG, standaard ingeschakeld)
  • MS1, MS2, MS3: Microstap selectie (standaard full-step)
  • RST, SLP: Reset en Sleep (actief LAAG)
  • STP, DIR: Stap en richting controle

NEMA17 Stapelmotor

De bipolaire NEMA17 heeft 4 draden (2 spoelen), staphoek 1,8°, werkt op 9-12V voor maximale kracht.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Schema en bedrading

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Arduino Code - Test met AccelStepper

Installeer de AccelStepper bibliotheek (Mike McCauley) via Library Manager.

// Bounce stepper test
#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();
}

Volledige draadloze controle via Bluetooth

Mobiele app (MIT App Inventor)

De app communiceert via Bluetooth (HC-05) met de Arduino. Functies: snelheid, afstand, versnelling, vertraging, vertraagde start (15s), homing (links/rechts), microstap modus (1/4 = Smooth, 1/16 = Very Smooth). De broncode is open source.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Bluetooth module aansluiten (HC-05)

  • Arduino TX → HC-05 RX
  • Arduino RX → HC-05 TX
  • 5V → VCC
  • GND → GND
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

PCB Shield (PCBWay)

Een custom Arduino UNO shield houdt alle componenten netjes op hun plaats. De PCB is gefabriceerd bij PCBWay ($5) met uitstekende kwaliteit.

Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Arduino Code & Bluetooth Communicatie (Finale versie)

De code gebruikt een state machine voor opstart-configuratie (homing, microstap, rail-lengte) en verwerkt daarna real-time commando's van de app. Belangrijke datacodes:

  • 1 = Links, 2 = Rechts, 3 = Stop
  • 201-1200 = Afstand in cm
  • 5001-9000 = Snelheid (stappen/sec)
  • 11-15 = Versnelling (Very High tot Very Low)
  • 16/17 = Homing links/rechts
  • 18/19 = Microstap 1/4 of 1/16
  • 1301-2300 = Rail lengte in cm
/* Cairo Camera Slider - Finale Arduino Code */
#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; // 4 of 16
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++; }
      // Microstap
      if (incomingData == 18) { microStepResolution = 4; startupSetupFlag++; }
      else if (incomingData == 19) { microStepResolution = 16; startupSetupFlag++; }
      // Rail lengte
      if (incomingData >= 1301 && incomingData <= 2300) {
        railLength = incomingData - 1300;
        if (microStepResolution == 4) steps = ((6100L * railLength) / 50L);
        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;

    // Motor controle
    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();

    // Snelheid
    else if (incomingData >= 5001 && incomingData <= 9000) {
      sliderSpeed = incomingData - 5000;
      stepper.setMaxSpeed(sliderSpeed);
    }
    // Vertraagde start
    else if (incomingData == 7) delayedStart = true;
    else if (incomingData == 8) delayedStart = false;
    // Afstand
    else if (incomingData >= 201 && incomingData <= 1200) {
      movementDistance = incomingData - 200;
      if (microStepResolution == 4) steps = ((6100L * movementDistance) / 50L);
      else if (microStepResolution == 16) steps = ((25000L * movementDistance) / 50L);
    }
    // Versnelling
    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);
}

Gebruikshandleiding & Troubleshooting

  1. Sluit 12V voeding aan, schakel Bluetooth in op telefoon, koppel met HC-05.
  2. Open app, druk op "Press here to connect with Cairo camera slider", selecteer HC-05.
  3. App vraagt: Microstap modus (Smooth 1/4 of Very Smooth 1/16) – moet overeenkomen met hardware instelling op A4988 (MS1/MS2/MS3).
  4. App vraagt: Rail lengte in cm.
  5. App vraagt: Homing positie (linker of rechter uiteinde) – plaats de cameraplaat fysiek op het gekozen uiteinde voordat je kiest.
  6. Bevestig instellingen, klaar voor gebruik!
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames
Bluetooth-gestuurde Arduino gemotoriseerde camerashuif voor soepel filmische opnames

Bestanden

  • Code: Cairo Camera Slider Final Code (Arduino)
  • 3D-modellen: STL-bestanden op Thingiverse
  • Schema: Zie schematics sectie

Productieproces

  1. De Evolutie en Ontwerp van Moderne Camera's
  2. Cameraobjectieven Begrijpen: Ontwerp, Geschiedenis en Toekomstige Innovaties
  3. BrickPi Bookreader: Kindle Lezen Automatiseren met Raspberry Pi en LEGO Mindstorms
  4. Bluetooth-gecontroleerde Arduino Spybot bouwen
  5. FlickMote: Gebarengecontroleerde IR-afstandsbediening voor Slimme Huizen
  6. DIY Arduino TV-B-Gone: Universele TV-uit-schakelaar
  7. Bouw een Aangepaste LED Hoofdklok met Alarm – Zichtbaar vanaf 12 Meter
  8. Find Me: Slimme Item Locator met Arduino en Bluetooth
  9. Geoptimaliseerde Voedingsoplossingen voor Arduino Projecten
  10. Arduino Boter-Kaas-Eieren met MAX7219 LED Matrix en Kartonnen Behuizing
  11. Geavanceerde THz imaging camera onthult hoge-resolutie interne beelden van vaste objecten