PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein erster Roboter



chop.suey94
03.08.2012, 02:11
Hallo,

ich bin relativ neu im Forum und im Bereich der Robotik.
Ich dachte ich stelle meinen ersten Roboter mal vor:

Der Roboter ist rund und wird von 2 Schrittmotoren angetrieben, ein 3. Rad
dient als Stützrad.
Im Moment ist die Elekronik noch auf einer Lochrasterplatine und das Fahrgestell ist auch
noch ein Provisorium.

Kernstück ist ein Atmega8. Dieser gibt über 4 Ausgänge ( 2 pro Motor ) die Steuersignale an
die Schrittmotoren. Dabei ist ein Ausgang fur eine Spule im Schrittmotor zuständig und wird dafür
über einen 4069 invertiert. So ist allerdings nur Vollschritt-betrieb möglich, man spart aber
Ausgänge am uC. Motortreiber sind 2 L293D.

Über einen 5. Ausgang am uC können die Motortreiber deaktiviert werden, um Strom zu sparen.
Das Verhältnis der Zeit, in der die Motortreibern eingeschaltet/deaktiviert sind, bestimmt den Drehmoment.

2 Sharp Infrarotsensoren werden über die ADC des Mega8 eingelesen und so kann der Abstand zu einem Hinderniss
erkannt werden. Die Sensoren sollen nach jedem Schritt eingelesen werden und werden zwischen den Messungen
deaktiviert (auch wieder um Strom zu sparen ;) )

Zur Sicherheit sind parallel zu den IR-Sensoren bumper auf der Vorderseite angeschlossen.


Soweit sogut, das funktioniert schonmal (ist vermutlich ja auch kein großes Kunststück :P )

Jetzt sind noch ein paar Punkte ungelöst.
Um euch nicht mit Fragen zu überhäufen, dachte ich ich gehe ein Problem nach dem anderen an. :D



Ich will noch einen Absturzsensor einbauen, der den Abstand zum Boden misst,
sodass der Roboter z.B. keine Treppe hinunterfällt.

ich habe mir hierzu überlegt, ob das nicht mit einem Phototransistor /-diode /-widerstand möglich ist.
Da der Roboter sowohl am Tag, als auch bei Nacht fahren können soll, müsste der Sensor (der auch immer allerdings
gegen Fremdlicht, relativ unempfindlich sein. Und ich will nicht jedesmal die Einstellung je nach Lichtverhältniss
an einem Poti oder dergleichen ändern müssen.

Deshalb kam mir die Idee eine LED mit dem lichtempfindlichen Sensor in einem Art "Rohr" zu befestigen,
das an der unterseite des Roboters befestigt ist und kurz über dem Boden endet.

So hat man sowohl am Tag, als auch nachts ähnliche Lichtverhältisse (im Rohr).
wenn der Roboter jetzt zu einem Abgrund fährt, ist das Rohr nach unten hin offen, und das Lichtverhältniss ändert sich.


Ich weiß jetzt nicht so ganz, ob die Idee umsetztbar ist, also frage ich euch mal um Rat. :);)

ranke
03.08.2012, 08:03
Im Prinzip ist die Idee, das Fremdlicht abzuschirmen, nicht schlecht. In der praktischen Ausführung ist es aber meistens schwierig. Am einfachsten geht es noch, wenn der Boden sehr glatt und ohne Schwellen ist, dann kann man mit der Abschirmung sehr dicht an den Boden gehen.
Hier noch ein paar Anregungen um das Fremdlichtproblem in den Griff zu bekommen:
1. Ein zweiter Lichtempfänger wird installiert und genauso abgeschirmt wie der erste. Allerdings bekommt er keine LED. Ausgewerter wird die Differenz der beiden Empfänger. Nachteil: der Boden muss einfarbig sein. Also besser Variante 2:
2. Die LED wird ein- und ausgeschaltet. Wenn bei eingeschalteter LED mehr Licht empfangen wird als bei ausgeschalteter, dann ist noch Boden da.
3. Eine Abwandlung von der 2. Variante: Die LED wird mit einer bestimmten Frequenz (z.B. 10 kHz) gespeist, entsprechend wird auch das Licht moduliert. Der Vorverstärker des Lichtempfängers wird so gebaut, dass er nur Spannungen im Bereich von 10 kHz verstärkt. Das ist zwar schaltungstechnisch aufwändiger als die 2. Variante, man muss sich aber nicht mehr um das Ein/Ausschalten kümmern.
4. Man vereinfacht sich die Sache mit einem fertigen Distanzsensor zum Beispiel diesem hier (http://www.rn-wissen.de/index.php/Sensorarten#Distanzsensor_IS471F). Das ist aber schon fast zu langweilig.
5. Die häufig vertretene Meinung, Fremdlichteinfluss könne dadurch vermieden werden, dass man ein geeignetes (zum LED-Licht passendes) Farbfilter vor dem Lichtempfänger anbringt, stimmt so nicht. Erstens ist es schwierig einen geeigneten Farbfilter zu besorgen, außerdem sind Störlichtquellen meistens breitbandig uns strahlen auch in der Wellenlänge der LED. Allerdings kann man mit einem Filter einen großen Teil des Störlichts abhalten, das ist auf jeden Fall sinnvoll, nur als alleinige Maßnahme ist ein Filter nicht ausreichend.

chop.suey94
03.08.2012, 12:33
Vielen Dank für die ausführliche Antwort. :)

Variante 3 mit der modulierten LED und dem dafür angepassten Vorverstärker nach dem Sensor ist ja eigentlich das selbe, wie der IRF471F Sensor, nur das
die LED zusätzlich noch vom uC oder einem NE555 getaktet werden müsste (das ist beim IRF anscheinend schon integriert zu sein... )

Variante 1 gefällt mir ganz gut, allerdings bin ich noch unschlüssig welchen Sensor ich da verwenden sollte. (am einfachsten für die ADC-Messung wäre es vermutlich mit einem
lichtempfindlichen Widerstand einem konstanten einen Spannungsteiler aufzubauen.
Dieser müsste dann ja nur nach jedem Schritt kurz gestartet und ausgelesen werden. Ebenso der 2. Sensor.
Kennt jemand die Zeit, die ein LDR braucht, um sich dem neuen gegebenheiten "anzupassen"?

PS.: Variante 4 ist vermutlich wirklich am einfachsten, allerdings finde ich den Sensor nicht bei R... und es wäre ja wirklich etwas langweilig ;)

PICture
03.08.2012, 12:50
Hallo!

Noch langweiliger wird vorhandenes Umgebung- bzw Tagesslicht auszunutzen. ;)

oberallgeier
03.08.2012, 16:26
... Ich will noch einen Absturzsensor einbauen, der den Abstand zum Boden misst ...Das ist ja nun kein Problem. Nimm noch nen Sharp und montiere den eher hoch auf Deinem Roboter so, dass er schräg zum Boden runter zeigt - ich nenne das Blindenstockmanier (klick mal da). (https://www.roboternetz.de/community/threads/33984-Abstandsmessung-ähnlich-wie-IR-Schnittstelle-des-asuro?p=334010&viewfull=1#post334010) Solange jetzt der Sensor das "Hindernis" Boden sieht, sprich der Abstand ist im erwarteten Bereich, ist alles ok. ABER wenn er dann "nix" mehr sieht, sprich: der Abstand ist plötzlich deutlich größer geworden, dann ist eben ein Abhang/Loch/Kante-nach-unten da. Ich mache das bei meinen autonomen Dosen Dottie und MiniD0 mit drei IR-LEDs, deren zurückgestrahltes Licht von einem Photoempfänger ausgewertet wird. Funktioniert ganz ordenlich - siehe diese beiden Videos. (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01/page4?p=358306#post358306) Dasselbe ist natürlich mit dem Sharp möglich, aber der war für meine Anwendung zu groß . . .

chop.suey94
03.08.2012, 20:32
Vielen Dank für die Infos.

@PICture, was meinst du mit Umgebungs- bzw Tageslicht ausnutzen.
Wenn das Umgebungslicht sich ändert, muss ja auch im uC die Schaltschwelle zwischen OK und Abgrund verändert werden.
Und manuell ist doof :D