- 12V Akku mit 280 Ah bauen         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 40

Thema: Infrarotnavigation zum Finden der Basisstation (Hilfe!)

  1. #1

    Infrarotnavigation zum Finden der Basisstation (Hilfe!)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute!

    Ich habe bei einem Projekt ein Problem und nachdem ich nun schon einige Tage daran verbraten habe, dachte ich, ich könnte hier vielleicht ein paar Hilfen/Anregungen bekommen.

    Ein paar Bilder zu dem Projekt findet man hier:
    http://www.tu-harburg.de/ti6/mitarbe...ery.html#Robot vor allem die oberen drei vier Bilder sollten einen Eindruck vermitteln.

    Um das Problem zu beschreiben also zunächst mal eine grobe Übersicht worum es geht:

    Meine Aufgabe an dem Projekt ist es, mittels dreier Infrarotdioden eine Navigation zu basteln, so dass der Roboter selbstständig in die Station findet. Das Programm läuft in der Simulation gut, nun muss überlegt werden, wie ich die drei baugleichen Dioden unterscheiden kann.

    (In der Simulation haben die Dioden eine ID, das geht in der Wirklichkeit natürlich erstmal nicht so, die wird ja durch die Codierung erst realisiert).

    Die Codierung sieht also (momentan) folgendermaßen aus: Ich lasse die Dioden zeitversetzt senden (jeweils nur eine) und zwar mit unterschiedlichen Längen, dadurch kann dann der Empfänger erkennen, welche Diode gerade sendet (z.B. 3ms, 4ms und 5ms mit jeweils Pause dazwischen).

    Prinzipiell wird das Signal der Dioden mit 13,2kHz moduliert, damit Störungen unterdrückt werden. Eine Empfängerschaltung liegt auch vor, und bei der fangen die Probleme an. Nur für den Überblick, ich erwarte nicht, dass da jemand tief einsteigt, da ich die auch nicht selber entworfen habe, hier der Schaltplan der Empfängerschaltung:

    Bild hier  

    Der Problemkondensator C15 ist deswegen ein Problemkondensator, weil er zwei gegensätzliche Anforderungen erfüllen muss: Zum einen muss er groß genug sein, damit das Signal am Ausgang der Schaltung bei größeren Entfernungen nicht total verhunzt ist, zum anderen muss er klein genug sein, damit die Zeitkonstante nicht zu groß wird und die Abtastung damit zu gering.

    Zufridenstellende Signale bekomme ich nur mit nicht zufriedenstellenden Zeitkonstanten. Das Problem: Wenn die Zeitkonstante groß ist, entlädt sich der Kondensator noch, während der Puls der Sender-LED bereits beendet ist. Solange der Kondensator noch nicht sicher leer ist, darf die nächste LED nicht anfangen zu senden, da die Signalstärke dieser LED dann durch den vorgeladenen Kondensator verfälscht wird. Damit wird ein "Sendezyklus" zu lang, um eine brauchbare Wiederholrate hinzubekommen.

    Einige Werte: Die Auf- und Abschwingzeit der Empfängerschaltung liegen zusammen bei ca. 8ms (im schlechtesten Fall) während ich Pulse von 3, 4 und 5ms habe....

    So und nach dieser doch recht langen Vorrede kommen wir meinem eigentlichen Problem schon näher: Meine Idee ist nun eine "Entladeschaltung" zu basteln, die in Abwesenheit des Sendepulses den Kondensator C15 gegen GND schaltet, damit dieser sich rucki-zucki entlädt und ich mir damit 5ms Abschwingen erspare.

    Nach einigem Probieren bin ich auf die folgende Schaltung gekommen, die an den Punkten A und B in der Empfängerschaltung eingehängt wird:

    Bild hier  

    Punkt A hat einen Gleichanteil von 4,095V und draufgesetzt das 13,2kHz-Signal einer LED (sofern die gerade einstrahlt). Die Schwingungsamplitude liegt je nach Entfernung zwischen 30mV und geht bis hoch auf 4,095V. Punkt B soll durch die Entladeschaltung auf GND gezogen werden, wenn keine LED einstrahlt.

    Mein Problem ist nun unter anderem, dass ich nicht weiß, wie ich die Brücke in der Entladeschaltung anklemmen soll, um ein (zunächst einmal pulsierendes) Gleichspannungssignal zu erhalten, da ich ja am Ausgang des OPV nur eine Strippe habe, so wie dargestellt funktioniert das nicht, ich erhalte nur eine Halbwelle der Sinusschwingung, die in meine Schaltung reinkommt.

    Nun ist mir vorhin die Idee gekommen, einen Schmitt-Trigger zu verwenden und das Signal dann gleichzurichten, das sollte ja noch gleichmäßiger sein als ein gleichgerichtetes Sinussignal. Aber dazu habe ich noch keine weiteren Überlegungen angestellt.


    Jetzt danke ich erstmal allen, die bis hierher durchgelesen haben und ob meiner Erklärungen wahrscheinlich nur Fragezeichen im Gesicht haben. Wenn was nicht klar ist oder ich was vergessen habe zu erwähnen, bitte nachfragen.

    Ansonsten die Frage: Wie könnte ich die Brücke anklemmen um das einfallende Sinussignal in ein Gleichspannungssignal umzuwandeln? Habt ihr unter Umständen Ideen, wie ich das ganze auch komplett anders angehen kann?

    Vielen Dank schonmal,

    Moe
    You know you’re an engineer if you have a habit of destroying things in order to see how they work.

    --
    StreetSkatingHH - Das Spotarchiv
    http://StreetSkatingHH.de

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    wieso erhoehst du nicht einfach die zeit in der er sich entladen kann? ..
    ein paar millisekunden mehr oder weniger dürften doch nicht so schlimm sein, wenn er langsam nachhausegerollt kommt ??

  3. #3
    also es sind ja vier IR-Sensoren (vorne, hinten, rechts und links) die alle teilen sich eine Empfängerschaltung, es muss also immer umgeschaltet werden. Wenn ich länger warte, geht das ja auch.

    Der Roboter soll aber möglichst zügig in die Basis kommen. Momentan dauert ein Sendezyklus etwa 27ms. Bis also alle Sensoren einmal die aktuellen Daten haben (mal abgesehen davon, dass der Roboter dabei auch weiterfährt), sind

    4*27ms = 108ms

    vergangen. Die Updaterate liegt also bei

    f=1/108ms = 9,25Hz.

    Wenn man jetzt annimmt, das man so alle halbe Zentimeter einen neuen Wert haben will, ist man mit unter 5cm/s Fahrtgeschwindigkeit dabei. Dazu fährt man dann auch an der Grenze der Genauigkeit und irgendwie denke ich, dass es schöner wäre, wenn man noch ein wenig Luft nach oben hat.

    Rein Abschätzungsmäßig hatte ich mir vorher überlegt, so in etwa bei 5cm/s zu liegen, oder ist das immernoch recht fix? Ich hab da leider nicht so die Vergleichswerte, hab nur mal mit nem Finger am Lineal langfahrend die Zeit genommen...


    Und nochmal zu den Zeiten: Ich vergleiche zum Navigieren unter anderem die Signalstärken rechts mit links, um in die entsprechenden Richtungen zu fahren. Da sollten die Messwerte zeitlich eben auch möglichst nah beieinander liegen. Erschwerend kommt hinzu, dass die Abklingzeit mit der Entfernung abnimmt, so dass die detektierten Pulslängen auch varieren, was wiederum größere Unterschiede der einzelnen Pulslängen erfordert als sie momentan haben...


    Moe
    You know you’re an engineer if you have a habit of destroying things in order to see how they work.

    --
    StreetSkatingHH - Das Spotarchiv
    http://StreetSkatingHH.de

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo Moe,

    ich denk, du hast da das Problem schon vom Design her eingebaut. Die Pulsdauer ist unter schwierigen Übertragungsbedingungen ein denkbar ungeeignetes Merkmal. Das hat sich in der Technik Geschichte mehrfach gezeigt: Maschinen verwenden nicht Morse, sondern Baudot, Funkvernsteuerungen verwenden nicht pwm, sondern ppm.

    Eine Bessere Variante ist sicher das Verwenden von Impuls Abständen als kritisches Merkmal.

    Begonnen wird mit dem ersten Impuls, den alle Dioden abstrahlen. Gestaffelt senden die einzelnen Dioden ihren Impuls ab. Dann kommt die Synchronisationspause, wo niemand sendet.

    Code:
    Pulse 0.5 ms
    
    D1  0.5 ms Pause
    _| |_| |___________________| |_| |________
                                                                 
    D2  1.5 ms Pause                                                       
    _| |____| |________________| |____| |_____
                                                                  
    D3  2.5 ms Pause                                                        
    _| |________| |____________| |________| |_
    
    Sync Lücke 4 ms
    Ich hoffe, mein asci Kunstwerk kann richtig dargestell werden.

    Bei dieser Methode kann so gefiltert werden, dass das Einschalten und das Ausschalten 0.25 ms dauern.

    Übertragungsbedingte Verzögerungen wirken sich nun weniger aus, weil das Rauschen die Impulse gemeinsam verschiebt und die Differenz gleich bleibt. Ich denke Common Mode Rejection heisst das auf Deutsch. Wenn man per Software decodiert, dann kann man synchron zum Zeitraster dekodieren und Fehlsignale ausserhalb werden ignoriert.

    Zusätzlich ist die Verwendung eines Schmitt Triggers sinnvoll.

    Die Ausgänge der Grätz Brücke kommen an die beiden Eingänge des folgenden OPAmp. So wie gezeichnet, schliesst du eine Halbwelle kurz.

    Auf Rückfragen antworte ich gern,
    grüsse,
    Hannes

  5. #5
    Hallo Hannes, danke schonmal für die Antwort.

    Klingt ja schonmal ganz gut. Leider klappt das mit der Synchronisation durch senden aller drei Dioden gleichzeitig nicht, wenn ich mir das so richtig vorstelle. Grund: Ich kann ja gar nicht feststellen, dass alle drei Dioden gleichzeitig senden. Alle Dioden sind für den Empfänger gleich. Oder halt da fällt mir ein: Meinst Du das, damit (sollte eine LED nicht im Sichtbereich sein) auf jeden Fall irgendein Signal ankommt? Das ist natürlich gut.

    OK, also ich bekomme ein Signal (merke mir schonmal die Pegelhöhe) und messe dann nach der fallenden Flanke die Zeit bis zur nächsten steigenden Flanke. Anhand der Zeit sollte ich dann wissen, welchem Puls ich die vorher gemessene Höhe zuordnen muss, richtig? Wenn die Zeit ergibt, dass es das Synchronisier-Signal war, dann verwerfe ich die Pulshöhe.

    Dann muss ich mir nur noch überlegen, wie alle Pausen eindeutig sind, auch dann noch, wenn eine oder zwei LEDs nicht empfangen werden.

    Bestehen bleibt dann immernoch das Problem mit der fallenden Flanke am Ausgang der Empfängerschaltung. Die Dauer dieser richtet sich nämlich immernoch nach der Entfernung der einstrahlenden LED, so dass auch die Pausendauern variabel sind.

    Ich hab die Pulse mal von der Oszi-Anzeige abfotografiert. Die Entfernung müsste so bei um die 10cm liegen, leider habe ich mir die nicht notiert. Wenn ich näher rangehe, ist die fallende Flanke auf jeden Fall länger da und auch der maximale Pegel steht noch eine Weile nach dem Ende des LED-Pulses an, kann man auf dem Foto auch schon ein wenig erkennen.

    Bild hier  

    Vorteil wäre ja aber auf jeden Fall, dass die Pulslängen selber relativ kurz gehalten werden können. (Ein AD-Wandelzyklus dauert 100us, man könnte dann ja 10 Zyklen mitteln)

    Auf jeden Fall lohnt es sich wohl, mal über Deine Version nachzudenken, also nochmals Danke. Heute habe ich mir eine andere Version der Entladeschaltung gebastelt (erstmal in PSpice), die Gleichrichtung erfolgt da über eine Schaltung mit drei Transistoren, ich habs nochnicht so ganz geblickt wie, funktioniert aber auf jeden Fall.

    Die Schaltung selber scheint jedenfalls das zu machen, was sie soll, morgen teste ich dann mal, ob sie das auch im Verbund mit der Empfängerschaltung tut. Wenn ich die fallende Flanke noch verkürzt bekomme und dann mit der Pausenlänge arbeite, könnte das vielleicht ein sehr gutes Ergebnis bringen.

    Gruß Moe
    You know you’re an engineer if you have a habit of destroying things in order to see how they work.

    --
    StreetSkatingHH - Das Spotarchiv
    http://StreetSkatingHH.de

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    23.04.2007
    Ort
    stuttgart
    Beiträge
    1.127
    kannst du nicht auch leds und empfänger mit verschidenen frequenzen benutzen ?? bzw weisse leds nehmen und dann einen filter davor der nur eine freq durchlässt.. dann musst du gar nix mehr mit pulsen machen... nur mal so ne idee...
    und warum habt ihr alle so schoene oszilloskpoe.. auch haben will aber die sind doch verdammt teuer oder täusch ich mich da ??

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Ja Moe,

    das ist schon richtig, dass der Empfänger nicht feststellen kann ob alle oder nur eine LED senden, AAABER der Empfänger richtet sich nach der Synchronisationspause. Eigentlich: SYNCHRONISATIONSABSTAND. Das habe ich zu wenig ausgeführt und auch ungenau beschrieben. Ein Abstand der länger ist als 3.5 ms und kleiner als 5.5 ms wird als Synchronisation gedeutet. Den Impuls nach dem grossen Sync Abstand haben alle gesendet. Synchronisation durch Pausen ist ein gängiges Verfahren. Das macht das Fernsehen so, das machen die Mehrkanal Spielzeugfernsteuerungen so. Das macht auch Baudot meistens.

    Abstände länger als 5.5ms bedeuten, dass kein zuverlässiges Signal ausgewertet werden kann.

    Bitte beachte, dass meine Zahlen nur Hausnummern sind. Das sind Beispiele zu Verdeutlichung. Die Grössenordnung kann aber passen, wenn ich meine Erfahrungen mit meiner IR Fernsteuerung in Betracht ziehe. Wenn bei dir die Verhältnisse anders liegen, dann sind die Zeiten leicht an zu passen.

    Das Problem mit der Verfälschten Pausenlänge durch eine abweichende Impulsform hast du nicht. Du verghleichst schlauerweise Abstände zwischen den Steigenden Flanken. Nach deinem Oszigramm zu urteilen, geht das schon ausreichend genau.

    Tolles Gerät, sowas werd ich mir auch zulegen, wenn ich mal mehr Elektronik betreibe. Zur Zeit beurteile ich Tastverhältnisse noch mit dem Kophörer. Ist zwar mühsam, aber es geht.

    Die Variante mit dem Synchronisations Signal auf einer zweiten (Licht-) Wellenlänge ist auch machbar. Das ist aber aufwändiger und bringt in diesem Anwendungsfall nchts gegenüber der anderen Möglichkeit. Bei optischen Leuchttürmen und auch bei Funknavigationshilfen für den Flugverkehr wird etwas ähnliches angewandt. Der Leuchtturm hat einen umlaufenden Strahl und jedes Mal, wen der Strahl nach Norden weist, wird zusätzlich ein rundum sichtbarer Blitz abgegeben. Die Zeitdauer vom Blitz zum Aufleuchten des Scheinwerfers ist ein Mass für die Peilung meines Standortes vom Turm aus gesehen.

    Ohne dass ich jetzt nochmal in die Schaltung sehe: Der Kondensator ist möglicherweise einfach in einer Richtung zu wenig belastet. Mit einer entsprechend gepolten Diode und einem Widerstand in Serie nach Masse oder nach Betriebsspannung kann man da meistens abhelfen. Vorsichtig testen, wenns raucht, wars zu niederohmig.

    grüsse,
    Hannes

  8. #8
    Aha! Manchmal is man ja wie vernagelt... Macht natürlich Sinn, nur auf die steigenden Flanken zu gucken, die sind ja steil genug.

    Mit mehreren Frequenzen zu arbeiten, war natürlich auch gleich meine erste Idee, es bleibt aber immer bei dem alten Problem: Der Kondensator C15. Es ist nämlich so, dass in dem Roboter der hintere Teil der Schaltung (also ab Punt A) nur einmal vorhanden ist, der vordere Teil ist in jedem Connector einmal, die Teile sind dann mit einem Multiplexer auf den Logarithmierer (so geschrieben?!) an Punkt A verbunden.

    Und da der hintere Tiel nur einmal vorhanden ist, muss ich auch am Empfänger den Bandpass umswitchen und trotzdem warten, bis der Kondensator leer ist, sonst liegt ja noch Spannung vom vorhergehenden Signal an... Naja, alles nicht so einfach und in Textform zu erklären noch schwerer.

    Also: Ich werde heute erstmal versuchen meine Entladeschaltung zuende zu bringen, die Spice-Simulation sah zumindest brauchbar aus. Dann werde ich mich aber auf jeden Fall noch mit der Pausencodierung befassen, da sich das sehr vielversprechend (und nach Hannes' Ausführungen auch schon erprobt) anhört.

    Ach ja da Oszi: Das ist ein Tektronix TDS2024 (schön kleines Teil) und kostet bei Conrad knapp 3000 Euronen:

    http://www1.conrad.de/scripts/wgate/...&scrwidth=1280

    Leider ist das nicht meins. Aber haben würd ichs natürlich schon gerne. Es fehlt eigentlich nur der Disketten oder USB-Slot zum Datenexportieren, dann bräuchte man keine Fotos machen um die Plots weiterzuverarbeiten...


    Grüße, Moe.

    ---
    edit: Das Bild bei Conrad ist übrigens das falsche... super.
    You know you’re an engineer if you have a habit of destroying things in order to see how they work.

    --
    StreetSkatingHH - Das Spotarchiv
    http://StreetSkatingHH.de

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    Hi Moe,
    schau dir mal den TSOP7000 voN Vishay an.
    Der arbeitet mit einer Trägerfrequenz von 455kHz und kann eine Datenrate von ca. 20kBit/s damit empfangen..

    Die ganze Verstärker und Demodulatormimik ist ja da schon drin...
    Jetzt musst die Basisstation nur noch einen umlaufenden Strahl senden, der über die Zeit oder Pulsweite oder auch den Bitcode den Winkel sendet..

    Auf der Robot-Seite würden 4 TSOP7000 eine Rundumsicht erlauben, da jeweils ca. 100° Blickwinkel.. Vor allem braucht auf der Bot-Seite sonst nichts zu sein, außeres eines einzigen Ports (oder auch 8-pin-Controllers, der die Auswertung übernimmt)..

    Sigo

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.01.2006
    Ort
    Hattingen
    Alter
    59
    Beiträge
    984
    OK, die Messung der Signalstärke geht so nicht. Die Absolutposition des BOTs ließe sich hingegen mit Hilfe von 2 Sendern in einem gewissen Abstand schon peilen..

    Sigo

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests