Hallo Ich möchte meinen Roboter noch mit 2 Annäherungssensoren ausstatten. Diese werden nach vorne-links und vorne-rechts schauend angebracht und sollen ein Hindernis auf einige wenige Zentimeter erkennen können. Eine exakte Entfernungsmessung benötige ich nicht. Ich denke an folgendes Konzept für die Sensoren: Ein Fototransistor misst ständig die Helligkeit (über ADC an AVR). Nun werden in kurzen Abständen von einer IR-Diode Lichtimpulse ausgesendet. Registriert der Transistor in dieser Zeit eine höhere Helligkeit, so kann davon ausgegangen werden, dass viel Licht reflektiert wurde. Es befindet sich also ein Hindernis in der Nähe. Soweit, so gut. An einem kleinen Roboter an der parallelen Schnittstelle meines PC hat das schon einigermassen funktioniert. Da wären aber noch so ein paar Probleme: Wenn der Roboter in einem sehr flachen Winkel auf das Hindernis auftrifft, dann werden die Lichtpulse nur sehr schwach reflektiert. Die Beschaffenheit des Hindernisses beeinfluss die Reflexion ebenfalls. Zudem ist der Helligkeitsunterschied zwischen ein und ausgeschalteter IR-LED bei unterschiedlichen Lichtverhältnissen nicht immer gleich. Was haltet ihr von meinem Konzept? Wie könnte man den Sensor allenfalls verbessern? Gruss Michael
Von Sharp gibt es Näherungssensoren fertig zu kaufen. Es gibt das Prinzip, den Einfallswinkel als Abstandskriterium auszuwerten. Ausserdem gibts Ultraschall-Sensoren Eine Lichtschranke mit Wechsellicht ist unempfindlicher gegen Fremdlicht
Hallo Michael Die Profis machen das so: http://www.baumerelectric.com/de/90.html Die Steigerung davon ist, dass man als Empfänger eine CCD-Zeile verwendet. Damit kann dann die Entfernung in eien beschränkten Bereich sehr(!) genau gemessen werden. (Ich habe mal 5 Jahre bei dieser Firma gearbeitet und war als Ing. an der Entwicklung dieser Sensoren mitbeteiligt) Gruss rayelec
Eigentlich möchte ich mich schon eher auf einen Eigenbau-Sensor verlassen, solange das mit wenigen Teilen hinreichend machbar ist. Man lernt halt einfach mehr. Oder denkt ihr, das macht keinen Sinn, weil zu wenig zuverlässig/genau?
Das Prinzip ist einfach! Mindestens die Hintergrundausblendertechnik kannst du auch selber basteln. Die Sensoren die Ich kenne laufen mit gepulstem Licht (LED oder Laser) bei etwa 4kHz. Für den Empfänger brauchst du eine drehbare Linse (zum einstellen der Ansprechentfernung) und die Fotodioden müssen sehr nahe beieinander liegen, damit du einen nahtlosen Übergang von Vordergrund auf hintergrund hast. Du brauchst nicht bei Baumer (oder Sick, Wenglor, IFM etc.) einen Sensor zu kaufen. Vor allem die Messenden sind sowieso preislich jenseits aller Hobbybudgets. Gruss rayelec
Hallo Ich bin jetzt ein am experimentieren, habe aber auch schon bessere Resultate erzielt... Drei Fragen: 1. Lohnt es sich, das Signal des Fototransistors noch über einen Transistor zu verstärken und dann auf den ADC zu nehmen? 2. Wie viel Strom verträgt eine IR-Diode? Ich arbeite mit 5 Volt, bei einem früheren Projekt habe ich lediglich 150 Ohm vorgehängt. Ich weiss leider nicht genau, was es für eine Diode ist, doch sie scheint ziemlich "normal, konventionell, durchschnittlich, 08-15, gewöhnlich". 3. Gibt es irgend eine Strategie, um die ungefähre Wellenlänge, auf der Fototransistor und IR-Diode arbeiten, herauszufinden? Und vorallem, ob die Wellenlängen zueinander passen oder ob die beiden völlig aneinander vorbeireden. Gruss Michael
zu 1.: vielleicht solltest du mal eine Kennlinie (oder mehrere) des Transistors aufnehmen, indem du die Spannung mit einem (guten) Multimeter bei verschiedenen Messabständen, IRLED-Strömen etc. misst. Natürlich sollte man immer nur ein Parameter variieren [zwei Fremdwörter hintereinander...]. Blosses Gerate wird zu keinem Ergebnis führen. zu 2.: Sowas findet man im allgemeinen in Datenblättern...Die üblichen Verdächtigen unter den Elektronik-Versendern (C*, Angelika etc) haben meist bei Ihren Produkten auch ein Datenblatt zum jeweiligen Bauteil. Da kann man dann zumindest die grobe Richtung der Belastbarkeit herausfinden. zu 3.: herausfinden, um welche Bauteile es sich handelt, und dann die entsprechenden Grafik/Parameter im Datenblatt angucken.
Hallo, Die IR-LEDs können meist auch nicht viel mehr als die üblichen 20 mA ab. Der rick ist das die LEDs gepulst werden. Dann kann man je nach Pulsdauer und LED bis zu 1A da durchjagen und hat dann eine entsprechend höhere Helligkeit bzw Reichweite. Eckhard
Hallo Ich habe mir den Sensor gestern mal gebastelt, funktioniert ganz ok. IR-Diode und Fototransistor sind beide auf der gegenüberliegenden Seite eines Dünnen Sperrholzplättchens angebracht. Die Diode wird über einen Transistor gesteuert, der Vorwiderstand beträgt 150 Ohm. Später, wenn es 2 Dioden sein werden, werde ich auf 75 Ohm verringern. Der Fototransistor bildet mit einem 10 kOhm Widerstand einen Spannungsteiler, wobei die Spannung über dem 10 kOhm Widerstand gemessen wird. Jetzt eine Frage: Wie schliesse ich das schon wieder an den ADC an? 10 kOhm zwischen PCx und GND und Fototransistor zwischen PCx und Vcc, sollte doch gehen? Bisher habe ich es nur mit dem PC gemessen ;-) Der ADC misst ja die Spannung gegen Masse im Verhältnis zu Vref (wobei ich die 5 Volt von Vcc verwenden werde). Gruss Michael
Hallo Noch eine kleine Frage: Wie lange dauert eigentlich die Reaktionszeit der IR Diode und danach des Fototransistors wenn man gepulstes Licht aussendet? Reicht da eine Millisekunde? Gruss Michael
Hallo Jetzt kommts aber dick: Der Sensor funktioniert, die Software eigentlich auch. Aber: Da die Servos natürlich am selben Akku hängen, verursachen sie ein erhebliches Spannungsruckeln. Der Sensor reagiert auf minime Spannungsunterschiede am Fototransistor zwischen IR-beleuchteter und nicht beleuchteter Umgebung. Er kommt aber durch die Servos ziemlich aus dem Konzept... Wie könnte ich das lösen? Kondensator zwischen Vcc und GND an jedem Servo? Was für ein Typ? Welche Kapazität? Gruss Michael
Hmm...wie mach ich das getrennt? Ich hab ja auf dem Roboter nur einen Akku und kann leider nicht noch ein zweites Atomkraftwerk mitfahren lassen. ;-) Wie sieht ein prinzipieller Schaltplan für das Trennen von GND und VCC aus?
Du hast 2 Spannungsversorgungskreise: Einer versorgt den µC, der andere die Motoren und Servos. Erst am Akku (und nur dort) mündet der eine Kreis in den anderen.
Hallo Elektrisch sind die Kreise ja dann irgendwie auch nicht besonders getrennt. Reicht es, wenn ich zwischen Vcc1/GND1 noch einen Kondensator (0.1uF?) parallelschalte und dasselbe mit VCC2/GND2? Oder sind da noch andere Trennungen, z.B. durch Dioden notwendig? Von solchen Dingen habe ich noch echt wenig Ahnung ;-) Könnte es auch reichen, nach jedem Impuls an die Servos einige Millisekunden mit der Messung zu warten, bis sich die Spannung wieder stabilisiert hat - oder dauert das länger? Oder die Stromversorgung der Sensoren anstatt direkt über Vcc über einen I/O-Port des AVR zu übernehmen? (Widerstand des Sensors: Mindestens 10 kOhm: GND nach ADC-Input (Port C0): 10 k Ohm, ADC-Input nach Vcc: Fototransistor Gruss Michael
Ich bin mir nicht ganz sicher, aber die Impulse und das messen zeitlich zu trennen dürfte die einfachste Lösung sein. Einfach zwischen 2 Impulsen Messen. Das Verbinden an nur einem Punkt verbessert die Situation beträchtlich, das ist nicht zu unterschätzen. Über IO-PORT des AVR ist keine gute idee, da ist ziemlich viel rauschen druff.
> Das Verbinden an nur einem Punkt verbessert die Situation
beträchtlich,
das ist nicht zu unterschätzen.
Hat das damit zu tun, dass eine längere Leitungsstrecke auch eine
gewisse Kapazität hat und somit wie ein Kondensator die Schwankungen
etwas kompensieren kann? Da kommt mir noch so die Idee, vielleicht auch
noch einen Kondensator in Reihe zu Schalten, um die Kapazität zu
erhöhen. Könnte das funktionieren? Welcher Kapazitätsbereich würde
überhaupt Sinn machen?
Dadurch beeinflussen sich die Leitungen nicht so stark. Kondensator in serie kann nciht gehen.
Leitungen sind wohl eher Induktivitäten... Die Versorgung des Sensors kannst du also durch eine Induktivität in Reihe der Leitung und einem Kondensator parallel zum Sensor stabilisieren (nennt sich auch "Siebglied").
> Leitungen sind wohl eher Induktivitäten... Induktivitäten...moooment...Spulen? Brauche ich a etwas Wildes, oder könnte man das auch mit Hausmitteln herstellen? z.B. etwas Draht wickeln? > und einem Kondensator parallel zum Sensor Dies sollte die schnelle Reaktion des Sensors nicht beeinflussen, oder? Könnte man alternativ auch die Spannung der Servos stabilisieren - das wäre in meinem Fall einfacher zu lösen. z.B. Kondensator zwischen GND und VCC nahe am Servogehäuse.
Naja, Leitungen sind auf "lange Sicht" Tiefpässe. Mit welcher Spannung betreibst du denn deinen Sensor? Und mit welcher die Servos? Man könnte die Sensor-Versorgung auch mit einer Diode entkoppeln und einen "dicke" Kondensator dahinterhängen. Dieser Kondesator muß einfach nur soviel Kapazität haben, dass er Versorgungsspannungseinbrüche überbrückt; die Sensor Schaltung also nichts vom Zusammenbruch (für eine gewisse Zeit) mitbekommt. Problem dabei ist der Spannungsabfall über der Diode... Da könnte man bei 6V Versorgung eine Schottky-Diode nehmen (UF~0,3V).
Beides läuft auf 4.8 V eines 4-Zellen-Akkus. Eigentlich könnte man die Entkoppelung aber auch auf der Seite der Servos machen, dann wäre nämlich die ganze Steuerschaltung ruhig und zufrieden. z.B. Vcc --- Diode > --- Vcc (Servo) | Kondensator (Welche Kapazität?) | GND --- < Diode --- GND (Servo)
... und die Leistungsfähigkeit der Servos geht in den Keller. Übrigens brauchst du nur die Diode in der Vcc-Leitung. Wenn du der GND-Leitung auch noch eine spendierst, steigt das GND-Potential der Servos um die Diodenspannung an. GND ist das Bezugsptential für die Steuerimpulse. Ausserdem kann der Kondensator für die Sensorik wesentlich kleiner ausfallen, als für die Servos, da dort ein geringerer Strom fliesst. In der Regel ist es dem Controller auch möglich, bei kleineren Spannungen (<3V; L-Version) zu arbeiten; Servos brauchen schon etwas mehr Spannung. Es ist auch üblich, bei grossen Modellen, die Akku-Zellen-Zahl auf 5 (6V) zu erhöhen. Einerseits bricht die Akku-Spannung dann nicht so stark über die Zeit zusammen (Entladezeitraum), andererseits arbeiten die Servos kraftvoller und schneller.
Achso ist das. Dann werde ich wohl, wenn das möglich ist, gleich die ganze Regelschaltung, inklusive uC von den Servos abtrennen. Bliebe noch die Frage nach der Diode... Das grösste Problem dürfte der Spannungsabfall sein, da ich mit 4.8 V ja keine grosse Reserve mehr habe. Könnte man eigentlich auch einen durchgeschalteten Transistor verwenden? Der lässt ja den Strom auch nur von Kollektor nach Emitter fliessen. Achja, und wie sollte ich den Kondensator in etwa dimensionieren? Hier habe ich wirklich keinen Schimmer. Einige uF? nF-Bereich? pF-Bereich? Kleine Vermutung: 0.1 uF, diesen Wert verwende ich aktuell zwischen Vcc und GND.
eher 100-1000µF (oder mehr) je nach Belastung... 0,1µF (oder auch 100nF) benutzt man meist als "Bunker-Kondensator" für ICs. Guck dir doch mal die Definition der elektrischen Kapazität an.
Auch ein Transistor besteht intern aus Dioden. Dimensionierung des C. Das ist schwer zu sagen. Probier mal ein bischen rum. Es koennte auch sein, dass du 2 C's einsetzen solltest. Grosse C's (10 µF und aufwaerts) um die groben Loecher zu stopfen. Die haben aber den Nachteil, dass sie nicht so flink auf kleine Spikes in der Versorgungsspannung reagieren. Daher noch irgendwas bei 100 nF dazu.
> Auch ein Transistor besteht intern aus Dioden.
Genau deshalb meine ich ja. Soviel mir bisher aufgefallen ist, hat er
aber in durchgeschaltetem Zustand eine sehr kleine Kollektor-Emitter
Spannung. Der Spannungsabfahl durch die Diode wäre also minim. Oder
täusche ich mich da irgendwie?
Wenn ein (normaler bipolar) Transistor durchschaltet, hast Du im Prinzip 2 Dioden in der Durchschaltstrecke. Nimm ne Schottky-Diode. Da kriegst du so ziemlich den kleinsten Spannungsabfall den du kriegen kannst.
Probier's halt aus. Allerdings hängt die Uce auch vom fliessenden Strom ab. Ohne einen Steuerstrom kommst du auch nicht aus, der widerum durch einen Widerstand begrenzt werden muß (mehr Bauteile). Bei Verwendung einer Diode (und vielleichz einer Akkuzelle mehr), sparst du dir das Gezappel.
Mann Leute....mit den Cs die ich jetzt zwischen GND und Vcc gewurstelt habe, fliegen andere um die Welt... Aber immerhin funktioniert es. Ein satter 470 uF Elko richtet die Sache.
Hallo Könnte es sein, das der AVR jetzt zu wenig Spannung bekommt? Es gibt nämlich ein gewisser Hinweis, dass er sich genau alle 5 Sekunden resettet. (Kurzes Stocken der Servos) Zur Erinnerung: Ich verwende einen 4.8 V Akku aus 4 Zellen, die Steuerschaltung ist noch über eine Schottkydiode von Störungen durch die Servos abgekoppelt. Gruss Michael
Hallo Der Roboter hat soeben seinen ersten Testlauf mit den Sensoren geschafft! Die Sensoren funktionieren sehr gut - lediglich mit silbernen Mülleimern, Plüschtieren, Modellautos und gewissen schmalen Objekten hat der Roboter noch etwas Mühe. ;-) Die Software ist aber auch noch wenig ausgereift. Schade nur, dass alles nur auf dem Steckbrett läuft - die (Streifenraster-)Platine habe ich irgendwie versaut. Ich möchte mich nochmals bei allen bedanken, die mir bei der Entwicklung der Sensoren geholfen haben! Wenn sich jemand für die Schaltung und deren Ansteuerung interessiert kann er sich gerne melden. Gruss Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.