-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: YACCBOA - YetAnotherCameraControlerBasedOnArduino

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563

    YACCBOA - YetAnotherCameraControlerBasedOnArduino

    Anzeige

    Nabend zusammen,

    eigentlich wollte ich mit diesem Post noch etwas warten um etwas "mehr" zeigen zu können. Da ich aber grade über einen essentiellen Punkt des Projektes brüte nehme ich meinen Bedarf an Hilfe zum Anlass dieses Beitrages.


    Wie der Name schon vermuten lässt, bastel ich mir einen Controller zur Steuerung meiner DSLR-Kamera. Bin in dem Hobby Fotografie noch recht frisch aber es hat mich ziemlich gepackt. Bei diversen Ausflügen durchs Internet auf der Suche nach Empfehlungen, Techniken, Anleitungen und Ideen bin ich über die Punkte der Tropfenfotografie, High-Speed-Fotografie und Timelapse gestolpert, die beeindruckende Motive zu Tage fördern können. Und da ich von Haus aus "bewegungseffizient" bin möchte ich die Hauptarbeit von der Technik erledigen lassen. Für jeden Punkt gibt es schon separate Lösungen. Die eierlegende Wollmilchsau ist mir dabei aber noch nicht unter gekommen. Grund genug für mich, mein erstes großes Arduino Projekt in Angriff zu nehmen. So entstand die Idee zu YACCBOA!


    Was soll der Controller können?

    Alles Ich unterteile es am besten nach den (bisher) geplanten Funktionen:

    Tropfenfotografie:
    • Ansteuerung von bis zu drei Ventilen
    • Ansteuerung von bis zu drei Blitzen
    • Auslösung durch Lichtschranke, Mikrofon, Taster, Gedankenkontrolle? XD


    Hochgeschwindigkeitsfotografie:
    • Ansteuerung von unterschiedlichsten Auslösern (Servo zum Freilassen eines fallenden Objektes und ähnliches)
    • Anteuerung von bis zu drei Blitzen
    • Auslösung durch Lichtschranke, Mikrofon, Taster, Gedankenkontrolle? Schon wieder? Ist zur Tropfenfotografie doch nicht so viel anders


    Timelaps: (hier wird es spannend)
    • Auslösen der Camera in vorgegben Intervallen über eine lange (mehrere Stunden sind denkbar) Zeitspanne
    • Steuern eines Kameraschlittens zwischen den Fotos für eine Bewegung
    • Steuern eines Pan/Tilt-Kopfes zwischen den Fotos für noch mehr Bewegungen


    Hardware:
    • Die Steuerung soll zusammen mit einem Akku in einer möglichst kleinen Box untergebracht werden um autark arbeiten zu können
    • Ein 20x4-Zeichen-LCD dient zur Visualisierung der Einstellungen oder des Fortschrittes (beim Timelaps z.B.)
    • Bei der Eingabe bin ich mir noch unsicher. Einfache Taster, Drehencoder, Wii-Nunchuck oder Classic-Controller ?
    • Anschluss der Peripherie über 3,5mm Klinkenstecker(VCC,GND,Signal) für Blitze, Ventile, Auslöser und Kamera.
    • Schlitten und Pan/Tilt-Kopf werden per RJ45-Buchse und Kabel eingebunden. Vielleicht kommt hier sogar ein eigener Controller zum Einsatz.



    Was bisher funktioniert:

    Wie erwähnt wollte ich mit diesem Post noch etwas warten, weshalb die nachfolgenden Punkte wahrscheinlich bei den meisten ein müdes "Naja" entlocken wird. Aber der Vollständigkeit zur Liebe:
    • MenüLib an eigene Bedürfnisse angepasst
    • LCD über I2C eingebunden
    • Steuerung zur Zeit über Taster (Spannungsteilerprinzip um I/Os zu sparen), Drehencoder oder per Terminal vom PC aus
    • Unterprogramme zur Konfiguration der Timelapsaufnahme (ohne Schlitten und Pan/Tilt)



    Warum ich mich melde:


    Wie oben schon oft geschrieben melde ich mich hier weil ich ein paar essentielle Punkte klären möchte bevor ich später über fiese Fallstricke stolpere.

    Ich fürchte, dass die Verbindung zwischen Controller und Peripherie via 3,5mm Klinke eine nette aber keine gute Idee war. Geplant war über das Kabel die Stromversorgung und ein Signalkabel für evtl. benötigte Schaltungen (Lichtschranke, Servo, usw.) verpolungssicher bereit zu stellen. Ich habe aber beim rumspielen gemerkt, dass beim Einstecken und Entfernen der Stecker eben doch Kontakt zwischen anderen Polen herstellen. Mit etwas Disziplin (erst alles Verkabeln, dann einschalten, Verkabelungsreihenfolge beachten) könnte man Probleme zwar umschiffen. Aber ich hätte es gern Idiotensicher. Schließlich will ich damit ja später auch selbst arbeiten Die Buchsen haben zwei Öffner-Kontakte an den beiden vorderen Pins. Diese könnte ich ja per Arduino abfragen. Wird eine Buchse benutzt wird VCC erst nach einer kleinen Verzögerung aufgeschaltet. Damit ließe sich aber auch nur die Arduino-Seite prüfen. Auf Seiten der Sensoren/Aktuatoren besteht dann immer noch die Gefahr, dass ich bein Einstecken VCC/GND/Signal vermische. Welche Auswirkungen das hat lässt sich auf Grund des Noch-Nicht-Vorhanden-Sein schlecht abschätzen.
    Hat von euch jemand vielleicht eine brilliante Idee die Verkabelung mit geringem Aufwand Idiot......Arkonsicher zu machen?

    Zweiter Punkt, bei dem ich noch unsicher bin, ist die Eingabemethode. Bisher spiele ich gedanklich mit einfachen Buttons (Hoch,Runter,Links,Rechts,Enter,Back), Drehencoder (Erhöhen,Verringern,Bestätigen), Seriell (per Terminal. Soll aber nur optional sein, da ich nicht jedes Mal nen Laptop daneben stehen will) und Wii Nunchuck bzw. ClassicController. Bis auf die Wii-Controller habe ich alles getestet richtig glücklich bin ich noch mit keiner Lösung geworden. Jemand ne Idee?


    Aussicht auf Dinge die noch kommen könnten.....

    .....sollte ich mit der obrigen Liste in diesem Jahrhundert überhaupt fertig werden.


    • Steuerung über HandyApp (Welches Produkt kommt heute noch ohne App aus......Klopapier.....mehr fällt mir nicht ein)
    • PC-Interface falls man doch mal zu Hause spielt
    • to be continued
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Nach ein wenig rumspielen habe ich für mich zur Zeit einen Kompromiss bei der Bedienung gefunden. Die Navigation durch die Menüs und Funktionen werde ich über die Taster (Up,Down,Left,Right,Enter,Back) bewerkstelligen. Zum In- bzw. Dekrementieren von Variablen (Anzahl der Bilder, Dauer der Timelapse, ect.) werde ich einen Drehencoder verwenden. Drehen erhöht die Variablen in groben Schritten (+-5 bei der Anzahl der Bilder, +-10 bei der Dauer der Timelaps). Drehen und drücken des Drehencoder wird für die Feineinstellung genommen.

    Für den Slider+Pan/Tilt-Kopf wollte ich neben der Voragbe der Start-,Zwischen- und Endwerte per fester Variabel ein Live-Teach-In vorsehen. Also das System an einen bestimmten Punkt fahren/Ausrichten und diese Werte dann speichern. Diese Bewegung wird wohl ein Wii-Controller (ClassicController) übernehmen welcher an die dedizierte Steuerung für Slider+Pan/Tilt gesteckt wird.

    Die Schiene für den Slider habe ich bestellt. Da kommt das, bei anderen Projekten und für diesen Einsatzzweck vorgesehen, DryLin-System von Igus zum Einsatz. Erst mal mit einer Schlittenlänge von 1200mm. Größer werden dürfte Später kein Problem werden

    Die Bedenken mit der Verbindung via Klinkenstecker verschiebe ich erst einmal, bis der erste Sensor aufgebaut wurde. Dafür muss erst mal das Grundgerüst stehen.
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Auch wenn bisher noch niemand geantwortet hat, hoffe ich doch, dass mir jemand bei meiner nächsten Frage hilft

    Ich halte mich, gefühlt schon wieder zu lange, an einer Kleinigkeit auf. Ich möchte, während das Programm durchfahren wird, auf dem Display einen Countdown anzeigen. Verbleibende Zeit zur nächsten Auslösung, verbleibende Dauer der aktuellen Auslösung und wer weiß wo sich das noch einbauen lässt. Ich bekomme nur keine vernünftige Ausgabe hin. Ich hab schon Knoten in meinen Windungen und fürchte, dass ich mich mit einem zu komplizierten Weg nur im Kreis drehe. Ein Anstoß von außen wäre daher super

    Code:
    void countdown(unsigned int countdown_sec, unsigned int countdown_mill){
      unsigned int start_mill = millis();
      unsigned int act_sec = 0;
      unsigned int act_mill = millis();
      unsigned int disp_sec = 1;
      int disp_mill = 0;
      unsigned int check_mill = 0;
      int temp_mill = countdown_mill;
      int i = 0;
      
      Serial.println("");
      Serial.println("");
      Serial.println("");
      
      while(!((disp_mill == 0) && (disp_sec == 0)))
      {
    //   Serial.print("Schleife");
        act_mill = millis() - start_mill;
        act_sec  = (act_mill / 1000);
        act_mill = ((act_mill - act_sec * 1000)/100);
        
        if(check_mill != act_mill)
        {
          disp_mill = 9 - act_mill - countdown_mill;
          disp_sec = countdown_sec - act_sec -1;
          Serial.print(countdown_sec);
          Serial.print(",");
          Serial.print(countdown_mill);
          Serial.print("          ");
          Serial.print(act_sec);
          Serial.print(",");
          Serial.print(act_mill);
          Serial.print("          ");
          Serial.print(disp_sec);
          Serial.print(",");
          Serial.println(disp_mill);
          check_mill = act_mill;
        }
      }
      while(1)
      {}
    }
    Wie man erkennen kann möchte ich mich auf die Angabe in "Sekunde,Zehntelsekunde" beschränken. Mit einem Countdown der bei X,0 startet ist die Ausgabe fast gut, nur die erste Zehntelsekunde wird verschluckt. Aber bei ungraden Zeiten rutsche ich immer in Minus und komme auf keinen grünen Zweig. Wäre super wenn mal jemand mit dem Zaunpfahl winken könnte wo ich mich verrannt habe.
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Führe ich hier Selbstgespräche oder gibt es wenigstens interessierte, schweigende Mitleser?

    Es hilft scheinbar bei vielen Probleme diese erst ein mal zur Seite zu legen und auf den Geistesblitz zu warten. Dieser traf mich heute. Das größte Problem beim obigen Code war, dass ich es zu kompliziert angegangen bin. Etwas verschlankt und vereinfacht funktioniert nachfolgender Code zufriedenstellend

    Code:
    void countdown(unsigned int countdown_sec, unsigned int countdown_mill, unsigned int row, unsigned int col){
      unsigned int start_mill = millis();
      unsigned int check_mill = 0;
      unsigned int act_mill = millis();
      unsigned int disp_sec = countdown_sec;
      unsigned int disp_mill = countdown_mill;
      char buffer[4];
    
    
      
      Serial.println("");
      Serial.println("");
      Serial.println("");
      
      while(!((disp_mill == 0) && (disp_sec == 0)))
      {
        act_mill = (millis() - start_mill)/100;
        
        if(check_mill != act_mill)
        {
          lcd.setCursor(row,col);
          
          if(disp_sec<10)
            lcd.print(" ");
            
          sprintf(buffer, "%d,%d", disp_sec, disp_mill);
          lcd.print(buffer);
           
          if(disp_mill == 0)
          {
            disp_sec--;
            disp_mill = 9;
          }
          else
          {
            disp_mill--;
          }
          check_mill = act_mill;
        }
      }
      while(1)
      {}
    }
    Heute kamen meine Bestellungen für den Schlitten. So kann ich auch mechanisch endlich wieder ein bissche basteln. Ich berichte weiter. Ob ihr wollt oder nicht :P
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.11.2003
    Beiträge
    813
    Hallo

    Sehr interessant.
    Mir kommt es so vor als haetten wir so eine Loesung schon in unserem Hackerspace Bremen.
    Komm doch einfach mal vorbei.

    KR
    Ich bin keine Signatur, ich putz hier nur ....

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Ja, die Aparatur habe ich schon bei der MakerFair gesehen. Wohnort Bremen ist nicht mehr aktuell. Hab es nur verpeilt hier zu ändern. Aber ich muss mal gucken ob ich nicht mal wieder nen Grund finde euch im Space zu besuchen. Mal gucken wie sich das weiterentwickelt hat
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    Also die Kamerasteuerung (Hardware) habe ich ja schon mal gebaut :
    http://www.roboternetz.de/community/...blitzsteuerung

    Und einen Kameraslider hat sich Michael ja gebaut (gezeigt/gesehen auf der Makerfaire), der steuert die Kamera ja auch sogar komplett über USB.

    Wenn Du `ne Mate ausgibst, dann kannst Du uns im Space gerne ausfragen...
    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Hab deine, und auch andere, Steuerungen schon gesehen und dazu ein bisschen gelesen. Allerdings geht es mir auch um das selber bauen. Ein Professor von mir meinte immer "Kopiert ist nicht gleich kapiert"

    Fertige Produkte kaufen möchte ich eigentlich nicht, andere Projekte nachbauen auch ungern, da bei Fehlfunktionen das große Um-Hilfe-betteln los geht. Außerdem lerne ich dabei weniger

    Übers Wochenende werde ich mal die Mechanik vom Slider zusammen klöppeln.

    @Andree-HB: Ist Mittwochs noch der offene Themenabend?
    Alles ist möglich. Unmögliches dauert nur etwas länger!

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    47
    Beiträge
    2.556
    ...vielleicht einfach nur als kleine Hilfe/Gedankestützt der damalige Schaltplan:
    http://www.pixelklecks.de/pictures/TriggerControl_2.png

    Dienstags ist immer öffentlicher Themenabend, da geht es aber um Workshops
    Mittwochs ist Projektabend, aber auch da ist Jeder Besucher herzlich gerne eingeladen. Da kann man soetwas gut "eintüten".
    Danke an Alle, die uns bei der erfolgreichen 1.000€-Aktion der IngDiba unterstützt haben! | https://www.hackerspace-bremen.de | http://www.pixelklecks.de |

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2008
    Alter
    32
    Beiträge
    563
    Da nehme ich schon den Weg nach Bremen auf mich um dir ne Mate zu spendieren und du lässt dich nicht blicken :P

    Ich stehe im Moment vor dem Problem, das mein roter Faden ziemlich ausfranst. Ich meine damit, dass mir beim Programmieren immer neue Ideen kommen, ich andere Infos darstellen möchte, die Struktur des Menüs abändere und alles immer wieder in Frage stelle. Dadurch drehe ich mich ganz schön im Kreis. Ich muss mich da die Tage mal ran setzen und das Grundgesrüst zu Papier bringen.

    Zudem habe ich am Dienstag in Bremen gelernt, dass mein Zahnriemen/Motor-Gespann zu schwach sein wird, um die Kamera in steileren Winkel den Schlitten hoch zu befördern und in den Fotopositionen zu halten. Für den Prototypen wird es wohl erstmal dabei bleiben. Die Endlösung bekommt dann ne Gewindespindel spendiert
    Alles ist möglich. Unmögliches dauert nur etwas länger!

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •