PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Roboter mit Cam - welchen Mikrocontroller ?



maddav2005
26.11.2005, 17:54
Hallo!

Ich möchte einen Roboter bauen, der die Bilder von 2 s/w Kameras verarbeitet. Als Mikrocontroller würde ich mal einen ARM einsetzen, 8bit reichen da nämlich logischerweise nicht aus...
Frage Nr.1: Was würdet ihr dazu sagen, wenn ich es mit einem µC-Linux als Betriebssystem bauen würde? Hat
jemand Erfahrungen im Bereich C/C++ Entwicklung auf/für den µCLinux? Wie kann man es außerdem dazu bringen die Bilder einzulesen (Kamera-Anschluss an den µC kann irgendwie vorgenommen werden was einfach ist)?

Dann: Welchen ARM soll ich nehmen? Für µC-Linux benötigt man ja eine Menge an RAM ( 2 MB ? ) und mein Programm braucht sicher auch recht viel. Es sollte deshalb möglichst mit DRAM als externen Speicher arbeiten können weil ich keine Lust habe so viel Geld für SRAM auszugeben. Ich brauch dann noch einen Bootloader, aber das ist jetzt finde ich nicht so wichtig.

Und schließlich wäre ich auch für irgendwelche Tipps, auf welche Art und Weise man auf der ARM-Website sucht, dankbar! Ich weiß, das hört sich ziemlich dumm an, aber ich kann bei so vielen Infos nicht das Wesentliche finden...

Vielen Dank im Voraus für die Infos =D>

David Madl

Fritzli
26.11.2005, 18:07
Hallo

Wie wärs mit fertigen Boards?

z.B:
uCsimm (mit uClinux)
gumstix (mit angepasstem 2.6 Linux): Hat 200 oder 400Mhz, 16MB RAM, 4M Flash, CF-Card Slot, ab 99$

C/C++ unter uClinux dürfte ähnlich sein wie unter "normalem" Linux: gcc
Allerdings wird man Software für die kleinen Systeme wohl besser auf ner grossen Kiste cross-compilieren - Umgebung wird (meist) zur Verfügung gestellt. Ich könnte mir allerdings vorstellen, dass man auch auf nem gumstix on-board compilieren können sollte.

Gruess
Fritzli

maddav2005
26.11.2005, 18:18
Hört sich schon mal super an, danke ;-)

Eine Idee, wie ich die Cam anschließe?

Fritzli
26.11.2005, 19:14
Eine Idee, wie ich die Cam anschließe?

Uups, das hab ich glatt vergessen...

uSimm: fällt dann wohl weg (find ich aber sowieso zu teuer)

gumstix: Der eingebaute USB Port ist so ziemlich für garnix, der kann nur Client-Mode. Man könnte aber ein Zusatzboard mit MMC-Slot kaufen, dort kann man dann eine USB-Card reinstecken. Wo man dann aber zusätzlichen Speicher anschliesst, seh ich grad nicht.
Oder man organisiert sich zwei USB-Seriell-Konverter (oder baut mit FTDI-Chips selber) und hängt sie an zwei der 3 Seriellen des gumstix an. Ist dann aber nicht mehr USB-Speed.

Was für Kameras willst Du denn einsetzen?

Alternative:
FOX Board (http://www.acmesystems.it/) Hat zwei USB-Anschlüsse. Macht allerdings nur 100MHz.

Was anderes wäre ein vollwertiger Mini-Mainboard SBC. Also mit irgendwas um 1GHz, ein paar 100MB RAM, IDE, Floppy, etc mit 12V-Versorgung. Zieht aber tüchtig Strom.

Zum Testen würd ich aber sowieso die Daten auf den Desktop schicken und dort verarbeiten, die Programmentwicklung ist auf einem ausgewachsenen Desktop eh viel schneller.


Gruess
Fritzli

maddav2005
26.11.2005, 22:07
Robostix ist da auch keine schlechte Idee. Ist im Prinzip ein ATmega128, der mit I2C an den Prozessor des gumstix angebunden ist... angeblich geht das mit 400 kHz. Ich glaube dass ich mit 2 Bildern pro Sekunde auskomme (siehe unten. Das kommt bei 400 kHz so ca. auf 4 Bilder/s, demnach bei zwei Kameras 2 B./s).
Die Auflösung soll ja auch nicht im Megapixel-Bereich sein (das wäre schon ziemlich viel Rechenarbeit, sowas zu verarbeiten, auch für einen 200 Mhz-Prozessor...), vielleicht einfach nur zwei CCIR-S/W Kameras mit 352 x 288. (Mit Standard-Video Out 1 Vpp).

Weißt du vielleicht ob man diese Kameramodule mit 1Vpp Standard-Composite-Video Ausgang direkt an den A/D Wandler des ATmega dranhängen kann?

Gigahertz-Bereich ist mir zu stromfressend.

David

maddav2005
26.11.2005, 22:09
Ups, da hab ich mich ja glatt mit den Bits und Bytess vertan... geht sich ja sowieso nicht aus, nur wenn ganze Bytes pro Takt übertragen würden...

EDIT: Kann man denn nicht einfach dem gumstix aus einem ATmega vorgaukeln, man sei ein USB-Host? Die Kommunikation selber wird dann ja sowieso vom C-Programm übernommen.

Fritzli
27.11.2005, 10:16
Weißt du vielleicht ob man diese Kameramodule mit 1Vpp Standard-Composite-Video Ausgang direkt an den A/D Wandler des ATmega dranhängen kann?

Warum sollte man das nicht können. Ob's vom Timing her reicht - keine Ahnung, kenn mich nicht so aus mit Videosignalen.


EDIT: Kann man denn nicht einfach dem gumstix aus einem ATmega vorgaukeln, man sei ein USB-Host?
Hmmm... tönt nach einer guten Idee. Man müsste mal schauen, wieviel SW-Aufwand da nötig ist und was der gumstix als Host genau kann...
Ist aber eine Überlegung Wert.

Gruess
Fritzli

Kjion
27.11.2005, 12:21
EDIT: Kann man denn nicht einfach dem gumstix aus einem ATmega vorgaukeln, man sei ein USB-Host? Die Kommunikation selber wird dann ja sowieso vom C-Programm übernommen.

Theoretisch geht das, allerdings nur sehr langsam und man kann den AVR dann für gar nichts anderes mehr verwenden.
Praktisch also nicht einsetzbar wenn man eine Kamera dran hängen will.

Eine andere Möglichkeit wäre zum Beispiel folgendes Board:
http://www.taskit.de/produkte/portux/

Das bietet von Hardware aus einen USB-Host Port.

MfG Kjion

maddav2005
27.11.2005, 17:52
Whoa! Das sieht wirklich genial aus, das Board!
Ist allerding über doppelt so teuer wie ein gumstix in der Minimalkonfiguration...
Muss ich mir also noch überlegen.

Der gumstix sollte ja theoretisch von Haus aus die I/O Ports auf dem Expansion Stecker rausgeleitet haben. Da brauch ich noch einen Treiber-IC der Signale von 3.3 Volt auf 5 Volt überträgt und umgekehrt.
Danach brauche ich aber wahrscheinlich noch einen selbstgeschriebenen Treiber. (?)

maddav2005
01.01.2006, 20:22
Ich kaufe mir jetzt mal ein ISP1161A1BD bei Segor und experimentiere ein wenig herum ;-) Soll angeblich als Host controller bei USB funktionieren können. Wie ich das einlöten werde (LQFP 64) stellt eine andere Frage dar...
Manche meinen allerdings, man könnte alles einlöten, wenn man genug Übung hat - da werde ich mir wohl einen _dünnen_ Lötkolben *gg* kaufen, dazu noch ne Heißluftpistole, Entlötlitze und weiteres SMD-Lötzeugs und an einem alten Mainboard rumbasteln bis ich mit meinen Leistungen beim SMD-Löten/Auslöten zufrieden bin...
Einen gumstix ("gumstix connex 400" mit 400 Mhz-Prozessor) hab ich mir schon bestellt, ist auch angekommen, allerdings ohne irgendwelche Anleitung dazu (einfach in einem luftgepolsterten Briefumschlag, der den gumstix mit einer Folie umhüllt in einer Kuststoff-"Kaugummipackung" beinhaltete), als würden die glauben dass ihre Wiki-page für Leute, die sich nur aus Hobby mit Elektronik beschäftigen, ausreicht.
Beim Connex weiß ich nichtmal wo ich den Saft anschließen soll. Die Position des I2C vermute ich schon ;-) - Naja ich werd mich schon schlau machen.

Ich fürchte nur dass die Geschwindigkeit eines ATmega nicht ausreicht, um 2 Kamerasignale bei einigen Bildern pro Sekunde, die ich brauche, durch den ADC zu lesen und in den ISP1161A1BD zu schreiben.
Übers USB geht's dann recht flott...

hl_angel
02.01.2006, 11:51
wenn's kein ARM sein muss, dann ersteiger dir bei ebay nen PC 104 oder ne slot CPU (AMD K6 oder P1 MMX, bei mehr brauchst ne fettere batterie)... achte einfach dass das ding eben USB ports hat: dann linux oder windows drauf und 2 USB cams dran... und musst dir noch nicht mal eigene treiber schreiben! zum installieren einfach ein CD ROM anstecken und als "platte" ne CF card verwenden (einige boards haben sockel für CF, andere eben mit IDE/CF adapter)

gruss aus wien nach wien
hl_angel