Der Raspberry ist ein bisschen empfindlich


So. Heute habe ich mal wieder 2 Stunden im Keller verbracht und die Spuren meiner Ungeschicklichkeit verwischt. Dabei habe ich das Display gleich mal ins Gehäuse verlegt und einen Ausschnitt in das neu angepasste Acryl gefräst. Warum Schmilzt Acrylglas eigentlich beim Bearbeiten mit der (Laub-)Stichsäge so schnell? Beim Fräsen mit dem Proxxon KT-70 kamen auch nur dann saubere Kanten zu stande, wenn ich maximal 0,2 mm als Vorschub pro Fräsung genommen habe. Irgendwann mach ich mir doch mal eine CNC-Fräse draus.

Hier mal ein Bild:

Bild vom umgebauten Display

Bild vom umgebauten Display

Beim Testen kam ich aber auf die irre Idee die Schiene im laufenden Betrieb anzuschließen. Das endete mit einem Raspberry der nur noch als Heizung dient. Die Dinger sind irgendwie ein wenig empfindlicher als die Arduinos. Also gleich getestet, ob die SD-Karte wenigstens noch tut und einen Neuen bei Amazon bestellt. Am Dienstag gehts weiter. Falls jemand Raspberrys als Türstopper braucht, ich habe jetzt 2 Stück (Model B) die nichts mehr tun und einen (Model A) der bei zu viel Last rebootet und bei dem der Videoausgang nicht mehr tut. Dafür ist das Display jetzt einfacher zu bedienen, man kann interaktiv noch was ändern und man kommt per WLAN drauf.

Mir ist übrigens noch ein Anwendungsfall eingefallen: Stop motion. Man könnte eine Kamerafahrt (inclusive Sliderschiene) vordefinieren und dann erst beim betätigen einer Taste auf dem Bluetooth. Keyboard auf die nächste Positon fahren und ein Foto machen.

Hier mal ein kleines Script mit dem ich z.B. einen Zeitrafferschwenk mache. Die Eckdaten wie „wie lange muß ich warten nachdem ich ein Foto gemacht habe“ oder „wieviele Schritte darf ich gehen“ kommen aus einer Config-Datei. Als nächstes muss ich den Samun funktionalisieren. Sprich funktionen schreiben um einen Schritt in eine gegebene Richtung zu machen oder einfach einmal auszulösen. Bis jetzt gebe ich noch ein Signal auf einen GPIO mit dem dann die Kamera per CHDK auslöst.

import RPi.GPIO as GPIO
import time
import ConfigParser

#Einlesen der Electric
config = ConfigParser.RawConfigParser()
config.read('/home/pi/capische.conf')
Electric={}
options=config.options('Electric')
for option in options:
  try:
    Electric[option]= config.getint('Electric',option)
  except:
    print "Error in configfile"
    quit()

moveaccel= config.getint('Dolly','moveaccel')
movesteps= config.getint('Dolly','movesteps')
movedecel= config.getint('Dolly','movedecel')

timetowait=config.getint('Camera','timetowait')
timetowaithdr=config.getint('Camera','timetowaithdr')

maxsteps=1000

#Erst mal alles auf null setzen

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
for i in Electric.values():
  GPIO.setup(i,GPIO.OUT)
  GPIO.output(i,False)

#Pano-Easydriver aufwecken
GPIO.output(Electric['movesleep'],True)
GPIO.output(Electric['pansleep'],True)
GPIO.output(Electric['trigger'],False)

#nach Rechts drehen
GPIO.output(Electric['pandir'],True)

#Anfahren
for i in range (0,moveaccel,20):
   for j in range (i):
     GPIO.output(Electric['movestep'],True)
     time.sleep(0.001)
     GPIO.output(Electric['movestep'],False)
     time.sleep(0.001)
     if (j % 200 == 0):
       GPIO.output(Electric['panstep'],True)
       time.sleep(0.001)
       GPIO.output(Electric['panstep'],False)
       time.sleep(0.001)
   GPIO.output(Electric['trigger'],True)
   time.sleep(1)
   GPIO.output(Electric['trigger'],False)
   time.sleep(timetowait)

#konstant
for i in range (0,movesteps,595):
   for j in range(595):
     GPIO.output(Electric['movestep'],True)
     time.sleep(0.001)
     GPIO.output(Electric['movestep'],False)
     time.sleep(0.001)
   for k in range(3):
     GPIO.output(Electric['panstep'],True)
     time.sleep(0.001)
     GPIO.output(Electric['panstep'],False)
     time.sleep(0.001)

   GPIO.output(Electric['trigger'],True)
   time.sleep(1)
   GPIO.output(Electric['trigger'],False)
   time.sleep(timetowait)

