PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Marvin V3 - Preview



MeckPommER
25.06.2008, 06:31
Hallo allerseits!

Die neue Version von Marvin ist zwar noch nicht so ganz fertig, aber nachdem meine Kinder heute aus ihrem Urlaub bei den Grosseltern zurückkehren werden, wird meine Bastelzeit wieder so begrenzt sein, das die Fertigstellung doch noch 2-3 Wochen dauern wird.

Die Kameras sind noch nicht funktionstüchtig, ebenso wie der dazugehörige Laser im Kopf für die Entfernungsbestimmung, die inverse Kinematik ist noch nicht auf die neue Botgröße eingerichtet, die Beinpositionen noch nicht kalibriert, die LiPo-Akkus kommen erst heute oder morgen ...

... dennoch hier eine kleine Vorschau zum Thema: "Marvin ist tot - es lebe Marvin" ;-)

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

Ein paar Daten:
Standfläche: 50*70 cm
Beinsteuerung und IK: 1 MEGA128
Sound/SD/512K SRAM: 1 MEGA128
Master/IR-Empfang/LED-Steuerung: 1 MEGA128
Stronversorgung/Lüftersteuerung: 1 MEGA8
Matrix: MEGA644
Mikrofonauswertung: MEGA644
Kamera/Laser: MEGA644
Kopfservos/Ultraschallsensor: MEGA644
Gyro: MEGA644
Gewicht ca. 4kg

Gruß MeckPommER

P.S.: eigentlich sollte die neue Version von Marvin etwas kleiner als V2 werden - tja, manchmal kümmts eben anders ;-)

Roboman93
25.06.2008, 11:27
cool. is der auch auf lochraster aufgebaut wie der erste? weißt du schon, wie du das mit der laser-entfernungsmessung machst?
auf jeden fall ein richtig guter bot.

mfg
roboman

vklaffehn
25.06.2008, 11:33
Moin!

Respekt! Der sieht richtig gut aus!
Was für Kameras benutzt Du denn? Ich werkele auch schon seit einer Weile an einer Kamera/Linienlaser Kombination zum Hindernisse erkennen, da versuche ich, das FBAS Signal einer kleinen CMOs Kamera zu verwursten.

Weiter so!!


MfG
Volker

MeckPommER
25.06.2008, 11:47
Das mit der Entfernungsmessung sollte eigentlich nicht sonderlich schwer sein. Marvin hat einen Punktlaser am Kopf (Linienlaser sollen folgen) und zwei Kameras. Die Kameras (aus einer Gameboy-Cam) sind sehr rot-empfindlich, und so läßt sich softwaremäßig die Belichtungszeit so einregeln, das nurnoch der Laserpunkt in den Bildern der Cams zu sehen ist.
Beide Cams sind an einem Atmega644 angeschlossen, der nurnoch aus der unterschiedlichen Position der beiden Laserpunkte die Entfernung berechnen muss. Da nur ein relativ kleiner horizontaler Bildausschnitt der Kameras verarbeitet werden muss, ist das zu bearbeitende Datenvolumen auch sehr übersichtlich.

Mit Strich- oder Kreuzlaser wird das natürlich komplexer, aber: kommt Zeit, kommt Rat :)

@Roboman93:
Die drei Module mit den Mega128 und das Modul für die Kopfservos sind Lochraster-Platinen - die anderen Platinen und die Basisplatine sind Streifenraster. So langsam gewöhne ich mich an Lochraster. Einiges läßt sich kompakter aufbauen.

Für die Laserbastler:

Die Supermarktkette "netto" verkauft hierzulande grade Laserscheren. Einfache Scheren mit einem Linienlaser drauf, damit man auch schön grade schneiden kann :-) Die Scheren selber sind mir leicht schnuppe, aber die Linienlaser in den Teilen machen schon nen ordentlichen Strich, der mir schon fast nach mehr als 1mW aussieht. Laufen über 3 Knopfzellen = 4,5V und die ganze Schere kostet grade mal 3,99 Euronen.

