Archiv verlassen und diese Seite im Standarddesign anzeigen : RING-O I -- first moves
27.6.07
*** Thread umbenannt: von "Omnibot (zunächst Komponenten) ***
Sigo
Hier möchte ich die Entwicklung meines Omnibots dokumentieren.
(erstes Foto der Motoransteuerung unten)
Nach einigem Überlegen habe ich mich für den Bau eines Omnibot entschieden, da ich das Konzept des Omnibots, trotz einiger Systemschwächen (nicht geländegängig, selbst eine Teppichkante ist ein Hindernis) einfach cool finde.
Folgende Komponenten sind vorgesehen:
3 x 60mm Soft-PU-Omniwheels
3 x 4er-Pack AA-Akkus für insgesamt ca. 14,4V 2,0Ah
Optional 3x 5er Pack Racing Accus (C-Cells)
3 x Maxon RFmax 22mm - Getriebe-Servomotor mit Inkrementalgeber
,je 12V, 6 oder 11W Nennleistung bei nur 22mm x ca. 90 bzw. 110mm
2 x L6205 als Leistungstreiber für max. 4 Vollbrücken zu je 8..48V, 2,8A
(1 zunächst Reserve)
3 x ATtiny2313 für je 1-Achs-Servoregler zur Regelung der Antriebe
(wahlweise als PWM-Steller, Drehzahl-, Drehmoment- oder Lageregler)
1 x Motioncontroller auf MegaAVR-Basis Modell noch offen
Zur Koordination der 3 Antriebe, setzt Bewegungsvektor in
Kommandos für die Antriebsregler um
1x Botcontroller als übergeordnete Steuerung
div. Subsysteme (modular auf AVR-BASIS, mit I²C-Kommunikation)
für
- Raumorientierung (z.B. Kompassmodul, Neigungsmesser, Peilung zu Baken etc..)
- Kollisionsvermeidung
- Messtechnik, Plotter etc
Das Teil soll ca. 300mm Durchmesser bekommen, bei einer Höhe von ca. 70-80mm. In der Mitte werde ich eine Öffnung (ca. 40-50mm) vorsehen, sodass man z.B. einen Stift absenken kann (Plotteranwendung) o.ä.
Auf der Plattform können später Aufbauten montiert werden.
Der recht große Durchmesser sollte trotz 3-Punktauflage für einen halbwegs guten Stand sorgen.
Zweck: Just for Fun.
Stand der Realisierung:
Ich habe nun die Antriebselektronik für 3 Achsen am Laufen.
Die Servo-Regler arbeiten dynamisch zuverlässig
Die Stromregelung arbeitet nur per Software unter Verwendung der Motoreigenschaften. Die Endstufen schützen sich selbst thermisch und gegen Überstrom.
Auf dem Motioncontroller (aktuell ATmega8) läuft aktuell nur ein Testprogramm in BASCOM, welches die Servoregler via Software - RS-232 anspricht. Leider klappt der Rückkanal aktuell nicht. Ich kann mit dem Motioncontroller keine RS-232 Signale empfangen. Das muss als nächstes geklärt werden. Wenn das steht, soll der Motioncontroller als I²C - Slave Positionsvektoren (mit Drehwinkel) bekommen und diese selbst in eine Bewegung umsetzen.
Oder aber, die Servoregler müssen auf I²C (mein Wunsch) oder auf SPI (evtl. noch effizienter) umgestellt werden.
Bevor es aber damit weiter geht, muss nun erstmal die Mechanik her.
Ich möchte was Laufen sehn..
Anbei ein Foto der 3 Servoregler mit den beiden L6205 auf Lochraster, sowie die Antriebe.
http://silbergold.de/fotos/Ring-o/3-Achs-Servoregler.jpg
Evtl. werde ich für die Servoverstärker noch Plantine machen lassen.
Vielleicht wäre das auch ein interessantes RN-Projekt?
Das myAVR-Board (oben rechts) nutze ich hier nur für den Motioncontroller, solange es hierfür noch keine Platine gibt, bzw. solange dieser nicht mit auf dem Controller-Board ist. Auf dem bild nutze ich nur die RS-232-Treiber zum PC, die 5V-Versrogung und die Reset-Taste. Ansteuerung erfolgt noch über PC oder o. erwähnten ATmega8 mit Testprogramm, den ich alternativ stecken kann
Hier nochmal die Elektronik aus der Nähe:
http://silbergold.de/fotos/Ring-o/3-Achs-Servoregler-nah.jpg
Jetzt geht es erstmal an die Mechanik...
Wenn ich die Maße kenne, werde ich evtl. Platine layouten...
dann gehts weiter..
sigo
[/img]
So, Kugellager für die Radlager sind bestellt, eine Bodenplatte aus 5mm - Hartschaum, sowie die Omni-Wheels sind schon da. Dann werd ich mich mal an die Mechanik machen....
Eine Lösung für die Radachsen muss noch her; ein Rohr 8mm außen, 4mm innen wär jetzt klasse....oder ne Drehbank...
Tja, mal sehn, evtl. ein 8x1 und ein 6x1 Rohr ineinander kleben..
Wenn die Motoren montiert sind, melde ich mich wieder..
Sigo
HannoHupmann
01.04.2007, 18:06
@Sigo da ich selber L6205N verbauen will und noch keine rechte Ahnung habe wollte ich dir Fragen ob du mir den Schaltplan deiner Lösung schicken kannst. Per PN oder Mail.
Hier ist der Schaltplan für einen 1-Achsverstärker. In dieser Schaltung sind beide Brücken des L6205 parallel geschaltet. Durch Stecken des Jumpers JP1 wird eine Brücke disabled, sodass dann auch nur noch der halbe Strom möglich ist.
Die 2. Brücke kannst du natürlich separat nutzen.
Übrigens muss man die Ladungspumpe für die High-Side-MOSFETs nicht unbedingt 2x bauen, wenn man 2 L6205 auf einer Plantine benutzt.
Ich habe festgestellt, wenn man die 1N4148 durch Schottky-Dioden ersetzt, und den Ladekondensator ein wenig größer auslegt, kann man beiden Bausteine versorgen. Das spart eine Menge Leiterplattenfläche..
Den Schaltplan für die 4-Achslösung habe ich noch nicht gezeichnet. Im Prinzip sind es aber 4x der ATtiny2313 und 2x L6205, sowie ein noch zu wählender Controller zur Koordination, wohl ein ATmega168 oder Mega32. Damit werde ich dann auch die Statusausgänge erfassen.., sowie EIngänge für Referenzschalter vorsehen.
Sigo
Die abgebildete Schaltung des L6205 entspricht dem Beispiel aus dem Hardware-Handbuch.
EDIT: Auf besonderen Wunsch eines Einzelnen hier jetzt ein kleineres Bild
http://www.silbergold.de/fotos/Ring-o/Servoverstaerker772pix.jpg
Schaut ja nett aus was du da machst!
Mich haben solche omnibots schon immer interressiert..
Aber: könntest du vlt. die Bilder kleiner machen und Schaltplan verlinken damit man nicht immer nur die Hälfte vom Fenster sieht? Weiß ja net was fürne Auflösung du hast aber bei 1280*800 nervt das ganzschön (war jetzt net bös gemeint)
Update:
Beim erneuten Betrachten des aktuellen Schaltplans kam mir gerade noch die Idee, dass ich die beiden Enable-Eingänge des L6205, also EN_A und EN_B auf die beiden freien Portbits des Controllers; PD2 und PD3; legen werde.. Damit erübrigt sich die Steckbrücke.
Man dann dann mit den Ports sowohl den Status der beiden EN Pins abfragen (und das sogar mit Interrupteingängen), als auch die EN-Eingänge auf Masse ziehen und damit die Endstufe disablen.
Durch Verwendung der internen Pull-Up-Widerstände erübrigen sich die 100kOhm Widerstände. Die Kondensatoren werde ich dann etwas größer wählen, so 47nF-100nF, dann passt die Zeitkonstante wieder. Aber das ist ohnehin unkritisch..
Insofern, danke Hanno - für die Nachfrage. ;-)
Sigo
Inzwischen steht die mechanische Konstruktion. Sobald ich meine Bleistiftskizze im CAD hab, poste ich sie hier. (Dank an Klingon77, der mir wertvolle Tipps gegeben hat und mir ein guter Diskussionspartner bei der Findung der besten Anordnung war).
Zahnräder und Zahnriemen habe ich nun auch. (Dank Slotte, für den Tipp das Material bei Mädler zu bestellen).
Heute habe ich die Motorritzel aus Acetalharz mit M3 - Gewindebohrungen versehen, passende Madenschrauben aus normalen Schrauben angefertigt und die Räder ca. 5-6mm schmaler gemacht.
Morgen werde ich dann die größeren Zahnräder, ebenfalls aus Acetalharz, mit M4-Gewindebohrungen versehen und die Abtriebswellen aus 8mm - Silberstahl anderfertigen.
Auch die Omniwheels müssen noch mit Klemmschrauben versehen werden.
Wenn das geschafft ist, gibts wieder ein Foto.
Die Maße stehen jetzt auch: 300mm Durchmesser ca. 70 mm hoch, mit 60mm Innenbohrung in der Mitte des Bots, die mit einem Flansch mit r=40mm Teilkreis versehen wird...
Alle 3 Antriebe werden als Modul ausgeführt auf einer 100x100mm Grundplatte, wahrscheinlich aus Alublech. Wenn es geht, wird auch die jeweilige Motorendstufe inkl. Controller in das Modul integriert, mal sehn.
Soweit erstmal der Zwischenstand.
Sigo
(der vorherige Eintrag ist von gestern, ich habe nur einen alten leeren Eintrag editiert, daher das falsche Datum)
OK, heute habe ich folgende Arbeiten erledigt:
* die größeren Zahnriemenräder schmaler gesägt, mit M4 - Gewindebohrungen versehen, passende Schrauben angefertigt.
* Aus den abgesägten Zahnradteilen konnte ich prima Stellringe angefertigt, die ich später zur axialen Befestigung der Achsen benötige.
Ja, und einen Namen hat das Teil jetzt auch:
RING.O I
Ring (weil in der Mitte ein Loch) - O für Omni
Hier ein paar Fotos:
http://www.silbergold.de/fotos/Ring-O/P1020669%20Zahnriemenrad%20abgesaegt.jpg
Zahnriemenrad abgesägt
http://www.silbergold.de/fotos/Ring-O/P1020679%20Fertige%20Zahnriemenscheiben%20und%20St ellringe.jpg
Fertige Zahnriemenscheiben und Stellringe
http://www.silbergold.de/fotos/Ring-O/P1020684%20Antriebe,%20Zahnraeder,%20PVC-Hartschaum,%20Alubleche.jpg
Die zukünftige Grundplatte (5mm PVC-Hartschaum), 3 Alubleche für die Antriebsmodule, die Antriebe und Zahnriemenscheiben
Als nächstes werd ich dann mal mit dem Lagerblock für die Abtriebswelle beginnen und die Bleche für die Antriebsmodule zuschneiden.
Sigo
Das erste von 3 Radmodulen ist (im Rohbau) fertig!
Ich habe bei der Konstruktion auf einfache Realisierbarkeit ohne spezielle Werkzeuge ala Drehbank oder Fräse geachtet.
http://www.silbergold.de/fotos/Ring-O/Antriebseinheit_1.jpg
BESCHREIBUNG:
Auf einer 100x100mm Grundplatte sind 2 Winkel montiert, an deren Enden sich die Kugellager befinden. Diese sitzen in einem Stück PVC-Hartschaum und werden mit einem 20x2mm Aluprofilstreifen gehalten.
In den Lagern läuft eine 105mm Silberstahlwelle. Auf diese sind das Omniwheel und das Zahnriemenrad montiert und mittels Wurmschrauben geklemmt. (ggf. werde ich die Welle an den entsprechenden Stellen noch mit einer Fläche versehen). Mit Hilfe von 3 Distanzhülsen aus 10x1mm Alu-Rohr verhindere ich ein hin-und-her-rutschen der Welle in den Lagern.
Der Motor ist mit seinem Montagewinkel auf ein Stückchen item-Profil 10x20 montiert. Durch Verschieben des Profils kann der Zahnriemen gespannt werden. Mit den zahnriebenrädern wird eine 2:1 Untersetzung realisiert, eine Anpassung ist recht leicht möglich.
Auf die Fläche unter Motor und Inkrementalgeber möchte ich nun die Antriebselektronik (Thread weiter oben) bauen, wenn ich eine Platine gemacht habe. Aktuell arbeite ich mit meiner 3-Achs Lochrasterplatine.
Modularer ist es aber, wenn die Einheit ihre eigene Steuerung hat und nur noch über 5-6 Adern angesprochen wird.
3 Dieser Einheiten werden, wenn sie fertig sind, unter eine d=300mm PVC-Hartschaumplatte montiert.
Es fehlen noch die 4 Befestigungsbohrungen zum Anflanshcen des Moduls an die Grundplatte des Bot.
UNIVERSELLER ANSATZ:
Das Radmodul kann so wie es ist für Räder bis ca. 95mm eingesetzt werden, wenn der Zahnriemen angepasst wird. Das Montageprinzip für die Lager erlaubt auch das Montieren der Lager auf verschiedenen Höhen (größere Räder etwas tiefer). Weiterhin kann man bei größeren Rädern auch mit einem größeren Zahnriemenrad arbeiten und so den größeren Raddurchmesser kompensieren, ohne dass der Motor ein anderes Getriebe braucht.
Die Größe des Antriebs kann ebenfalls in weiten Bereichen variieren. Durchmesser bis ca. 48mm sind kein Problem. Die Länge inkl. Welle kann bis 96mm betragen, ohne überzustehen. Aber auch längere Antriebe sind kein Problem, der Motor würde dann außen überstehen.
Man kann natürlich auch normale Räder, z.B. Skaterrollen montieren und so die beiden Antriebsräder eines Bots ala Asuro bauen. Dazu müsste ein Modul spiegelbildlich aufgebaut werden.
MATERIAL:
1 Alublech 100x100x2mm (ich hab leider nur 1mm)
2 Aluwinkel ca. 35 x 65 x 2, Länge 40mm
2 Alubleche 40x20x2mm
2 Stücke 40x20x5mm aus PVC-Hartschaum, Acryl, Macrolon, Sperrholz o.ä.
2 Kugellager 688ZZ (16x5x8) [oder so ähnlich]
Alurohr 10x1 je einmal 5mm - 7mm - 30,5 mm
1 Aluprofil 20x10x80mm (item)
1 Silberstahlwelle 8mm, Länge = 105mm
2 Nutensteine M4 (item)
4 Senkkopfschrauben M4x8mm (ggf. Messing)
4 Schrauben M3x9 bzw, M3x12, wenn eine Mutter verwendet wird, statt Gewinde, dann 4 Muttern
2 Schrauben M4x10 zur Motorbefestigung (individuell anpassen).
1 Rad nach Wahl (ca. 40mm bis 96mm)
Sowie Zahnriemenräder, Zahnriemen, Wurmschrauben dazu und natürlich der Motor mit Inkrementalgeber.
Die Wurmschrauben kann man sich selbst aus normalen Schrauben oder Gewindestangen fertigen. Eine Zange mit Einrichtung zum Schraubenkürzen ist da sehr praktisch, es geht aber auch mit einer Puksäge..
WERKZEUGE:
Ich habe darauf geachtet, dass man mit normalen Schlosserwerkzeugen auskommt. Daher auch die recht kleinen Lager, da man 16mm so gerade noch mit Haushaltsmitteln bohren kann.
Es wurden benötigt:
Körner, Reißnadel, Winkel, Lineal, [Schieblehre]
Bohrer: 2,5 - 3 - [3,2] - 4 - 7 - 10 - 12 - 16mm
(16mm kann auch Holzbohrer sein, da nur für Hart-PVC)
Senker: klein, groß
Säge, Feile, mittlerer und feiner Schmirgel
Gewindebohrer: M3 - M4 (Alternativ auch Durchgangsbohrung und Mutter)
Schraubendreher
Bohrmaschine
Die Silberstahlwelle ist zwar schon recht fest, da sie aber nicht gehörtet ist, kann man sie noch sägen und auch feilen.
http://www.silbergold.de/fotos/Ring-O/Radmodul_2.jpg
Klingon77
26.06.2007, 13:26
hi sigo,
einfach klasse, wie Du das mit sehr einfachen Mitteln aufgebaut hast! \:D/
Was ich nicht ganz verstanden habe:
Auf einer 100x100mm Grundplatte sind 2 Winkel montiert, an deren Enden sich die Kugellager befinden. Diese sitzen in einem Stück PVC-Hartschaum und werden mit einem 20x2mm Aluprofilstreifen gehalten.
Sitzen die Lager mit Ihrer Außenfläche in dem Hartschaum oder im Alu? 8-[
Ich habe Bedenken, daß der Hartschaum mit der Zeit nachgiebt und die Lager nicht mehr sauber geführt werden. :-s
Wenn Du 13mm bohren kannst, könntest Du den äußeren Alu-Haltewinkel durchbohren, flach auflegen und das Lager in die Bohrung legen. Dann von der Innenseite zwischen Alu und Lager eine schöne, saubere Klebenaht ziehen. Das sollte auch halten.
Evtl. könnte man noch von innen ein zweites Blech mit 13mm Bohrung (2 oder 3mm dick) anschrauben. Dann hätte man das Lager nahezu ganz geführt.
Dies kann man aber auch noch nacharbeiten, wenn der Hartschaum nachgeben sollte.
Ein wirklich gutes Beispiel, wie man mit etwas Arbeit selbst mit einfachsten Mitteln zu exzellenten Lösungen kommen kann!
Weiter so!!
Gruß, Klingon77
Sitzen die Lager mit Ihrer Außenfläche in dem Hartschaum oder im Alu? 8-[
Ich habe Bedenken, daß der Hartschaum mit der Zeit nachgiebt und die Lager nicht mehr sauber geführt werden. :-s
Wenn Du 13mm bohren kannst, könntest Du den äußeren Alu-Haltewinkel durchbohren, flach auflegen und das Lager in die Bohrung legen. Dann von der Innenseite zwischen Alu und Lager eine schöne, saubere Klebenaht ziehen. Das sollte auch halten.
Evtl. könnte man noch von innen ein zweites Blech mit 13mm Bohrung (2 oder 3mm dick) anschrauben. Dann hätte man das Lager nahezu ganz geführt.
Dies kann man aber auch noch nacharbeiten, wenn der Hartschaum nachgeben sollte.
Gruß, Klingon77
Hallo Klingon, danke für deinen Hinweis.
Ich habe natürlich die gleichen Gedanken, was die Festigkeit angeht, andererseits sitzt das Lager ziemlich saugend in dem Kunststoff und mit 16mm Durchmesser x 5mm ist die Auflagefläche ja schon recht groß, daher probiere ich es erstmal so. Es ist nicht schlecht, dass das Material nicht ganz starr ist, da sich so die Lager sehr gut ausgerichtet haben und prima laufen. Evtl. klemme ich noch eine dünne Hartpapier-Dichtung zwischen Lager und Blech, sodass das Lager dann zwischen den Blechen klemmt.. - OK - alles nicht wirklich maschinenbautechnisch astrein.
Ich kann den Hartschaum ja auch jederzeit durch ein festeres Material ersetzen, wie 5mm-Makrolon, ein 5mm-Alublech(-paket), Hartholz.. daher lasse ich mich hier überraschen. Es ist ja leicht zugängig und schnell gewechselt.
Heute hab ich bereits alle Aluteile für die restlichen 2 Lagereinheiten angefertigt. Morgen dann noch ein paar fehlende Bohrungen und die beiden Wellen, sowie die verbleibenden Omniwheels mit Klemmschrauben versehen. Dann kommt die Tägerplatte an die Reihe.
Sobald man dann erkennen kann, was es werden soll, öffne ich einen neuen Thread: --> "Ring-O"
Sigo
Klingon77
27.06.2007, 00:07
hi,
hast ja recht. Es gibt noch anderes Material als ALU!
Ich würde allerdings keinen neuen Tread eröffnen. Es reicht doch, wenn Du diesen entsprechend umbenennst.
Dann hat man auch alles schön beieinander und muß nich von einem zum nächsten springen.
Gruß, Klingon77
Das 2. Radmodul ist nun auch fertig.
Die Gundplatte dieses Moduls verfügt über 4 zusätzliche Bohrungen, sodass man sie auch spiegelbildlich montieren kann. Dadurch kann man nun ganz einfach 2 spiegelbildlich aufgebaute Radmodule nehmen und in Verbindung mit 2 normalen Rädern einen Bot in klassischer 2-Motor-Bauweise realisieren.
Sigo
Es gibt wieder neue Fotos!
Die Grundplatte ist nun fertig, die 3 Antriebsmodule mit dieser verschraubt
Dito Akkuhalter.
Leider fehlt noch ein Akkuhalter, macht aber momentan nix, denn 9,6V reichen für den Anfang auch aus. Später sollen es dann 14,4V werden( Motornennspannung 12V). Anstatt der Mignon-Akkus sind auch C-Zell-Racing-Akku-Module einsetzbar.
Nächste Schritte:
* Die o.g. Motorcontroller-Schaltung als 1-Achscontroller layouten und fertigen
* Testprogramm schreiben und erste Gehversuche unter Vewendung der aktuellen Motorelektronik.
Hier aber erstmal die aktuellen Bilder:
http://silbergold.de/fotos/Ring-O/Ring-O_von_unten_800pix.jpg
http://silbergold.de/fotos/Ring-O/Ring-O_von_oben_800pix.jpg
http://silbergold.de/fotos/Ring-O/Ring-O_von_der_Seite_800pix.jpg
Die Mitte der Montageplate wird später mit einer Lochsäge ausgesägt, sodass hier eine Bohrung von ca. 60-75mm hinkommt. Aktuell ist es aber günstiger den Mittelpunkt noch zu sehen.
Die harten 50mm-Räder können später durch weiche 60-oder 80mm-Soft-PU-Räder ersetzt werden, für beides ist Platz vorgesehen.
Sigo
Klingon77
10.08.2007, 19:37
hi,
sieht sehr schön aus! :mrgreen:
Mit Geduld, Geschick, Kreativität und ein wenig Werkzeug kann man auch
ohne Drehmaschine / Fräsmaschine sehr sauber und technisch hochwertig
arbeiten!
Dein Robby ist das Beste Beispiel!
Bin gespannt, wie es weiter geht!
Insbesondere interessiert mich, ob die Figuren, wenn sie mal auf den Boden gemalt werden auch wieder geschlossen sind.
Dies scheint mir die eigendliche Herausforderung zu sein!
Noch eine Frage zum Hartschaum.
Wie ist der in der Festigkeit? Hält der was aus oder bricht er schnell?
Kann man die Oberfläche mit dem Daumennagel eindrücken?
Wo bekommt man den Werkstoff?
Preise?
Gruß, Klingon77
Hallo Klingon,
ob ich irgendwann mal das Haus vom Nikolaus mit geschlossenen Ecken und 5m Kantenlänge hinbekommen, weiß ich auch nicht *gg*.
Ohne Kameraunterstützung oder Nahbereichs-GPS sicher nicht..
Aber dann werden es eben erstmal Kinderzeichnungen. Alter des Kindes: ??? --- Je nach Ergebnis
Zum Hartschaum:
Der ist 6mm dick und recht fest.
Allerdings kann man mit relativ viel Druck schon mit dem Daumennagel ritzen bzw. eindrücken mit dem Finger o.ä. geht nicht. Aber man muss es ritzen wollen. Leichte Berührungen oder das Handling mit dem Teil reichen da nicht.
Die 300mm-Scheibe ist hinreichend stabil, besonders da ja große Teile der Flächen mit den 1,5mm-Aluplatten der Antriebsmodule und auch den Batteriefächern verschraubt sind.
Es ist so schon stabil genug. Aber ich möchte ja evtl. über der Elektronikebene noch eine 2. Platte anbringen, oder einen Deckel und dann beikommt die Konstruktion dadurch eine sehr wirksame Versteifung.
Nötig ist es beim aktuellen Gewicht nicht. Bin sehr zufrieden.
Ich werde jetzt auch mal probieren, wie sich der PVC-Schaum kleben lässt. Das sollte bei PVC eigentlich gut gehen, wenn der Schaum sich nicht auflöst.. Das würde natürlich sehr effiziente Versteifungen ermöglichen. Wie gesagt, ist aktuell nicht möglich, aber wer weiß was ich mal als Nutzlast vorsehen werde...
Übrigens habe ich die Antriebsmodule mit M6 Schrauben ohne Gewindeschneiden in 5mm Bohrungen geschraubt...und die Schraube kann man sehr fest anziehen, ohne, dass sie ausreißen. :-) OK, mal wieder keine wirkliche Maschinenbaumeisterleistung, aber funzt super. Ich hatte auch Gewinde schneiden können, oder Durchgangsbohrungen mit Muttern, aber wozu? So habe ich eine satte Selbsthemmung.
Die Platten lassen sich sehr leicht bearbeiten. Nur die Bohrer und Feilen müssen scharf sein, da es sonst schmiert.
Ich hab die Platte aus dem Baumarkt (Hellweg Baumarkt).
Preis ca. 11-12 EUR für 50x50cm. Hab sie auch bei eBay zu etwa dem Preis gesehen. Suche nach: PVC Hartschaum
Zum Schneiden der PLatte habe ich mir einen verstellbaren Kreisschneider gebastelt und die Kunststoffplatte auf ein Stück Spanplatte geschraubt. Dann mit der Bohrmaschine schöön vorsichtig ausgeschnitten, wobei die Spanplatte als Zentrierung diente, beim Durckommen.
Sigo
ich find auch das dein bot (bzw was bis jetzt davon existiert) sehr gut aussieht....! ich bau zwar selber keine roboter aber dein konzept besticht durch seine einfachheit und ....naja ich denke man kann es schon brillianz nennen =D>
kurzum dein bot hat mich vor allen anderen am meisten beeindruckt! \:D/
Klingon77
11.08.2007, 02:29
hi sigo,
das hört sich ja alles in allem recht positiv an, mit dem Hartschaum.
Wenn ich mal wieder im Baumarkt bin, schau ich mir das Material mal an.
Habe bis Dato noch nicht mit Hartschaum gearbeitet. Deshalb hat es mich so interessiert.
Vielen Dank für die ausführliche Erleuterung!
mit verschlafenem Gruß,
Klingon77
Inzwischen habe ich mich ein wenig mit einer elektronischen Rundum - Stoßstange beschäftigt.
Das Ergebnis (z.Zt. in der Theorie) ist ein 160°- IR-Radar, welches innerhalb von ca. 400µs die 160° in 8 Segmenten scannt. Die erwartete Reichweite auf Basis von ein paar Vorversuchen auf dem Steckbrett beträgt ca. 30-80cm je nach Reflektionsverhalten des Hindernisses.
3 solcher Scanner erlauben dann eine Rundum-Messung in ca. 1,2ms. - In der Theorie.
Als Ergebnis eines Scans möchte ich den Winkel auf ca. 10-20° per I²C ausgeben, wenn ein Hindernis auftaucht. Bei mehreren Hindernissen entsprechend mehrere Meldungen.
Bei Bedarf könnte man dann einen US- oder IR- Entfernungsmesser in Position schwenken und nachführen, um dann auch die Entfernung zu messen.
Sobald der Prototyp seine Funktion bewiesen hat, werde ich dazu unter einem neuen Topic mehr posten. Wichtig ist mir besonders das Tempo, damit man auch etwas schneller fahren kann.
Die Schaltung basiert auf einem ATtiny2313. Jetzt muss ich erstmal eine Platine machen, mich tiefer in Assembler einarbeiten,.......
Da ich meine letzte Platine, vor ca. 20 Jahren selbst gemacht habe, muss ich mich erstmal wieder einarbeiten..
..kann also etwas dauern.
Gruß Sigo
Hier ist eine Konzept-Zeichnung meines IR-Radars für den Ring-O.
http://silbergold.de/fotos/Ring-O/Ring-O_redundantes_IR-Radar_800pix.jpg%20
Aktueller Stand:
Sechs 180°-Sensoren messen jeweils in 13 Segmenten mittels moduliertem IR-Licht, ob ein Hindernis "zu sehen" ist und geben diese Infos per I²C aus. Ein solcher Scan-Vorgang soll ca. 400µs je Sensor dauern und zurück liefern, welche Segmente etwas "sehen".
Bei 6 Sensoren wären das 2,4ms wenn man sequentiell arbeitet. Aber ggf. können gegenüberliegende Sensoren auch simultan arbeiten, und so käme man auf 1,2ms für die Messung. Für die Kommunikation und Auswertung setze ich zusammen ca. 1-2ms an. Wenns länger dauert, ist es auch egal. Ziel sind <5ms.
Damit Reflektionen möglichst geringen Einfluss haben, kann bei Bedarf mit verschiedenen Intensitäten gemessen werden, was dann auf Kosten der Geschwindigkeit gehen würde.
Aus den Ergebnissen aller 6 Sensoren, kann man ein Gitter generieren, und so dann neben der Richtung auch die ungefähre Entfernung durch Triangulation erhalten.
Das Prozessing macht ein weiteres Board, welches die I²C Signale dann verrechnet und dem Host mundgerecht serviert..in Form einer Tabelle, die zu den unterschiedlichen Winkeln Entfernungen enthält. Zusätzlich könnte man "Minima" und "Maxima" gesondert übertragen...(usw.)
Sicher ziemlich heftig vom Aufwand. (Immerhin 7 Microcontroller, etliche LEDs, Sensoren, Transistoren...)
Aber da der Bot eine Experimentierplatform sein soll....so what!
Außerdem, hält sich der Preis für jeden einzelnen 180°-Sensor durchaus in bezahlbaren Grenzen, Atmel machts möglich.
Ein einseitiges Layout reicht und ist nun fertig.
Jetzt hängts bei mir am Herstellen der Platinen, bis ich das ausprobieren kann.
Andere Lösungen mit IS471F sind kaum billiger wenn man die gesamten 360° zuverlässig abdecken möchte - und mech. aufwändiger. Und, sie können natürlich keine Entfernung bestimmen.
Bei der Programmierung habe ich inzwischen Fortschritte gemacht und das Zeitkritische Kernproblem in ASM als Rohbau geproggt. [Ging besser, als ich dedacht habe). Die Kommunikation fehlt jedoch noch.. viel zu tun, lassen wirs erstmal ruhn...will erst Hardware in den Fingern haben. ]
Nun also erstmal eine Platine machen..(lassen).
Welche Methode würdet ihr empfehlen?
(Ich muss max. mit 1 Leiterbahn zwischen den IC-Pins durch)
Naja, obs funzt, muss sich erst noch zeigen. :-b
Sigo
Einseitig und eine Bahn zwischen IC-Pins kriegt man problemlos im Hobbykeller hin. Das schwierigste ist eigentlich die Herstellung einer wirklich guten Filmvorlage. Wenn man am Anfang erst mal sichergehen will, kann man den Film bei http://www.cadgrafik-bauriedl.de/leiterplattenfilme.htm belichten lassen. Damit sind sehr gute Ergebnisse drin. Entwickeln, Ätzen und Bohren sind dann nur noch Fleißaufgaben, bei denen man bei guten Bungard-Platinen kaum was verkehrt machen kann.
Hast du einen Laserdrucker zur Verfügung? Eventuell köntest du auch mal testen, ob der sich für die Bügelmethode eignet. Ich bin mittlerweile davon ab und nehme nur noch die konventionelle Fotomethode, weil es gleichschnell geht und bessere Qualität gibt. Aber für die ersten Tests ist Büglen etwas einfacher.
Hallo Uwe,
danke für den Hinweis.
Ich habe einen HP Laserjet 6P und einen HPinkjet1100 (guter Foto-Tintenstrahl) Drucker zur Verfügung.
Habe aber auch so meine Bedenken, wenn ich Bügeln etc höre. Habs aber auch noch nicht probiert. Ich möchte auf jeden Fall gute Ergebnisse erzielen.
Wie ätzt du?
Bei meinen Versuchen vor 20 Jahren habe ich z.B. mit Kopien auf Overheadfolien etc experimentiert und das dann belichtet. Es ging, aber immer nur max. Note "4-" Sodass ich damals meist die Layouts dann doch geklebt habe.
Kann man mit den genannten Druckern ggf. auch selbst gute Folien herstellen - zum Belichten? Welche Möglichkeiten bietet darüberhinaus ein normaler (lokaler) Copy-Shop?
Gruß sigo
Das muss du selbst ausprobieren. Druck ne schwarze Fläche aus, und sieh dir an wie lichtdurchlässig sie ist.
Ich drucke mein Vorlagen mit nem Epson C1100 auf Normalpapier und mache das Papier mit Öl transparenter. Damit habe ich recht gute Ergebnisse (auch bei feinen SMDs), allerdings ist die Belichtungszeit sehr kritisch. 15 Sekunden zu viel, und die feinen Bahnen verschwinden. 15 Sekunden zu wenig, und es gibt noch Kupferreste auf den Freiflächen.
Ich werde wohl mal den Service ausprobieren. Das klingt nach gut angelegten EUROs. Die Preise sind fair. Da kann ich auch eine 2-seitige Platine machen. (Nur alles voll mit Groundplane und ein paar Vias für GNDs.
Frage: Machst du Lötstoplack auf die Platine?
Gibt es den ggf. auch zum Aufsprühen und Wiederwegätzen zu kaufen?
Lötstopplack gibts als Laminat be octamex.de. Ich bin aber bisher ohne ganz gut ausgekommen. Man braucht ihn eigentlich nur bei maschineller Wellenlötung.
Ich verzinne liber die Platinen, das finde ich sinnvoller. Verzinnungsbad gibts auch bei octamex.
Zweiseitig würde ich erstmal vermeiden. Ist komplizierter, und für die Vias gibts immer noch keine wirklich hobbykellertaugliche, gute Methode.
Uwe, danke auch für diese Tipps.
Jetzt werde ich mir wohl erstmal einen Belichter bauen müssen.
So ein LED-Teil finde ich eine gute und recht einfach Sache.
Was meinst du dazu?
Sigo
Noch zu teuer und zu viel Arbeit. Konventionell mit Röhren ist ein Belichter viel schneller aufgebaut.
Inzwischen habe ich mir einen LED-Belichter gebaut ( https://www.roboternetz.de/phpBB2/viewtopic.php?t=34049 ) und den ersten Prototyp meines IR-Radars (eines von max. 6 Modulen) aufgebaut.
Er basiert auf schnellen IR-LEDs und und TSOP-7000, schnellen IR-Empfänger(n) sowie einem ATtiny2313. Die roten LEDs erlauben eine grobe Anzeige der gemessenen Richtung(en). Sie können auch entfallen.
Die IR-LEDs decken einen Bereich von ca. 180° in 13 Segmenten ab. Jetzt muss ich dem Teil "nur noch" Leben einhauchen. Das kann sicher noch etwas dauern..
Hier ein Foto: (Die TSOP-7000 sind von unten montiert)
http://www.silbergold.de/fotos/IR-Radar/IR-Radar_180%b0.jpg
Sigo
Fortschritte:
Stoßstange / IR-Radar:
- Platine ist nun auf Funktion geprüft
- 455kHz Modulation klappt für 14,56 , 16, 18,432 und 20MHz
- Senden von UART-Objekten auf 1 LED funktioniert
- Übertragung mit 19,2 und 38,4kBit möglich
Macht Spaß, mal wieder Assembler zu proggen.
- als nächstes dann die eigenltiche Scan Funktion
- auch eine IR-Datenübertragung wäre mit der Hardware möglich.
Akku-Lader:
fürs Erste tut's der Schnelllader meiner Akkuschraubers.
Ich suche immer noch nach einer 14,4V delta U Schaltung.
Wäre für Link dankbar.
5V-Netzteil:
Für die Versorgung der div. Controller habe ich einen 5V, 2A Step-Down-Konverter mit dem LT1074 gebaut. Der hat einen guten Wirkungsgrad und sollte erstmal reichen.
Drive-Control:
Ich spiele mit dem Gedanken, den Popeller-Chip von Parallax hierfür zu nehmen. Dieser soll dann über 3 RS-232 meine 3Servoregler ansteuern.
Für erste Versuche habe ich mir einen Propeller bestellt. Der kommt heute abend - frei Haus.
Der Drive-Controller bekommt vom Bot-Controller einfach Positionsvektoren und soll diese in die entsprechenden Fahrmanöver umwandeln. Ein Positionsvektor besteht aus x,y,z und dem Drehwinkel des BOT um seine eigene Achse. Bin mal gespannt..
Sigo
Die Stoßstange funktioniert!
Leistungsbedarf ca. 170mW bei ca. 100 Messungen/s
Standby (aktiv aber keine Messung): ca. 70mW
idle: noch nicht implementiert
Anbei ein Foto des IR-Radars auf einem 50x60cm-Blatt:
http://silbergold.de/fotos/IR-Radar/IR-Bumper640pix.jpg
Die Linien zeigen die Schaltschwelle für mattschwarzen Kuli, grauen Fineliner, Hand, weißes Papier für geringe bis mittlere Intensität.
Bei max. Intensität liegt die Grenze für größere Gegenstände außerhalb des Blattes.
Hier noch ein Video:
http://www.youtube.com/watch?v=AAdm9u9GZCo
Da die Richtung erkannt wird, können 2 solcher Teile eine Stereomessung mit grober Positionsbestimmung machen. Die Asymmetrie auf dem Foto rührt von der Ladekurve des PWM-Ladekondensators. Durch andere Dimensionierung und rechtzeitiges Einschalten (und anlassen) tritt das nicht auf.
Die Versuche haben gezeigt, dass ich die LEDs auch direkt mit den Ports ansteuern könnte. Also wird jetzt erstmal eine "Low-Cost-Version" entworfen -kleiner, billiger, einfacher.
Die Software is teils in Assembler, teils in BASCOM ausgeführt.
Eine RS-232-Ausgabe ist ebenfalls implementiert. I2C soll folgen.
Die Low-Cost-Version werde ich mit I2C-Stecker gemäß RN-Standard ausstatten.
Gruß Sigo
Ergänzung zur Stoßstange:
Ich bin gerade mit der IR-Stoßstange bei höherer Intensität durch einen ca. 1,3m breiten Kellerflur gegangen.
Die beiden äußeren LEDs leuchteten, der Rest nicht.
Sobald ich die Mitte verließ oder auf eine Wand zu drehte, sind auf der jeweiligen Seite mehr LEDs angegangen (logisch).
So kann ein Bot sich einfach auch in einem Parcour orientieren.
Ich denke, das Teil könnte eine nützliche RN-Komponenten werden.
Sigo
wow, das klingt echt super! sieht auch faszinierend aus im Video! Und eine Auswertung der Daten wäre schön einfach, da man ja genau weiß in welcher richtung sich ein Objekt befindet.
Weiter viel Erfolg!
Viele Grüße,
William
Klingon77
10.11.2007, 00:03
hi,
bin zwar nicht der Elektronik-Fachmann, freue mich aber mitzulesen, wie der Robby entwickelt wird! :idea: :mrgreen:
Insbesondere die "Stoßstange" hat es mir angetan!
Das finde ich ja mal eine echte Weiterentwicklung zu den herkömmlichen mechanischen Systemen, die eigendlich immer erst ansprechen, "wenn das Kind bereits in den Brunnen gefallen ist"!
Gruß und weiter so :mrgreen:
Klingon77
Lang ist's her, aber nun geht's auch hier wieder weiter.
Die erste Platine des Motorreglers ist nun auch auf ein einseitiges PCB gebannt und läuft.
Daten:
8-40V, ca. 2A oder ca. 3A umschaltbar, Spitzenstrom 5,6 / 11,2A (<2s)
RS-232 (TTL) Schnittstelle @ 38,4kBit/s (wahlweise auch 19,2 oder 9,6kBd)
I2C (z.Zt. nicht implementiert)
2-Kanal-Inkrementalgebereingang bis ca. 100.000Imp./s
+/- 30bit Zähler
Trapez-Drehzahlprofilgenerator mit einstellbarer Beschleunigung und Drehzahl
on Board, +5V Netzteil
thermische Überwachung der Endstufe
Strombegrenzung
Ballastschaltung mit Bremswiderstand zum Abbau von rückgespeister Energie (nur erforderlich, wenn die Endstufe sehr dynamisch betrieben wird und aus einem Netzteil gespeist wird, bei Akkubetrieb speist die Endstufe die Bremsenergie natürlich zurück in den Akku)
Digitaler Servoregler mit ca. 800µs Sample-time
PWM-, Drehmoment-, Drehzahl- oder Positionsregelung mit Rampengenerator oder im Step bzw. Jog-Betrieb
mehrstufige Regelung (unterlagerte Drehzahl- und Stromregelung)
Platine: 45mm x 80mm einseitig
Sigo
Fotos:
http://www.silbergold.de/fotos/SV1/SV1-8-40V-3A-RS232.jpg
http://www.silbergold.de/fotos/SV1/SV1-8-40V-3A-RS232-1.jpg
So, nun sind 3 Servoverstärker fertig.
http://silbergold.de/fotos/Ring-O/SV1-3x.jpg
Links der erste in voller Bestückung, die beiden anderen mit leicht verbessertem Layout und ohne die Bestückung der Ballastschaltung zum Abbau der rückgespeisten Energie (im Akkubetrieb ist das ja nicht erforderlich). Auch das 5V Netzteil könnte noch entfallen, dann wären kaum noch Bauelemente außer dem AVR und dem Endstufen-Chip auf dem Board.
Als nächstes müssen die 3 Antriebe gesagt bekommen, was sie tun sollen.
Dazu habe ich begonnen, mich nun mal mit dem Propeller-Chip von Parallax auseinanderzusetzen.
Dieser besteht aus 8 gleichen 32-Bit-Prozessoren @80MHz, die über einen Ringpuffer miteinander verbunden sind. Also Rechenpower satt. Hehe, man gönnt sich ja sonst nichts. Das ganze kostet gerade mal ca. 15 EUR und ist im 40pol DIL Gehäuse.
Die Prozessoren sollen wie folgt genutzt werden:
1: Kommunikation mit den Antrieben 1-3
2: Kommunikation mit den 3 - 6 IR-Stoßstangen
3: Bewegungskoordination der Achsen
4: Wegplanung etc.
5: div. andere Sensoren
6: frei für Applikation(en)
7:
8:
Das LAyout des Propeller-Boards ist bereits fertig und wird als nächstes bestückt. Bin gespannt.
Sigo
Jetzt ist das Propellerboard auch bestückt:
Es enthält im Wesentlichen den Propeller-Chip mit EEPROM, 4 RN-kompatible Stecker für die Ports, 20 Servostecker, ein paar Status-LEDs und Taster, sowie 5V und 3,3V Spannungsregler.
http://www.silbergold.de/fotos/Propeller/Propellerboard.jpg
Der passende Programmieradapter ist auch schon geätzt, es fehlt leider noch eine Buchsenleiste *grrr*, also dann am Montag mal zum Shop, oder die Flutsch rausholen...
Ach ja, Dank an Hanno, der mir schonmal 2 Testproggies gegeben hat..
Sigo
In den letzten Tagen habe ich mich mit dem Testen der Servoverstärker beschäftigt und sie ordentlich unter Last gestresst. Soweit alles prima.
Hier der Vollständigkeit halber der komplette und aktualisierte Schaltplan des Servoverstärkers:
http://www.silbergold.de/fotos/SV1/Servoverstaerker127.jpg
Jezt komplett mit Netzteil, Ballastschaltung und Suppressordiode.
Der Controller besitzt nun noch 2 Eingänge für eine schrittmotorkompatible Ansteuerung mit Richtung und Takt. So kann ein Schrittmotor emuliert werden, mit den Vorteilen eines Servomotors (geschlossener Regelkreis, leiser). Diese Engänge können auch gleichzeitig mit der RS-232-Ansteuerung verwendet werden. Also z.B. um eine Position anzufahren und dann durch Takten noch einen Feinabgleich vorzunehmen. Oder umgekehrt für ein Teach-In. (Position per Takten anfahren und dann den Positionszähler auslesen und die Position merken..)
Sigo
Ich habe mich nun doch dazu entschieden, einen kleinen 3-Achscontroller auf Basis eines ATmega48 zwischenzuschieben.
Dieser besteht im Wesentlichen nur aus dem ATmega48 und den nötigen Steckern und hat die Aufgabe, Vektoren, die er per RS-232 oder I2C bekommt, in die Fahrkommandos für die 3 Servocontroller umzuwandeln.
Die Programmierung ist noch nicht fertig, aber ein Testprogramm läuft auf dem "Motioncontroller MC1" bereits. Die Antriebseinheit macht hier abwechselnd harte Schritte mit max. Beschleunigung - nur durch den Motorstrom begrenzt - oder sanfte Dreieck- bzw. Trapezrampen mit einstellbarer Beschleunigung. Weiterhin wird die Minimaldrehzahl demonstriert.
http://www.silbergold.de/fotos/Ring-O/SV1.MOV (ca. 10MB)
Sigo
Sehr schön :)
l.G. Roberto
Danke Roberto,
ich war grad mal auf deiner Website. Das CNC - Projekt gefällt mir.
Macht alles einen sehr guten Eindruck.
Evtl. spreche ich dich nochmal darauf an. :-)
Denn natürlich steht auch bei mir eine kleine CNC noch auf der Wunschliste.
Eben habe ich nun das Testprogramm so erweitert, dass es jetzt auch 3 Antriebe (für's Auge) absolut synchron fahren kann.
Morgen werde ich dann mal den eigentlichen Algo proggen. Auf EXCEL läuft er bereits.
Ralf
Vertauen ist gut *) -- Kontrolle ist besser **)
*) in einen Schrittmotor, Motor ohne Weggeber
**) Servomotor
Hallo Sigo
Habe erst jetzt genau geschaut.
Mit welchen Chip steuerst Du den den Motor an?
Der Schaltplan ist leider zu klein, um das zu erkennen.
Mit welchen Regelalgorithmus regelst Du den den Motor?
Ich kenne da ein anderes Selbstbauprojekt (UHU). Da wird es mit modifiziertem PID gemacht..
l.G. Roberto
:-) dass der Schaltplan so klein ist, liegt daran, dass weiter oben im Chat irgendein vorlauter Halbstarker über einen zu großen Schaltplan gemoppert hat. Jetzt gibt es hier nur noch Pläne, die auf's Bild passen. So issas.
Ich habe auf der Endstufe 2 Chips:
1 x ATtiny2313 als mehrstufigen digitalen - Regler
1 x L6205 als Endstufe
Per Jumper kann man wählen, ob der L6205 mit einer Brücke (nominell 2,8A) oder 2 Brücken parallel (nominell 5,6A) arbeitet. Der Spitzenstrom ist jeweils doppelt so hoch. Thermisch dürfte es allerdings eher bei ca. 2,8A / 4A liegen. Ich habe die Grenzen noch nicht ausgelotet.
Der ATtiny kann Inkrementalgebersignale bis ca. 120kHz verarbeiten und macht auch die Quadraturdecodierung und Impulsvervierfachung, sowie den +/- 30Bit Positionszähler.
Der Regler hat eine Sampletime von ca. 800µs.
Die PWM-Frequenz beträgt aktuell ca. 15,5kHz.
Es ist ebenfalls ein modifizierter mehrstufiger PID-Regler. Mit unterlagerter Drehmoment, Drehzahl und Stromregelung. Der Strom wird übrigens nicht gemessen, sonder aus den Systemdaten des Motors etc nur errechnet.
Das spart Schaltungsaufwand, aber man MUSS den Regler sehr gut parametrieren. Wenn das aber erfolgt ist (mit vorhandenen Motorkenndaten kein Problem), kann man den Strom exact auf einige mA genau ermitteln. Als Messwiderstand dient die Motorwicklung..
Da der L6205 über eine eigene Strombegrenzung verfügt, kann zumindest nichts anbrennen, wenn der Regler noch nicht optimal paramtriert ist.
Er hat 4 bzw. 6 Modi:
PWM: einfach fixe PWM ausgeben
Drehmoment: geregeltes konstantes Drehmoment
Drehzahl: geregelte Drehzahl
Position: geregelte Position mit programmierbaren Beschleunigungsrampen und Drehzahl
Servo: übergebene Positionen werden ständig mit max. Power nachgeführt bzw. gehalten.
Sowie Takt+Richtung (TTL):
Hier kann man die Position per Takt und Richtung wie bei einer Schrittmotorsteuerung reintakten.
Die Kommunikation mit dem ATtiny erfolgt via (TTL-) RS-232 @ 19,2kBit/s oder auch 38,4kBit/s. Wenn man einen RS-232-Treiber braucht, kann man den als Modul zwischenstecken, ggf. auch galvanisch getrennt.
Ich hatte versucht, den I2C zu implementieren, dazu fehlt mir aber der Speicherplatz und auch die verbleibende Verarbeitungszeit. Egal, so geht es ja auch.
Gruß Sigo
Hallo Sigo
Es ist ebenfalls ein modifizierter mehrstufiger PID-Regler. Mit unterlagerter Drehmoment, Drehzahl und Stromregelung.
Da bist Du ja gut drauf im Programmieren 8-[
In was programmierst Du und würdest Du den Quellcode eventuell auch weiter geben? O:)
l.G. Roberto
Hallo Roberto,
Programmiersprache:
Assembler, sowas geht bei einem 8-Bitter nur in Assembler, wenn man diese Performance erreichen will
Programmierer:
Geht so. Ich verwende einige Code-Schnipsel und Scipte.
Ich hatte gute 15 Jahre Pause, seit meiner aktiven Zeit in der Entwicklung, von Motorsteurungen und (Brushless-)Motorendstufen. Jetzt fange ich mühsam wieder als Hobby an.
Sourcecode:
Ich verstehe ja deine Frage, aber ...sorry O:)
Jedoch:
Ich könnte dir evtl. geproggte Controller anbieten.
Und ggf. auch unbestückte, ungebohrte, einseitige, selbstgeätzte Platinen.
Bei Interesse PN an mich.
Ach ja, es gibt auch ein Open-Servo-Projekt. (googlen oder hier im Board suchen), da wird ebenfalls ein AVR Controller genommen, um damit digitale Servos mit I²C-Ansteuerung zu bauen. Interessantes open-source Projekt. Evtl. findest du da verwendbaren Code.
Gruß Sigo
Halo Sigo
Ich verstehe ja deine Frage, aber ...sorry
Kein Problem , akzeptiere ich voll.
Konnte es halt einfach nicht lassen und mal fragen O:)
Ich könnte dir evtl. geproggte Controller anbieten.
Und ggf. auch unbestückte, ungebohrte, einseitige, selbstgeätzte Platinen.
Bei Interesse PN an mich.
Danke, aber werde ich nicht brauchen.
Wollte es nur eventuell in eigene Projekte einbinden...
Aber das dauert alles noch...
Jetzt muss ich erstmal meine zweite Fräse (zum Platinenfräsen) fertig machen...
Ach ja, es gibt auch ein Open-Servo-Projekt. (googlen oder hier im Board suchen), da wird ebenfalls ein AVR Controller genommen, um damit digitale Servos mit I²C-Ansteuerung zu bauen. Interessantes open-source Projekt. Evtl. findest du da verwendbaren Code.
Ja, werde mal schauen :-)
l.G. Roberto
2 neue Fotos:
http://www.silbergold.de/fotos/Ring-O/Ring-O-1.jpg
http://www.silbergold.de/fotos/Ring-O/Ring-O-2.jpg
Ich habe die 3 Servoverstärker zusammen mit dem Motioncontroller jetzt auf den Bot montiert. Da die 4 Module irgendwie zusammengehören,habe ich sie auf eine gemeinsame Grundplatte geschraubt. So kann man zum Programmieren die Module ohne das Chassis auf den Tisch legen.
Der Motioncontroller kann nun schon einen Vektor (Länge in mm, Winlel in Grad) in die nötigen inkremente der einzelnen Motoren umwandeln und diese an die Motoren schicken, sodass diese den Punkt anfahren.
Als nächstes muss die Geschwindigkeit aller 3 Motoren noch so errechnet werden, dass sie gleichzeitig ihr Ziel erreichen.
Problem:
Idealerweise sollten auch die Beschleunigungen so abgestimmt werden, dass bei einem trapezförmigen Fahrprofil die Knicke im Geschwingkeit-Zeit-Diagramm (Beschleunigungssprünge) aller 3 Achsen zur gleichen Zeit stattfinden, sodass wirklich eine Linie gefahren wird. Hmm...grübel.... :-k
Any ideas? Ist schon reichlich lange her...
Nächstes Ziel:
Ein Video, auf dem der Bot endlich ein paar Figuren fährt.
Z.B. ein Quadrat, Dreieck und (hoffentlich) auch einen Kreis (360-Eck).
Perspektive:
Sensor-controller, der die div. Sensorsignale vorverarbeitet.
(3 bzw. 6 IR-Bumper, 1 Sharpsensor, 1 Rundumbumper, 2 US-Sensoren...
Mission-controller, der mit den Sensorsignalen und dem Motioncontroller irgendwas (un-)sinnvolles anfängt...
Sigo
Erste Bewegungen:
http://www.silbergold.de/fotos/26022008-13s.mov
Zunächst nur 3-Eck und Rotation :-b
Die Motorauslegung passt.
Gewogen habe ich ihn auch: 2,1kg
EDIT: Hier noch ein längeres Video (30MB):
http://www.silbergold.de/fotos/26022008.mov
Sigo
Ich habe mich jetzt mal an einem Quadrat 100mm x 100mm versucht:
http://www.silbergold.de/fotos/29022008quadrat.jpg
Mehr war auch nicht zu erwarten, denn die Motoren drehen sich nicht synchron, sondern fahren alle ein eigenes Bewegungsprofil, nur die Positionen sollten wieder stimmen. Zwischendurch gibt es gravierende Verschiebungen, d.h. über die Zeit fahren die Motoren keine zueinanderpassenden Positonen oder Drehzahlen an.
Daher auch der Schwung in den Linien.
Aber das ist ja auch nur ein Anfang..
Sigo
Hallo Sigo
Gratuliere!!
Schaut ja gut aus :-)
Fehlt vielleicht noch so eine Lasermaus zur Positionsbestimmung ;-)
Wie lässt Du das eigentlich berechnen ? Algorithmus?
Ich bin da mal bei meinen Roboterarm nicht weiter gekommen.
Da hätte ich auch für jede Achse den richtigen Winkel berechnen müssen, dass der Arm z.B. senkrecht nach unten fährt..
Vielleicht mache ich da irgendwann mal weiter...?!
l.G. Roberto
@ Roberto:
Ich habe die folgende Formeln irgendwo gefunden, um die Drehzahlen der 3 Räder zu berechnen:
V0 = Vx - omega * R
V1 = -1/2 * Vx + Wurzel (3) / 2 * Vy - omega * R
V2 = -1/2 * Vx + Wurzel(3) / 2 * Vy - omega * R
Vx und Vy sind die x- und y-Komponenten des Geschwindigkeitsvektors
V0, V1, V2 die Geschwindigkeiten (umzurechnen in Drehzahlen) der 3 Räder.
Der letzte Term (- omega * R) ist der Drehwinkel * Radius des Rades zur Fahrzeugmitte. Damit wird eine Rotation des Bots umseine Achse beschrieben. Diese lasse ich erstmal weg, bzw. mache das nicht gleichzeitig.
Mein aktuelles Problem ist, dass ich die Räder nicht im Drehzahlmodus betreibe, sondern im Positioniermodus. Ich kann natürlich auch statt der Geschwindigkeit (Drehzahl) Positionen eingeben. Diese verhalten sich ja theoretisch genauso, wenn man von einer konstanten Geschwindigkeit ausgehen könnte.
Wenn du genau hinsiehst, kann man feststellen, dass 2 Strecken ziemlich gerade sind, die beiden anderen aber geschwungen. Das liegt daran, dass 2 Strecken mit 2 Rädern gefahren werden, die die gleichen Wege fahren. Dagegen werden die beiden anderen Strecken mit 3 Rädern gefahren, die alle unterschiedlich weit fahren. Ich kann aber aktuell noch nicht die Drehzahl und die Beschleunigungsrampe so berechnen, dass alle 3 Achsen gleichzeitig ihre Fahrt beenden, zur gleichen Zeit (Weg) ggf. von Beschleunigen auf konstante Geschwindigkeit gehen, etc..
Evtl. wäre es ja besser, alles im Drehzahlmodus zu machen und selbst einen Generator für die Drehzahl (t) - Sollkurve zu erstellen, sodass dann alle 3 Achsen möglichst oft eine neue berechente Solldrehzahl bekommen und so immer im richtigen Verhöltnis zueinander drehen.../ fahren, ankommen...Dann wird es auch ein schönes Viereck und ich kann mich an das Haus vom Nikolaus machen...
Tja, meine Unizeit ist schon 20 Jahre her....
Daher erstmal ein paar andere Arbeiten:
IR-Bumper montieren, eine Akkuüberwachung und-ladeschaltung entwerfen und vor allem bessere Räder besorgen.
Zu den Roboterkoordinaten weiß ich nur noch, dass da viele Matrizen reinspielen. Rechnen könnte ich das auch nicht mehr.
Dazu wird sich doch sicher was im Web finden. Hast du z.B. schon unter Wikipedia z.B. unter Scara-Roboter geschaut?
Offenbar hängen wir an einem ähnlichen Problem fest..
Wenn ich was finde, maile ich es dir.
LG Sigo
Ach ja, die Lasermaus würde mich auch sehr interessieren, bzw. genauer gesagt gleich 2 davon. Denn ich möchte ja auch den Drehwinkel erfassen.
Eine andere Möglichkeit wären 2 bzw, 3 weitere kleine Omniwheels in x/y-Anordnung mit Inkrementalgebern, die in der Mitte des Bots mit ihrem Eigengewicht an einer vertikalen Führung gegen den Boden drücken und dann wie eine klassische Maus arbeiten würden. Laser ist aber natürlich eleganter.
Heute habe ich mal meine Papp-"Arena" mit Silikon gespachtelt. Da funzt alles gleich gaaanz anders und ich brauche erstmal keine anderen Wheels zu kaufen. Ob ich die 60 EUR ausgebe, mache ich von meinen Programmiererfolgen abhängig. Sonst wird das Thema Omni auf unbestimmt verschoben, und die Module anderweitig verwendet.
Beim Spachteln kam mir die Idee, aus der großen Pappe wirklich eine Arena zu machen. Sie bekommt jetzt eine Bande, und der Bot seine elektronische(n) Stoßstange(n).
Sigo
mare_crisium
03.03.2008, 14:53
@sigo und Roberto,
hier ist eine Literaturstelle, die für Navigationsfragen hilfreich sein könnte (wenn auch ein bisschen theoretisch).
http://epubl.ltu.se/1653-0187/2007/075/index.html
Besonders die Seiten 29ff sind in Hinblick auf die Navigation interessant. Ausserdem wird auch das Kalmanfilter ganz gut erklärt.
Wenn's um den Einsatz zweckentfremdeter Optischer Mäuse geht, dann ist das hier
https://txspace.tamu.edu/bitstream/handle/1969.1/375/etd-tamu-2003A-2003032714-Sore-1.pdf?sequence=1
interessant, weil mit praktischen Experimenten und Quellcode. Wär' doch schade, Sigo, wenn Dein schöner Bot nur im Käfig herumtigern dürfte.
mare_crisium
Mare_crisium,
danke für die beiden sehr interessanten Links, ich habe schon eine gute Stunde geschmökert. Und gleich haben sich ein paar interessante Ideen gemeldet, die jetzt genauer durchdacht werden müssen.
Sigo
Unten noch 3 Fotos von heute:
http://www.silbergold.de/fotos/Fehler1.jpg
http://www.silbergold.de/fotos/Fehler.jpg
http://www.silbergold.de/fotos/Dreiecke.jpg
Das Dreieck hat eine Solllänge von 300mm, ist ist irgendwas bei 306mm.
Das kann kann man ja noch skalieren. Offenbar gibt es auch noch einen systematischen Fehler, da die Drift in eine bestimmte Richtung geht. Mal sehen, ob sich das noch verbessern lässt..
Gripp hat die Arena jetzt definitiv genug.
Sigo
mare_crisium
05.03.2008, 23:45
Sigo,
freut mich, dass Du die Texte auch so gut fandest :-). In Hinblick auf die Navigation berate ich Dich gerne. - Muss mich ja noch für Deine Unterstützung beim CNY 70 revanchieren...
Das zweite Deiner Bilder zeigt ja einen sehr interessanten Schlenker. -Sieht aus, als habe einer der Motoren eine etwas andere Kennlinie und fährt deshalb verzögert an. Oder fährst Du sie drehzahlgeregelt hoch?
mare_crisium
Hallo Mare_crisium,
alle Antriebe sind dgtital drehzahl- und lagegeregelt.
Sofern alle Inkrementalgeber einwandfrei funktionieren, sollte der Weg eigentlich stimmen. Ich muss nochmal kontrollieren, ob auch die Regelparameter in allen Endstufen gleich eingestellt sind. Vielleicht "federt" eine zu sehr durch.
Mir ist jedoch aufgefallen, dass die Räder nicht wirklich perfekt mit der jeweiligen 120°-Achse fluchten.; 1-3° könnte der Fehler schon betragen.
Ich werde versuchen, sie noch etwas besser zu justieren und den Rest per Software zu kompensieren.
Weiterhin habe ich schon die geringe Gewichtsdifferenz auf Störquelle ausgemacht. Wenn ich gegenüber der Platinen ein Gegengewicht anbringe, wird es merklich besser. Das könnte in der Beschleunigungsphase einen Einfluss haben; auf den Schlupf und auch auf die Regelabweichungen.
Evtl. kehre ich doch zu dem ursprünglich geplanten streng symmetrischen Aufbau zurück und baue die 3 Endstufen auch jeweils auf 120°. Die Ursprüngliche Idee, die Endstufen gleich mit an die Radmodule zu bauen, habe ich verworfen, weil sie doch nicht klein genug geworden waren. Evtl. ließe sich das aber mit SMD noch machen.
Navigation:
Ich denke für den Anfang (ohne Sensoren) komme ich mit den Ergebnissen von heute schon einigermaßen klar.
Wenn man die Hauptfahrrichtung so wählt, dass der Bot wie ein Differentialbot mit 2 Antrieben fährt (3. Rad rollt quer), könnte ich z.B. das 3. Rad in den Leerlauf schalten und mit dem Inkrementalgeber den Rotationswinkelfehler messen, und ausregeln. Wenn dann eine Verdrehung durch unterschiedlichen VOrtrieb auftritt, wird das 3. Rad verdreht und man kann die Abweichung wieder zu Null regeln. Das könnte den Geradeauslauf verbessern.
Ansonsten wird es eh nicht ohne externe Positionsmarken (Baken) gehen.
Der Omnibot ist ja eh nicht für den rauhen Einsatz geeignet. Ich denke, das Maximum wird unsere Terrasse werden. Ein definiertes Terrain.
Der könnte man prima rundum eine LED-Beleuchtung verpassen, der man nicht ansieht, dass sie in Wirklichkeit Positions-Codes sendet.. *gg*.
Insgesamt denke ich schon, dass die Omniwheels prinzipiell Schwächen haben, da die Querrollen einfach zu klein sind. Evtl. baue ich mir noch 2 Radmodule und einen Differential-Bot. (ala Asuro & Co.)
mare_crisium
09.03.2008, 21:30
Sigo,
ja, wir müssen wahrscheinlich unser ganzes Amateurleben lang mit grösseren Fertigungstoleranzen leben. Jedenfalls solange wir nicht über das Geschick und einen Maschinenpark wie Klingdon77 verfügen :-). Ich glaube aber, dass man das durch ein ausgefeiltes und gut programmiertes Regelkonzept weitgehend ausgleichen kann.
Um einen Schlenker in dieser Grösse zu erzeugen, genügt schon die endliche Genauigkeit der Graycode-Scheibe (wenn sie direkt am Rad montiert ist) bzw. das Getriebespiel (wenn die Scheibe zwischen Motor und Getriebe sitzt).
Ich glaube, dass Du eine starke Verbesserung erreichst, wenn du als Istwert-Geber für den Ortsregler einen Maussensor verwendest, der direkt die Ist-Verschiebungen über Grund erfasst. Weil ich an einem ähnlichen Problem herumbastele, habe ich mir ein paar billige PS/2-Mäuse von P* besorgt. Jetzt bringe ich meinem ATmega8 das PS/2 Protokoll bei, damit er das Teil anzusteuern kann. Anschliessend werde ich versuchen, ihm mit Linsen von Astroversand eine "Brille" zu verpassen, damit er etwas weitsichtiger wird. Wenn Du Interesse hast, kann ich Dich über den Fortschritt auf dem Laufenden halten.
Navigation: Vielleicht kannst Du die Fähigkeit Deines Bots, ohne zu wenden in alle Richtungen fahren zu können, doch erhalten. Etwas kompliziert ist das Regelkonzept, weil es aus den Regelabweichungen (z.B Zieldistanz, Fahrtrichtung, Fahrtgeschwindigkeit) die Stellsignale für drei Motoren erzeugen muss. Das ist aber lösbar.
mare_crisium
Sigo,
ja, wir müssen wahrscheinlich unser ganzes Amateurleben lang mit grösseren Fertigungstoleranzen leben. Jedenfalls solange wir nicht über das Geschick und einen Maschinenpark wie Hubert G. verfügen :-). Ich glaube aber, dass man das durch ein ausgefeiltes und gut programmiertes Regelkonzept weitgehend ausgleichen kann.
Ich auch.
Um einen Schlenker in dieser Grösse zu erzeugen, genügt schon die endliche Genauigkeit der Graycode-Scheibe (wenn sie direkt am Rad montiert ist) bzw. das Getriebespiel (wenn die Scheibe zwischen Motor und Getriebe sitzt).
Die Inkrementalgeber sind direkt am Motor montiert und haben über alles eine Auflösung von ca. 38.500 Inkr/m. Dahinter kommen natürlich Getriebe, Zahnriemen und auch das Seitenspiel der Omniwheels.,,,
Ich glaube, dass Du eine starke Verbesserung erreichst, wenn du als Istwert-Geber für den Ortsregler einen Maussensor verwendest, der direkt die Ist-Verschiebungen über Grund erfasst. Weil ich an einem ähnlichen Problem herumbastele, habe ich mir ein paar billige PS/2-Mäuse von P* besorgt. Jetzt bringe ich meinem ATmega8 das PS/2 Protokoll bei, damit er das Teil anzusteuern kann. Anschliessend werde ich versuchen, ihm mit Linsen von Astroversand eine "Brille" zu verpassen, damit er etwas weitsichtiger wird. Wenn Du Interesse hast, kann ich Dich über den Fortschritt auf dem Laufenden halten.
Super, halte mich bitte auf dem laufenden.
Navigation: Vielleicht kannst Du die Fähigkeit Deines Bots, ohne zu wenden in alle Richtungen fahren zu können, doch erhalten. Etwas kompliziert ist das Regelkonzept, weil es aus den Regelabweichungen (z.B Zieldistanz, Fahrtrichtung, Fahrtgeschwindigkeit) die Stellsignale für drei Motoren erzeugen muss. Das ist aber lösbar.
mare_crisium
Ja, mit geeingenten Messwerte für die Korrektur, wäre das ja kein so großes Problem, da ich ja jetzt auch meine Zielwerte als Vektor hinterlege und dann die Komponenten für die Antriebe berechne. Natürlich kann man vorher den n+1. um den Fehler korrigieren, wenn man ihn denn kennt oder gut schätzen kann.
Sigo
Angeregt durch den WALL-E Thread von Hanno, habe ich mich entschieden, meinem Ring-O zunächst das Verfolgen (m)einer Person beizubringen. Dies wird das Herbstprojekt(chen) werden.
Ich werde hierzu auf meinem IR-Bumper aufsetzen, der weiter oben erwähnt wurde.
Materialbedarf:
8 - 16 IR-LEDs, 1-2 TSOP, 2 ATtiny2313 + ein wenig "drumherum"
Reichweite: ca. 4-10m
Energiebedarf
Sender: ca. 100mW
Empfänger: ca. 50mA
ggf. zusätzlich 1 Ultraschallsensor
Ring-O bekommt jetzt ein weniger mehr Prozessorleistung
:-b
Ein AVR32-UC3A1512-Modul, heut' bestellt:
http://shop.embedded-projects.net/product_info.php?info=p96_Atmel-AVR32-UC3A1512-Adapterplatine.html
Was mir an dem Modul neben der Rechnenleistung und der Sparsamkeit gefällt, ist, dass es reichlich Schnittstellen gibt.
Dieses Modul soll folgende Aufgaben erledigen:
Bahnsteuerung für die 3 Antriebsregler, div. Sensoren integrieren, sowie mit einem Host kommunizieren.
Dieser kann sowohl on Board des Robots sein (unixsystem), als auch ggf. über Funk angebunden sein.
Am Anfang wird die Einarbeitung / Auffrischung in C sowie diese neue Prozessorarchitektur stehen.
Sigo
Klingon77
13.01.2009, 23:40
hi sigo,
gibt es neues bei Deinem Robby?
Konntest Du die Bahnsteuerung und die Genauigkeit steigern?
liebe Grüße,
Klingon77
Hi Klingon,
leider habe ich noch nicht so viel gemacht, wie geplant. Die Genauigkeit habe ich ein wenig verbessert, der Rest dürfte jetzt teilweise an den mechanischen Toleranzen liegen. Also Fluchtfehler bei der EInhaltung der 120°-Winkel, ggf. auch unterschiedliche Radien der Laufbahnen zum Mittelpunkt. Da es sich um Doppelräder händelt, spielt es ja schon eine Rolle, ob das äußere Rad oder das innere Rad mehr treibt. Auch hier spielen natürlich die mechanischen Begrenzungen meiner Konstruktion mit rein.
Ich bin zu dem Schluss gekommen, dass hier wohl zuviel Ehrgeiz nichts bringt. Sondern, dass ich dann wohl eher unabhängig messen müsste (z.B. Maussensor usw..) um mehr zu erreichen.
Die Bahnsteuerung hab ich noch gar nicht begonnen.
Momentan befasse ich mich mit den Funkmodulen, die in der letzten Elektor vorgestellt wurden.
Aber danke der Nachfrage ;-) - und für's wachrütteln, mal wieder weiter zu machen.
Liebe Grüße
Sigo
Hallo leute ich möchte eine cnc maschine,fräse bauen und eine servosteuerung verwenden könnt ihr mir die motorensteuerung genauer erklären
Mfg.urs
Nach langer Zeit gibt es jetzt mal wieder ein Foto:
http://www.silbergold.de/fotos/Ring-O.jpg
Inzwischen verfügt der Roboter über 2 Maussensoren (entwickelt von mare_crisium) ,die ihrer Live-Erprobung harren und ein 2. Deck für ein kleines Netbook.
Nun geht es daran, diese Komponenten ans Zusammenspielen zu bekommen...
Ist hier zufällig jemand aus dem Bereich BO, EN, DO, E der Lust hat, hier einzusteigen? Bittte ggf. PN an mich.
sigo
Moin moin.
Verfasst am: 21.03.2007, 22:43
Verfasst am: Heute um 09:01
Das nenne ich Durchhaltevermögen. :-)))
Glückwunsch!!!
Gruß Richard
Hallo Sigo
Kennst Du schon die Omni von Segway ?
http://rmp.segway.com/
l.G. Roberto
Roberto, danke für den Link.
Nein, ich wusste gar nicht, dass Segway auch Robotikkomponenten anbietet.
Sigo
Hallo Sigo
Was mich am meisten wunderte:
Ich habe vor einigen Monaten mal im Mythbuster einen Hubstapler gesehen der hatte auch Omni.
Hatte ich noch nie gesehen. Macht aber bei einem Hubstapler sicher am meisten Sinn!
Der Stapler schaute schon ein wenig älter aus. Also dürfte es das schon länger geben?!
Fragt sich nur ob das mit den großen Gewichte und den Omni auch gut geht..?
Oder vielleicht sieht man wegen diesem Problem fast keine ?
Hier noch was gefunden..
http://robotics.ee.uwa.edu.au/eyebot/doc/robots/omni.html
l.G. Roberto
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.