#Abbremsen
for i in range (movedecel,0,-20):
   for j in range (i):
     GPIO.output(Electric['movestep'],True)
     time.sleep(0.001)
     GPIO.output(Electric['movestep'],False)
     time.sleep(0.001)
     if (j % 200 == 0):
       GPIO.output(Electric['panstep'],True)
       time.sleep(0.001)
       GPIO.output(Electric['panstep'],False)
       time.sleep(0.001)
   GPIO.output(Electric['trigger'],True)
   time.sleep(1)
   GPIO.output(Electric['trigger'],False)
   time.sleep(timetowait)

#Dolly-Easydriver schlafen legen
GPIO.output(Electric['movesleep'],False)
#Pano-Easydriver schlafen legen
GPIO.output(Electric['pansleep'],False)

Die Config-Datei sieht z.B. so aus:

[Electric]
pandir=4
panstep=3
pansleep=2
movestep=15
movesleep=18
movedir=14
tiltdir=27
tiltsleep=10
tiltstep=22
trigger=11

[Dolly]
moveaccel=500
movesteps=90000
movedecel=500

[Camera]
timetowait=20
timetowaithdr=12
pan.fullturn.steps=8000
tilt.fullup.steps=4000
#Ausgehent von 28mm Brennweite
pan.steps=900
tilt.steps=700
Advertisements
Veröffentlicht unter CHDK, HDRi, Panorama, Raspberry pi, Roboter, Zeitraffer | Kommentar hinterlassen

Nicht die Masse machts


So. Ein neues Jahr ein neuer Beitrag. Dafür gibt es 2 Gründe.

1. ich war mal wieder Photos machen

2. ich habe ein Interview beim Fotopodcast gegeben.

Aber eins nach dem Anderen. Gestern (12.1.) rief mich meine Frau an und meinte ich solle schnell meine Kamera schnappen und Photos machen, da gerade wieder ein Nebelbett im Neckartal liegt. Bis ich allerdings zuhause war, war der Nebel auch da. Also hieß es höher hinaus zu kommen. Gar nicht so einfach bei 50 Meter Sichtweite. Also habe ich mich nicht an meiner üblichen Stelle aufgebaut, sondern bin einen Ort weiter zum Wasserturm gefahren. Problem war, ich habe mich an der falschen Stelle aufgebaut und deswegen musste ich mittendrin umbauen. Klingt erst mal nicht so schwierig, aber ich hatte 2 Stative dabei (eines für den Capische und eines für Dokuzwecke mit der Rollei Bullet 3S HD). Als ich so dann noch einen matschigen Hügel raufsteigen wollte hat mich die Haftreibung zwischen meinen Sohlen und dem nassen Gras verlassen. Ergebnis:

Was passiert wenn man abstürzt.

Was passiert wenn man abstürzt.

Aber: Er tut noch. Es ist nur eine Acrylglasplatte ausgebrochen (ungeplante Sollbruchstelle) und nicht der Monitor. Das ist einfach zu reparieren und ich konnte doch noch ein kleines Zeitraffervideo machen. Was lernt man daraus? Nicht die Masse machts, (ich hatte aus versehen 5 Kameras dabei) sondern die Vorbereitung. Wäre ich gleich auf dem Hügel geblieben und hätte mich da auf den Sonnenuntergang vorbereitet, wäre meine Hose jetzt noch sauber, das Gehäuse vom Capische noch ganz und ich hätte vermutlich ein längeren Zeitraffer gemacht.

Die Making ofs

und hier das Video.

So. Nun das andere: Ende Dezember hat mich Stefan Litschke vom Fotopodcast.de interviewed, weil ich ihnen ein kurzes Feedback zum Thema fliegende Kameras und Gigapixel gegeben habe. Danke nochmal für das Interview und ich hoffe die Hörer vom Fotopodcast finden den Blog hier auch interressant. Man kann mir natürlich immer Fragen stellen, Kommentare Posten und auch gerne den Roboter nachbauen. Soweit ich die Fragen beantworten kann, mach ich das auch gerne.

Veröffentlicht unter CHDK, Raspberry pi, Zeitraffer | Kommentar hinterlassen

56 MPixel Bild geschafft. Als nächstes kommt Zeitraffer


Heute früh gab es mal wieder einen super schönen Sonnenaufgang. Leider war ich etwas zu spät dran, und der Himmel war schon nicht mehr so rot. Außerdem hatte ich ein wenig Probleme mit den ziemlich schnell ziehenden Wolken. Trotzdem habe ich es geschafft 3 Reihen mit 4 Spalten a 3 HDR Bilder zu machen und dabei habe ich noch nicht mal vergessen die Kamera auf M Modus und Manuellen Fokus zu stellen. Das HDR-Bracketing habe ich auf 3 Blendenstufen + und  – gestellt. Herausgekommen ist dieses 56 MPixel Bild:

