- 3D-Druck Einstieg und Tipps         
Seite 9 von 11 ErsteErste ... 7891011 LetzteLetzte
Ergebnis 81 bis 90 von 104

Thema: Ultraschall - Entfernunsmessung mit Ultraschall Interface aus RN

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

    Praxistest und DIY Projekte
    Zum Programmieren des Input Capture hat man vermutlich 2 Möglichkeiten: man kann auf die Unterstützung von Bascom setzen, sofern es die gibt, oder man schreibt direkt in die Register, dann geht es genau so wie in C. So viel zu programmieren gibt es da auch nicht. Der Timer läuft ganz normal als Timer durch. Die ICP Funktion ist immer aktiv, die kann man gar nicht abschalten. Das einzige was man noch zu tun hat, ist die passende Flanke auszuwählen und dann die Zeit aus den ICP Registern auszulesen. Statt den externen Interrupt nutzt man dann halt den ICP Interrrupt. Dabei muss man vermutlich am Anfang der Messung das Interrupt Flag löschen, damit man auch wirklich erst auf das Echo anspricht. Die Komplikation mit dem Overflow kann man sich hier sparen, denn 16 Bit Auflösung sollten reichen.

  2. #82
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Hmm, der 16 Bit timer macht bei mir nur Käse

    Je weiter die Entfernung wird, desto kleiner werden die Zahlen

    ich habe auch schon kalibrierungsmessungen durchgefürht, und mich gewundert, wie klein der Unterschied zur Wahren Messung (mit messband) ist. Die Reaktionszeit scheint nur wenige us zu betragen.
    Naja, nur eben das Problem mit den bestimmten Stellen, die immer gleich hoch bleiben.
    Ach ja, diese Stellen sind übrigens immer ein vielfaches von 256...

    Mfg Thegon

  3. #83
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,

    ohne ganz genau zu wissen was ich da mache habe ich mal inline asm in meinem früheren geposteten Programm probiert. Die wenigen Befehle sind einfach nur aus dem Debounce Beispiel vom RN-Wissen kopiert. Scheint aber zu funktionieren. Ohne Gewähr und mit zitternden Knien .

    Systemtakt = 8MHz, Timer läuft mit 1MHz (Prescaler = 8 ).
    Im meinem vorherigen Programm hatte ich eine Anzeigelücke von 16µs. Die ist nun mit der neuen ISR auf 5µs. gesunken.

    Code:
    On Timer0 Isr_count_overflows Nosave
    
    Isr_count_overflows:                    'Ansprung, wenn Timer0 überläuft
      !push r16
      !in r16,sreg
      !Push r16
      Timer0_overflows = Timer0_overflows + 1
      !pop r16
      !out sreg,r16
      !pop r16
    Return                                       'Hier vielleicht !RETI ???
    Zitat Zitat von radbruch
    Zu Rechenzeit in der ISR: Wird "incr Countperoverflow" schneller ausgeführt?
    Ich hab es mal im Simulator ausprobiert. INCR braucht 19 Zyklen und die +1 Variante nur 16. Ich war überrascht.

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

  4. #84
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Erstaunlich. Ich sollte auch mal den Simulator verwenden.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #85
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Hallo allerseits,

    Ich habe nun noch eine Umfangreiche Kalibrierung vorgenommen und war sehr erstaunt:
    Das Signal ist schneller, als es tatsächlich sein sollte. Ich nehme an, der timer tickt dann zu langsam oder irgentetwas anderes bremtst das Zählen aus.
    Da diese Ungenauigkeit aber immer gleich bleibt, habe ich einfach immer 600us dazugezählt.
    Die Zeit wird dann noch in cm umgewandelt und im Terminal ausgegeben.

    Weiters habe ich das Print in der ISR weggetan und nun stimmt die Messung:

    Bei bereichen kleiner 60cm stimmt die Entfernung fast immer auf den cm genau mit der echten überein, bei größeren entfernungen gibt es abweichungen von bis jetzt max. 3cm, aber nur einmalig, dann kommen wieder viele Messungen, die ziemlich genau sind.
    Ich bin sehr überrascht, wie genau das ganze nun entgültig funktioniert hat. Die kleinen Abweichungen befinden sich für mich absolut im Toleranzbereich, so genau war das ganze ursprünglich sowieso nicht geplant gewesen.
    Danke zwar für den Tipp mit Inline ASM, aber ich denke, ich spare mir das

    Die gleichbleibenden zahlen gibt es zwar immer noch, aber die sind dank des entfernens von Print aus der ISR nun so klein, dass sie villeicht einen cm Abweichung bewirken.

    Ach ja, ich bin ganz glücklich

    Ich habe noch vor, einen abschließenden Beitrag zu diesem Projekt zu gestalten, mit Bildern, Schaltplan, Code und Tipps, als Hilfe oder Anregung, zum Verlinken in anderen Threads, sozusagen als zusammenfassung. Wird allerdings noch ein bisschen Dauern.

    Nochmals vielen Dank allen beteiligten an diesem Thread, danke für die Hilfe!

    Mfg Thegon

  6. #86
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Ich habe noch vor, einen abschließenden Beitrag zu diesem Projekt zu gestalten, mit Bildern, Schaltplan, Code und Tipps...
    Prima. Ich wollte sowieso noch nach dem endgültigen Schaltplan fragen. Ich kann aber auf die Zusammenfassung warten.

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

  7. #87
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    @ Thegon

    Kannst du mir, bitte, sagen, wieviel Strom die ganze Messschaltung braucht, weil ich es eventuell pulsweise für meinen geplannten Solarbot verwenden möchte ?
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  8. #88
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die oben gezeigte Inline ASM kann funktioniern, muss es aber nicht. Das hängt davon ab, wie Bascom das hochzählen implementiert. Wenn da mehr als R16 benutzt wird, gibt es ggf. schwer zu findende Fehler. Da sollte man das Hochzählen auch in ASM machen. z.B. mit
    LDS R16, {Timer0_overflows}
    SUBI R16, 255
    STS {Timer0_overflows},R16
    LDS R16, {Timer0_overflows}+1
    SBCI R16, 255
    STS {Timer0_overflows}+1,R16

    Wenn Timer0_overflows ein Byte Wert ist, kann die 2. Hälfte Wegfallen.

  9. #89
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Hallo Picture,

    die Schaltung zieht im Leerlauf, also wenn sie gerade nicht misst, für mich lächerliche 20mA. Bei der arbeit wirds wohl etwas mehr sein, aber da mein Multimeter da nicht mitkommt, weiß ich das leider nicht.

    Ich habe den Strom übrigens an einem 12V bleiakku gemessen, den ich dann an einen 7805 angeschlossen habe.

    Mfg Thegon

  10. #90
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Danke schön, fur mich sind leider für dich lächerliche 20 mA sehr viel, weil der gesamte Antrieb um 5-10 mA braucht. Bei kurzen Impulsen in µs Bereich ist es aber viel weniger als gebremster Motor am Hindernis.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

Seite 9 von 11 ErsteErste ... 7891011 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
  •  

12V Akku bauen