Linien-/Kantenfolgender Roboter

Im Unterforum Projekte im Selbstbau - Beschreibung: Selbstbau von Elektronik und Elektro

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 25 11 2024  05:36:39      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Projekte im Selbstbau        Projekte im Selbstbau : Selbstbau von Elektronik und Elektro


Autor
Linien-/Kantenfolgender Roboter

    







BID = 675050

Iguan

Gerade angekommen


Beiträge: 13
Wohnort: Schweiz
 

  


Hallo allerseits

Ich möchte gerne im Rahmen einer Arbeit einen Linienfolger/Kantenfolger bauen, ganz ohne Mikrokontroller. Der Roboter soll einer schwarzen linie auf hellem untergrund so präzise und schnell wie möglich folgen.
Am besten mit einem Regelkreis mit Rückkopplung. Die Speisung sollte 6 oder 9V sein.
Dazu habe ich mir schon viele Gedanken gemacht und mehrere Lösungskonzepte ausgedacht.

Als motoren möchte ich zwei "Continous Servos" von Parallax verwenden. Die sind recht einfach in der Handhabung (PWM):

1ms Pulsbreite -> Der Motor dreht schnell im Gegenuhrzeigersinn
1.2ms Pulsbreite -> Der Motor dreht langsam im Gegenuhrzeigersinn
1.5ms Pulsbreite -> Der Motor stoppt
1.7ms Pulsbreite -> Der Motor dreht sich langsam im Uhrzeigersinn
2ms Pulsbreite -> Der Motor dreht sich schnell im Uhrzeigersinn
natürlich kann man beliebige Pulsbreiten verwenden und der Motor dreht sich dann entsprechend schnell in die entprechende Richtung.
der "Nullpunkt" bei 1.5ms lässt sich bequem mit dem im Motor eingebauten Poti verstellen.



Ich möchte gerne je nach intensität des Lichtes, das vom Boden zurückreflektiert wird, ein entsprechendes PWM signal erzeugen.
Dazu bräuchte ich eine Schaltung die je nach Lichteinfall 0-5V am ausgang (Opamp-Schaltung) erzeugt und die wiederum könnte ich an eine PWM(NE555) Schaltung führen.
Je zwei mal, Linker Sensor für rechten Motor und rechter Sensor für linken Motor.

Als Sensoren habe ich mir diese gekauft: http://www.datasheetcatalog.org/datasheet/Sharp/mXrwqwq.pdf

Hauptproblem:
*************
Das Hauptproblem liegt wohl darin, dass diese IR-Reflexkoppler als Digitale Schalter gedacht sind und nicht für die analoge Auswertung.
--> Frage 1: Oder geht das doch irgendwie, diese steile Ausgangskurve des Sensors in eine geradlinigere Kurve zu verwandeln?
--> Frage 2: Vielleicht könnt ihr mir einen geeigneteren Sensor empfehlen? (Ich habe schon an Fotowiderstände (LDR) gedacht, denke aber das diese vom Umgebungslicht zu stark beeinflusst werden)



Lösungskonzept 1
****************
Die Billigste und warscheinlich auch schlechteste Lösung:
Zwei IR-Reflexkoppeler sind beide über der schwarzen Linie angebracht. Wenn z.B der linke Sensor die Linie verlässt, stoppt der rechte Motor und umgekehrt
Wenn keine der beiden Sensoren die Linie findet stoppen beide Motoren.
Ich denke aber dass diese Lösung nicht zu gebrauchen ist, da der roboter dann ziemlich ins ruckeln kommt.

Lösungskonzept 2
****************
Mehrere Sensoren auf einer Leiste montieren (die "1" und "0" sprich Linie oder keine Linie erkennen). Je nachdem wie weit aussen auf der Leiste sich die Linie befindet umso schneller läuft der entsprechende Motor.
Mit mehreren fest vorgegebenen Geschwindigkeiten.
(Auch nicht wirklich geeignet, da der Roboter dadurch ins schwanken kommen könnte, bis er die Linie verliert)

Lösungskonzept 3
****************
Zwei Sensoren über der Linie montieren. (die "1" und "0" sprich Linie oder keine Linie erkennen).
Wenn der eine Sensor die Linie verliert erzeugt ein Integrator eine immer Höhere spannung am Ausgang, je länger dieser die Linie verloren hat. Diese Spannung wird dann einer PWM schaltung zugeführt.

