PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : kamera mit mega8 auswerten??



robin
03.01.2007, 18:43
hallo,
mich würde einmal interresieren, ob es möglich ist, ein kamerasignal mithilfe eines mega8`s auszuwerten und dann einem anderen mega8 befehle zu geben, was zu tun ist.

Die kommunikation zwischen 2 Controllern geht, das hab ich schon getestet, aber ist die Auswertung von Bildern, z.B. einen Ball sehen, und diesen anwisieren und darauf zu laufen möglich?

tobimc
03.01.2007, 18:54
Hi

www.tobias-schlegel.de/?did=18
https://www.roboternetz.de/phpBB2/viewtopic.php?t=18402

Das ist eine ganz nett komplizierte Sache. Allerdings hat der M8 viel zu wenig Speicher. Bei mir tut gerade noch so ein M16.

Es ist schwierig aber prinzipiell nicht unmöglich. Der Ball müsste halt spezielle Eigenschaften aufweisen - z.B. knallrot sein.

EDIT: Und die auswertung ist natürlich grausam langsam...

VLG Tobi

robin
03.01.2007, 19:13
danke

Als controler könnte ich prinzipiel auch einen mega128 oder so verwenden (muss ich mir halt dann kaufen) wäre halt besser mit einem mega8 weil von denen hab ich schon welche zuhause.

mfg robin

robin
03.01.2007, 20:46
und wie kann ich die bilder auswerten, als die daten einlesen??

tobimc
03.01.2007, 22:55
Hi

Kommt hauptsächlich auf den Flash an, der Core ist bei den AVRs eh fast immer der selbe.

Mit einer Kamera(/CCD?)?

VLG

Vitis
04.01.2007, 08:51
zunächst brauchste mal ne Kamera.
Gameboycam, oder Handycam ich glaub MCA25 son Sony
sollen da recht einfach anzusprechen sein.
Ich hab die OV6620 hier und kau da schon ne Weile dran
rum, weil die Datenmenge ist schon recht heftig die zu verarbeiten ist.
In meinem Fall ists schonmal ne heftige Sache die Bilddaten zwischenzuspeichern, da internes RAM nicht reicht auf externes
und dann das Timing ... Puh.
Von ner Bildauswertung mal noch abgesehen.

robin
04.01.2007, 11:55
ein kamera modul hab ich ja auch noch nicht, aber bei ebay gbibts ein paar handy kameras, da werde ich mir villeicht eine holen.
aber wie werden die bilddaten gesendet, über wieviele leitungen?? weil bei den kamera modulen, die es bei conrad oder anderen shops gibt sind es nur 3 leitungen, und zwei davon dienen zur stromversorgung und bei den handy modulen sind es nicht nur drei, sondern ein paar mehr.

Vitis
04.01.2007, 12:34
das geht von bis,
von einfach RX/TX UART also 2 Leitungen,
http://www.sander-electronic.de/gm00021.html

über
http://www.expansys.de/p.aspx?i=103474

bis 16-Bit parallel + Byte-sync + Line-sync + Framesync + TWI + diverses Drumherum
http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=31&kategorieid=2&source=1

tobimc
04.01.2007, 17:33
HI

Mhh also die untere interessiert mich... ;D

VLG Tobi

Vitis
04.01.2007, 23:53
das denk ich mir, ist aber auch ne ziemlich knifflig
zu verwendende Geschichte.
Also die niedrigste Übertragungsrate die ich der verklickern
konnte war 8 Bit breit parallel mit 14 MHz Taktrate,
also die Datenbyte kamen mit 14MHz über den parallelen Bus.
Mit nem Controller, der mit maximal 16MHz läuft dann
100 KB je Frame einlesen und in externes RAM ablegen,
das wird dann schon recht interessant denk ich.

robin
05.01.2007, 11:46
und wie siehts mit einfachen usb wevbcams aus, kann man die auch irgentwie nehmen und auswerten, oder wenn man die aufschraubt, dann sind da doch auch nur normale kameramodule drin, oder nicht??

Jon
05.01.2007, 12:08
Das ist ein normales Kameramodul, aber es wird ein Protukoll verwendet, um die Daten an den PC zu senden. Und die Hersteller stellen das Protukoll nicht zur Verfügung. Ist etwas beschi****.

jon

tobimc
05.01.2007, 14:41
Hi

Ich glaube nicht, dass das ne normale Cam mit Framegrabber ist, das wäre viel zu aufwändig.

@Vitis: Ich habe auch nicht vor, das Dingen mit nem AVR, sondern mit einem ARM anzusprechen ;D

VLG Tobi

Vitis
05.01.2007, 18:25
ja, mit nem ARM kommste der Sache schon näher ... haste Dir schon einen
ausgeguckt für die Geschichte ?

robin
05.01.2007, 20:18
hi,
das wäre eine lösung aber mit was programmiert man arm's?

Pascal
05.01.2007, 20:58
Gibt bestimmt auch noch viele andere Programmiersprachen dafür, aber du kannst dafür auch den gcc verwenden.

Jon
05.01.2007, 21:01
Geht das auch mit einem Basic-Dialekt?

jon

tobimc
06.01.2007, 12:07
Hi

Jon, fang erstmal mit den AVRs an, ARMs sind schon ne etwas andere Sache. Die AVRs kann man relativ einfach programmieren, es gibt Software noch und nöcher und braucht keine kompliziertere Hardware. Ich hab da jetzt auch noch keine große ARM-Ahnung, muss mich erstmal einarbeiten.

Das Kameramodul... Meine Applikation ist noch top secret (Jufo ;) ) aber ich werde wahrscheinlich ein ARM-basiertes Linuxsystem einsetzen, das auch ordentlich Rechenpower hat (denn die brauch ich).

Aber ich denke der AT91SAM7S64 / 128 ist da schonmal ein ordentliches Teil.
Oder du nimmst dir nen AT91SAM7X... Musst mal schauen, Reichelt hat da einige im Programm.

Ich muss mir jetzt erstmal nen JTAG bauen, dass das überhaupt was wird.

VLG Tobi

Jon
06.01.2007, 12:13
Ich programmiere doch schon die ganze Zeit an diesen schrott AVRs rum :(

jon

tobimc
06.01.2007, 12:41
Hi

Allzulange kanns noch nicht sein, sonst würdest du die ganz gut finden ;D
Mit was programmierst du denn?

Ich stoße leider so langsam an Leistungsgrenzen... :(

VLG Tobi

Jon
06.01.2007, 12:49
Ich programmiere die jetzt schon seit einem Jahr und mich langweilt irgendwie, dass ich immer das Selbe mache (Des wegen schrott. Ist aber eigentlich nicht ganz gerechtferigt ;) ).
Das einzig schwierige ist einen ordentlichen algoryhtmus zu machen (zum Ausweichen). Und das ist etwas schwierig, wenn die Sensoren fehlen... sprich das Geld...

jon

michiE
06.01.2007, 13:38
@ tobmic : ich mach auch bei jufo mit , und hab uach ne bilderkennung . bei mir gibts an sich genau des gleiche problem ;) wenig ARM-ahnung ;) aber inzwischen tuts einigermaßen. allerdings ist das ne normale gameboykamera.
die wurde heir ja shcon oft genug diskutiert .

aber des größte problem des ich mit denen hab : mag kein smd - löten *g*


sorry für off-topic: wo beist du bei Jufo dabei ?

mfg
Michi

tobimc
06.01.2007, 13:44
Hi

Wenn du immer das gleiche machst, machst du irgendwas falsch. Das wird aber mit den ARMs sicherlich nicht besser.

Einen ordentlichen Algorithmus muss man sich schon gut ausdenken.
Überleg dir z.B. was das Dingen machen soll. Dann, wie man das realisieren könnte. Dann überlegst du dir, wie man es mit der Hardware, die dir zu verfügung steht lösen könnte.

Und wenn dir dein Projekt mal zu fat wird, dann macht halt zwischendurch mal ein kleines anderes dingen.

VLG Tobi

Jon
06.01.2007, 14:05
Hallo!

Wenn du immer das gleiche machst, machst du irgendwas falsch. Das wird aber mit den ARMs sicherlich nicht besser.
Mir den ARMs wäre es aber mal was neues.


Einen ordentlichen Algorithmus muss man sich schon gut ausdenken.
Überleg dir z.B. was das Dingen machen soll. Dann, wie man das realisieren könnte. Dann überlegst du dir, wie man es mit der Hardware, die dir zu verfügung steht lösen könnte.
Das habe ich ja schon. Mir jällt nur nicht ein, wie ich das mit der bestehenden Hardware verfeiner kann.
Und der Algorithmus geht ja schon so, dass er nirgends gegenstößt (wirklich nirgends!) Er kann aber aufgrund der mangelnden Sensoren nicht genau sagen, auf welcher Seite ein Gegensatand is (links oder rechts vorne). Deswegen lasse ich ihn im Moment immer nach rechts ausweichen. Und das finde ich etwas blöd.


Und wenn dir dein Projekt mal zu fat wird, dann macht halt zwischendurch mal ein kleines anderes dingen.
Das Problem dabei ist, dassmein Momentanes Projekt so viel Geld verschlingt, dass ich für kleine Projekte zwichendrein kein Geld habe. Aber im Moment arbeite ich mich in Delphi ein und sammel etwas Geld.

Sorry für den offtopic Kram. Wenn jemand dazu noch etwas sagen will soller das hier (https://www.roboternetz.de/phpBB2/viewtopic.php?t=24698&start=44) machen.
Mich interessieren eure Vorschläge, bzw. Kritiken. Deswegen schreibt auch, wenn ihr etwas sagen wollt!!

jon

P.S.:Für was steht eigentlich das "VGL"?

p_mork
06.01.2007, 15:46
Mir fällt nur nicht ein, wie ich das mit der bestehenden Hardware verfeinern kann.

verfeinere die Hardware doch so, dass Dein Robby erkennen kann, auf welcher Seite der Gegenstand ist. So viel Geld kostet das garnicht, wird dir jedoch viel Mehr Spaß bringen.

Und was die Sache mit den ARMs angeht: das ganze ist SEHR teuer, und an Deiner Stelle würde ich aus purer Langeweile an den AVR nicht damit anfangen. Da müsste es schon einen besseren Grund dafür geben. Fang lieber mit C an, dabei wird es einem ganz bestimmt nicht langweilig. Ausserdem kanst Du dann den Speicher des AVRs voll ausnutzen, bei der BASCOM-Demo sind die 4k ja sehr schnell erreicht.

MfG Mark

Jon
06.01.2007, 16:34
verfeinere die Hardware doch so, dass Dein Robby erkennen kann, auf welcher Seite der Gegenstand ist. So viel Geld kostet das garnicht, wird dir jedoch viel Mehr Spaß bringen.
Ich habe bei mir noch zwei IS471F ausgegraben und werde die mal vorne anbringen, sodass ich auf eine Entfernung von 15-20cm sagen kann, vo der Gegensatnd ist.

Und was die Sache mit den ARMs angeht: das ganze ist SEHR teuer, und an Deiner Stelle würde ich aus purer Langeweile an den AVR nicht damit anfangen. Da müsste es schon einen besseren Grund dafür geben. Fang lieber mit C an, dabei wird es einem ganz bestimmt nicht langweilig. Ausserdem kanst Du dann den Speicher des AVRs voll ausnutzen, bei der BASCOM-Demo sind die 4k ja sehr schnell erreicht.
Das mit den 4kB habe ich gemerkt ;)
Ich werde jetzrt erstmal das mit Delphi machen, dann die zwei weiteren Sensoren und dann schau ich weiter.
Bei Delphi werde ich eh etwas länger brauchen ;)

jon

robin
06.01.2007, 17:18
gibts eigenlich einen anderen Basic compiler, der kostenlos ist, und keine begrenzung vom Speicher hat??

Jon
06.01.2007, 17:45
Nein, also keinen neuen. Vielleicht bekommst du eine Version 1.0 aber die wird dir nicht viel bringen.

jon