- 12V Akku mit 280 Ah bauen         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 29 von 29

Thema: SRF10 an RPI und Raspi Robot Board

  1. #21
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hm, wäre, glaub ich, mit nem Arduino einfacher- mit dem Mega 2560 kannste eine ganze Diskothek programmieren, der hat über 50 _freie_ Pins...
    Ich grüble grad, ob ich dem Buggy auch zwei LED`s verpasse, einfach als Richtungsanzeiger (_der_ selber braucht die nich, aber da ich noch kein Display hab, was da raufpasst, wärs mir eventuell ne Hilfe), der Haken ist dabei: ich hab kaum noch Pins frei, weil das Motorshield fast alle belegt.

    Allerdings zu deinem Abschalt-Problem kommt mir da eine Ahnung: kann es sein, dass die Servoansteuerung den Pi lahmlegt? Sprich, dass er so beschäftigt ist damit, dass er in der Zeit zu nix anderem kommt?
    Es ist nämlich, je nach Vorgehensweise, nicht so trivial, so ein Servo anzusteuern, wie uns oft suggeriert wird-im Grunde brauchen die _ununterbrochen_ ein Signal...wenn das so gemacht wird, ist der Controller damit pausenlos beschäftigt.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    29.04.2014
    Beiträge
    15
    Guten Morgen,

    also die Abschaltproblematik habe ich scheinbar gelöst. Ich hab gestern bis tief in die Nacht hinein Feintunning am Script im Servomodul betrieben. Und ich habe es sauber hinbekommen. kein nervöses herumzappeln mehr. Er macht jetzt ganz genau das was er machen soll. Sauber und flüßig. man son mist jetzt hab ich mir hier nen Wolf getippst und wollte das absenden da hat der mich zwischenzeitlich ausgeloggt. Nun muss ich alles von vorn Anfangen zu tipseln. Dazu hab ich jetzt mal kein Bock. Da ich noch ein paar Probleme hab die ich lösen muss. Werde ich mich wieder später melden. Aktuelles Problem 15° Messbereich wenn der bei nem ca 15° Messsichtbereich paralell zu einer Wand fährt. Dann bekommt der kein sauberes ergebnis was im bei distanzunterschreitung zum stopen zwingt. Sondern er schrapt voll gegen die Wand. Mein Ansatz hier ist eine weiche permanente Servo links rechts Bewegung ca. 50° wobei der aber immer einen permanenten sich in der Anfangsschleife wiederholenden Messvorgang durchführen soll. Vielleicht hat da jemand eine Idee dazu wie man sowas hinbekommt. Zumindest würde er dann nicht mehr voll seitlich gegen die Wand fahren und schon vorher stoppen. besonders wenn das Stopsignal erst unter 15 cm liegt.

    also ich melde mich wieder wenn jemand was weis wie man das in der schleife realisieren kann dann bitte hier Statement abgeben.

    MFG

    Zappelmann

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Hm, du meinst dass das Teil Probleme hat, wenn die Sonarsignale in spitzem Winkel auf ein Hindernis treffen?
    Denkbar wärs, da der Schall dann ja vom Sensor weg reflektiert würde..so weit bin ich noch nicht. Wollt mich aber heute mal wieder an den Buggy setzen (muss da erst ne kleine Zusatzschaltung braten und reinfrickeln), dann teste ich das mal.
    _Wenn_ dem so ist, kommts drauf an, ob er soche ungünstigen Hindernisse überhaupt erkennt. Falls ja, kann man ja mal in die andere Richtung gucken, ob da frei ist..
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    29.04.2014
    Beiträge
    15
    Ja genau sowas befürchte ich.
    Und genau deswegen ja auch so mein Denkansatz:
    eine weiche permanente Servo links rechts Bewegung ca. 50° wobei der aber immer einen permanenten sich in der Anfangsschleife wiederholenden Messvorgang durchführen soll. und wenn dann der Distanzwert zum Hindernis durch eine saubere Messung den Maxwert unterschreitet, das der dann stoppen soll. Dann sein normalen Linksrechts Scanvorgang starten soll und dann in einer andere Richtung asuweichen und weiterfahren soll.

    hmm hab da gerade eine Idee bekommen wie ich das machen kann. WErde mal eben das script daraufhin anpasen und dann heute Abend direkt testen. Wenns funzt melde ich mich wieder.

    MFG

    Zappelmann

  5. #25
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Du kriegst mit nem US-Sensor keine saubere Entfernungsmessung hin, wenn der sich dabei bewegt, das kannst du vergessen. Das ist ne Laufzeit-Messung, es wird die Zeit gemessen, die das Signal braucht, um zu nem Hindernis zugelangen und als Echo reflektiert zu werden. Wenn sich während dieser Zeit der Sensor bewegt, kannst du allenfalls noch grob schätzen.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  6. #26
    Neuer Benutzer Öfters hier
    Registriert seit
    29.04.2014
    Beiträge
    15
    So guten Morgen,

    wieder ist eine programmier und testreiche Nacht vergangen. Also den Denkansatz den ich gestern hier hatte, den habe ich dann auch so umgesetzt wie ich mir das vorgestellt habe. Und soweit ich das gesehen habe funzt das soweit ganz gut.
    Ich muss nur mal eine Programmiertechnische Frage geklärt wissen. Wo ich gestern keine Lösung atok zur Verfügung hatte.

    Ich habe das Script gestern nochmal komplett neu aufgesetzt und sämtliche Programablaufmodule jetzt als 'def' gesetzt. Unter anderem auch den Messvorgang.
    Jedoch wenn ich dann im Programmablauf in der while True: Schleife dann die def Messung_vorn_perma(): aufrufe dann macht der zwar sein Messvorgang und gibt mir das Ergebnis auf dem Bildschirm auch aus. Aber wenn ich dahinter eine if Abfrage setze, die den distance Wert aus dem Messmodul der aktuellen Messung abfragen soll, dann bekomm ich eine Error Meldung das der globale name 'distance' nicht definiert wurde. Und somit übergibt der dann den Messwert nicht an die if Abfrage. Jetzt hab ich mir beholfen indem ich das Modul halt doch wieder direkt mit in den Programablauf komplett mit reingesetzt habe anstatt nur den def Namen des Messmoduls selber. Jedoch ist das keine gewünschte Lösung warum ich mir überhaupt die Mühe mache das gesamte Script neuaufzusetzen.

    Code:
    def Messung_vorn_perma():
    #Messung Start
        print "Messung_vorn_perma_start"
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(12,GPIO.OUT)
        GPIO.setup(16,GPIO.IN)
        GPIO.output(12, False)
        time.sleep(0.1)
        GPIO.output(12, True)
        time.sleep(0.00001)
        start = time.time()
        GPIO.output(12, False)
        while GPIO.input(16)==0:
              pass
        start = time.time()
        while GPIO.input(16)==1:
              pass
        stop = time.time()
        elapsed = stop-start
        distance = elapsed * 17500
        print "Abstand_vorn: %.1f cm" % distance
        print "Messung_vorn_perma_ende
    #Messung Ende
    
    while True:
        Messung_vorn_perma()
        if distance < 20:        #Und hier bekommt der dann die Meldung das Distance nicht als Globaler Name definiert wurde. Jedoch wenn ich den Namen definiere bringt mir dsa nichts da der mir das Messergebniss nicht mit übergibt.
    	Stop_anhalten()
    ich hab wie schon erwähnt dann das Messmodul direkt mit in die Schleife gepackt und dann funktioniert auch die Übergabe des Messwertes.
    Hat da jemand eine Idee wie die Definierung mit einer sauberen Übergabe geschrieben werden kann, ohne gleich das komplette Modul, in die whiles True Schleife reinzukopieren. Das ganze soll natürlich der Übersichtlichkeit dienen, damit der Programmablauf kurz gehalten wird und ich schneller nur an einer Stelle mal ne Code Anpassung durchführen kann.


    MFG

    Zappelmann

  7. #27
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Hm-soweit ich deises Kauderwelch verstehe, funktionierts so wirklich nicht, eben _weil_ distance nicht global definiert ist.
    Distance "lebt" da wohl nur innerhalb #Messung
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    29.04.2014
    Beiträge
    15
    ja und genau darum gehts ja wie kann ich distance als globalen namen definieren ?

  9. #29
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    56
    Beiträge
    2.210
    Das musst du schon die Doku deiner Programmier-Zeichensprache fragen.
    In C macht mans so, vorzugweise oberhalb des eigentlichen Programms:

    int distance;
    oder eben
    float distance=0.0;

    Damit sind die Variablen global, das heisst, jedes Unterprogramm kann drauf zugreifen, und sie auch verändern.
    Eventuell (ich erinnere mich dunkel, dass es _irgendwo_ so war) musste man "public" benutzen...

    public distance; -> oder so in der Art...
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. Raspi und 3G Stick , wer arbeitet damit ?
    Von oderlachs im Forum Raspberry Pi
    Antworten: 2
    Letzter Beitrag: 29.03.2014, 21:02
  2. RasPi mit RN-Schrittmotor und Pegelwandler
    Von Crashmichl im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 27.01.2014, 23:23
  3. Solarstrom und Spannung mit RPI messen
    Von s3993 im Forum Raspberry Pi
    Antworten: 23
    Letzter Beitrag: 22.01.2014, 06:52
  4. RPi und Watterott TFT
    Von ex535 im Forum Raspberry Pi
    Antworten: 2
    Letzter Beitrag: 05.12.2013, 18:51
  5. SRF10 in C und das 3. Byte = 0
    Von flo_weitweg im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 08.03.2008, 23:07

Berechtigungen

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

LiFePO4 Speicher Test