Sehr nett. Wie hast du den Controller beleuchtet?^^
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
Sehr nett. Wie hast du den Controller beleuchtet?^^
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
Meine kleine Seite
http://home.arcor.de/volker.klaffehn
http://vklaffehn.funpic.de/cms
neuer Avatar, meine geheime Identität
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
Mein Hexapod im Detail auf www.vreal.de
hi MeckPommER,
ein tolles Teil hast Du da gebaut!
Glückwunsch und meinen größten Respekt \/
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 fasziniertund wünschte ich hätte nur einen Bruchteil Deiner Elektronik- und Informatikkenntnisse.
liebe Grüße,
Klingon77
Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de
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 beabsichtigtDurch den drehbaren Kopf erinnert er mich aber im Gesamteindruck mittlerweile mehr an einen 6beinigen Hund als an eine 6beinigen Spinne
![]()
Mein Hexapod im Detail auf www.vreal.de
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
Der kürzeste Weg zwischen zwei Menschen ist ein Lächeln - http://www.ad-kunst.de
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
Mein Hexapod im Detail auf www.vreal.de
Doch so einfach @Belechtung. Danke
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
Lesezeichen