PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Quadraturencoder mit Gabellichtschranken und Zahnrad



mausi_mick
27.12.2010, 15:58
Hallo,

da ich mich in der letzten Zeit etwas von den Modul 0,5 Zahrädern Richtung Modul 1 Zahnrädern bewegt habe, kam mir der Gedanke, ob man die relativ grossen Zähne / Zahnlücken nicht auch für einen Quadraturencoder als Encoderscheibe verwenden kann.

Bei Pollin ist mir eine Gabellichtschranke mit Schmitt-Triggerausgang aufgefallen, die mir - neben dem Preis - auch wegen des schmalen Strahls (0,5 mm ) gefiel: TCYS 5201.

Modul1 Kunststoffzahräder hatte ich noch einige mit 30 Zähnen und ca 31,5 mm Aussendurchmesser, einziger Nachteil war die Breite mit über 6mm, die ich mit Feilen/Schmirgeln auf unter 5 mm bringen musste, damit die Gabeln darüber passten.
Montiert hab ich das Rad zuerst provisorisch in einem Aluwinkel, hinterher hab ich der Messing-Achse Kugellager spendiert.

Die Befestigung der Gabellichtschranken ist recht kritisch, da die optische Achse etwa auf Zahnhöhenmitte liegen muss ( ca 50%Tastverhältnis), andrereseits der Abstand der Sensoren zueinander von 90° bzw. n x 360° + 90° betragen muss, d.h. um eine halbe Zahnbreite versetzt (bzw. nx(Zahn+Zahnlücke) + halbe Zahnbreite) montiert werden muss, um das mit Gray-Code auswerten zu können. Durch die Abmessung der Gabellichtschranken hab ich sie in einem Winkel von ca 39 ° (3 *12° + 3°(für halbe Zahnbreite)) zueinander angebracht.
Beim ersten Test hab ich sie an dem Seitenfläche eines Alu-U-Profils befestigt, bei der endgültigen Version hab ich Löcher in den Boden des Profils eingearbeitet, um dort die Schenkel der Gabellichtschranken einzulassen. Verklebt hab ich das dann mit 2-Komponenten-Kleber.

Das Programm dazu ist in meiner Programmierumgebung (ASURO V2.8.0)
entstanden, der spezif. C- Code stammt grossenteils von Peter Danneger ( mikrokontroller.net). An dem ATmega8 hängt noch über I2C der Beschleunigungssensor BMA020 und ein Mini-LCD von Pollin.
Ich benutze für den Decoder den Interrupt0 (8-Bit) und hab so noch Interrupt1 für PWM frei. Die Ausgänge der Gabellichtschranken, die TTL-Signal liefern, liegen an Pin12/PIN13 (PD6/7), die als Eingänge beschaltet sind.

Anbei noch ein paar Fotos vom Aufbau.
Ein Video ist fehlgeschlagen, man konnte die Ziffern auf dem Display leider nicht erkennen.

Gruss mausi_mick

mausi_mick
27.12.2010, 17:49
hallo,

mittlerweile hab ich es doch geschaftt, ein - wenn auch qualitativ recht mieses - Video hochzuladen.

Auf dem Display wird das Quadraturencoderergebnis in der oberen Zeile links ausgegeben (der "natürlich" am schlechtesten erkennbare Wert). Die anderen Daten stammen noch von dem Beschleunigungssensor BMA020,
der oben rechts im Bild zu erkennen ist.

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



Gruss mausi_mick

mausi_mick
31.12.2010, 13:17
hallo,

hab den Encoder noch etwas kompakter aufgebaut, mit einem Modul1 Kunsstoffzahnrad mit 20 Zähnen (von 6mm auf 4,2 mm Zahbreite gefeilt, um zwischen die Gabellichtschranken zu passen). Pro Umdrehung erhalte ich dann 80 Impulse, die auf dem LCD-Display links oben ausgegeben werden (auf dem Video besser erkennbar). Damit erhalte ich dann eine Positionierungsgenauigkeit von etwa +-0,84 mm.

http://www.youtube.com/watch?v=8X0PdtULMro


Gruss und einen

guten Rutsch

mausi_mick

PICture
31.12.2010, 17:04
Hallo!

Dein sparsames, erfolgreich aufgebautes und ausprobiertes Konzept gefällt mir sehr, weil ich auch immer einfachste Lösung suche ...

Weiter so in allen kommenden Neuen Jahren ... :)

MfG

mausi_mick
04.01.2011, 17:20
Hallo PICture

Dank für die Blumen !

Mit "sparsam" hast Du wohl recht, bei 25 Cent pro Gabellichtschranke
incl. Schmitttrigger.

Hab als Antrieb für das "Sensor"-Rad einen kleinen krächzenden Getribemotor angebaut und das ganze auf eine Zahnstange gesetzt.
Per Programm gesteuert fährt das Gebilde 80 Impulse (20 Zähne) nach rechts ,
um dann in die entgegegengesetzte Richtung zu fahren.
Das ganze muss ich noch etwas verfeinern (z.B. langsames abbremsen),
damit die gewünschte Position nicht überfahren wird.

Hier noch ein kleines Video zu der "Testfahrt"

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


Gruss mausi_mick

PICture
04.01.2011, 18:22
Hallo mausi_mick!

Gefällt mir! :)

Am einfachsten und sparsamsten ist, falls wegen nötigen Drehmoment möglich, die Versorgungsspannung für den Motor zu sinken, wenn du Glück hast, wird der Motor kostenlos leiser. ;)

MfG

Manf
04.01.2011, 20:15
Das ist immer eindrucksvoll, wenn etwas dann wirklich funktioniert.
Das Geräusch ist noch nicht ganz so überzeugend. Wenn die Anlage komplexer wird und der Teil zuverlässig arbeiten soll, sollte man etwas nachjustieren.

mausi_mick
05.01.2011, 04:25
Hallo,

die Drehzahl / Geschwindigkeit beeinflusse ich über PWM (OC1A Atmega8 , Timer1 (ähnlich wie beim ASURO), hab nur eine andere H-Brücke (TLE5205 von Inf.)). Die Quad-Encoder Gabel-LS ( hängen an PIN12/13 (PD6/7) ATmega8 ) werden über Timer0 ausgewertet (Overflow0).

Die Information , welche Position angefahren soll, kommt wohl demnächst ?
von Neigungs/Beschleunigungssensoren (analog MMA7260 an PIN27 (ADC4 / PC4 bzw. digtal BMA020 über I2C) und eventuell Gyro (ENC03).

Ausserdem ist angedacht, die Pos.-Werte auch von aussen vorzugeben
(IR-Schnittstelle mit TV-Fernbedienung über RC5). IR läuft ASURO-like über Timer2.

Im Video ist ein Teil der HW-Komponenten (Beschleunigungssensor BMA020, IR-Schnittstelle) zu sehen.

Das etwas ätzende Geräusch kommt von dem billigen ? Getriebemotor.
Ich weiss nicht, ob da justieren hilft, besser ist wohl : entsorgen.

Gruss mausi_mick

mausi_mick
05.01.2011, 07:05
Hallo,

hab mal , um die Ohren/Nerven zu schonen, einen anderen/kleineren/besseren Getriebemotor angebaut.


Dazu

- ein Video ohne "Transportmasse"

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

- ein Video mit "Transportmasse" von ca 450 g

http://www.youtube.com/watch?v=M-PFCOZxOEQ

- die verwendete Test-Transportmasse

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

Gruss mausi_mick

PICture
05.01.2011, 17:51
Hallo!

Gratulation, jetzt hört sich das viel angenehmer an ! :)

Vielleicht könnte man den Geräuschpegel noch durch z.B. Gummiauflagen auf "Schienen" bzw. Räder dämpfen.

Wärest du nur durch Diskussion zu dem besseren Ergebnis gekommen ? ;)

MfG

mausi_mick
07.01.2011, 16:32
hallo,

Hab mal die Vorgabewerte für den Linearantrieb von den Beschleunigungssensoren genommen,
mit dem BMA020 fuhr das Gerät nur ruckweise, da die I2c - Mimik und die LCD-Ausgabe recht zeitaufwändig war.
Mit dem Analog-Sensor MMA7260Q geht es (ohne LCD-Anzeige) besser.
Ich werte nur die y-Achse aus. Durch Drehen des Sensors um +-90%
bewegt sich das Fahrzeug von der Mittelposition zu den jeweiligen Aussenpositionen ((ca +-120 mm). Bei erreichen der Sensorwerte stoppt
der Antrieb.

Anbei noch ein Video:

http://www.youtube.com/watch?v=4kCwrYdwkWY

Gruss mausi_mick

mausi_mick
11.04.2018, 04:13
hallo,

hab mich mal wieder - geplant für einen Staubsauger Roboter - mit Qudratur-Encodern beschäftigt.
Als Encoderscheibe dien ein M=0.5 Zahnrad mit 32 Zähnen. Das Zahnrad ist direkt auf der Motorachse montiert, ich verwende einen Motor mit "durchgehender" Achse, sodass
ich mehr Platz für den Encoder und eine Schmierölfreie Umgebung habe.
Über dem Zahnrad auf Höhe der Zähne (Justage etwas kritisch) fixiere ich die beiden Encoder mit Versatz von n x 90° (n=1,3,5,...).
Als Lichtschranke verwende ich welche mit integtriertem Schmitttrigger.
Die Justierung erfolgt mithilfe eines 2 Kanal-Oscis.



https://www.youtube.com/edit?video_referrer=watch&video_id=RrN5hlMG07o

Searcher
11.04.2018, 07:04
Hallo,
das Signal sieht ja sehr gut aus. Wie heißen die Gabellichtschranken genau?

Gruß
Searcher

PS: Dein Videolink geht nur, wenn man ihn vorher als Nicht-Youtube-Accountbesitzer editiert.

mausi_mick
11.04.2018, 07:42
Hallo Searcher,

das sind TCYS 5201 von Pollin (ca 25 Cent), der Motor ist ebenfalls von dort( ("vibratormotor"), er ist recht hochohmig (Ri ca 30-40 Ohm). Hat aber den Vorteil, dass ich mit einfachen H-Brücken (hier IXDN604) auskomme und auch die Betriebsspannung (gewählt 12V) für 2 Motoren mit einem MT3608 aus einer LION-18650 Zelle generieren kann.

Der folgende Link geht vielleicht besser:

https://www.youtube.com/watch?v=RrN5hlMG07o&feature=youtu.be

mausi_mick
13.04.2018, 11:44
Hab eine 2. Version aufgebaut, die in den Saugroboter besser zu integrieren ist. Auch wollte ich mal sehen, wie reproduzierbar das ist.
Versuche mit einem roten M=0.5 Zahnrad mit 48 Zähnen hab ich abgebrochen, da das Rechtecksiganl instabil war. Mit einem grauen Zahnrad bekomme ich bessere Ergebnisse, doch ist die Montage / Justage der Optokoppler noch immer unbefriedigend. Ich werd mal eine Kreissegment Halterung bauen, mit der man die Sensoren besser auf den Teilkreis (Zahnmitte) ausrichten kann.

https://www.youtube.com/watch?v=7f-NRrsg4Z0&feature=youtu.be

oberallgeier
13.04.2018, 13:36
.. Versuche mit einem roten M=0.5 Zahnrad mit 48 Zähnen hab ich abgebrochen, da das Rechtecksiganl instabil war ..Instabile Signale hatte ich mit einer MiniGabellichtschranke auch gehabt (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=381383&viewfull=1#post381383). Soger mit einer auf eine (Getriebe-) -Welle aufgeschobenen Encoderscheibe mit 1 Schlitz (zum Aufschieben) und drei Löchern - alles jeweils um 90° versetzt. Durch Tiefersetzen der Gabellichtschranke in Richtung Encoder-Mitte war ohne Zusatzbeschaltung und selbst bei hoher Drehzahl das Signal einwandfrei geworden (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=381766&viewfull=1#post381766). Bei Nur-Zähnen wars nie so schön :-/

PS: Schön, wieder von Dir und Deinen Aktivitäten zu lesen!

mausi_mick
13.04.2018, 14:57
Hi Oberallgeier !

Ich vermute bei Deiner Lichtschranke war kein Schmitttriger integriert. Bei meiner mit integriertem Schmittrigger bekomme ich ein sauberes Rechteck, nur variiert bei manchen Zahnrädern die Pulsbreite je nach Zahn bzw. Zahnlücke.
Bei dem grauen Zahnrad sieht das besser aus, wobei der Versatz zwischen den Signalen auch keine 90° ist.
Ich vermute , dass sich - wenn ich die Sensoren nicht direkt nebeneinander (90°) setze sondern fast entgegengesetzt (23 Zähne ?) - summieren sich die Abweichungen/Fertigungstoleranzen.
Ich werd mal als nächstes versuchen, die Sensoren näher zueinander zu positionieren (>6mm etwa fünf Zähne, weniger geht wegen der Breite der Gabellichtschranken nicht). Vielleicht sind dann die Signale besser.

Klebwax
13.04.2018, 16:27
Ich vermute bei Deiner Lichtschranke war kein Schmitttriger integriert. Bei meiner mit integriertem Schmittrigger bekomme ich ein sauberes Rechteck, nur variiert bei manchen Zahnrädern die Pulsbreite je nach Zahn bzw. Zahnlücke.
Bei dem grauen Zahnrad sieht das besser aus, wobei der Versatz zwischen den Signalen auch keine 90° ist.

Einen Schmittriger kann man auch hinterherschalten z.B. einen 74HC14. Manche Prozessoreingänge haben auch Schmittrigger eingebaut.

Welchen Versatz die Signale haben und und wie ihre Pulsbreite ist, spielt keine Rolle solange folgende Bedingung erfüllt ist: bei einer Drehrichtung kommen die Signalflanken immer abwechselnd auf beiden Kanälen.

MfG Klebwax

Searcher
13.04.2018, 16:33
das sind TCYS 5201 von Pollin (ca 25 Cent)
Danke für die Info. Die gibt es bei Pollin immer noch. Bin drauf und dran mir die auch zu bestellen. Zahnradabtastung ist bei mir bisher an zu großen Zahnrädern bzw vorhandenen zu kleinen Gabellichtschranken (aus Floppylaufwerken u.ä.) gescheitert.


Der folgende Link geht vielleicht besser:
https://www.youtube.com/watch?v=RrN5hlMG07o&feature=youtu.be
Ja, geht :rolleyes:



Ich werd mal als nächstes versuchen, die Sensoren (http://www.rn-wissen.de/index.php/Sensorarten) näher zueinander zu positionieren (>6mm etwa fünf Zähne, weniger geht wegen der Breite der Gabellichtschranken nicht). Vielleicht sind dann die Signale besser.
Ich denke, daß es egal ist, ob die Flanken genau um 90° versetzt sind. Dadurch könnten zwar ganz minimale Meßungenauigkeiten entstehen, die aber ziemlich sicher vernachlässigbar sind. Man muß hauptsächlich drauf achten, daß die Flanken von A und B immer minimal soweit auseinander sind, daß das Meßprogramm genügend Zeit zur Auswertung hat und natürlich, daß auch jede Flanke von den Lichtschranken erfaßt wird.

Gruß
Searcher

i_make_it
13.04.2018, 18:58
Der 90° Versatz zwichen A und B-Kanal sind bei Positionsregleung und bei langsamen Drehzahlen bei Drehzahlregelung wichtig. Wenn es nur um Odometrie geht, wird der Messfehler der durch den Versatz entsteht alle 180° pro Kanal ausgeglichen.

mausi_mick
14.04.2018, 01:54
Mit Untersetzung (Raddurchmesser 46mm) macht der Roboter pro Motorumdrehung ca 40 mm, mit den 48 Encoderzähnen komm ich wohl auf eine Schrittweite/Positionsgenauigkeit von unter 1mm, das dürfte wohl für einen Saugroboter reichen !
Ab und an muss er sich dann mit einem VL53L0X ;) oder besser VL53L1X :) erkundigen, wo er sich genau befindet .


Jetzt muss ich aber mal was zu dem geplanten Saugroboter sagen:

- nur für glatte Böden ausgelegt
- nur Sauger, ohne Bürsten (bis auf denen in den Motoren :) ! )
- relativ klein, angestrebter Duchmesser unter 20 cm / Höhe ca 10 cm
- Betrieb mit nur einer ? 18650 Zelle (10 Wh)
- Betriebsdauer ca 1h
- extrem leise
- gezielte Reinigung durch Abarbeiten nach Raumkoordinaten

Ich werde daher ein 3/4 rädriges Fahrzeug bauen mit zwei angetriebenen Rädern links und rechts und einem Hilfsrad hinten.
Auf das vordere Stützrad verzichte ich, da das Fahrzeug eine leichte Neigung nach hinten hat (z.T. durch den Akku).
Die drei Räder sind auf einem gedachten Kreis angeordnet, daher kann das Fahrzeug (wie ein Panzer) um seine Achse drehen.
Störend ist dabei das hintere Rad, wenn es nicht als Kugel/Omniwheel ausgelegt ist. Ich löse es aber dadurch, dass ich bei Kurvenfahrt
ein Zusatzrad mit einem Servo absenke. Das funktioniert gut, und das/der Servo zieht eigentlich nur bei den kurzen auf/ab Bewegungen Strom.
Es reicht bei dem kleinen Fahrzeuggewicht ein Mini-Servo, das ich aus der 5V Verorgung für den Microprozessor beziehe.

Ich verwende einen NANO-Clone, den ich aber mit 3.6V betreibe (da läuft er noch sicher mit 16 MHz).
Das spart mir dann die Pegelumsetzer für die Peripherie (z.B. Display).
Neben den 2 Antriebsmotoren (12V) und dem Servo kommt als Hauptverbraucher der Lüfter hinzu (Radiallüfter ca 75x75mm mit 12V, <6 W).
Zur Orientierung hat der Prozessor die Karte der Wohnung abgespeichert, orientiert/korrigiert sich aber auch mit Hilfe des Lasers (VL53L0X < 2m, VLX53L1X (< 4m, mit Entwickl. Kit noch etwas teuer)). Er schaut nur nach vorne, aber durch Rotation des Fahzeugs kann er sich auch ein Rundum"Bild" verschaffen.

Zum Speichern der Koordinaten brauche ich wohl zusätzlichen Speicher, vielleicht eine SD-Karte (ist im Diplay integriert siehe unten).

Als Testhilfe werde ich wohl auch noch ein SPI-Display (ILI9341) einbauen und eventuell eine Fernbedienung über nRF24L oder Bluetooth.



Die Fahr-Genaigkeit des Antriebs hab ich bei einem anderen Fahrzeug bereits getestet (mit Namiki-Getriebemotoren), sie liegt mit den dort verwandten integriertem Encoder unter 1 %, auch die Dreheigenschaften (90° links/rechts) funktionieren gut.


Probleme sehe ich noch bei der SW: wenn beim Abarbeiten des Plans Probleme auftreten (nicht Immobilien wie Stühle, Tiere :p) ?
Aber da scheinen auch die kaufbaren? Roboter noch Entwicklungsbedarf zu haben !!

Die Materialkosten sehen momentan grob so aus:

- Radial-Lüfter (ebm ca 35€, andere ca 10-15€)
- Akku 18650( 4€, mit Protection ca 14€)
- Akku-Lader (1A 1€)
- Step-Up (4€: 2xMT3608 für Motoren und Microprozessor/peripherie, 1 x LM29xx für Lüfter)
- Prozessor (2-4€)
- Display (10-15€)
- Motoren (2x3€), Servo (1,50€)
- Encoder (1-2€)
- Fernsteuerung(empfänger) (ca 2-7€)
- Sensoren (VL53L0x) (ca 6€)

Da lieg ich dann unter 100 €, fehlen nur noch die mechan. Teile
(Bleche, Räder, Wellen, Kleinteile unter 10-20 €)
und der Arbeitslohn :p !

oberallgeier
14.04.2018, 10:25
.. Ich verwende einen NANO-Clone, den ich aber mit 3.6V betreibe (da läuft er noch sicher mit 16 MHz) ..Vor etlicher Zeit hatte ich mit einem MEINER nanoClones@16Hz die Funktionsgrenzen der Versorgungsspannung bei unter 3,3V getestet. Hab ich eben wiederholt und bestätigt. Ich kenne als Vergleich diesen Thread zu ATMEGA 328P @3,3V und 16MHz (https://www.mikrocontroller.net/topic/303539). Normalerweise werden meine nanoClones aus Kompatibilitätsgründen umgequarzt auf 20 MHz.

Mein Testaufbau:
Dieser "Servotester (https://dl.dropboxusercontent.com/s/h8w0octz6pj6a1b/DSC03920-800Px.jpg?dl=0)" (Experimentierplatine) mit einem nanoClone@16MHz
Servotester OHNE LCD, UART und Servo, aber mit Heartbeat-LED (im Bild direkt unter der Anschlussklemme und USERLed am Clone),
......keine weitere Peripherie, Anschlussklemme NC
Servotest-Programm für Clone@20MHz (Test: Heartbeat 1Hz läuft bei 16MHz 10x in 12,5+ sec)
Versorgung: Labornetzeil KORAD KA3005D
Versorgung: Vcc am Clone-Pinn "5V", GND am Clone-Pinn "GND"
Messung der Versorgungsspannung mit Netzeilanzeige
Kontrolle der Netzeilanzeige mit METRAHit12s: ~12s : 2,720 V <=> LNT : 2,73 V

Ergebnis:
- bei Vcc = 2,71 V .. 2,73 V stellt der Heartbeat seine Tätigkeit ein, POW-Led des Clones leuchtet noch
- bei Vcc = 2,79 V .. 2,80 V startet der nanoClone/328p - sichtbar durch Heartbeat-Funktion

Das Ergebnis war reproduierbar (5 auf-ab-Zyklen).

mausi_mick
14.04.2018, 10:41
hab die beiden Lichtschranken jetzt stirnseitig am Motor befestigt mithilfe zweier kreissegmentförmigen Platinen, zwischen denen sie leichter auf Zahnhöhe und in "90°" Abstand justiert und fixiert werden können.

https://www.youtube.com/watch?v=_mxm4tP7YWs&feature=youtu.be

- - - Aktualisiert - - -

Hallo Oberrallgeier,

kenne auch diesen Nano Umbau auf 3.3V, hab aber die Spannung mithilfe einer Schottkydiode am AMS1117 etwas in Richtung 3.6V angeghoben. Den Umbau mit 2 Widerständen bei der adj-Version hab ich auch mal gemacht, scheint mir aber vergleichsweise luxuriös.

Werd das aber auch mal ohne Umbau testen.

Gruss mausi_mick

mausi_mick
15.04.2018, 13:08
Den 2. Fahrmotor für den Saugroboter hab ich jetzt auch mit Encoder versorgt.

Als Encoderscheibe /Zahnrad verwende ich ein graues Zahnrad( M=0.5 , 48 Zähne) mit 2,5mm Dicke. Die TCYS 5201 Gabellichtschranken liefern mit diesem Zahnrad ein stabileres (konstantes Tastverhältnis) Rechtecksignal als mit dem roten Zahnrad mit 2mm Dicke.
Die Justierung der zwischen zwei parallelen Scheiben eingeklemmten Gabellichtschranken mithilfe des 2-Kanaloscis ist relativ einfach.

Aufbau und Signal siehe:

https://www.youtube.com/watch?v=hWdgrUPHKrU

mausi_mick
15.04.2018, 18:29
den letzten encoder hab ich jetzt mal mit einem kleinen Testprogramm getestet:

vorwärts 100 ticks, vorwärts 500 ticks, vorwärts 1000 ticks und vorwärts 5000 ticks.
Die selben Werte auch für rückwärts.
Konfiguration:
Arduino-Nano, MAX14870 H-Brücke, IL9341 2.2" SPI-Display.
Die Encoderwerte werden über ISR (PCI) an PIN14/A0 und PIN15/A1 ermittelt.
Auf dem Display werden die Vorgabewerte (rechts) und die ermittelten Encoderwerte ganz links dargestellt.

Der Motor lief im Test bei ca 8V und PWM = 240. Geplant sind hier 12V und max. PWM um 150.


Videosequenz: https://www.youtube.com/watch?v=hRihceHs8rw&feature=youtu.be

mausi_mick
18.04.2018, 02:27
Hab den Encoder an einen Schneckenantrieb angepflockt, das führt zu einer schmaleren Antriebseinheit, sodass ich auf dem Saugroboter mehr Platz für Saugbehälter und Lüfter habe.
die Gabellichtscharnken sind hier auch wieder zwischen zwei Pertinaxplatten zur einfacheren Ausrichtung eingeklemmt.

1. Test:

https://www.youtube.com/watch?v=eHtY6srf_Pc


2. Test:

https://www.youtube.com/watch?v=eHtY6srf_Pc&feature=youtu.be



(https://www.youtube.com/watch?v=OHMPo9GUwTk&feature=youtu.be)

mausi_mick
19.06.2018, 08:30
Inzwischen (wurde auch Zeit) hab ich den zweiten Fahrmotor aufgebaut und zum Test auf einer Plattform:o montiert. Das hintere Stützrad wird nur bei Vorwärts-/Rückwärtsfahrt verwandt, bei Rotation wird per Servo ein zusätzliches Rad abgesenkt, das quer ( 90° versetzt) angebracht ist. So kann das Gerät - sofern gut austariert - perfekt auf der Stelle drehen.

Die ersten Fahrversuche sind recht vielversprechend, man muss aber an der SW und an der Mechanik (gleicher Raddurchmesser, identische Abstände zum Mittelpunkt ... ) wohl noch etwas feilen.

Das erste Video (Fahrt im Quadrat mit ca 1 m Kantenlänge) :

https://www.youtube.com/watch?v=fAQzDsjtax4

https://www.youtube.com/watch?v=fAQzDsjtax4


Auf Flickr hab ich einige Fotos:










(https://www.flickr.com/photos/157863602@N07/28998811418/in/dateposted-public/)

oberallgeier
19.06.2018, 09:16
.. ein zusätzliches Rad abgesenkt, das quer ( 90° versetzt) angebracht ist. So kann das Gerät - sofern gut austariert - perfekt auf der Stelle drehen ..Bravo, bravo bravo. Die Getriebe gefallen mir - vor solchen Aufbauten hatte ich mich bisher gedrückt mangels Werkstattausrüstung. Na diese Absenkvorrichtung ist ja ein Gag! Irgendwie schick - obwohl ich ohne so etwas, nur mit Hilfe der sowieso vorhandenen Gleitschuhe, mein MiniD0 auch ziemlich gut auf der Stelle drehen (https://www.youtube.com/watch?v=jgm9DhS7vS4) kann (und recht prächtig weite oder enge Kurven fahren).

Wie hoch ist denn bei einer Umfahrung des Quadrates die Abweichung zwischen Abfahrt- und Ankunftspunkt?

mausi_mick
19.06.2018, 11:15
Die Abweichung ??

etwas problematisch, theoretisch wohl bei wenigen mm , in der Praxis nach einer "eckigen" Runde 4-5cm.

Wobei da einige Dinge zusammenkommen:
- unterschiedlicher Start links/rechts führt zu leichtem Schwenk im Startmoment ("Urknall"). (scheint mittlerweile gut gelöst zu sein)
- Kurvenlauf, ab ca 60 cm weicht der Fahrweg von der Geraden ab (z.T. durch geringfügig andere Raddurchmesser) Fehler unter 1% (1cm bei 1 m Fahrweg)
- unterschiedliches Abbremsen links / rechts führt zu leichtem Schwenk beim Stopp. ( scheint mittlerweile gut gelöst zu sein)
- Drehtoleranz und Versatz bei Drehung (Schlupf) (vermutlich unter 1°), Versatz nicht festgestellt , Fahrzeug ist aber nicht austariert.

Ich weiss aber noch nicht, wie stabil das ist, auch in Abhängigkeit vom Akkuladezustand.

Genauer untersuchen muss ich das auch mit dem Kurvenlauf, der wohl auch an den unterschiedlichen Motorkennlinien liegt.

Werd mich jetzt aber hauptsächlich um die Fahrweg-Programmierung für das Saugen kümmern und parallel dazu den VL53L1 (<= 4m Reichweite)
testen, vielleicht an einem Doppelservo, damit ich auf 360° Erfassungsbereich komme.

Werd aber die grossen Flächen (gibt es so was ?) nicht mäanderförmig abfahren, sondern eher in verschachteleten Rechtecken.
da brauch ich keine 180° Schwenks, sondern nur welche mit 90° - und auch deutlich weniger !

Fahr das jezt mit Fast-PWM (Prescaler = 8, Phase-Correct-PWM machte Ärger mit delay(...), da ich PWM an PIN5/6 (TIMER0) habe.

Die InterruptRoutinen für die Encoder gehen über PinChangeInterrupt, da bin ich nicht auf PIN2/3 angewiesen (UNO/NANO).
Die Encoder hängen jetzt an A0,A1 bzw. A2,A3.

mausi_mick
21.06.2018, 14:24
Die Antriebsräder hatten wohl echt leicht unterschiedlichen Durchmesser, ich hab sie getauscht geegen welche, wo der Durchmesser nur ca o,3mm abweicht (bei ca 46 mm Durchmesser). Sie sind auch nicht so elastisch, rutschen aber eher durch (Schlupf).
Das Fahrverhalten damit sit insgesamt besser, ich komme auf ca 2-3cm seitlichen Versatz nach 2 "Runden", danach wird es deutlich schlechter.
Werd mich aber jetzt primär mit dem VL53L1X Abstandsensor / TOF (< 4m) befassen. Ich hab heute zum Drehen mal einen kleinen Stepper getestet, gefällt mir aber vom Stromverbrauch nicht.
Auch benötigt er bzw. ULN2003 4 Steuerleitungen . Da ist mir ein Servo angenehmer, auch wenn die Winkel-Genauigkeit schlechter ist. Ich möchte aber auf >= 360° kommen für ein Rundum-Radar,
da muss ich mir noch was einfallen lassen.

mausi_mick
21.06.2018, 18:19
Hab testweise das Servo mit über300° Schwenkbereich realisiert, da ich für den VL53L1X verwenden will (als rundum Radar.)

Link dazu: https://www.youtube.com/watch?v=853TIZpv_fI

mausi_mick
22.06.2018, 13:51
Hab den VL53L1X Distanz-Sensor provisorisch auf dem Servo montiert.
Ich muss aber das Getriebe wohl noch verbessern, die chinesischen Zahnräder laufen nicht so richtig.
Auch weiss ich nicht, wie das auf dem Roboter mit Fast-PWM und den delays etc. funktioniert.

Ein 1. Video : https://www.youtube.com/watch?v=45YSCPQymwY

mausi_mick
23.06.2018, 04:55
Ich hab das Getriebe etwas ordentlicher gemacht und die Zahnräder (50,20 M=05) besser justiert.
Jetzt läuft der Schwenk stabil. Die Rechweite des Sensors geht an die 4 m (siehe Video).

https://www.youtube.com/watch?v=6G-rsZikbNM&feature=youtu.be

mausi_mick
30.06.2018, 13:35
Das Getriebe läuft jetzt stabil.
Ich hab mir zum Test eine eigene Versorgung für das Servo aufgebaut (Step up mit LM29..), da die Versorgung über USB nicht stabil war. Die mit dem VL53L1X gemessene Distanz wird graphisch auf einem Display (ILI3941) dargestellt (bis zur Berandung +/-120 cm).

Video dazu: https://www.youtube.com/watch?v=ulFRNQm_Ehw&feature=youtu.be

mausi_mick
22.07.2018, 14:49
Die Distanzmessung mit dem VL53L1X ist etwas problematisch, wenn die Messung z.B. in Richtung einer Ecke läuft. Da der Abstrahlwinkel des Sensors relativ gross ist, bekommt man dann ein "integriertes" Signal zurück, aus einem rechten Winkel wird so leicht - je nach Distanz - einer zwischen 100° und 150° .
Ich hab den Schwerpunkt wieder mehr in Richtung Antrieb / Encoder gelegt und zwei neue Motoreinheiten realisiert mit einem niederohmigeren Motor (28 Ohm Wicklung), den ich zwischen 2V und 10V betreiben kann.
Die Gabellichtschranken sind jetzt in ein U-Profil eigeklemmt , der Winkel zwischen den Gabellichtschranken beträgt 45° (wenn man die Gehäuseecken der Lichtschranken zuasmmenlegt), das sind ziemlich genau 6x360° + 90° (d.h. 6 1/4 Zahn bei einem Zahnrad m=0.5 und 50 Zähnen).

Als H-Brücke verwende ich eine DRV8838, die ich noch unterhalb des Motors im U-Profil unterbringen kann.
Die Antriebswelle ist kugelgelagert, ebenso die Welle für das Encoderrad.

Video: https://www.youtube.com/watch?v=FeYzljTUgZc&feature=youtu.be


(https://www.youtube.com/watch?v=FeYzljTUgZc&feature=youtu.be)

mausi_mick
21.02.2019, 03:12
Hallo, melde mich zurück, war etwas abgelenkt mit einem Kennlinienschreiber, der jetzt (fast) fertig ist.

Siehe:

Kennlinien diverser Dioden/LEDs bei 10mA (max):

https://www.youtube.com/watch?v=2wD9CJixKr4&t=4s


Kennlinien diverser Dioden/LEDs bei 46 mA (max):

(https://www.youtube.com/watch?v=2wD9CJixKr4&t=4s)https://www.youtube.com/watch?v=x4K8UJIG2BI&t=28s


Source und EAGLE-Files:





werde jetzt wohl mehr Zeit für den Roboter haben (https://github.com/mausi-mick/Transistor-Curve-Tracer-MapleMini)