Und nochmal von vorn


Also: Heute habe ich bestellt:

  • ein 4×20 LCD
  • 2 D-Sub 9 Pol Stecker
  • 2 D-Sub 9 Pol Buchsen
  • 2 Spannungsregler und entsprechende Potis, Widerstände und Kondensatoren
  • Lochrasterplatinen
  • und 6 Pol Kabel.

Da ich auf meinem bisherigen 2×16 Char LCD kaum was darstellen konnte musste nun das 4x20er LCD her. Also muss ich wohl die komplette Menüführung und LCD-steuerung umbauen. Bisher hatte ich ja ein LCD mit I²C Anschluß, weil ich ja keine Digital IO-Pins mehr hatte. Jetzt kommt eines mit 8 Datenpins und dann auch noch verschiedene Steuerpins.

Die D-Sub Stecker und Buchsen verwende ich für den Anschluß von den Easydrivern, die ja ausserhalb meines Gehäuses platziert werden. Ans Gehäuse kommt natürlich eine Buchse und ein Stecker, damit man die Schrittmotoren nicht vertauscht. Der Schrittmotor des Dollyschlitten ist schon mit einem DIN Rundstecker verkabelt. Um das Ganze dann noch schön zu verdrahten, habe ich die Lochrasterplatinen gekauft.

In einer stillen Minute ist mir dann noch eine Idee gekommen. Bis jetzt habe ich das Problem diagonale Schwenks über Pythagoras und Diskretion ziemlich aufwendig gelöst. Außerdem war die Lösung nicht 100%ig genau. Es konnte zu Rundungsfehlern kommen.Und negative Vorzeichen bei den Schritten ist auch ungünstig. Da ich mich auch mit der Steuerung von CNC Fräsern beschäftige (theoretisch zumindest) kam mir die Idee nicht die Schritte zu diskretisieren, sondern die Geschwindigkeit entsprechend der Anzahl der Schritte zu wählen. Da in der Accelstepper Library erwähnt wird, dass man nicht mehr als 1000 Schritte pro Sekunde machen soll, werde ich den maximalen Weg der Schrittmotoren ermitteln, diesem Schrittmotor den Speed 1000 geben und die anderen mit der map() Funktion entsprechend anpassen. Das wird zwar auch Rundungsfehler geben, aber ich hoffe, dass diese sich weniger bemerkbar machen. Da ich dann aber nicht mehr mit einer Anzahl Schritten arbeiten kann, wird das Ganze auf „non Blocking“ umgestellt und nach einer gewissen Zeit angehalten. Das hat noch einen Vorteil: Im Moment  kann die Accelstepper library nur eine positive und negative Beschleunigung zwischen einem Anfangs und Endpunkt. Bisher konnte ich diese Beschleunigung nicht nutzen, da ich ja immer zwischen den Bildern Start und Endpunkt definiert habe. Aber wenn ich jetzt den Wert der maximalen Geschwindigkeit der Schrittmotoren anpassen kann, könnte ich sogar im Zeitraffer eine S-Kurve fahren.

Ich brauche also 2 Zeiten , die ich im Menü abfragen muss: Max. Belichtung und Zeit zwischen 2 Bildern. Da die maximale Bewegung zwischen 2 Bildern von der Brennweite abhängt und die Verarbeitungszeit der Kamera (bei Langzeitbelichtungen durchaus ein Faktor) noch eine Unbekannte sind  gibts hier noch ein bisschen Hirnschmalz zu wälzen.

Ach ja, was ich vergaß im letzten Artikel zu erwähnen. Tom Lowe hat bei 500px ein Bild eines seiner Zeitraffervideos mit EXIF Informationen hochgeladen: Camera: 1DMk4, Linse: f=1.2, ISO: 5000, Belichtung: 12 Sek.  Wenn ich das mal auf meine Canon 400d Hochrechne, die man noch bis ISO 400 im Rauschen vertreten kann und dann noch mein Weitwinkel, das eine Offenblende von f=4 hat, komme ich auf mehrere 10 Minuten. Damit  sieht man von der Milchstraße nur noch eine verschwommene Wolke. Equipment ist halt doch manchmal Wichtig.

Übrigens werde ich die beiden Spannungsregler dafür benutzen die Kameras vom Arduinophotobot aus mit Strom zu versorgen. Im Moment habe ich einen Akkupack mit 10 x 1,2  V NiMH Akkus vom Aldi drin, aber die Ladebuchse ist schon eingebaut und damit könnte man entweder mit einem 12 V Netzteil fahren oder eine Autobatterie anschließen. Ich habe 2 Spannungsregler gekauft, weil ich 1. schon mal einen verbrutzelt und mir damit einen Arduino zerschossen habe und 2. weil ich 2 Cameras habe, die unterschiedliche Spannung brauchen. Ich gehe zwar nicht davon aus, dass die mitgelieferten Netzteile besonders geregelt sind (damit funktionieren die Cameras ja) , aber sicher ist sicher.

Letzter Gedanke: Je komplexer das ganze Programmierprojekt wird (im Moment 1234 Zeilen mit viel unnützem und doppeltem Code) wünsche ich mir eine Makefile-Umgebung in meine arduino IDE rein. Die Programmierumgebung ist schön und gut, aber mit VI, einer schönen Verzeichnisstruktur, includes, headers und so wäre die Arduinowelt doch viel schöner.

 

Advertisements

Über arduphototobot

Ich wollte einfach nur meine Erlebnisse dokumentieren, die ich beim Aufbau eines Automatischen Photo-Robotes mit einem Arduino gehabt habe.
Dieser Beitrag wurde unter Arduino, Roboter, Zeitraffer veröffentlicht. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu Und nochmal von vorn

  1. Gerik schreibt:

    Echt klasse, das wird immer professioneller. Willst du nicht mittelfristig weg vom Arduino? An potenterer Hardware wie ARM, MIPS oder 68k kannst du dann auch grafikfähige Displays anschließen (es gibt nette Projekte, die günstige Photorahmen benutzen…). Vor allem kannst du da dann ein richtiges OS drauf packen. Wenn das Ganze dann an einer Autobatterie hängt, sollte auch der höhere Stromverbrauch nicht stören 😉

    • arduphototobot schreibt:

      Hi Gerik,

      Graphikdisplays gibts auch für den arduino (Sorry mit Touch). Ich fand das beaglebone Board sehr cool. Ist halt ein Linux, aber das coolste am arduino sind die vorhandenen Shields, die bereits vorhandenen Libraries und die anderen Entwickler die viel code online stellen. Wenn mein Code mal herzeigbar ist kommt der auch auf github.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s