Simon Weckert
Work About




Kamera Slider


Hardware, 2015


Einleitung

Hey in diesem Tutorial möchte ich euch zeigen, wie ihr mit einem Arduino und einem Stepper Motor einen automatisierten Kameraslider baut, der ungefähr eine Zeit von 3 Stunden auf einer Strecke von 1,5m braucht. Klingt gut oder? Das Besondere an dieser Kamera Slider ist, dass Foto und Stepp des Motors so synchronisiert ist, dass immer ein Stepp gemacht wird und danach ein Foto. Das verhindert dass es zu einer Bewegung im Foto kommt und ihr saubere Aufnahmen machen könnt. Außerdem ist der Slider mit Tastern rechts und links versehen, so dass die Kamera immer von rechts nach links pendeln kann. Auch ein Not Aus Button, so wie ein Kippschalter zum Einstellen der Geschwindigkeit sind in dem Aufbau vorgesehen. Wie ihr eure Kamera mit dem Motor synchronisiert und alles andere ansteuert werde ich euch im Verlauf des Tutorials nun beschreiben. Bevor wir ihr dem Tutorial beginnt, möchte ich voraus schicken, dass nützlich ist sich eine Standborhmaschine zu besorgen, da bei manchen Teilen individuelle Anpassungen werden müssen.



Shopping




Schiene und Führungsschlitten - Link
IGUS versorgt euch mich den Teilen den Teilen wie Schiene und Führungsschlitten. Hier müsste ihr nur noch eure gewünscht Länge der Schiene auswählen und den passenden Führungsschlitten dazu. Es ist zu empfehlen eine Schiene zu wählen, die mir hohlen Seitenwänden ausgestattet ist, da diese sich gut zum Verkabeln eignen.

Lochplattenwinkel 90 x 90 x 65 x 2,5 - Link

2 x Zahnriemenscheibe 60 Zähne - Link

Riemen - Link

Kühlrippen - Link

Stepper Motor - Link
Bei Conrad Electronics bekommt ihr den passenden Stepper Motor, der 1.10Nm Halte-Moment eure Kamera auch eine Schienenwinkel von 45° nach oben zieht, auch wenn eure Kamera um die 5kg wiegt. Das gute bei diesem Motor ist, dass ihr diesen mit einer Betriebsspannung von 12V/DC auch an eine herkömmliche Autobatterie anschließen könnt, wenn es mal raus in freie geht und ihr Mobil sein wollt.

Micro Controller - Link
Mit dem Arduino Uno steuert erweitert ihr euren Aufbau um das Herzstück des Sliders. Dieser Microcontroller übernimmt die Synchronisation zwischen einem Stepp machen und gleich danach ein Foto schießen.

Big Easy Stepper Driver - Link
Damit euer Stepper Motor genau die Power und die Ansteuerung bekommt die er benötigt, verwenden wir in diesem Aufbau den Big Easy Stepper Driver, der mit einen Stromstärke von Max. 2A ganz gut den Stepper Motor mit Strom versorgt.

Schalter - Link - Link
Und hier noch die entsprechenden Schalter für den Geschwindigkeit Regler und Not Stopp.

Selbstauslöser - Link
Für den Selbstauslöser eurer Kamer benötigt ihr einmal das entsprechende Kabel was zu eurer Kamera passt und außerdem diesen Optokoppler.



Bauen


Step 1.

Wenn ihr alle Teile zusammen habt dann kann es losgehen. In dem Bilder Tutorial seht ihr wie ihr den Führungsschlitten und die Schiene zusammen fügt und den Riemen einbaut. Zuerst nehmen wir die Führungsschiene und Bohren uns eine Loch an einem ende des Slider mittig in die Schiene. Durch dieses Loch verbinden wir einer der Zahnräder mit der Führungsschiene.

Step 2.

Auf der Gegenüberliegenden Schienen Seite befestigen wir den Stepper Motor mit dem flachgedrückten Baumarktwinkel. Dazu bohrt ihr wieder mittig ein Loch in die Schiene um den Winkel mit der Schiene zu verbinden. Dabei ist es zu empfehlen, eine Flügelmutter zu verwenden, da somit schneller der Riemen gespannt werden kann. Mit der anderen Seite des Winkels könnt ihr dann den Stepper Motor verbinden.
(Abbildung 1)

(Abbildung 2)

Step 3.

In dem Führungsschlitten bohrt ihr mittig ein Gewinde, um den Stativkopf mit der Schlitten zu verbinden. Danach verbindet ihr den Riemen mit dem Führungsschlitten. Dazu müssen je nach Ausführung in die (Führungsklötze) Gewinde gebohrt werden für 2 passende Schrauben die ihr bestimmt bei euch noch rumliegen habt.

