Archiv verlassen und diese Seite im Standarddesign anzeigen : CMU Cam Erfahrungs Austausch!
Hi Leute,
hat schon jemand Erfahrung mit der CMU Cam I b.z.w II gesammelt mit µC Komunikation Auswertung?
Hab heute meine bekommen und funktioniert ganz gut soweit mit den Java Test :-)
Was sind den eure Anwendungen und wie wertet Ihr aus?
Last den Tread beginnen ;-)
by Ulli
lol, ja hoi ich hab da schon erfahrungen und das schwerste ist die synchronisierung der Cam mit dem µc. (ich hab die cmucam2)
Außerdem solltest du der Cam als erstes das "RM 1" senden, das ist der Raw Mode und der bewirkt, das die Cam noch Strings annimmt ABER sie gibt zahlen aus (Bytes)! Es gibt im Manual eine genaue Beschreibng wie so ein Datenpaket dann aussieht!
Weiterhin sollte man noch "DM 60" setzen, d.h. das die Cam zwischen jedem übertragenen zeichen (beim RM byte) ne pause macht die ca. so lang ist, wie wenn er 60 weitere zeichen übertragen würde. das hilft auch bei der synchronisation!
so dann mal zur allgemeinen arbeit mit der cmucam:
als erstes solltest du immer den noise filter hochsetzen ("NF 15" - "NF 30"), dadurch kannst du beim tracking größere ergebnisse erzielen! der noise filter guckt bei tracking, wie weit jeweils zwei "tracked" pixel auseinander liegen und der noisefilter ist die schwelle ab der er den pixel aus dem "tracked" bereich wieder rausnimmt!
dann solltest du mal ausprobieren (das ganze erstmal am java gui) "CR 18 32" das setzt die farbeinstellungen auf YCrCb, das ist nen toller farbmodus aber du musst mal am besten nen bild OHNE deine hand und eins MIT der hand drauf machen lassen und du wirst sehen was das bewirkt...
so jetzt müsstest du mir sagen ob du mit basic (Bascom) proggst, dann kann ich dir auch noch beispiele geben, wenn nicht, dann kann ich dir trotzdem das senden und empfangen erklären!
Martin
Hi X-Ryder, ich progg mit bascom und hätte auch Interesse an Beispielen :)
Gruss Stefan
senden:
Sub Senden(was As String * 21)
While Z1 <> "A" 'warteschleife bis A (ACK) kommt
Print Was ; Chr(13): 'solange das ganze bis dei schleife geschlossen ist
Waitms 10
Z1 = Inkey()
Wend 'ende der schleife
Z1 = Inkey() 'das C verschlucken
Z1 = Inkey() 'das K verschlucken
Z1 = Inkey() 'das {013} verschlucken
Z1 = ""
End Sub
empfangen:
Sub Empfangen()
While Isit <> 255 'warten bis synchronbyte kam
Isit = Waitkey()
Wend 'ende des wartens
For I = 1 To 9 '9 Bytes einlesen (auf TC abgestimmt, bei bedarf ändern)
Isit = Waitkey()
Ar(i) = Isit
Next 'ende der schleife
End Sub
initialisierung:
Print Chr(13):
Call Senden( "NF 30")
Call Senden( "RM 1" )
While Z1 <> "A"
Was = "CR 18 32 19 32"
Print Was ; Chr(13):
Waitms 10
Z1 = Inkey()
Wend
Z1 = ""
Call Senden( "DM 60")
While Z1 <> "A"
Was = "TW" '"TC 90 140 220 240 0 30"
Print Was ; Chr(13):
Waitms 10
Z1 = Inkey()
Wend
Z1 = ""
und das hauptprogramm:
Do
Call Empfangen()
Waitms 50
Loop
dann musste noch nen ausgabebefehl einfügen der AR(2-9) ausgibt
Hi,
ich Progge mit Proton+ für PIC´s aber ist Bascom ähnlich!
Ich hab bis jetzt mal mit der GUI probiert um die Werte etwas zu verstehen :-)
Aber dein Code hilft auch mir weiter, DANKE
Als was setzt du sie auf deinen BOT ein?
By.. Ulli
1. mach dich mal online bei icq,
2. ich setze sie für verschiedene dinge ein, kantenerkennung, damit dann auch eine karte und distanzmessung, später soll sie konturen wiedererkennen und farben verfolgen, bilder an meinen µc senden, der widerrum sendet sie zu meiner "tastatur" und dort wird das bild dann angezeigt
Martin
Hi,
ah heut abend bin ich wieder online, habs nur raus da i immer
fast kei zeit hab zum schreiben ;-)
Aber das mit der Cam wird noch ne lustige sache!
by Ulli
Kann mir jemand helfen?? Ich wollte das Icq runter laden wo man auch mit cams chatten kann aber ich finde das einfach nicht kann mir bitte einer schnellstmöglich eine antwort geben
by Steffi
www.icq.com und dann meine ICQ-Nummer: 196004120
x-ryder du meintes jetzt nicht mich oder??
aso, kannst du mir denn sagen wo ich das herbekomme???
http://www.download.com/3000-2150-10174442.html?part=dl-icqlite&subj=dl_german&tag=button
und wo ist das nun mit der cam?? oder kann ich das nur machen wenn meine angeschlossen ist? Also ich meine ob ich auch wen zu schauen kann ohne das meine angeschlossen ist??
hä???
weißt du echt was die cmucam2 ist?
axo, du bist im falsches forum ^^
du willst gar nichts mit robotern?
Hi,
ich habe auch eine cmucam2 und habe aber aus zeitmangel noch nicht viel damit gemacht. Nur mal servo drann und versucht einem farbigen ball zu folgen.(ging so lala)
Jetzt meine frage: Kann ich ein einmal aufgenommenes bild in der cmucam so speichern das es auch nach dem wiedereinschalten wieder verfügbar ist ?
Gruß Thomas
Hallo Thomas.
Jetzt meine frage: Kann ich ein einmal aufgenommenes bild in der cmucam so speichern das es auch nach dem wiedereinschalten wieder verfügbar ist ?
Nein geht leider nicht, der SX52 hat keinen nichtflüchtigen Speicher, wo er das Bild hinschreiben könnte.
Theoretisch könnte man den Framebuffer mit einer Batterie stützen, allerdings wird der nach dem Einschalten vom Programm frisch initialisiert.
Viele Grüße
Jörg
Wo kann man eine solche cam am billigsten erwerben?
ich denke das ist für 135€ hier in Deutschland: www.roboter-teile.de
Martin
Hi!
also ich bin auch am überlegn mir son teil zuzulegen aber: wie ist das?? kommt das bild immer über den analog video port raus oder kommt das auch mit über den seriellen port?? wenns über den seriellen port kommt ist es gut möglich die daten alle mit 9600baud annen PC zu übertragen und gleichzeitig noch n paar satusbytes für den rest des roboters zu senden/empfangen oder wird das nem 4mHz getakteten PIC zu viel??
wenn es geht.. wie mach ich dann aus den seriellen daten wieder das bild der cam??
Danke!
m0
pebisoft
14.08.2005, 16:04
ich übertrage die seriellen daten in einem array und stelle das bild dann in eine picturebox pixel für pixel her.
ich progge mit visualbasic 5.0
mfg pebisoft
ps: wer ein beispiel in visualbasic 5.0 haben möchte, kurz anmailen.
muss noch den eigenen bedürfnissen angepasst werden.
mail: pebisoft@arcor.de
ok das is ja schonmal was ich werds mit purebasic realisieren, aber wie kriegt ihr die bilder an den PC mit 9600 baud geht da doch nix oder??
selbst mit 115200 baud dauerts 10 sekunden, bis ein bild da ist, und das ist ohne fehler gerechnet!
Martin
pebisoft
14.08.2005, 18:47
geht auch mit 9600bps, 19200bps usw. ich übertrage mit 19200bps die daten.
mfg pebisoft
wie stellste das denn mit dem jumpern ein bitte?
java-robotik
12.09.2005, 16:35
Hat jemand erfahrungen mit der CMUCAM in verbindung mit Interactive C?? Wäre sehr dankbar für Links, Codebeispiele, Erfahrungsberichte oder sonstige Infos!
pebisoft
13.09.2005, 10:43
hallo, mit dem jumperkann man die bps einstellen, das steht in der beschreibung.
bloss, das java--source-programm musst du in einer zeile umstellen auf deine wunschbaudrate und mit java neu compilieren, sonst geht es mit dem beigelegten programm nicht. geht sehr einfach.
ich übertrage von der cmucam2 das videobild als fbas mit video-funk zum pc und schicke nur die daten von der hinderniserkennung zum pc über rs232 und reagiere darauf.
die hindernisdaten sind ja nur ein string von ca 8 dreistelligen werten.
man kann auch mit einem befehl die cam so einstellen, das 1x das paket der hindernisdaten kommt und dann nur auf anforderung, sonst sendet die cam dauernd.
mit der hindernisauswertung von farbgegenständen und der linienverfolgung habe ich keine progg-probleme mehr (datenstring auswertung). die servoansteuerung brauche ich nicht. mein ziel war nur die farberkennung und deren analyse des datenstring.
wie ich vorher sagte, die cmucam2 kann farbhinderniserkennung und linienverfolgung. die linie ist dann das erkannte farbhindernis. einfach toll, wie das geht.
mfg pebisoft.
ach ja besser geht es mit ne uc warscheinlich aber mit raw modus, da sendet man dann strings, empfängt aber keine strings die man umständlich auswerten muss, sondern nur noch einzelne zahlen....
Hi,
wie hast du das Videobild zum laufengebracht?
Die Kamera hat ja keinen definierten Snync und geht nur mit Multisync.
Monitoren...
Wie machst du das?
Bye Ulli
pebisoft
14.09.2005, 19:32
oberhalb des spannungsregler sind die beiden pins (fbas). du schaltest in config auf "ycrcb" und schon hast du parallel zur steuerung ein original videobild zur beobachtung. mit einem selbsterstellten visulbasic5.0 programm lese ich das bild mit capture von der dll der wintv-karte ein. es sind 25bilder/sec. ich stelle es in einer picturebox dar. dazu empfange ich über rs232 die daten von der farberkennung eines gegenstandes und werte diese aus und steuere dann den robby. geht auch vom avr die datenauswertung. interessant ist die linienauswertung, der gleiche modus wie bei den gegenständen.
mfg pebisoft
java-robotik
14.09.2005, 19:47
Hat denn keiner mit Interactive C in verbindung mit der CMUCam erfahrung? Linsk wären auch hilfreich!
danke im voraus
java-robotik
15.09.2005, 19:23
Hallo zusammen!
Wir wollen die Cam nutzen, um mit einen Gegenstand in einer bestimmten Farbe zu suchen. Sehr gut wäre es, wenn man die Kamera ebenfalls zum Erfassen des nächstliegenden Hindernisses nutzen könnte. Das sollte aber nach x-ryders Beitrag kein Problem sein, ebensowenig wie mit der Kamera Abgründe erkennen zu können.
Mir fehlt aber jede Idee, wie die Kamera das bewerkstelligt bzw. wie man die Strings, welche die Kamara zurückliefert auswerten muss. Nimmt einen der eingebaute Kontroler schon die halbe Arbeit ab, oder muss man die Strings auf eine wiederkehrendes Muster untersuchen? Wie erkenne ich Distanzen mit der Cam?
Beispiel: Wenn die Wand blau ist und die Kamara mir ein blaues Bild zurückliefert, kann ich daraus doch keine Info ablesen. Ich weiß nicht, ob ich direkt vor der Mauer stehe, oder ob die Mauer sehr hoch ist.
Kurz: Könnt ihr mir kurz die von euch verwandten Algorithmen vorstellen? Das wäre super nett von euch!
So gerne ich die Cam in Java proggen würde, so versteht meine Schnittstelle nur Interactive C. Habt ihr vielleicht auch da noch ein paar Tipps für mich? Ich würde mich sehr freuen!
Also, schon mal schönen Dank im Vorraus!
pebisoft
16.09.2005, 12:59
die cam brauchst du nicht in java proggen. ich progge die mit dem avr oder mit visualbasic. die t-werte enthalten die x und y-werte der bounding-box in der gösse des bereiches, wo sich der farbwert befindet. wandert der gegenstand nach rechts oder links, so ändert sich auch der x-wert , wandert der gegenstand nach oben oder unten, ändert sich der y-wert. die nächtsen 4 werte sind die bounding-box, entfernt sich der gegenstand werden die eckdaten der box kleiner andersherum grösser. die letzten werte enthalten den mittelwert der anzahl der farbpunkte in der box. ich werte den string mit "mid" aus" (benutze fastavr-basic für den avr). dann mit val in eine zahl wandeln.
mfg pebisoft
java-robotik
16.09.2005, 18:19
Wir wollen die eigentlich nur haben, um zwischen vier Farben unterscheiden zu können (anhand der farben wollen wir uns orientieren) und um einer linie zu folgen! Evtl auch noch um gegenständen oder anderen bots auszuweichen! Meint ihr dafür is die Cam sinnvoll oder übertrieben?
Ich mein, für die bots könnte man sich auch auf infrarot und ultraschall sensoren beschränken, und die farben könnte man mit farbsensoren erkennen, oder nicht?!? Die Ultraschall sensoren brauchen wir ja sowieso, um entfernungen exakt messen zu können! Was meint ihr nun? Lieber auf die CMU Cam verzichten oder nicht? Ist immerhin auch ein ganzer batzen geld...
Danke für eure hilfe (im voraus)
pebisoft
19.09.2005, 08:05
du musst auch die anderen sprachen kennenlernen.
die camera ist nichts für ein augenblick sondern bietet für lange zeit einige aufgaben. wenn dann kauf dir den asuro , er kann auch so ungefähr eine linie verfolgen, aber keine farberkennung.
mfg pebisoft
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.