- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 11 ErsteErste 12345 ... LetzteLetzte
Ergebnis 21 bis 30 von 104

Thema: Ultraschall - Entfernunsmessung mit Ultraschall Interface aus RN

  1. #21
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Anzeige

    Praxistest und DIY Projekte
    Das Problem mit der Verzögerung durch den Overflow Interrupt kann gut sein. Ganz vermeiden kann man das nicht beim Tiny25, dazu bräuchte man schon einen µC mit "input capture" (z.B. Tiny2313 oder MEga4 oder eine ähnliche externe Hardware. Man kann das Problem aber reduzieren, indem man die ISR für den Overflow als Inline ASM schreibt. Die ISR ist in Bascom ausgesprochen langsam, weil viel zu viele Register gerettet werden. So etwa 100 Zyklen sind das minimum für eine praktisch leere ISR. Da kommen die 16 µs gut hin. Mit Inline-ASM könnte man da auf etwa 10-15 Zyklen kommen, das wären dann nur 2 µs als möglicher Fehler. Einen Vorteil hat Bascom immerhin, inline ASM ist relativ einfach im Vergleich zu GCC. Eine kurze Erklärung gibt es hier:
    http://www.rn-wissen.de/index.php/Ba...ogrammieren.3F

  2. #22
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Hallo,

    Die schallwandler stammen aus einer Platine von Conrad, die ich mir ursprünlich für Abstandswarnung auf meinem Roboter gekauft habe. Da diese aber nur einen I/O ausgang hat ("kritische" entfernung per poti einstellbar) und noch dazu nicht genau ist, habe ich eben versucht, so was mit Laufzeitmessung zu bauen
    Artikel hier: http://www.conrad.at/ce/de/product/1...archDetail=005
    Es gibt auch eine anleitung dazu (wahrscheinlich interessanter)
    http://www.conrad.at/ce/de/product/1...archDetail=005
    Die Teile hab ich einfach ausgelötet und verwende sie nun. Auf der Platine haben sie bereits funktioniert.

    Ich muss zugeben dass die Frage mit dem Oszi eigentlich eh etwas überflüssig war, weil ich so eine "Laienprüfung" durchgefürhrt (kein spannunseinbruch wackelkontakt oä., das Netzteil liefert auch eingesteckt 9V) habe und ich mich sowieso nicht trauen würde, im inneren etwas zu modifizieren. Genau genommen gehört es nicht einmal mir selbst, ein Bekannter hat es mir geliehen, da er es schon seit ewigkeiten nicht mehr wirklich gebraucht hat. Habe mir diesbezüglich aber nichts vorzuhalten, es ist ja wirklich schon alt und ich habe es immer wie ein Heiligtum behandelt

    Da ich ohne Oszi eigentlich keine Cance habe, herauszufinden, wo der Fehler in der Schaltung liegt, ja nicht einmal ob etwas im Empfangswander ankommt, befürchte ich, so bald nichts neues berichten zu können. Ich kenne jemanden, der ein DSO besitzt und werde den mal fragen, ob ich ein paar messungen machen darf. Aber: Ich teste natürlich mit dem Voltmeter weiter
    Überlege auch schon ernsthaft, ob ich mir einmal ein eigenes, nicht zu teures DSO zulegen soll...

    EDIT: zu beitrag von Besserwessi
    ASM .. oh je.. kann leider kein bisschen ASM
    aber 16 us sind so wenig, dass das bei mir überhaupt keine Rolle Spielt.
    Das Modul soll später einmal drehbar auf meinem Roboter montiert werden, dass er messungen in jede richtung durchführen kann und sich so über eventuelle hindernisse informieren kann, entweder für den Benutzer oder, um eben ein bisschen auszuweichen. Da spielt 1cm abweichung für mich überhaupt keine Rolle, mehr als 5cm wäre schlecht, aber 1cm liegt für mich absolut im Toleranzbereich.

    Mfg Thegon
    Geändert von Thegon (22.08.2011 um 17:30 Uhr)

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Besserwessi
    Mit Inline-ASM könnte man da auf etwa 10-15 Zyklen kommen, das wären dann nur 2 µs als möglicher Fehler. Einen Vorteil hat Bascom immerhin, inline ASM ist relativ einfach im Vergleich zu GCC
    Ich winde mich hier auf meinem Stuhl hin und her Die Möglichkeit ist mir bekannt und weis nicht, ob ich die Büchse der Pandora öffnen soll Mal sehen, wäre ein neuer Schritt für mich... und reizt mich auch. Denke aber, es wird kein neues Programmupdate von mir geben, mindestens bevor das IF von Thegon fertig ist

    @Thegon: Danke für die Info zum Schallwandler.
    Ich habe am Anfang mal mit einem Soundkartenoszi gearbeitet. Das ging behelfsmäßig ganz gut bis etwa 10kHz. Ist auch von der verwendeten Soundkarte abhängig. Braucht aber mindestens einen Spannungsteiler am Sounkarteneingang. Ob das bei 40kHz wirklich weiterhilft?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #24
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Soundkartenoszi, interessanter Gedanke, würde ja auch nichts kosten, wenn ich eine Freeware bekomme, und schaden kanns ja eigentlich auch nicht, wenn man vorsichtig ist.
    Ich werde mich mal ein bisschen umschauen, danke für den Tipp!

    Mfg Thegon
    Geändert von Thegon (22.08.2011 um 18:00 Uhr)

  5. #25
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.075
    Ich habe bisher schon mitgelesen und wollte zunächst nur noch sagen, dass man grundsätzlich die möglichen Fehlerursachen so gut wie möglich voneinander trennen sollte. Es ist ja bei einer Analogschaltung ein großer Vorteil wenn ein Oszilloskop zur Verfügung steht. Bei dieser Schaltung sollte man dabei auf den Sendepuls triggern und das Empfangssignal möglichst direkt am Empfangswandler aufnehmen.
    Man Überprüft damit zunächst eben nur die Wandler und schafft den Teil des Systems schon mal auf die sichere Seite.

    Da ein Oszilloskop nicht gerade für unverstärkte Ultraschallsignale gebaut ist sollte man hierzu das Empfangssignal so groß wie möglich machen, beispielsweise durch das heranführen des Empfangswandlers an den Sendewandler. Da beim Senden die Störungen am größten sind hilft es, die Kopplung zwischen den Wandlern herzustellen und alternativ mit einem Blatt Papier zu trennen. Zwei lose Lagen sind schon eine gute Abschirmung. Man kann so erkennen was über die Wandler übertragen wird.

    Störungsfrei und trotzdem stark wird das Signal, wenn man eine Laufzeit zwischen den Wandlern vorsieht die keine Ausbreitungsverluste hat, also ein Rohr zwischen den Wandlern, sind sie schon nebeneinander montiert, dann eben ein Stück Schlauch damit man um die Kurve kommt.

    Wenn man sieht dass es ein Signal gibt das vom Sendepuls erzeugt wurde dann kann man sich in ähnlicher Weise den Verstärker vornehmen, zunächst mit starken Signalen ohne Ausbreitungsverluste. Die Verstärkung lässt sich dann gegebenenfalls auch noch erhöhen, Hauptsache man sieht erst einmal das Signal.

  6. #26
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Nun wie schon gesagt, es wird leider noch ein bisschen dauern bis ich wieder an ein Oszi komme, dann werde ich auf jeden Fall ausprobieren, was Manf geschieben hat. Zurzeit heißt es für mich warten, leider.
    Mfg Thegon

  7. #27
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von Thegon Beitrag anzeigen
    Nun wie schon gesagt, es wird leider noch ein bisschen dauern bis ich wieder an ein Oszi komme, dann werde ich auf jeden Fall ausprobieren, was Manf geschieben hat. Zurzeit heißt es für mich warten, leider.
    Mfg Thegon

    Für Windows gibt es scope.EXE für Lau.

    Gruß Richard

  8. #28
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die ISR zum Hochzählen einer Wordvariable ist wirklich nicht schwer in ASM. Da sollte sich eine passenden Hilfe finden. Immerhin ist das ja auch kein so seltener Fall. Das sind aber Feinheiten, erst sollte die Hardware funktionieren.

  9. #29
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Mit US habe ich noch nichts gemacht, deshalb ist die Frage vielleicht blöd. Warum macht ihr es nicht so?

    Code:
    Disable Int0
    do                          'Beginn Hauptprogramm
      Do                                    'Warten auf Tastendruck (PB4 nach GND)
        Debounce Pinb.4 , 0 , Start_mit_burst
      Loop
    
    Start_mit_burst:
      Endtime = 0
      For Pulsecount = 1 To 16              '16 Pulse erzeugen (Burst mit ca 41kHz)
        Reset Portb.1
        Waitus 11
        Set Portb.1
        Waitus 11
      Next Pulsecount
    
      Disable Interrupts                    ' kann auch bei der Zeitmessung nicht schaden
      While Pinb.0 = 0
        Incr Endtime
      Wend
    
      Call Display_value(endtime)           'Meßzeitausgabe über 7 Segmentanzeige
      Enable Interrupts
    
      While Pinb.0 = 1
      Wend
    
    Loop                                    'Loop Hauptprogramm
    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #30
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von radbruch
    Mit US habe ich noch nichts gemacht, deshalb ist die Frage vielleicht blöd. Warum macht ihr es nicht so?
    Keine Ahnung. Dann hätten wir keine Probleme mit dem Interrupt Timing und wir müßten kein ASM lernen

    Nein, etwas ernster: Ich denke nicht, daß das speziell was mit Ultraschall zu tun hat. Per Interrupt zu messen hätte den Vorteil, daß während der Meßzeit noch was in der Hauptschleife gemacht werden könnte. In der while Schleife zu zählen ist sehr einfach und ressourceschonend, vielleicht auch genauer, blockiert aber während der Meßzeit die Hauptschleife.

    Thegon müßte auswählen, was besser in sein Konzept paßt. Ich würde für diese Anwendung wahrscheinlich per Interrupt und einem 16Bit Timer messen. Hoffentlich kommt die HW zum Probieren ans Laufen.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 3 von 11 ErsteErste 12345 ... LetzteLetzte

Ähnliche Themen

  1. Ultraschall-Interface
    Von e_f1986 im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 06.01.2008, 12:35
  2. Ultraschall Interface Problem
    Von NemesisoD im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 29.03.2007, 13:26
  3. Ultraschall-Interface will nicht...!
    Von BASTIUniversal im Forum Sensoren / Sensorik
    Antworten: 29
    Letzter Beitrag: 14.09.2006, 19:55
  4. Ultraschall Interface
    Von Eddi1984 im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 11.08.2006, 18:53
  5. Grundlagen Ultraschall Interface mit Analogausgang
    Von Manf im Forum Artikel / Testberichte / Produktvorstellungen /Grundlagen
    Antworten: 0
    Letzter Beitrag: 13.12.2004, 23:50

Berechtigungen

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

Solar Speicher und Akkus Tests