Step 4.

Jetzt könnt ihr den Führungsschlitten in die Schiene einsetzten.






(Abbildung 3)

(Abbildung 4)


Schaltung



Hier könnt ihr sehen, wie ihr euer Arduino mit dem Big Easy Stepper Driver und dem Stepper Motor verbindet. Abbildung 6 und 7 zeigen euch wie ihr die gesamte Elektronik in einer Box unterbringen könnt und auch gleich die Schalter für Not Stop und Geschwindigkeit angebracht werden können. Jedoch möchte ich in diesem Tutotial nicht weiter darauf eingehen wie gebaut wurde, sondern nur zeigen was für eine Umsetzungsmöglichkeit gesteht. Mit den Wiederständen 10 Ohm, 100 und 22kOhm könnt ihr die 3 Stuffen der Geschwindigkeit des Slider bestimmen, wobei gilt je größer der Wiederstand, desto langsamer der Slider.
Der 3,5mm AudioJack Ausgang verbindet ihr mit dem Selbstauslöserkabel eurer Kamera. Achtet darauf das dieses Kabel lang genug ist.

(Abbildung 5)

(Abbildung 6)
(Abbildung 7)


Arduino Code



Jetzt geht es an programmieren. Hierzu müst ihr euch die Arduino IDE von der Entwicklerseite downloaden. Kopiert einfach den hier stehenden Code in die Arduino IDE und laden diesen dann auf euere Arduino Uno hoch. Wie ihr seht habe ich in dem Code jede Zeile kommentiert, sodass ihr nachvollziehen könnt was an welcher stelle geschieht.

#include 

// Define the stepper and the pins it will use
AccelStepper stepper1(1, 9, 8);

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// Millisekunden
unsigned long timestamp;
int timeDiff = 1000;

// Define our three input button pins
#define  LEFT_PIN  4
#define  STOP_PIN  3
#define  RIGHT_PIN 2

// Define our analog pot input pin
#define  SPEED_PIN 0

// Define our maximum and minimum speed in steps per second (scale pot to these)
#define  MAX_SPEED 10
#define  MIN_SPEED 0.01

void setup() {
  // The only AccelStepper value we have to set here is the max speeed, which is higher than we'll ever go
  stepper1.setMaxSpeed(10000.0);
  
  // initialize serial communication at 115200bits per second:
  Serial.begin(115200);
  
  // Millisekunde
  timestamp = millis();
 
  // Set up the three button inputs, with pullups
  pinMode(LEFT_PIN, INPUT_PULLUP);
  pinMode(STOP_PIN, INPUT_PULLUP);
  pinMode(RIGHT_PIN, INPUT_PULLUP);
  
   // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

void loop() {
  static float current_speed = 0.0;         // Holds current motor speed in steps/second
  static int analog_read_counter = 1000;    // Counts down to 0 to fire analog read
  static char sign = 0;                     // Holds -1, 1 or 0 to turn the motor on/off and control direction
  static int analog_value = 0;              // Holds raw analog value.
 
  // If a switch is pushed down (low), set the sign value appropriately
  if (digitalRead(LEFT_PIN) == 0) {
    sign = 1;
  }
  else if (digitalRead(RIGHT_PIN) == 0) {    
    sign = -1;
  }
  else if (digitalRead(STOP_PIN) == 1) {
    sign = 0;
  }

  // We only want to read the pot every so often (because it takes a long time we don't
  // want to do it every time through the main loop).  
  if (analog_read_counter > 0) {
    analog_read_counter--;
  }
  else {
    analog_read_counter = 3000;
    // Now read the pot (from 0 to 1023)
    analog_value = analogRead(SPEED_PIN);
    // Give the stepper a chance to step if it needs to
    stepper1.runSpeed();
    //  And scale the pot's value from min to max speeds
    current_speed = sign * ((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED;
    // Update the stepper to run at this new speed
    stepper1.setSpeed(current_speed);
  
    digitalWrite(led, HIGH);  // turn the LED on (HIGH is the voltage level)
    delay(1000);
    digitalWrite(led, LOW);
    delay(1000);
  }
  
  // Millisekunde

  if (millis() - timeDiff >= timestamp){
  
  // Motor fahren lassen
  
  timestamp = millis();
  
  }  
    // print out the state of the button:
  Serial.println(current_speed);
  
  
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
     
   

  // This will run the stepper at a constant speed
  stepper1.runSpeed();
  
  
}
		




Video