- Akku Tests und Balkonkraftwerk Speicher         
Seite 5 von 16 ErsteErste ... 3456715 ... LetzteLetzte
Ergebnis 41 bis 50 von 151

Thema: ASURO - US-Erweiterungsplatine

  1. #41
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Anzeige

    LiFePo4 Akku selber bauen - Video
    So hier noch ne kleine Meldung an alle die sich das US-Bauteil noch kaufen wollen. Auf http://www.arexx.com findet ihr unter Asuro >> Downloads eine kleine aber ausführliche Bauanleitung von mir zum Download bereit. Viel Spass!

  2. #42
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    20.06.2004
    Beiträge
    1.941
    kauft euch für den asuro einen srf04-ultra, ist sehr gut in winavr-c zu proggen und einfach anzuschliessen. im forum winavr-c gibt es unter anderem von mir ein programm, wie er funktioniert. lässt sich sehr fei proggen, bis auf 1cm genauigkeit und 3m weit.
    mfg pebisoft

  3. #43
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Hio. Ich hab jetzt ein bisschen weiter experimentiert. Der Beispielscode aus dem Buch war mir dann irgendwann zu langweilig. Ich meine, warum ein teures Ultraschallgerät verwenden, wenn einem die Software nicht einmal sagen kann, wie weit das Objekt welches die Strahlen reflektiert in [cm] von der Empfängerkapsel entfernt ist?
    Deswegen habe ich eine kleine Bibliothek geschrieben. Sie basiert auf dem Beispielcode wurde aber stark bearbeitet und die Verwendung ist jetzt ganz anders. Es gibt die drei Methoden InitUlrasonics, ReinitAsuro sowie natürlich Chirp. Zuerst zu InitUlrasonics. Wie der Name schon sagt initialisiert diese Funktion die Chirp-Funktionalität von Asuro. Wenn diese Methode aufgerufen wurde, ist das Empfangen/Senden von Daten über USART sowie das Messen der Odometer nicht mehr möglich, da u.a. der AD-Wandler deaktiviert werden muss. Sonst macht diese Funktion nichts. Um nun den Asuro wieder wie gewohnt verwenden zu können gibt es die Funktion ReinitAsuro. Sie reinitialisiert den Asuro, soll heißen sie stellt alles wieder so ein, dass man Daten über USART schicken kann und die Odometer wieder auswerten kann. Allerdings sind diese beiden Funktionen eher unwichtig. Wichtiger ist Chirp. Mit dieser Funktion kann "gechirpt" werden. Mann muss ihr einen Parameter übergeben. Dieser Parameter sollte 0 (für false) oder 1 (für true) sein. Ist der Wert true so wird Asuro automatisch so umkonfiguriert, dass man vor dem chirpen nicht mehr erst InitUlrasonics aufrufen muss. D. h. Chirp ruft diese Funktion dann automatisch selber auf. Wenn die Funktion dann fertig "gechirpt" hat und wir immer noch von true (oder =1) als Parameterwert ausgehen, so ruft Chirp dann auch noch automatisch am Ende ReinitAsuro auf. So wird Asuro wieder automatisch zurückgestellt. D. h. auch in diesem Fall ruft Chirp dann automatisch eine Funktion auf, natürlicherweise ReinitAsuro. Und genau deswegen habe ich am Anfang geschrieben, dass die beiden Funktionen InitUlrasonics und ReinitAsuro eher unwichtig sind. Mit true (= 1) als Parameterwert übernimmt Chirp die Arbeit für uns.
    Am Ende liefert uns Chirp dann die gemessene Entfernung in [cm]. Diese ist bei näheren Distanzen (+/- 1 Meter) schon noch einigermaßen genau. Ich habe im Anhang ein kleines Diagramm, da kann man die Abweichungen gut sehen. Wie man in dem Diagramm sieht werden die Wert erst ab ca. 1,00 Meter wirklich sehr ungenau. Aber ich glaube für diese Entfernung sind diese Ultraschall-Kapsel einfach zu billig.... Mann kann also sagen: Wer genaue Entfernungen messen will greift lieber zu IR-Sensoren, oder zu teureren Ultraschallkapseln. Die gelieferten sind für genaue Messungen eher ungeeignet.
    Jetzt wünsche ich noch viel Spass beim chirpen!

    Grüße
    Lutz



    SEHR WICHTIG: Wenn ihr versucht test.c mit eurem Makefile zu kompilieren gibts nen Fehler. Ihr müsst euer Makefile nämlich etwas bearbeiten. Geht dabei so vor: Startet MFile >> Öffnet euer Makefile >> Menupunkt Makefile >> Enable Editing of Makefile. Sucht jetzt in eurem Makefile folgende Zeile:

    # If there is more than one source file, append them above, or adjust and
    # uncomment the following:
    SRC += asuro.c

    und fügt dort ultrasonics.h dazu (mit Lehrzeichen dazwischen), also so:

    # If there is more than one source file, append them above, or adjust and
    # uncomment the following:
    SRC += asuro.c ultrasonics.c

    Weiter gehts dann so: Menüpunkt File >> Save As... >> In euer Verzeichnis mit dem Makefile wechseln altes löschen und dann auf speicher klicken (Löschen geht durch auswählen des Makefiles im Browser und dann einfach auf Entf auf der Tastatur drücken ). Fertig.

    EDIT: Wer Verbesserungsvorschläge für die Software hat soll die nur rausrücken!
    Angehängte Dateien Angehängte Dateien

  4. #44
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    04.04.2005
    Ort
    Hamburg
    Alter
    36
    Beiträge
    826
    Hi

    Also ich hab mir jetzt den Code nicht angeschaut, aber deiner Beschreibung und der Messerwerte zu Folge, hast du dir sehr viel Arbeit gemacht und es scheint wirklich was gebracht zu haben.
    www.subms.de
    Aktuell: Flaschcraft Funkboard - Informationssammlung

  5. #45
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Hio. Das Problem der Software ist, dass sie nicht Rundet. Deswegen kann es sein das ein Objekt z.B. 10,9 cm weg ist meine Funktion aber nur 10 cm zurückgibt und nicht 11 cm...
    IR-Sensoren sind auf jedenfall besser.

  6. #46
    Benutzer Stammmitglied
    Registriert seit
    25.08.2005
    Ort
    Berlin
    Beiträge
    53
    Hallo luma,

    x = y +0.5;
    11 = 10.9 + 0.5;

    der Fehler liegt dann nur noch bei.... äh 0.5.

    Gruss Winne

  7. #47
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    @ winne: Das verstehe ich jetzt nicht ganz. Ich habe in meinem Code expliziet auf Fließkommeberechnungen (oder wie man das nennt) verzichtet. Das spart unheimlich Flash-Speicher. D. h. ich multipliziere Kommazahlen mit z. B. 1000 und später wenn ich dann das Ergebnis habe wieder (je nachdem welche Einheit ich haben will - [cm] [mm]) durch 1000...

  8. #48
    Benutzer Stammmitglied
    Registriert seit
    25.08.2005
    Ort
    Berlin
    Beiträge
    53
    @luma: sorry, wenn die Antwort vorher zu kurz war!
    in der Funktion int Chirp(unsigned char flag). Die Zeile durch die 0.5 erweitern und der Rundungsfehler ist dann von 0,9 unentlich periode nur noch 0,5.
    Die Zeile sollten, wenn ich mich nicht irre, so ausehen.
    dist = (unsigned int) (((long) ((344L * ((sleeptime * 1000L) / 72L) / 10000L) / 2L))+0.5);

    Durch die Cast Operation (unsigned int) wird knallhard die Kommerstelle abgeschnitten.

  9. #49
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2005
    Ort
    Stuttgart
    Beiträge
    260
    Muss ich das ganze nicht davor (bevor ich + 0.5 mache) nicht alles in float mit (float) konvertieren? Das wäre ja sinnlos. Aber ich probiers aus!

  10. #50
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,
    Am besten noch mal *10 und +5
    dann gibts keine Probleme mit Kommas,

Seite 5 von 16 ErsteErste ... 3456715 ... LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress