Go Down

Topic: Vorstellung (Read 27752 times) previous topic - next topic

LC_Data

Vielleicht hilft eine kleine Optik vor dem Maussensor um den Laser etwas enger zu focussieren.... wenn Du den Versuchsaufbau noch hast... versuchs mal.. und ich denke Du solltest vielleicht auch versuchen die Intensität des Lasers zu dämpfen.
Hintergrund :
der Sensor reagiert in der Regel auf das reflektierte Licht einer LED und Du fährst den Sensor mit der energiereichen Laserstrahlung wahrscheinlich schlagartig in die Sättigung und hast vielleicht deshalb nicht das gewünschte Ergebnis....

LC_Data

neubi

#31
Oct 03, 2009, 01:10 am Last Edit: Oct 03, 2009, 10:20 am by neubi Reason: 1
danke für den Tipp. Ich versuche es morgen mal mit einer anderen Lichtquelle.

Ich habe zwei Videos in Youtube eingestellt, auf denen man den Aufbau und die Funktion (allerdings bewegt sich das Teil sehr langsam) sieht:

Das Sensor Array:
http:// http://www.youtube.com/watch?v=MgI0BC_pm90

und der Rest:

http://www.youtube.com/watch?v=txgbcsqxQ_A

Gruß Jürgen

neubi

#32
Oct 03, 2009, 04:34 pm Last Edit: Oct 03, 2009, 04:42 pm by neubi Reason: 1
Hallo,

jetzt habe ich den Maus-Sensor ohne Optik nochmal an den Arduino angeschlossen und die Software von http://www.bidouille.org/hack/mousecam/index.php heruntergeladen.  Wenn ich mit einer Schreibtischlampe einfach auf den Sensor leuchte, erscheint das folgende Bild:



Wenn ich die Schreibtischlampe bewege, sind die Positionsänderungen auf dem Sensor gut zu sehen. Mit einer vorgeschalteten Linse wird der Lichtpunkt im Fokus schön klein und hell, d.h. damit sollte sich der Chip auch an einem Teleskop bzw. Leitrohr betreiben lassen. :)

Die Positionsdaten der Maus im rechten Fenster ändern sich jedoch nicht. D.h. wenn ich das richtig sehe, kann ich, wenn ich den Sensor an ein Teleskop hänge,  mit der Änderung der x- und y-Koordinaten nichts anfangen und müsste "nur" die Bewegung des Sternbildes auf dem Sensor verfolgen, und die Steuerung veranlassen, den Stern wieder in die Mitte des Sensorfeldes zu holen.

Nun meine Frage:

Wie kann ich per Arduino feststellen, wo auf dem Chip(Pixel (x,y)) sich jeweils das Intensitätsmaximum (also der hellste Fleck) befindet?

Gruß Jürgen

P.S.

Hallo LC_Data,

Quote
der Sensor reagiert in der Regel auf das reflektierte Licht einer LED und Du fährst den Sensor mit der energiereichen Laserstrahlung wahrscheinlich schlagartig in die Sättigung und hast vielleicht deshalb nicht das gewünschte Ergebnis....