Günstiger kann man nicht an Lasermodule kommen :)

Wie immer, natürlich auch hier: beim Umgang mit Lasermodulen UND GRADE BEIM BASTELN ist äußerste Vorsicht geboten. Mit ein wenig Pech kann man eben nur zweimal direkt in einen Laserstrahl gucken. Einmal mit dem linken Auge und einmal mit dem rechten. Echte DAUs nehmen einen Linienlaser und erledigen das mit einem Blick.
AUCH frei verkäufliche Lasermodule können das Auge ernsthaft schädigen!

hosti
25.06.2008, 12:01
Sehr schön, freut mich wieder mal etwas von Marvin zu hören =D>

XBert
25.06.2008, 12:41
Bin begeistert, sieht wirklich toll aus.
Vor allem das mit der Controller-beleuchtung erinnert mich irgendwie an Iron Man

MFG

ikarus_177
25.06.2008, 12:44
Hi,

was mich interessieren würde: die einzelnen Platinen hast du ja nicht mehr so wie bei Marvin V2 senkrecht eingebaut, oder?

Hochachtungsvoll
ikarus_177

MeckPommER
25.06.2008, 13:25
Irgendwie hatte ich es mir gedacht, das eine einfache blaue LED unter dem mega128 gut wirkt ^^ Hatte noch einen PWM-Kanal über an einem m128 ... und irgendwas mußte ich ja damit machen :-)

@ikarus_177:
im hinteren Teil von Marvin stecken 6 Module senkrecht eingebaut, im mittleren Bereich sind 3 größere Module übereinander auf einer senkrechten Riser-Card aufgesteckt. Mit der Riser-Card habe ich sozusagen das Trägerboard abgewinkelt, da die 3 Module mit den m128 einfach zu lang sind, um senkrecht montiert zu werden.

Gruß MeckPommER

Roboman93
25.06.2008, 18:55
kannst du mir ein paar tips geben. wie du die lochrasterplatinen so klein machst? ich brauch immer ziemlich große. war für draht verwendest du? einadrig oder mehradrig? und warum verlötest du die auf der vorderseite?

vl haste auch ein tutorial?

mfg
roboman

Roboman93
25.06.2008, 19:02
ach ja, nochmal zum laser. wenn der punkt näher zur mitte des bildes, das die kamera macht, kommt, geht es weiter weg, oder? man könnte das auch mit nur einer kamera machen, oder verstehe ich das prinzip falsch?

mfg roboman

Roboman93
25.06.2008, 19:03
ach ja, nochmal zum laser. wenn der punkt näher zur mitte des bildes, das die kamera macht, kommt, geht es weiter weg, oder? man könnte das auch mit nur einer kamera machen, oder verstehe ich das prinzip falsch?

mfg roboman

BlackDevil
25.06.2008, 19:35
Sehr nett. Wie hast du den Controller beleuchtet?^^

vklaffehn
25.06.2008, 19:53
Moin!
@Roboman: Jupp, die Messung geht auch mit einer Kamera, ich verweise mal (wieder ;-) ) auf
http://www.b-duschinger.homepage.t-online.de/
diesen Ansatz verfolge ich auch gerade.

Mfg
Volker

MeckPommER
26.06.2008, 08:54
Moin!

Zu Laser und Kamera:
Klar geht es auch mit einer einzigen Kamera, nur versuche ich stets, die Hardware von Marvin so flexibel wie möglich auszulegen. Nächste Etappe nach der Entfernungsbestimmung mit einem Laser ist die Tiefenberechnung aus 2 Kamerabildern und dies würde bei nur einer Kamera nicht funktionieren.

Zur Beleuchtung:
Der Controller ist ein m128 auf einem SMD-Adapter. Er sitzt mit seinen 64 Stiften auf einem Sockel aus Buchsenleisten. Darunter ist einiges an Verkabelung, und Bauteilen wie Quarz, Kondensatoren, etc.
In der Mitte unter dem m128 sitzt einfach eine ultrahelle blaue LED :-)

Bestückung der Lochrasterplatinen:
Ich positioniere zunächst die Bauteile und schiebe dann solange hin und her, bis ich glaube, die kürzesten Leitungswege und die höchste Bauteildichte gefunden zu haben.
Nur bei der obersten Kopfplatine zeigt die Kupferseite nach oben und nur einige Bauteile sind auf der Kupferseite. Da sitzt noch einiges auf der Unterseite, wie Transistoren und Schieberegister für die Matrix.

Ob Oberseite oder Unterseite richtet sich immer nach der Art der Bauteile. SMD kommt auf die Kupferseite, andere Bauteile auf die andere. Ich mache zwar vieles, aber nicht alles in SMD. SMD-Transistoren nehme ich nur in Ausnahmefällen, da sich deren Anschlüsse manchmal schlecht im Lochraster löten lassen.

Gruß MeckPommER

Klingon77
26.06.2008, 09:25
hi MeckPommER,

ein tolles Teil hast Du da gebaut!

Glückwunsch und meinen größten Respekt \:D/

Insbesondere die blaue PWM LED unter dem "Rechenknecht" finde ich eine Super Idee.

Beim betrachten des Video´s dachte ich sofort an eine "schlagendes Herz".

Wenn Du noch 2 PWM Kanäle übrig hast könntest Du noch eine rote und eine grüne LED dazusetzen.

Dann könnte Marvin sich durch ändern der Farbe und/oder der Frequenz, mit welcher die LED´s aufleuchten nach außen hin mitteilen.

Z.B:
* Akkubelastung / -zustand
* Hinderniss
* Geschwindigkeit
...

Bin von Marvin immer wieder fasziniert :idea: und wünschte ich hätte nur einen Bruchteil Deiner Elektronik- und Informatikkenntnisse.


liebe Grüße,

Klingon77

MeckPommER
26.06.2008, 14:35
hi Klingon77,

ich wünschte, ich hätte einen Bruchteil deiner Mechanikkenntnisse und Fähigkeiten!!!

Und was Elektronik angeht, so geht das über das Wissen aus Jugendtagen (KOSMOS Elektronikbaukästen) nicht hinaus, der Rest ist einfach abgeschaut und "hingebraten".
Was Informatik angeht, so programmiere ich schon seit ... öhm ... Anfang der 80ger, jedoch ohne es irgendwo gelernt zu haben. Vielleicht hilft einem das gelegentlich, Dinge mal anders zu lösen. Es hat halt nur dann Nachteile, wenn es z.B. um Regelungstechnik geht und man nur Bahnhof versteht, weil man die Begriffsdefinitionen etc. nicht kennt. Das Wissen muss man sich dann halt selber zeitaufwändig irgendwo aneignen.

Was die Mitteilungsmöglichkeiten von Marvin an seine Umwelt angeht, so hat Marvin da schon haufenweise Möglichkeiten, weshalb ich auf zusätzliche LEDs dort unter dem obersten m128 verzichtet habe.

Marvin misst (neben Helligkeiten, Temperaturen) ständig die Spannungen auf den 5V, 7.4V und 12V Schienen und warnt bei Unterschreiten einer definierbaren Untergrenze.

Was er daraufhin konkret macht, ist mit wenigen Handgriffen in der Programmierung festlegbar. Würde ich in den Quellcode z.B. eine Zeile einfügen wie:

call sendtext (42, "Alarm: Akku 11.1V fast leer")

dann würde just in diesem Moment der Text über das Matrix-Display am Kopf laufen (42 ist die interne Gerätenummer für Textübergaben an die Kopf-Matrix). Würde ich stattdessen schreiben:

call sendtext (17, "actuhng aku fast leea")

dann würde die Sprachsysthese (Gerätenummer 17) den Text "Achtung akku fast leer" mehr oder weniger deutlich sprechen. Zur Mitteilung stehen Marvin auch andere Untergeräte zur Verfügung wie etwa die Front-LEDs am Kopf oder man würde per einem Befehl wie

call Playwav("alarm.wav")

eine vorher aufgenommene Wav-Datei von der SD-Karte abspielen. (Natürlich aus Enterprise Classics die Stimme von Scotty *g*)

Fast meine ganze bisherige Bastelei bestand darin, Hardware- und Softwareseitig ein flexibles Konzept zu realisieren (ist eigentlich mehr gewachsen als von Anfang an geplant) mit dem die einzelnen Module miteinander umgehen. Er "kann" oder "könnte" sozusagen viel, macht aber derzeit noch recht wenig. Das wird dann der nächste Schritt sein, ihm auch Strategien vorzugeben seine Möglichkeiten zu nutzen.

Wenn man z.B. Marvin das µC Modul für die Matrix rausnimmt, oder das Kameramodul, etc. dann funktioniert er trotzdem noch, da er zu Anfang alle Module anspricht und notiert, von welchem er keine Rückmeldung bekommt. Diese werden dann einfach als offline gekennzeichnet und nicht mehr angesprochen oder abgefragt.

Und das Schönste an Marvin ist, das ich an ihm bestimmt noch viele Jahre basteln und verbessern kann, ohne das er fertig wird und in der Vitrine verstaubt :-)

Gruß MeckPommER

P.S.: das mit dem schlagenden Herz war auch so beabsichtigt :-) Durch den drehbaren Kopf erinnert er mich aber im Gesamteindruck mittlerweile mehr an einen 6beinigen Hund als an eine 6beinigen Spinne ;-)

Klingon77
26.06.2008, 16:03
hi MeckPommER,

wirklich fein durchdacht.
Da mußt Du echt nichts verstecken!!!

Die Passage mit der initialen Modulabfrage muß ich mir merken.
Soweit habe ich noch nicht gedacht...

Scotty muß ich irgendwann mal hören. Bin ebenfalls ein TREKKI der alten Sorte.

Freue mich schon auf einige Detailfotos (merkst Du, wie ich wieder "bettele") und darauf zu sehen, wie es weitergeht.


Was ich noch fragen wollte:
Programmierst Du in Basic, "C" oder direkt in Maschinencode?

Ich hoffe ja, daß es sich beim Basic um kein "Interpreterbasic" sondern um ein Compiler-Basic handelt.

Ist "C" so schnell, daß es die komplexen Aufgaben der Steuerung verarbeiten kann?


Mein Basic am Conrad M-Basic war da eher behäbig.



liebe Grüße,

Klingon77

MeckPommER
26.06.2008, 16:29
Wenn ich den Umbau jetzt erstmal fertig habe, was noch bestimmt 1-3 Wochen dauert, mache ich mal bessere Aufnahmen und Videos - auch mit Ton :-)

Marvins Programmierung ist so ca. 50/50 per Bascom compiliertes Basic und Assembler, was jedenfalls für mich das Effektivste ist. Irgendwie mag ich "C" nicht. Keine Ahnung wieso, war aber schon immer so ^^.

Die Routinen, bei denen es aufs Timing und Geschwindigkeit ankommt, also der ganze Datentransfer zwischen den Modulen, schnelle AD-Wandlung, Interrupts zur Servoansteuerung und noch einige andere Teile mehr sind in Assembler, da man hier wirklich spürbare Geschwindigkeitsvorteile hat. Andere Passagen sind in Basic, denn es spielt wirklich keine Rolle, ob ich eine umfassende mathematische Berechnung in Basic oder Assembler anstubbse - es bringt keinen Vorteil.

Bascom kann wirklich sehr schnell sein. Es kommt viel darauf an, wie man seinen Code formuliert. "C" kann das sicherlich auch. Wehe hier fangen sich welche wieder an über Basic und "C" zu streiten, das wäre unsinnig.

Gruß MeckPommER

BlackDevil
26.06.2008, 16:59
Doch so einfach @Belechtung. Danke

ikarus_177
28.06.2008, 13:04
Hi,

ich hätte noch eine Frage: Wie hast du die Gegenlager der Hüftservos drehbar gelagert? Sind das Gleitlager oder etwas anderes?

Viele Grüße
ikarus_177