Lösungskonzept 4 (Bevorzugtes Konzept, habe aber keine Ahnung wie ich das anstellen soll)
****************
Zwei Sensoren über der Linie montiert. Je nach dem wie Weit sich der Sensor über der Kante von Linie/Keine_Linie befindet wird ein entrpechendes signal von 0-5V erzeugt. Diese Spannung wird dann einer PWM schaltung zugeführt.
Mit einer Rückkopplung wird sich dann der Roboter hoffentlich einpendeln (PID Regler oder so)

-->Frage 3: Könnt ihr mir vielleicht Tips und Links mit Schaltplänen o.Ä geben?
-->Frage 4: Was meint ihr im allgemeinen dazu? (bin dankbar über jede Anregung und jeden Hinweis)
-->Frage 5: Kennt ihr eine Lösung für mein Hauptproblem?

Vielen Dank schon im Voraus!!!!

mfg

Iguan

BID = 675052

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

 

  


Zitat :
Das Hauptproblem liegt wohl darin, dass diese IR-Reflexkoppler als Digitale Schalter gedacht sind und nicht für die analoge Auswertung.
Nein, da ist ein gewöhnlicher Fototransistor drin, dessen Ausgangsstrom halbwegs genau proportional zur Bestrahlungstärke ist.
Wenn du trotzdem glaubst ein Schaltverhalten feststellen zu können, liegt das evtl. an der Verwendung eines zu großen Arbeitswiderstands.

Anstatt den Arbeitswiderstand zu verringern, könnte man auch den Strom durch die LED herabsetzen, aber im Hinblick auf mögliche Störungen durch Fremdlicht rate ich davon ab.

P.S.:
Du solltest vielleicht mal einen Blick ins Innere des Servos werfen.
Gut möglich, dass dort erstmal die Impulse in eine analoge Spannung umgesetzt werden, welche der Servoverstärker dann mit der Stellung des Servopotis vergleicht.
Dann erübrigt sich evtl. der Umweg über die Digitalisierung des Sensorsignals.


P.P.S.:
Ich dachte eben an Lenkservos. Aus deinem Text entnehme ich aber, dass es sich um geschwindigkeitsgeregelte Motoren handelt.
Da du die Signalaufbereitung und Steuerung ja selbst machen willst: Warum verwendest du nicht einfach DC-Motoren?
In der Zeit, in der du einen 1,5ms Impuls ausgebrütet hast, hat ein billiger Gleichstrommotor schon reagiert.
Du wirst aller Wahrscheinlichkeit nach ohnehin einige Schwierigkeiten mit Regelschwingungen bekommen und deshalb viel experimentieren müssen.


[ Diese Nachricht wurde geändert von: perl am  5 Mär 2010 12:55 ]

BID = 675053

Iguan

Gerade angekommen


Beiträge: 13
Wohnort: Schweiz

Du meinst wohl im Datenblatt Fig.10 und Fig.11
Nur ist mir nicht klar wie ich diesen Strom in eine Spannung umwandeln kann...


Zum Servo:
ich habe nur folgendes Datenblatt gefunden: http://www.parallax.com/dl/docs/prod/motors/crservo.pdf

dort steht nichts wie der Servo intern arbeitet.. aber ich möchte sowieso nicht am Servo herumbasteln..

mfg

Iguan

[ Diese Nachricht wurde geändert von: Iguan am  5 Mär 2010 12:49 ]

BID = 675054

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Nur ist mir nicht klar wie ich diesen Strom in eine Spannung umwandeln kann
Ohmsches Gesetz heißt das Zauberwort!
U = R*I
In Worten: Die an einem Widerstand abfallende Spannung ist proportional dem Strom und dem Widerstandswert.

Welche Beschaltung des Reflexkopplers verwendest du denn aktuell?

Im Übrigen würde ich lieber einen LM324 anstatt des NE555 für diese Dinge verwenden. Den Impuls kann man leicht auch damit machen (wie ich finde, auch übersichtlicher) aber dieser 4-fach Opamp kann eben noch viel mehr...

Siehe auch mein obiges pps.

BID = 675075

dr.dirk

Stammposter