56 MPixel Bild aufgenommen mit CaPiSche und einer Canon SX200 HDR Tonemapped

56 MPixel Bild aufgenommen mit CaPiSche und einer Canon SX200 HDR Tonemapped

Im Orginal hat das Bild die Kantenlänge 8552×6672 Pixel mit 16 Bit Farbtiefe. Gar nicht schlecht für eine fast schon kaputte Canon SX200. (Ich hatte ja mal einen Absturz mit meinem Quadrocopter, bei dem die Kamera aus 3-4 Meter auf Beton aufgeschlagen ist. Seitdem fehlt der Frontlinsenschutz. Deswegen habe ich mit Sugru eine Art Streulichtblende drangeknetet)

Als nächstes mache ich mal einen Zeitraffer. Das Python-Script steht schon bereit. Rampen zum anfahren und abbremsen des Drehens sind auch schon eingebaut. Fehlt nur noch das entsprechende Motiv.

Veröffentlicht unter CHDK, HDRi, Panorama, Raspberry pi | Kommentar hinterlassen

Das erste mal mit dem Capische im Feld


Mittwoch war es mal wieder Zeit. Nebel im Neckartal und ich hatte morgens nochmal Zeit. Also habe  ich mein neues Panorama-Script ausprobiert. Leider habe ich mal wieder nicht daran gedacht auf Modus M zu schalten. Deswegen habe ich zwar ganz viele Bilder von denen das jeweils 1. in einer Reihe richtig belichtet, das 2. unter- und das 3. überbelichtet ist. Allerdings unterscheidet sich die gesamtbelichtung doch um einiges wenn man einmal in die Sonne fotografiert und einmal auf den Boden. Eigentlich sollte ein 180° auf 90° Panorama herauskommen. Also 3 Reihen mit 4 Spalten. Problem ist aber daß die Photos vom Boden und vom Himmel zwar wunderbar von den Überlappungen aneinander stitchen lassen, aber die Belichtung nur in der jeweiligen Reihe ungefähr passt. Deswegen kann ich euch nur ein HDR tonemapped Panorama der 4 horizontalen Bilder geben, da die einigermaßen gleich belichtet wurden.

Erstes Panorama mit dem neuen Capische

Erstes Panorama mit dem neuen Capische

Beim nächsten mal versuche ich eben an den Manuellen Modus zu denken und stelle vielleicht auch gleich 5 Bilder im HDR ein. Wären 2 zusätzlichen Reihen noch dabei gewesen wäre kein 20 Megapixel Bild, sondern ein 56 Megapixel Bild draus geworden. Nicht schlecht für eine Canon SX 200 mit 12,1 Megapixel.

Was ich auch noch geschafft habe ist vom Web-server aus das Panorama-Python-Script zu starten.

Todo ist noch dem Capische beizubringen, wenn kein Wlan verfügbar ist ein eigenes aufzumachen. Bisherige Anleitungen führten nicht zum Erfolg aber jetzt probiere ich es mal mit hostapd.

Veröffentlicht unter CHDK, HDRi, Panorama, Raspberry pi | Kommentar hinterlassen

fork to english-2. Blog auf Englisch


—————————————-english version—————————

since this post is dedicated to all my english followers the german part will be added below.

Today i decided add a english version of this blog, to switch from wordpress to blogger and to use the name CaPiSche in the Blog-Name rather than use the arduinophotobot. The new english blog will be available at www.capische.de and the german one will continue at arduinophotobot.wordpress.com . This is kind of awkward to use the de-domain for the german part and vice versa, but it grew that way. Maybe i will change this in the future.  I will try to update posts on both sites and in both languages.

—————————————Deutsche Version———————————–

Heute habe ich beschlossen eine englische Version des Blogs für die Internationalen Leser des Blogs einzurichten. Dabei habe ich auch gleich den Namen CaPiSche in dem Blog verwendet aber auch gleich von wordpress auf Blogger umgestellt. Der englische Blog wird ab sofort auf www.capische.de verfügbar sein und die deutsche Version auf arduinophotobot.wordpress.com. Das ist zwar ein wenig komisch, eine englische Seite auf .de zu stellen und eine .com auf deutsch, aber vieleicht ändere ich das auch noch. Sollte es Neuigkeiten geben versuche ich diese auf beiden Seiten und Sprachen zu aktualisieren.

 

Veröffentlicht unter Arduino, Raspberry pi | Kommentar hinterlassen

Erster Slider-Test


So. Heute habe ich mal einen ersten Test mit Ramping und der Sliderschiene mit meinem Capische gefahren. Als „Modell“ standen mir ein paar beleuchtete Glaskugel zur Verfügung.


Das Script mit dem ich das gemacht habe ist noch statisch (feste Schrittzahl, feste Deltas zwischen den Aufnahmen). Ich bin noch am hirnen wie ich die interaktive Bildkomposition der Anfangs und Endpunke baue.
Und hier noch das Making of.

Ich bin also kurz davor auf dem Cannstatter Wasen zu Timelapsen.

 

Veröffentlicht unter Raspberry pi, Roboter, Zeitraffer | Kommentar hinterlassen

Erste Gehversuche


So. Jetzt ist endlich der Capische in der alten Wohnung des Arduinos eingezogen. Stromversorgung ist angeschlossen, Externe Ladebuchse ist angeschlossen, Schrittmotoren laufen und die ersten Programme sind am Start. Kleine Python Scripte, die um jeweils 500 Schritte nach links, rechts, oben und unten drehen. Alle Scripte laufen mit 1000 Schritten pro Sekunde. Leider ist die Limitierung von maximal 1000 Schritten pro Sekunde nicht beim Arduino sondern anscheinend mechanisch oder am Easydriver zu suchen. Für den Miniphotobot ist das nicht so schlimm, da reichen 1000 Schritte/Sekunde aber der Schlitten ist ein wenig langsam. Vielleicht muss ich da noch was mechanisch anders machen. Im Moment wird der Schlitten ja von einem Steppermotor angetrieben, der dann über eine 40:1 Schneckenraduntersetzung an einem Zahnriemen entlang läuft.  Mal sehen. Vielleicht reicht ja auch 20:1 Untersetzung oder ich fange mit Trapezspindeln oder nur Gewindestangen an.

Was der Test aber heute gebracht hat und weswegen ich mir die Mühe mache einen Artikel zu schreiben ist folgendes:

Ich habe die 4 Scripte kombiniert und jeweils 500 Schritte nach oben, links, unten und rechts gemacht. Das Ergebnis habe ich mit einer Rollei Bullet 3S gemessen. Die Kamera hat einen Laser eingebaut und damit habe ich die Abweichung nach mehreren Durchläufen mit einem Punkt auf der Wand gemessen. Ergebnis: Selbst nach 10 mal im Kreis drehen kam der Laser immer noch am selben Punkt an wie beim ersten mal. Die Mechanik ist also o.k. und die Schrittmotoren scheinen keine Schritte zu übersehen.

Die nächsten Schritte sind:

  • ich sollte mich mit python threading beschäftigen
  • ein Flußdiagramm erstellen im die Abläufe im Programm abzugleichen
  • mich in Ramping (Anfahren und Abbremsen) mit Python vertraut machen
  • mit Fritzing ein Diagramm von der aktuellen Stand erstellen und hier einstellen

    Schaltplan Capische

    Schaltplan Capische

und das alles noch vor dem Volksfest. Vielleicht starte ich am Volksfest auch erst mal mit einem einfacheren und starren Programm.  Ein bisschen kann man sich ja festlegen.

Ach ja und „one last Thing“ aber im negativem Sinne: Ich hatte ja geschrieben, daß ich noch einen nano Wlan-Stick gekauft hatte, weil der aktuelle zu groß war. Pustekuchen. Der Stick zieht so viel Strom, daß ich ihn nicht an einem HUB benutzen kann. Der Raspberry resettet sogar wenn man den Wlan-Stick abzieht und Nutzen kann man ihn auch nicht. Deswegen habe ich den alten Wlan-Stick genommen und mit einer USB-Verlängerung im die Ecke an die Decke geklebt. Kleiner Tipp:  Uhu Patafix ist dafür echt genial. Wird im Gegensatz zu Sugru nicht fest und man kann es wiederverwenden. Damit mache ich lose Kabel und Platinen ohne Montageloch oder Wlan-Sticks fest. Wenn man sich sicher ist, daß das Zeug da bleiben soll wo es gerade ist kann man immer noch Sugru nehmen. Noch ein Wort zum Stromverbrauch: Wenn die Schrittmotoren für Pan und Tilt laufen (also enabled sind und nicht schlafen) braucht der Capische 1,6 A und die Schrittmotoren werden ziemlich warm. Damit wären die Akkus auch ziemlich schnell leer, aber durch die Sleep bzw. Enable Pins mit denen man die Easydriver ausschaltet bzw. nur die Spulen in den Motoren bekommt man ihn dann auf 200-300 mA.

Hier noch das Bild von gestern Abend. Auf dem Deckel liegt die Bluetooth-Tastatur von CSL. Der Spalt zwischen Deckel und Front ist normalerweise nicht da, wenn man den Deckel mit der Sicherungsschraube von der Seite festschraubt.

Capische fertig Montiert und von AA-Akkus gebootet.

Capische fertig Montiert und von AA-Akkus gebootet.

Veröffentlicht unter HDRi, Panorama, Raspberry pi, Roboter, Zeitraffer | Kommentar hinterlassen