• 2 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Pro-Timer + Motion Controller

Offline
#1 flow
Moin zusammen,

ich möchte euch gerne mal meine Variation des "Pro-Timers" vorstellen.

Als ich den Artikel zum Pro-Timer gelesen habe, fand ich die Idee dahinter, eine Kamera-Steuerung Mittels Arduino zu basteln, ziemlich spannend. Also direkt nachgebaut und ausprobiert.
Bei der Umsetzung stieß ich dann doch auf ein paar Probleme. Mein Keypad Shield von Adafruit benutzt I²C zur Kommunikation, zudem ist die Pin-Belegung meines Arduino Leonardo etwas anders, als beim Uno. Nach ein paar Änderungen im Code gab es dann auch endlich was auf dem Display zu sehen und die Kamera ließ sich auslösen.
Da ich nebenbei noch an Motion-Control-Lösungen für mich bastle, wollte ich möglichst nur einen Controller benutzen, der alle Funktionen beherrscht. Bisheriger Controller war der Fischertechnik TXT Controller, der allerdings (noch) nicht ganz so reich an Möglichkeiten ist, wie ein Arduino es zB ist.
Daher hab ich zwischen meinen Arduino und das Keypad Shied mit Display noch das Adafruit Motor Shield v2 gesteckt, welches 4 DC Motoren oder 2 Schrittmotoren ansteuern kann. Vorteil Motor Shield gegenüber dem TXT Controller: Ansteuern der DC Motoren über PWM, sprich mehr Kraft bei niedrigeren Drehzahlen. Da auch dieses Board über I²C kommuniziert, sind davon beliebig viele aufeinander stapelbar, was dann aber wahrscheinlich irgendwann zu unhandlich wird. Mir reichten auch fürs Erste 4 DC Motoren.
Weiterer Vorteil Motor Shield: Beliebige Spannungsversorgung zwischen 3-12V, wodurch dann auch der Arduino und das Display versorgt werden.
Als Nächstes habe ich das Programm von Gunther Wegner etwas modifiziert und um eine Motion-Control-Steuerung erweitert. Die Modifizierungen beinhalten ein "Hauptmenü" zur Auswahl des Timelapse-Modus (SMS/Continuous) und ein Menüpunkt "Calibration", zB um die Startpositionen der einzelnen Motoren anzufahren. Insgesamt können momentan 3 Motoren angesteuert werden, möglich wären 4, dann müsste man die Auslösung der Kamera allerdings anders lösen, zB wie bei Gunther.
Unter SMS kann man als Nächstes die Geschwindigkeit und die Laufzeit der einzelnen Motoren einstellen, anschließend kommt der gewohnte Ablauf des Pro-Timers, unter Continuous fällt nur die Einstellung der Zeit weg.

Beispiel-Setup:
Motor 1 ist für die Linear-Fahrt zuständig,
Motor 2 ist der Pan-Motor,
Motor 3 ist der Tilt-Motor,
Ausgelöst wird meine Kamera über "Motor 4", welcher ein Relais ist und so über ein gebasteltes Auslöse-Kabel die Kamera steuert.

Herausgekommen ist eine, wie ich finde, kompakte und vielfältig einsetzbare Motion-Control-Lösung. Einzig ein Gehäuse existiert noch nicht, was mich momentan aber auch nicht groß stört Smile

Ich hab den Code mal angehängt, falls es wen interessiert und das okay ist. Er ist alles andere als perfekt, aber er tut seinen Dienst Tongue
(Hinweis: die I2C-Version ist für Keypad Shields gedacht, die über I2C kommunizieren, für alle anderen (z.B. SainSmart) ist die Original-Version)

Vielen Dank an Gunther Wegner für die ursprüngliche Idee dahinter.

MfG
flow
Attached Files
Thumbnail(s)
       

.zip   Timelapse_Pro_MoCo_Free_v0.92_I2C_Version.zip (Size: 18.58 KB / Downloads: 91)
.zip   Timelapse_Pro_MoCo_Free_Original_Version_v0.94.zip (Size: 76.92 KB / Downloads: 43)
.zip   Timelapse_Pro_MoCo_Free_Original_Version_v0.96.zip (Size: 76.86 KB / Downloads: 100)
Offline
#2 flow
Verwendete Bauteile

Hauptplatine

Arduino Leonardo
Amazon
Exp-Tech

Alternative:
Arduino Uno
Amazon
Exp-Tech


Motortreiber

Adafruit Motor Shield
Amazon
Exp-Tech

Alternative:
Sainsmart Motor Drive Shield (4 DC oder 2 Schrittmotoren)
Amazon

Arduino Motor Shield (2 DC Motoren)
Amazon
Exp-Tech


Display + Tasten

Adafruit Keypad Shield
Amazon
Exp-Tech

Alternative:
Sainsmart Keypad Shield
Amazon



Einbinden von Bibliotheken in die Arduino IDE

   
Offline
#3 froesch
hi!
ich habe bereits einen Arduino Uno gekauft mit zugehörigem Display für den Bau des LRTimelapse Pro-Timer Free und mein Kollege und ich hatten die gleiche Idee: das Ding auch gleich für Motion control zu nutzen. Nun haben wir noch nicht den Durchblick bei der Programmierung für Arduino. Was müßten wir denn ändern, um es für den Uno lauffähig zu bekommen. Wichtig wäre auch zu wissen, wie die Pinbelegeung/Verkabelung aussehen müßte.
mfg
froesch
Offline
#4 flow
(2017-05-21, 22:54)froesch Wrote: hi!
ich habe bereits einen Arduino Uno gekauft mit zugehörigem Display für den Bau des LRTimelapse Pro-Timer Free und mein Kollege und ich hatten die gleiche Idee: das Ding auch gleich für Motion control zu nutzen. Nun haben wir noch nicht den Durchblick bei der Programmierung für Arduino. Was müßten wir denn ändern, um es für den Uno lauffähig zu bekommen. Wichtig wäre auch zu wissen, wie die Pinbelegeung/Verkabelung aussehen müßte.
mfg
froesch
Hi,

sorry für die späte Antwort.
Der Leonardo und der Uno sind sich ziemlich ähnlich, also muss gar nicht mal so viel geändert werden Wink

Wenn ihr ein Display benutzt, das dem von Gunther ähnelt (sprich eins, das nicht über I²C kommuniziert), könnt ihr die Original_Version von meinem Programm benutzen und eigentlich fast alles so lassen, wie es ist.
Je nach Display werdet ihr die Pinbelegung im Sketch anpassen müssen (Zeile 21 im Code: aktuell steht dort LiquidCrystal lcd(8, 9, 7, 6, 5, 4); ). Hier müsst ihr gegebenenfalls die Zahlen an euer Display anpassen. Wenn ihr irgendein funktionsfähiges Programm habt, mit dem ihr euer Display ansteuern könnt, findet ihr dort die entsprechenden Zahlen. Damit solltet ihr zumindest schon einmal das Menü auf deinem Display sehen können.

Zur Motorsteuerung kann ich euch so direkt nicht all zu viel sagen, das hängt davon ab, für welche Lösung ihr euch entscheidet. Bei gleichem Shield müsst ihr nichts ändern, da das Shield über I²C kommuniziert und die Adresse des Shields in der Regel immer die selbe ist. Generell ist es nicht kompliziert, ein anderes Shield zur Ansteuerung zu benutzen. Ich hab in meinem Programm versucht möglichst alle entsprechenden Stellen zu kommentieren, da müsstet ihr den Code dann nur gegen den von eurem favorisierten Shield austauschen.

Hab ich noch was vergessen? Wink

MfG
flow
Offline
#5 froesch
Hi,

danke erstmal für die Infos!
Also am Wochenende schaue ich mal bei meinem Kollegen rein. Vor ein paar Tagen hat er mir ein Video geschickt, auf dem er bereits selber Text auf das Display gebracht hat. Er war von meinem Arduino (den ich ihm zu testen gegeben hab) und den Möglichkeiten wohl jetzt so fasziniert, dass er sich auch gleich zwei bestellt hat (um einige Sachen in seinem Haus zu steuern XD ).
Ich entwickele momentan noch den Plan für die Hardware. WIe ich die Umsetzung mit den Motoren für pan und tilt löse, ist noch ziemlich offen, genau wie die Wahl der möglichst sehr leisen Motoren...
mfg
froesch
Offline
#6 flow
Sehr schön, freut mich zu hören! Big Grin
Ja, Arduinos sind schon eine nette Sache, kann man viel (Un-)Sinn mit anstellen Wink

Vielleicht als Tipp: Motoren mit geringer Stromaufnahme (<1A) laufen ruhiger als welche mit höherer (>2A), haben aber u.U. weniger Kraft.
Zusätzlich kann man (zumindest bei Schrittmotoren) über die Software-Ansteuerung noch das Ein oder Andere an Laufgeräusch und Drehmoment anpassen.

Gesendet von meiner D7500 mit Tapatalk

...also check out: