-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: Ultraschallsensor an Atmega anschliessen?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2004
    Beiträge
    118

    Ultraschallsensor an Atmega anschliessen?

    Hallo!
    Ich bin relativ neu hier und probier seit einiger Zeit mit meinem Atmega rum. Hab jetzt aus ner alten Polaroid das US-Modul ausgebaut. Das modul scheint soweit zu funktionieren aber ich hab keine ahnung wie ich es an meinen Atmega8 anschließen soll. Reicht es wenn ich die echo leitung des Moduls an einen eingang anschließe und einfach die zeit bis zum ersten high auf diesem port messe? Danke für eure Hilfe. Gruß, Markus

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2004
    Beiträge
    118
    Weiß jemand was an dem echo pin überhaupt ankommt? Brauch ich vielleicht noch irgendwelche anderen Pins? Laut einer Anleitung die ich gefunden habe gibt es noch pins wie OSC, Filter, BLNK und BINH. Ich hab keine ahnung was das sein soll. Ich hab grad versucht mit nem Oszilloskop was rauszukriegen... kommt es vielleicht nicht auf die Voltzahl am ECHO-Pin an sondern auf die Frequenz des Signals? Haben Gleichströme überhaupt irgendwelche frequenzen? Das gibts doch blos bei wechselstrom oder??? Ich glaube mir fehlt hierzu das Grundwissen. Hat jemand vielleicht nen guten link? Hab bisher nur seiten gefunden wo steht wie man das US-Modul ausbaut und beschaltet. Aber nirgends wie man es verwenden soll.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.09.2004
    Ort
    Darmstadt
    Alter
    45
    Beiträge
    166
    Markus,

    ich habe zwei solche US-Module von Polaroid daheim. Hatte vor, diese mit einem ATMega anzusteuern. Die Beschreibung liegt dabei - wenn man es mehrmals durchliest, kommt man drauf, wie es geht

    Die Ansteuerung war relativ einfach. Das Timing ist wichtig. In definierten Zeitabständen muss ein Signal an einen Pin gegeben werden, dann sendet das Modul 16 Schwinungen aus und wenn das Echo eintrifft, kannst Du es am Echo-Pin abfragen. Aus der Laufzeit wird die Entfernung berechnet. Je nach Anwendungsfall können auch Mehrfachechos empfangen werden.

    Hier spontan ein Link. Falls Du mehr Info möchtest, kann ich nochmal nachschauen.
    http://www.uoxray.uoregon.edu/polamod/
    Ausserdem gibt es noch eine Diplomarbeit von Oliver Dahlmann (Hochschule für angewandte Wissenschaften Hamburg), welche verschiedene Module und Methoden beschreibt. Leider funktioniert der Link gerade nicht, aber Google findet ihn.

    Gruß, Achim.

    P.S. Versucht es doch mal mit Rechtschreibung - die Beiträge sind dann echt besser lesbar...

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.09.2004
    Ort
    Darmstadt
    Alter
    45
    Beiträge
    166
    Mann pebisoft, war das Kirgisisch, oder was?

    @Markus:
    Also ich habe jetzt nochmal nachgeschaut. Es geht um das Modul 6500. Das hat einen INIT-Eingang, der mit 4 nummeriert ist. Dieser ist wichtig. BINH oder BLNK kann man erstmal ignorieren. INIT muss solange auf HIGH gesetzt werden, bis an Echo ein HIGH ankommt. Das ist der gesamte Ablauf für einen sog. "Single-Echo-Mode cycle without blanking input".

    Man kann das Modul wie gesagt auch für mehrfache Echos verwenden ("Multiple-Echo-Mode cycle with blanking input"). Dazu müssen BLNK und BINH in bestimmter Weise angesteuert werden. Aber die einfache Variante genügt erstmal.

    Falls Du es hinkriegst, würde ich mich über Info von Dir freuen (Schaltplan , Assembler-Code usw.). Bin leider noch nicht dazugekommen, es selbst auszuprobieren.

    Achim.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2004
    Beiträge
    118

    Wow, ist das einfach!

    Also, ich habs jetzt mal ausprobiert und es hat auf anhieb funktioniert, sowas ist mir ja noch nie passiert.
    @voidpointer
    Hattest recht, ich hab einfach die init-leitung über nen transistor an den Atmega angeschlossen. Und die echo leitung. Jetzt einfach nur noch mit dem Atmega den init-pin auf high setzen und gleichzeitig nen timer starten der per interrupt am echo pin gestoppt wird. fertig. Hab jetzt nen schaltplan und Bascom-code falls du was davon haben willst.

    Ich denke ich werde das modul einfach über den Atmega aus und wieder einschalten um erneut pingen zu können da das mit dem BLNK und BINH wohl noch keiner so richtig hinbekommen hat. Ausserdem ist es eigentlich auch überflüssig.
    Danke für eure hilfe!

    Ach ja, die messwerte für verschiedene entfernungen scheinen nicht gerade linear zu sein. Gibts da irgend ne ultimative formel zum entfernungen berechnen?

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.09.2004
    Ort
    Darmstadt
    Alter
    45
    Beiträge
    166
    Hallo Markus,

    ich weiss nicht, ob Du noch an dem Thema dran bist. Habe gestern eine fliegende Verdrahtung von meinem ATMega8 zum Polaroid-Modul gebaut. Nach ein paar Schwierigkeiten mit der Software habe ich das Ding zum Senden gebracht. Allerdings habe ich aus Vorsicht das ECHO-Signal noch nicht mit dem ATMega verbunden.

    Auf dem Oszi sah das ECHO sehr dürftig aus - hatte nur wenige Millivolt. Aber ich habe gelesen, dass man es mit 4.7 kOhm gegen Vcc pullen soll. Das werde ich heute abend probieren. Auf ein paar interessanten Webseiten habe ich auch Info gefunden, wie man das Modul noch störsicherer machen kann.

    Was ich noch nicht gefunden habe, sind Aussagen zum Timing. In welchem zeitlichen Abstand kann ich denn Impulse senden? Sind 40 ms zu knapp? Theoretisch müsste doch bei einer maximalen Reichweite von 10 Metern eine Laufzeit von 30 ms ausreichen, oder?

    Hast Du das Problem mit der Nichtlinearität gefunden? Ich habe gelesen, dass das Modul in den ersten 2.38 ms die Impulse sendet und währenddessen ein internes "Blanking" steuert. Diese Zeit zählt jedoch mit zur gemessenen Zeit und könnte somit das Ergebnis verfälschen. Es kommt noch dazu, dass ECHO nicht gleich beim ersten empfangenen Impuls gesetzt wird, sondern erst, wenn das Signal sicher als Echo identifiziert wurde. Auch diese Zeitspanne kann das Ergebnis ungenau machen.

    Ich möchte später das Polaroid-Modul mit 6V versorgen, den ATMega aber nur mit 3.3V. Der ATMega soll das Modul direkt triggern, ohne Transistor. Das sollte laut Handbuch auch funktionieren. Die Frage ist, ob ich auch das Echo ohne Schutzmaßnahmen direkt an ATMega hängen kann...

    Gruß, Achim.

  7. #7
    Gast
    Hi, ich bins, Markus, bin grad im geschäft und weiß mein Passwort nicht
    Habe erst gestern wieder mit dem verfluchten ding rumprobiert. Irgendwie funzt es nicht mehr. Bzw erst ab 1m abstand zum objekt und dann kommen jedes mal werte raus die höllisch schwanken. Jetzt wo du das sagst... ich muss auch mal mein oszi an den echo-pin klemmen. Das Blanking ist doch kein Problem, ist doch immer die gleiche zeit. Warum willst du das Modul mit 6V ansteuern? Das braucht doch nur 5?! Wenn du das echo gegen die Vcc mit 3,3V vom Atmega pullst, könnte es doch gehn oder? Zum Thema Störsicherheit hab ich noch nen Elko zwischen GND und Vcc geschaltet weil das Modul während dem Ping so viel schluckt das es mir machnmal zusammengebrochen ist und kein echo registriert hat. Da hab ich auch ewig rumgesucht. Ich meld mich später nochmal wenn ich mein oszi drangeklemmt hab. Grüßle

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.09.2004
    Ort
    Darmstadt
    Alter
    45
    Beiträge
    166
    Warum willst du das Modul mit 6V ansteuern? Das braucht doch nur 5?!
    Du hast recht. Ich hatte vor einiger Zeit die Info, dass es zwischen 6 und 8 Volt braucht. Mittlerweile bin ich auch schlauer. Aber die Anwendung, wo es mal rein soll, hat zwei geregelte Spannungen, eben 5V und 3.3V. Zur Regelung nehme ich je einen Low-Drop-Regler, der 250mV Differenz braucht. Da bot sich ein 5-Zellen-Akku (nominal 6V) als Spannungsquelle an. Weil das Sonar soviel Strom zieht, soll es eben direkt an den Akku dran. Bin zwar kein Experte in Sachen Analogelektronik, aber sollte prinzipiell gehen.

    Wegen der Störungen empfehle ich den Link http://www.acroname.com/robotics/inf...nar/sonar.html . unter "Noise Issues" steht, dass man BINH am besten noch auf dem Modul gegen GND legen soll, falls es nicht benötigt wird. Der von Dir genannte Elko wird auch empfohlen.

    Ich bin gespannt auf Deine Timing-Info.

    Spaß, Achim.

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.06.2004
    Beiträge
    118
    Also, ich hab mir meine schaltung nochmal angeguckt. Ich hab den Echo-Pin über nen 12KOhm Widerstand auf +5V gelegt und greife das signal über nen 100Ohm Widerstand ab. Die 100Ohm einfach nur so zur sicherheit damit das signal halt nicht voll in den AVR reingebollert wird. Mein Oszi sagt das wenn das Modul eingeschaltet ist, die echo leitung auf 0V gezogen wird, sobald ein echo empfangen wurde geht er aber auf volle 5V hoch. Also bei deinen paar mV läuft wohl irgendwas falsch. Wegen dem timing hab ich mir noch nie gedanken gemacht weil ich bisher daran dachte das modul nur einzusetzen wenn ichs brauche um mal schnell nen ping abzugeben. Zumal ich es per AVR nach jedem ping koplett abschalte (sonst fuzt der ping nicht mehr) was ja auch ein bissel zeit benötigt. Aber ständig zu pingen wär auch ne sinnvolle idee... wenn es nur etwas genauer wäre.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    03.09.2004
    Ort
    Darmstadt
    Alter
    45
    Beiträge
    166
    Jo, mit dem Pull-Up funktioniert es besser. Ich glaube, es ist egal, ob man 4.7k oder 12k nimmt. Irgendetwas in diesem Bereich wird passen.

    Über Fast-PWM lege ich alle 40 ms den OCR1B - der an INIT hängt - für 36 ms auf High. Das ECHO-Signal erfasse ich über ICP1 mit einer entsprechenden Interruptroutine. Dort wird der Zählerstand von ICR1 ausgelesen und in Millimeter umgerechnet. Dieser Wert wird über die serielle ausgegeben. Ich habe nur noch ein kleines Softwareproblem: die Interruptroutine wird pro Zyklus zweimal aufgerufen, einmal beim Timer-Overflow und das zweite mal beim eigentlichen Input-Capture. Weiss nicht, was da falsch läuft, aber habe es abgefangen. Die Messergebnisse erscheinen plausibel. Es kann nur sein, dass schräge Wände und sonstige Hindernisse manchmal falsche Messungen verursachen. Da müsste ich aber nochmal exakte Tests durchführen.

    Achim.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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