Beiträge: 306
Wohnort: Güstrow
Zur Homepage von dr.dirk

Hallo lguan,

es gab hier schon mal so einen ähnlichen Fall.

Guckst du https://forum.electronicwerkstatt.d......html

Das ist noch einfacher aufgebaut

Dirk

BID = 675445

Iguan

Gerade angekommen


Beiträge: 13
Wohnort: Schweiz

Hallo Perl

Sensor datenblatt: http://www.datasheetcatalog.org/datasheet/Sharp/mXrwqwq.pdf

Ich habe die Sensoren folgendermassen beschaltet:
1. von 6V über ein 240 Ohm widerstand an die Anode der IR-LED und die Kathode dann an ground. R = U / I = (6V - 1.2V)/20mA = 240 Ohm
Richtig????

2. von 6V über einen 30kOhm Widerstand an den Kollektor des Phototransistors und den Emitter an Ground. Den Spannungsabgriff mache ich zwischen Widerstand und Kollektor. (zurzeit noch ein Mikrokontroller angeschlossen, ist aber nur zum Testen)

Frage 6: Wie wie berechne ich den durch ausprobieren gewählten 30kOhm Widerstand richtig? (Damit ich beim Spannungsabgriff möglichst eine Spannung von 0 - 5V habe)
Frage 7: Gibt es evtl. sinnvollere beschaltung der Sensoren?

BID = 675481

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

1) Das hast du richtig gerechnet , aber ich würde es trotzdem etwas anders machen .
Schalte die LEDs beider Sensoren hintereinander, und verwende nur einen Widerstand.
Das spart Strom, braucht nur einen Widerling, und vor allem ist dadurch garantiert, dass beide LEDs immer den genau gleichen Strom bekommen.
Also (5-2*1,2)V/0,02A = 130 Ohm. Wir nehmen den Normwert 120 Ohm.

Ich habe hier mit 5V anstatt mit 6V gerechnet, weil das eine gängige Spannung zum Betrieb von Logikschaltkreisen und Mikroprozessoren ist. Es gibt auch preiswerte Festspannungregler (7805) für diesen Spannungswert.
Wenn du hier statt dessen 6V verwendest, steigt der Strom auf 30mA, aber das ist noch völlig im sicheren Bereich.


2) Im Datenblatt steht, dass der Fototransistor aus 20mA LED Strom höchstens 3mA Kollektorstrom macht (Spiegelschicht hinter 4mm Glas). In Fig.5 des Datenblattes kannst du aber sehen, dass typischerweise nur etwa 1mA zu erwarten sind.
Wie hoch der Strom bei weißem Papier ausfällt, müsste man einmal ausprobieren. Ich schätze, dass nicht mehr als 20% dieses Wertes, also 0,6mA eher aber 0,2mA zustande kommen.
Wie du weiter unten bei 3) sehen wirst, brauchen wir das auch garnicht zu wissen.

Aus eben dieser Fig.5 kannst du auch entnehmen, dass der Fototransistor etwa 1V "für sich" braucht, und dass bei höherer Spannung sich der Kollektorstrom kaum noch ändert.
Daraus errechnet sich der Arbeitswiderstand zu (5-1)V/1mA = 4kOhm. Der nächstliegende Normwert wäre 3,9kOhm.
Es empfiehlt sich bei dieser Beschaltung den Arbeitswiderstand mit Masse zu verbinden und den Fototransistor an Plus zu legen, dann bekommt man ein auf 0V bezogenes Signal, dass praktisch nur vom Fotostrom und nicht von der Betriebsspannung abhängt.

3) Eleganter geht es aber folgendermassen:
Ein Fototransistor kommt mit dem Kollektor an Plus, der andere mit dem Emitter an Masse (oder Minus, GND, 0V, -je nach Gusto).
Den freien Emitter verbinden wir mit dem freien Kollektor und schon sind wir fertig.
Einen Arbeitswiderstand brauchen wir bei dieser Schaltung nicht und ein Strombegrenzungswiderstand ist angesichts der geringen Kollektorstroms auch nicht erforderlich.
Trotzdem ist dadurch garantiert, dass die Spannung am Verbindungspunkt der beiden Sensoren genau die halbe Speisespannung beträgt, solange die Fotoströme der beiden gleich sind.
Wie hoch die Fotoströme sind, ist hingegen irrelevant und damit ist es auch gleichgültig, ob sich der Sensor über eimem Spiegel oder über brauner Pappe befindet.

Nicht ganz so offensichtlich dabei ist, dass man dabei auch die maximal mögliche Empfindlichkeit erhält, deren Relativwert sich zudem bei unterschiedlichen Intensitätern nicht ändert.
Das liegt daran, dass der jeweils andere Fototransitor nahezu eine Konstantstromquelle darstellt, die jedenfalls einen sehr hohen Innenwiderstand hat.
Aus der Steigung des Geradenstücks für 20mA in Fig.5 kannst du entnehmen, dass der Fotostrom sich nur um 0,15mA ändert wenn ich die Spannung von 1V bis 12V ändert. Das repräsentiert einen Widerstand von 73 kOhm, und um an einem gewöhnlichen Widerstand diese Empfindlichkeit zu bekommen, brauchtest du rund 100V Betriebsspannung!


Für viele mit 5V betriebenen Schaltungen ist auch diese Spannungslage von 2,5V bei gleicher Helligkeit ideal.
Man kann aber auch leicht mit einem einfachen Spannungsteiler aus zwei Widerständen eine Referenzspannung in Höhe der halben Speisespannung erzeugen und erhält dann, darauf bezogen, positive oder negative Spannungswerte, je nachdem welcher Sensor mehr Licht bekommt.

Exemplarstreungen, also unterschiedliche Güte von LED und Fototransistor, korrigiert man am besten mit einer Blende im Strahlengang.

BID = 675546

Iguan

Gerade angekommen


Beiträge: 13
Wohnort: Schweiz

Hallo Perl

vielen vielen vielen Dank für deine ausführliche Erklärung!!!!

Das mit den IR-LEDs in Serie geschaltet ist eine gute Idee.
Auch das mit dem Fototransistor-Spannungsteiler hat was! Nur wenn ich die Fototransistoren zusammenhänge und in der Mitte den Spannungsabgriff mache, dann bekomme ich zwar eine Spannung von 2.5V +/-
der Lichtintensität der jeweiligen Sensoren. Nur begreife ich nicht wie ich daraus zwei unterschiedliche PWM signale erzeugen kann
Und wie müssten dann die Sensoren montiert werden? Beide auf der Linie, knapp an der Kante? Nachteil ist wohl dass wenn beide Sensoren weiss sehen, es Spannungsmässig das gleiche ist, wie wenn beide Sensoren schwarz sehen.. somit müsste man das automatische stoppen wenn die Linie zu ende ist irgendwie anders lösen...

Wären die Fototransistoren in einzelnen Strompfaden, mit jeweils einem Widerstand gegen Ground und der Spannungsabgriff jeweils zwischen Fototransistor und Widerstand dann hätte ich 2 Spannungen die ich in 2 PWM signale umwandeln könnte...

Mfg

Iguan

[ Diese Nachricht wurde geändert von: Iguan am  7 Mär 2010 17:47 ]

BID = 675565

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Nur begreife ich nicht wie ich daraus zwei unterschiedliche PWM signale erzeugen kann
Ich glaube ich erwähnte schon, dass ich den 555 nicht für furchtbar geeignet halte und lieber einen 324 nehmen würde.
Mit einem der Opamps erzeugt man eine Dreieckschwingung oder einen Sägezahn mit der Grundfrequenz und die beiden anderen schaltet man als Komparatoren, aber gegenläufig, die das Sensorsignal mit dem Sägezahn vergleichen.

Dadurch bekommt man direkt zwei gegenläufige PWM Signale, und wenn man will kann man die Grundfrequenz auch so einstellen, dass die Impulslänge für den Servo passt.

Den vierten Opamp schliesslich kann man als Pufferverstärker beschalten, damit das Fehlersignal der Sensoren die richtige Größe bekommt.


Zitat :
Und wie müssten dann die Sensoren montiert werden? Beide auf der Linie, knapp an der Kante?
Da geht sicher probieren über studieren, zumal ja im Datenblatt nicht zu erkennen ist, ob LED und Fototransistor etwas schielen.
Grundsätzlich würde ich es aber vorziehen die beiden Sensoren symmetrisch möglichst dicht nebeneinander zu montieren.
Nur wenn das nicht geht, weil dann die Leitlinie zu breit sein müsste, sollte man sie leicht versetzt hintereinander anordnen.
Das Wie ist sicher auch vom Abstand zwischen Sensor und Boden abhängig.
Evtl. könnte man da auch mit Spiegeln noch etwas tricksen.

Der automatische Stop bei Verlust der Führungslinie ist ein anderes Spielfeld. Darum würde ich mich erst einmal gar nicht kümmern, bis das Tracking funktioniert.

BID = 681005

Iguan

Gerade angekommen


Beiträge: 13
Wohnort: Schweiz

Hallo zusammen!

Sorry dass ich diesen "alten" threat wieder ausgrabe.. aber bin in letzter zeit leider nicht dazu gekommen zu antworten.

Für meinen Linienfolger habe ich nun grundsätzliche Änderungen gemacht.

Die Elektronik von meinen zwei "Parallax Continous Servos" habe ich ausgebaut und habe dadurch zwei kompakte Getriebemotoren erhalten.

Nun möchte ich gerne diese mit einem PWM von 30 - 70% dutycycle (Periodendauer 20ms, sollten reichen) in der Geschwindigkeit regeln. Dafür habe ich mir mal einen Motortreiber-IC, den L293D angeschafft.

Ich verwende immer noch die gleichen zwei Sensoren wie anfangs, nähmlich:
http://www.datasheetcatalog.org/datasheet/Sharp/mXrwqwq.pdf
Beide Sensoren sind über der schwarzen Linie angebracht.

Die IR dioden der beiden Sensoren habe ich in Serie mit einem 120 Ohm Widerstand an 5V gelegt.

Die Fototransistoren sind über einen 10kOhm Pullup Widerstand an 5V. (Spannungsabgriff zwischen Kollektor und Pullup).
Messungen ergaben, dass wenn der Sensor auf der schwarzen Linie ist, die Spannung am Spannungsabgriff 4.6V ist. Ausserhalb der Linie (weisses Papier) beträgt die Spannung 1V.

Ich dachte daran, die Differenz der beiden Sensor-Spannungen zu verstärken und daraus ein PWM zu erzeugen, welches bei 0V Differenz ein 50% Dutycycle hat. Dieses PWM Signal könnte ich dann für den einen Motor invertieren, damit sich beide Motoren aus der Spannungsdifferenz günstig dem Linienverlauf entsprechend verhalten. Schön wäre es, wenn die Differenz noch mit einem Poti beinflusst werden könnte(damit ich das ganze noch abstimmen kann, falls die Motoren bei 50% dutycycle nicht gleich schnell laufen)

Nun habe ich aber Schwierigkeiten mit der Umsetzung.. und wäre daher sehr dankbar für Anregungen und Tipps..

Was denkt ihr über meinen Lösungsansatz? würde das gehen?
Wie würde so eine PWM schaltung aussehen? (Ich habe mir mal einen NE555 sowie einen LM324 angeschafft)


Vielen Dank schon im voraus!!!

mfg

Iguan

BID = 681910

FatZke

Gelegenheitsposter


Falsches Format
*.gif oder *.jpg
verwenden!
Beiträge: 83

Besser wäre eine Schwarze Linie auf weißen Untergrund.
Somit ist dir die Linearität des Reflexoptokopplers total egal
und es reicht wenn du weißt An/Aus.

Die einfachste Lösung wäre dann ein Komparator welcher endweder den einen oder den anderen Motor schaltet.
Genau solch eine Schaltung war auf dem Spurt Wettbewerb wo es um sowas
ging die schnellste Lösung in der Analog-Kategorie.
Da konnte meine µC Lösung nicht anstinken

Im Datenblatt habe ich leider keine Angabe darüber gefunden ob dieser
am Fototransistor "Eingang" einen Filter hat, sonst kannst du Probleme
mit dem Umgebungslicht bekommen.



Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 20 Beiträge im Durchschnitt pro Tag       heute wurden bisher 0 Beiträge verfasst
© x sparkkelsputz        Besucher : 182393412   Heute : 608    Gestern : 7548    Online : 551        25.11.2024    5:36
1 Besucher in den letzten 60 Sekunden        alle 60.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0757231712341