Hallo, hier kommt mein ausführlicher Artikel zu meinem Timelapse Slider (Schlitten für Zeitrafferaufnahmen), welcher mit Hilfe eines Arduinos und BLE (Bluetooth Low Energy) angesteuert wird. Das Projekt hat mich etwa 100€ gekostet, was sehr viel günstiger ist als wenn man einen solchen Slider kauft. Man muss hier jedoch noch die Teile, welche ich schon hatte hinzurechnen: - 10x 1,2V AA Akkus - Stative - Diverse Schrauben Da der Artikel etwas länger ist hier ein kleiner Überblick über das was folgt: 1. Mechanischer Aufbau 2. Elektronik 3. Software 4. Code 5. Weiterentwicklung 6. Kaufen ——————————————————————————— 1 Mechanischer Aufbau Der Slider besteht aus einem 100cm langen 60x20 V-Slot Profil, diese benutzt man meistens für CNC Maschinen, da sie sehr stabil sind. Jedem der einen Slider bauen möchte kann ich diese sehr empfehlen. Zuerst wollte ich es über Rundstangen und Linearführungen realisieren, jedoch musste ich feststellen dass die Stangen sich unter dem Gewicht der Kamera doch sehr durchbiegen und so eine gute Aufnahme nicht möglich ist. Auf der Unterseite der Schiene befinden sich an den Enden jeweils eine Halterung um den Slider auf ein 3/8“ Stativgewinde zu schrauben. Hier kann man auch Stative mit 1/4“ nutzen, welche man mit einem 3/8“ Adapter ausstattet. Der Schlitten, welcher auf der Schiene sitzt gehört auch zum V-Slot System. Die Basis bildet eine Gantry Plate, welche schon viele passende Bohrungen hat. An dieser habe ich 4 Dual Laufrollen befestigt. Diese Kombination hält sehr fest und wackelt so gut wie garnicht. An der Platte ist seitlich noch eine Motorhalterung angebracht an welcher ein NEMA 17 (12V 0.4A) Schrittmotor befestigt ist. Dieser ist von Nöten, da ich einen Slider haben wollte, welcher beim Belichten der Kamera anhält, sodass man auch längere Belichtungszeiten verwenden kann. Über den Motor läuft ein Zahnriemen, welcher an den Enden befestigt ist. Es bewegt sich also das ganze Paket aus Kamera und Motor. Dies habe ich so gewählt, da man sich so am Ende eine Umlenkrolle spart und man so nur einen Kabelstrang (Motorkabel und Auslösekabel) hat. Auf der Platte befindet sich noch ein Kugelkopf auf dem die Kamera montiert wird. Hier muss man jedoch beachten, dass unter der Platte zum Schlitten so gut wie kein Platz mehr ist und man deshalb eine Schraube mit einem sehr flachen Kopf verwenden muss. 2 Elektronik Das Herz des Sliders ist ein Arduino Nano. Der Controller eignet sich sehr gut, da er klein ist und wenig Strom verbraucht. Um eine Verbindung über BLE herzustellen wird ein HM-10 BLE Modul verwendet. Der Motor wird über ein A4988 Schrittmotor Treiber angesteuert und braucht nur 2 Datenkabel zum Arduino. Die Kamera wird über ein Relay und die Fernauslöserbuchse angesteuert und löst aus wenn das Relay sich schließt. Hier sollte auch ein Optokoppler ausreichen, welcher auch deutlich weniger Strom verbrauchen würde. Ich hatte jedoch keinen zur Hand und habe erstmal ein Relay eingebaut. All diese Sachen befinden sich auf einer Lochrasterplatine, sodass es nicht ganz so viel Kabelsalat gibt. Das ganze System wird mit etwa 12V über 10 AA Akkus betrieben um mobil zu sein. Man könnte jedoch bis 30V anschließen. Hier muss dann jedoch in den vorgesehenen Platz ein L7812 eingesteckt werden, sonst würde der Arduino der Spannung unterliegen. Die Spannungsversorgung wird noch durch einen einfachen Schalter unterbrochen. 3 Software Da ich noch keine Erfahrung mit Swift habe bin ich erstmal den einfachen Weg mit Blynk gegangen um meinen Slider anzusteuern. Ganz oben hat man zwei Button um den Wagen entweder an das linke oder rechte Ende zu bewegen. Es ist nicht möglich eine rechtsseitige Bewegung auszulösen, wenn sich der Wagen schon am rechten Ende befindet. Man hat hier eine elektronische Sperre, weshalb Endschalter nicht nötig sind (Spart Gewicht, Kabel und Geld). Des Weiteren gibt es zwei Felder in welchen man die Anzahl der Bilder und das Intervall einstellt. Meine Videos haben am Ende 25 fps, weshalb man immer ein vielfaches von 25 auswählen kann. Zum Beispiel ergeben 250 Bilder 10 Sekunden fertiges Video. Hat man alles eingestellt, so kann man den Start Button drücken. Im 16x2 LCD wird der Fortschritt der Aufnahme angezeigt, also wie viele Bilder schon gemacht wurden. —> 2 von 250 Über die Blynk App lässt sich sehr leicht eine Verbindung zum Smartphone herstellen und durch die eigene Library ist die Programmierung recht leicht. Einziger Nachteil ist, dass man stets eine aktive Internetverbindung benötigt (Über mobiles Netz kein Problem, da der Datenverbrauch sehr gering ist). Außerdem muss man das Program immer Neustarten wenn man das BLE Modul verbinden möchte. 4 Code Durch Blynk und den A4988 Motortreiber ist das Arduino Sketch recht kurz. Man muss jedoch beachten, dass ich kein Profi im Programmieren bin und ich nach dem Motto „Hautsache es läuft“ arbeite. Ich dachte mir ich poste einfach den ganzen Code, da man es so am besten versteht. Im Code befinden sich Anmerkungen was die einzelnen Sachen bewirken. Man muss jedoch das Verhältnis zwischen den Schritten die der Motor machen muss und den Bildern die gemacht werden beachten. Bei mir muss der Motor 5500 Schritte machen um die ganze Strecke zurückzulegen. Mache ich 250 Bilder, so werden pro Bild 22 Schritte gemacht. Würde ich mein Video mit 30 fps abspielen, so würde ich 300 Bilder machen, was 18,33 Schritte pro Bild ergeben würde. Da der Motor natürlich keine 0,33 Schritte machen kann, würde er diese verlieren. Dies macht bei 300 Bildern schon 99 Schritte die fehlen. So würde der Schlitten nicht am Ende ankommen. Es ist also wichtig, dass Schritte/Bilder eine ganze Zahl ergibt. Hier der Code: [siehe Dateianhang --rufus] 5 Weiterentwicklung Punkte die ich noch verbessern werde: - Gehäuse der Elektronik, da es noch nicht sehr passgenau ist. - Kabel zum Motor, da man es nicht von der Elektronik-Box abnehmen kann. Hier soll eventuell ein 6 poliger Stecker zum Einsatz kommen. - Befestigung des Zahnriemen, da die Schrauben recht lose sitzen - Weitere Modi: Video (Echtzeit) 6 Kaufen Die mechanischen Bauteile (V-Slot) habe ich alle von: http://www.watterott.com Die elektronischen von Ebay. Wenn man noch etwas Geld sparen möchte kann man die auch direkt aus China bestellen, dauert dann aber natürlich deutlich länger. ——————————————————————————— Für eure Kommentare, Fragen, Anmerkungen, Kritiken bin ich gerne da Gruß Tom
:
Bearbeitet durch User
Großes Daumen hoch - schönes Projekt und guter Artikel. Besonderen Dank für die benennung der mechanischen Komponenten die auch schon in so manchen ähnlichen Projekten gezeigt wurden, aber nicht so benannt wurden das man sich weitere Info ergoogeln konnte. Danke auch für den Hinweis für die Quelle der mechanischen Bauteile die erfreulicher Weise nicht so teuer sind wie ich es befürchtet habe. Auch gut ist es das dein Projekt ohne eine Drehbank, Fräse oder ähnliches Werkzeug auskommen was leider bei vielen verwandten Projekten nicht der Fall ist und für die meisten Nachbauer oder sich Ideen Beschaffer (ja kein schönes Deutsch aber was soll's) die Sache leider sinnlos macht. Aber nicht bei dir, daher nochmals: Vielen Dank !
Jemand schrieb: > Auch gut ist es das dein Projekt ohne eine Drehbank, Fräse oder > ähnliches Werkzeug auskommen was leider bei vielen verwandten Projekten > nicht der Fall ist Vielen Dank! Genau dies war auch mein Problem, da ich keines dieser Werkzeuge habe. Aus diesem Grund habe ich gezielt versucht diesem Problem aus dem Weg zu gehen und trotzdem ein genaues Ergebnis zu erzielen.
Tom schrieb: > Für eure Kommentare, Fragen, Anmerkungen, Kritiken bin ich gerne da Preisfrage: Was steht hier im Forum über jedem Textfeld zum Posten von Beiträgen? Preisantwort: Zum Beispiel: ------------------------------------------ Wichtige Regeln - erst lesen, dann posten! Groß- und Kleinschreibung verwenden Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang ------------------------------------------
Anal Phabet schrieb: > Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang Habe ich übersehen, sorry, nächstes Mal
Hallo,
@Anal Phabet (Gast):
Preisfrage: was ist manchmal flüssiger als Wasser?
Tom schrieb:
1 | > BLYNK_WRITE(V4) //Auswahl des Intervals |
2 | > { |
3 | interval = param.asInt() * 1000; |
4 | } |
hätte hier den gleichen Zweck erfüllt. Ohne BLYNK zu kennen gehe ich davon aus, daß nur Werte ankommen können, die in der App vereinbart sind. Falls beliebige Werte gewünscht sind: oben bei den Variable:
1 | //Variablen |
2 | int intwerte[19] = {0,1000,1500,2000,3000, ... ,30000}; |
3 | ... |
4 | |
5 | BLYNK_WRITE(V4) //Auswahl des Intervals |
6 | { |
7 | interval = intwerte[param.asInt()]; |
8 | } |
Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U. schrieb: >> BLYNK_WRITE(V4) //Auswahl des Intervals >> { > interval = param.asInt() * 1000; > } So wie du es hier beschrieben hast würde es nicht gehen da er nur die Nummer vom case weiter gibt. So lange der case gleich der Sekunde ist würde das glaube ich gehen. Ich habe jedoch bei case 18 30 Sekunden. Wenn man einen Slider anstatt der Liste verwendet, dann würde es genau so gehen wie du es beschrieben hast
Michael U. schrieb: > //Variablen > int intwerte[19] = {0,1000,1500,2000,3000, ... ,30000}; > ... > > BLYNK_WRITE(V4) //Auswahl des Intervals > { > interval = intwerte[param.asInt()]; > } Ist das hier mit einem Array und dann wählt er die Werte aus dem Array aus? Gruß
Schönes Projekt - auch von mir ein dickes Lob für die tolle Anleitung etc.! Die Art und Weise, wie Du den Slider bewegst, ist übrigens echt clever - das hatte ich so bislang noch nie gesehen.
:
Bearbeitet durch User
Hallo, Tom schrieb: > Michael U. schrieb: >> //Variablen >> int intwerte[19] = {0,1000,1500,2000,3000, ... ,30000}; >> ... >> >> BLYNK_WRITE(V4) //Auswahl des Intervals >> { >> interval = intwerte[param.asInt()]; >> } > > Ist das hier mit einem Array und dann wählt er die Werte aus dem Array > aus? genau. Array mit den geünschten Werten erstellen und dann den Wert mit dem von BLYNK kommenden als Index zuweisen. Aufpassen mit der Arrayanlage, der erste Wert ist Index 0. Gruß aus Berlin Michael
Michael U. schrieb: > genau. Array mit den geünschten Werten erstellen und dann den Wert mit > dem von BLYNK kommenden als Index zuweisen. > Aufpassen mit der Arrayanlage, der erste Wert ist Index 0. Alles klar, also wär es einfach um einen versetzt. Gruß
Die Formatierung Deines Sourcecodes ist irgendwie ziemlich kaputt. Auch bindest Du keine "Libarys" ein, sondern nur Headerdateien. Eine Library ist etwas komplett anderes, auch wenn die ... Herrschaften, die die Arduino-Welt geschaffen haben, das nicht kapieren wollen. Ansonsten habe ich einen Dateianhang draus gemacht, den kann man jetzt mit der Sourcecodeansicht des Forums betrachten: https://www.mikrocontroller.net/attachment/highlight/366287
Rufus Τ. F. schrieb: > Auch bindest Du keine "Libarys" ein, sondern nur Headerdateien. Eine > Library ist etwas komplett anderes, auch wenn die ... Herrschaften, die > die Arduino-Welt geschaffen haben, das nicht kapieren wollen. Im C Sprachgebrauch vielleicht. Bei Arduino werden die Libraries teilweise über den Bibliotheksverwalter gehandelt und die IDE kümmert sich drum, dass sie mit eingebunden werden. Insofern wäre es wichtig, die benötigten Libraries aufzulisten, falls sie nicht zum Standard gehören, mit Link.
Wolfgang schrieb: > Im C Sprachgebrauch vielleicht. In C++ (das die Grundlage für Arduinos ist) ist das nicht anders. Es ist eine hochgradig unglückliche Entscheidung von den Arduino-Machern gewesen, weil sie es Programmierern, die versuchen, den Arduino-Suppenteller zu verlassen, vor unerwartete und schwer zu kommunizierende Verständnisprobleme stellt, wie man in diesem Forum (in dem auch ich schon einige Jährchen mitlese) nur zu oft feststellen kann.
Wolfgang schrieb: > Insofern wäre es wichtig, die benötigten Libraries aufzulisten, falls > sie nicht zum Standard gehören, mit Link. Ich habe einmal die StepperDriver library verwendet: https://github.com/laurb9/StepperDriver und die Blynk library: https://github.com/blynkkk/blynk-library/releases/tag/v0.5.2 Rufus Τ. F. schrieb: > Ansonsten habe ich einen Dateianhang draus gemacht, den kann man jetzt > mit der Sourcecodeansicht des Forums betrachten: Super Danke
Sieht sehr interessant aus und gar nicht mal so teuer im Gegensatz zu den ganzen fertigen Teilen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.