damit hattest Du Recht. Der Sensor ist mit einem Laser völlig überfordert! Hätte ich eigentlich wissen müssen... :-[


bohne

Ich baue mir hier nächste Woche das selbe auf, dann helfe ich bei der Software. Optische Maus liegt schon bereit. Vielleicht kannst Du was zu der Optik sagen, welche Linse du woher genommen hast...

Ich denke auch, dass die Wellenlänge des Lichts entscheidend ist. Die Mäuse haben ja meist rote LEDs oder sowas. Deswegen vermute ich, dass die Software auch nur auf diese Wellenlänge reagiert und alles andere ignoriert. Leuchte doch mal mit der LED, die in der Maus eingebaut war auf den Sensor...

Aus den paar Pixeln eine Bewegung zu extrahieren bei dem starken Kontrastunterschied, den du in dem screenshot zeigt sollte absolut kein Problem sein.

Am Ende ist das mit dem Maussensor gar keine so abwägige Idee und eine neue Maus kostet ja maximal 10 Euro falls das mal jemand nachbauen will...
http://www.dorkbot.de
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254
http://www.luminet.cc

neubi

#34
Oct 04, 2009, 10:16 pm Last Edit: Oct 04, 2009, 10:18 pm by neubi Reason: 1
Hallo bohne,

ich habe jetzt den Mauschip in die Halterung eines alten Diaprojektors eingesetzt.  Das Objektiv ist ein Projar ( von ISCO / Göttingen) 1:2,8 mit 100 mm Brennweite. Das kann man sehr schön auf den Sensor fokussieren.



Hier sieht man den Maus-Chip durchs Objektiv (mit etwas Staub auf
der Linse)



Quote
Deswegen vermute ich, dass die Software auch nur auf diese Wellenlänge reagiert und alles andere ignoriert. Leuchte doch mal mit der LED, die in der Maus eingebaut war auf den Sensor...


Lt. Datenblatt liegt die maximale Empfindlichkeit des Sensors bei 600 nm, also im roten Bereich des Spektrums.  

Wenn ich eine grüne LED vor die Linse halte, zeigt die Mouse cam Software gar nichts an. Das Feld bleibt schwarz. Ich habe per Hyperterminal die Daten des Sensors als Text ausgelesen: Der Sensor reagiert auch auf schwächere Lichtquellen, man sieht es nur nicht.   Anbei ein Auszug aus dem Capture-File. Während der Aufzeichnung habe ich die grüne LED ca. 40 cm vor dem Objektiv hin- und herbewegt.

Code: [Select]
Found productId 2, rev. 14 OK.
DELTA:0 0
FRAME:03010000000000000001000000010000010101010101010101010201010101000001000000000000000000010000000000000000000000000000000000000000000000000000000000000000010000000000000002000000010000000000000200000000000000000000000000000000000000000100000000010000010100000000000000000000000000000000000000000000000002000000000000000101000000000000010000000000000000010000000001010001000000000000000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000010000000000000100000000
DELTA:0 0
FRAME:03000000000000010100000100010000010001010101000101010101010102000001000000000001000000000000000000000000000000000000000000000000010000000000000000000000000000000000010000000000000000000000000000000000000100000000000001000000000000010000000000000100000000000000000000000000000100000000000000000100000000000000010000000000000000000000000000000000000000000000000000000000000100000000000000010001000000000001000100000000000000000000000000000002000000000000000000000000000000010100000000000000000000000000000000000000
DELTA:0 0
FRAME:03000000000000010100000100010000010001010101000101010101010001010000000000000000000100000100000000000100000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000100000000000000000000000000000001000000000000000000000000000000000000000000000002000000000100000100000000000000000000000000000001000000000000000002000000000100000100000001000000000100000000000000020000000000000002000000010000000100000000000000000000000000000000000000000000000000000000000000000000
DELTA:0 0
FRAME:03000000000000010100000000010000010201010101000101010001010101010000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000100000100000001010000010000000000000000000000000000000201000000000000000000000000000000010000000000000001000000000000000000000000000000000100020000000001010100000000000000000000000000000000000000000100000000000001000000010000000000010000000100000000000000000000000000000100000000010001
DELTA:0 0
FRAME:03010000010001010101010101010001010001010101020202020302020102020000000102020202020202020202020100000002030304020303030303030402000001030302020303030303030303020000010303030303030303030303030100000103030303030303030303030202000001030303030403030303030301010000010203030303030303030301010100000102030303030303030302010000000100010203030303030201010000000000000001010202020101010000000000000000000101000100000000000000000100000000000000000100000000000000000000000000030100010000000000000000000000000000000100000000
DELTA:0 0
FRAME:03020103030303020100000100010000030304040404040302020101010101010304030303030303020101000001000003040303030303030303010101000000030303020303030303030200000000000303050303030303030202010101000003030303030303030303030100000000030303040303030303030302010000000303030303030303030303030000000003030404030403030304030202000000030203030303030303030301010000000303030303040303030303010001000002030303030302030303020200010000010102020303030203030101000100000000010202030302030201010000010000000001010101010101000000010100
DELTA:0 0
FRAME:03000000000001010101000000010001010100010101010101010201010101010001000000000101020303030303020101000101000201020303030304030303000101000000010203030302020303030000010101010102030303030203020200000101010100010202020202020201000101010000010101010101010101010000000101000101010101010101000000000000010102010101010101010101000000000101010100010101010102010100000001000001010101010000010000000002000000010001000101010001000000000001000101000000010100000002000000000000000001000000000000000000000000000001000101000000
usw...


Leider funktioniert mein Steppershield nicht mehr, sonst hätte ich den Sensor heute abend am Mond und am Jupiter ausprobiert. Der Shield produziert an den Stepper-Ausgängen nur noch Spannungen von 0,3 bis 0,5 Volt. Vielleicht hat jemand einen Tipp für mich?

Gruß Jürgen


bohne

Ah, so einfach machst du das also! Ich habe noch ein Objektiv von einem alten Super8 Projektor, den ich umgebaut habe hier, das hat 1:2.8/85 und vielleicht habe ich damit ja Glück.

Leider habe ich die falsche Maus auseinander gebaut und muss deswegen noch was warten. Die von mir verwendete Maus war ein USB Modell, das einen PAN3504 Sensor hat. Den kann man mit der Software nicht verwenden, da er nur noch USB kann, keine seriellen Daten mehr!

Welches Shield meinst du konkret? Dieses hier?:
http://arduino.cc/en/Main/ArduinoMotorShield

oder dieses: http://www.ladyada.net/make/mshield/ ?

beide verwenden einen L293 und falls Du mal die 12V (oder womit betreibst du die Motoren?) an die falsche Klemme gemacht hast gibt der Chip gerne den Geist auf und meist knall noch ein Pin vom Arduino mit durch. Vielleicht musst du also einen neuen L293 auflöten und dann im schlimmsten Fall noch den atmega vom Arduino austauschen bzw. einfach einen anderen Pin nutzen... vielleicht ist es aber auch nicht ganz so wild und du hast einfach irgendwo ein Kabel (Masse vielleicht??) lose?

http://www.dorkbot.de
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254
http://www.luminet.cc

neubi

Quote
Ich habe noch ein Objektiv von einem alten Super8 Projektor, den ich umgebaut habe hier, das hat 1:2.8/85 und vielleicht habe ich damit ja Glück.


Kannst Du den Fokus verstellen? Du verlierst eine Menge Licht, wenn der Stern nicht exakt fokussiert ist.

Quote
Welches Shield meinst du konkret?


Es ist der hier: [link]http://www.ladyada.net/make/mshield/[/link]

ich habe gestern versucht, testweise einen taster in die schaltung zu integrieren, damit ich die stepper manuell positionieren kann.  dabei habe auf den steppershield noch eine buchse für pin 2 aufgelötet (der wird lt. FAQ vom steppershield nicht verwendet) und eine schaltung angebracht. das hat ganz gut funktioniert. auf einmal gings dann nicht mehr, trotz überprüfter anschlüsse. heute abend versuche ich es nochmal. wenn wieder nicht geht, muß ich halt Ersatz besorgen.

Gruß Jürgen

neubi

Hallo,

kann man den ADNS-2051 eigentlich von der Platine entfernen, wenn man die 5 Pins  lt. http://www.bidouille.org/hack/mousecam/index.php? an den Arduino anschließt? Die rote LED brauche ich nicht.

neubi

#38
Oct 17, 2009, 11:45 pm Last Edit: Oct 17, 2009, 11:52 pm by neubi Reason: 1
Hallo,

mittlerweile kann ich den ADNS-2051 per Arduino auslesen, den Abstand eines künstlichen Sterns von der optischen Achse (=Mitte des Chips) feststellen und die beiden "Teleskop"-Achsen per Pushbuttons manuell steuern. (Die automatische Achsen-Korrektur muss noch eingebaut werden, sollte aber eigentlich kein Problem mehr sein) Das alles habe ich in einem Sketch zusammengepackt. Der Sketch liest die Daten vom Chip so lange korrekt aus, bis ich den Motorshield, an dem die beiden Stepper hängen, mit Strom aus einem Netzteil versorge. Dann spuckt der ADNS-Chip nur noch blödsinnige Ergebnisse aus. (Das Netzteil liefert 9 V mit 500 mA.)

Hat jemand eine Idee?

Gruß Jürgen







LC_Data

Steht Dir ein Ozilloskop zur Verfügung ??
Wenn ja prüf mal die 9V Versorgung, könnte ja sein das die recht "unsauber" ist, eine weitere Fehlerquelle könnte ein Masse-Problem sein (Brummschleife).
Veilleicht auch noch mal ein paar "fette" Kapazitäten > 4700uF und dazu noch 100nF von Plus nach Masse.
Falls Arduino und Motoren unterschiedliche Speisungen haben, sind dann die Massen getrannt oder vereint ??


Ob Du mit den 500mA klar kommst hängt von Deinen Spulenwiderständen der Steppermotoren ab und die können schon recht gierig sein.

LC_Data

neubi

Quote
Falls Arduino und Motoren unterschiedliche Speisungen haben, sind dann die Massen getrannt oder vereint ??


Leider weiß ich nicht, wie das der Motorshield in Verbindung mit dem Arduino macht. Allerdings ist das Problem gelöst. Ich habe eine Verzögerung von einigen Millisekunden zwischen dem Ansteuern der Schrittmotoren und dem Auslesen des Maus-Sensors in denn Sketch eingebaut, damit funktioniert es jetzt einwandfrei.

bohne

wow, es sieht ja schon ganz gut aus!

Warum die Verzögerung nötig ist verstehe ich gerade nicht, aber solange es so funktioniert is ja alles in Ordnung.

Du hast da mittlerweile einen ganz schönen Kabelsalat, da sind natürlich verschiedenste Fehlerquellen möglich! Aber wenn eine Verzögerung das Problem gelöst hat war es vielleicht doch eher ein Softwarefehler...

Auf jeden Fall beeindruckend dieser Aufbau!
http://www.dorkbot.de
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254
http://www.luminet.cc

neubi

#42
Oct 24, 2009, 01:08 am Last Edit: Oct 24, 2009, 01:14 am by neubi Reason: 1
Hallo,

jetzt bin ich wieder ein Stückchen weiter gekommen: Am Arduino (+ Adafruit Motorshield) sind mittlerweile 4 Pushbuttons, der Maus-Sensor ADNS-2051 und 2 Steppermoren angeschlossen. Alle analogen und digitalen Pins sind belegt, wobei die analogen Pins digital verwendet werden. Dazu musste ich am Motorshield noch einige Buchsen auflöten. Die 4 Pushbuttons dienen zur manuellen Steuerung bzw. Grobpositionierung der "Teleskop"-achsen.  




Der Maussensor wird im 2-Sekunden-Takt ausgelesen. Verkürzt man die Takt-Zeit, spuckt er nur Blödsinn aus.

Die Positionierung anhand der Sensor-Daten funktioniert und der Arduino zentriert den Stern ungefähr wieder in der Bildmitte, wenn er verschoben wurde.

@ Bohne: Das mit dem Maus-Sensor ist eine Super-Idee!  

Ich habe mir mit VB 2005 Express ein kleines Programm zusammengebastelt, mit dem ich die Sensordaten per serieller Schnittstelle vom Arduino visualisieren und die notwendigen Korrekturen berechnen kann. Das diente als Vorlage für die Umsetzung im Arduino-Sketch. (Sind nur ein paar Zeilen Code) Auf dem Screenshot sieht man im Sensorfeld einen künstlichen Stern (Alufolie eines Joghurtbechers mit einem winzigen Loch in der Mitte vor einer Halogenlampe), der in einer Entfernung von ca. 1.5m angebracht ist.

Die ICs auf dem Motorshield werden recht warm, weil die Motoren dauernd in Bewegung sind, daher kühle ich den Shield mit einem PC-Lüfter.



Als nächstes bringe ich zusätzlich eine Astro-Videokamera an und versuche, einen echten, hellen Stern oder den Planeten Jupiter (der ist ja z.Zt. sehr gut zu sehen) zu tracken.


Gruß Jürgen

bohne

Das ist ja schon wirklich gut geworden!
Welche Maus hattest Du konkret auseinander gebaut? Ich finde kein Modell mit einem ADNS-2051 in meiner Sammlung.

Würde es Sinn machen, wenn man ein Shield hätte, das den ADNS-2051 und ein paar Treiber für die Motoren beheimaten würde?
Ich finde Deinen Prototypen wirklich sehr gut, aber das sollte man noch komfortabler und robuster aufbauen, schließlich soll es am Ende ja mit dem Telesktop auf Reise gehen, richtig? Ich würde gerne ein Arduino Shield bauen, wo man nur noch die Motoren und den LWL dranklemmen muss und fertig ist...
http://www.dorkbot.de
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236434254
http://www.luminet.cc

neubi

#44
Oct 25, 2009, 09:00 pm Last Edit: Oct 25, 2009, 10:13 pm by neubi Reason: 1
Quote
Welche Maus hattest Du konkret auseinander gebaut? Ich finde kein Modell mit einem ADNS-2051 in meiner Sammlung.


Es war eine alte Logitec Maus. Welche genau, weiß ich nicht mehr.

Quote
Würde es Sinn machen, wenn man ein Shield hätte, das den ADNS-2051 und ein paar Treiber für die Motoren beheimaten würde?


Ich denke schon. Das wäre dann ein "Guidoino" oder so ähnlich. ;D

Quote
Ich finde Deinen Prototypen wirklich sehr gut, aber das sollte man noch komfortabler und robuster aufbauen, schließlich soll es am Ende ja mit dem Telesktop auf Reise gehen, richtig? Ich würde gerne ein Arduino Shield bauen, wo man nur noch die Motoren und den LWL dranklemmen muss und fertig ist...


Einen LWL braucht's gar nicht. Es würde schon genügen, den "Guidoino" an einer Standard-Okularhülse zu befestigen und das ganze mit einem kleinen Leitrohr (Refraktor oder Newton) zu betreiben. Die Kernfrage ist, wie lichtempfindlich der Sensor ist und somit, welche Sterne am Himmel als Leitsterne in Frage kommen. Das hängt natürlich auch vom Lichtsammelvermögen der verwendeten Optik ab. Zu groß darf diese nicht sein, sonst wird es zu teuer und du kannst dir gleich einen richtigen Autoguider kaufen.  Ich habe einen kleinen Flohmarkt-Refraktor (D=60 mm mit F=700mm), mit dem ich das Setup demächst testen will.  

Vielleicht kann man den Sensor zusätzlich empfindlicher machen, indem man ihn mit einem Peltier-Element herunterkühlt, um das thermische Rauschen zu minimieren (Astrokameras machen sowas ja auch) und dann die Pixelwerte von 10 oder mehr Frames al la Giotto bzw. Registax per Arduino aufaddieren oder mitteln lässt.  Das Peltier-Element habe ich schon besorgt...  ;)

Zahlreiche Teleskope haben Standard-Schnittstellen, mit denen man sie ansteuern kann. Es wäre zu überlegen, inwieweit du diese Schnittstellen mit einbeziehen möchtest.  Die Jungs hier (http://www.ascom-standards.org/index.htm) arbeiten wohl an so etwas. Hier gibt's auch einen Beitrag:
(http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1252536887/8#8), allerdings für ein anderes Projekt.

Jetzt habe ich übrigens den Grund gefunden, warum der ADNS-2051 ohne Zeitverzögerung nur Blödsinn liefert: Ich habe das Massekabel des Chips abgeklemmt und jetzt läuft das ganze fehlerfrei in Echtzeit, auch mit externem Netzteil für die Versorgung der Stepper:).  Warum das so ist, weiß ich leider nicht.


Gruß Jürgen

Go Up