Programm_Rasenmäherroboter mit Raspberry/ Arduino und C-Sprache

  • dreamshader

    Übrigens, in einem eigenständigen Programm funktioniert meine Variante mit gpioTrigger auch.

    Grüße aus Berlin,

    Golpe



  • Programm_Rasenmäherroboter mit Raspberry/ Arduino und C-Sprache? Schau mal ob du hier fündig wirst!

  • Servus ...

    und? Was macht der Nachwuchs?

    Ich glaube jetzt mal, dass die delays in der Abfrage nicht dort hin gehören ...

    Ich werd' mir da mal bei Gelegenheit nen Sensor raussuchen und das nachbauen ... brauch' ich aber noch ein bisschen für ...

    Bis dahin erst mal viel Freude mit Deinem Sprössling,

    -ds-

  • Danke!

    die eine isst, schläft und schreit, die andere zickt nur rum. Freude daran habe ich aber trotzdem:)

    Ab und zu habe ich ein Paar Minuten um hier schnell was zu testen.

    Heute habe ich "nach meine Variante" ein egenständiges Programm bzgl. US Messung geschrieben und es funktioniert

    Aber bei der Implementierung in die Projekt-Code geht nicht...

    Grüße aus Berlin,

    Golpe



  • Servus Golpe ,

    so ... jetzt hab' ich das mal nachgebaut und den Code durchgeflöht ;)

    Du hast da mittlerweile ein ziemliches Durcheinander mit Deinen #defines (ECHO, TRIGGER) und dem Initialisieren und andererseits dem Schreiben/Lesen mit direkter Angabe des GPIO ...

    Ausserdem scheint Dein Statemachine-Code noch irgendwie fehlerhaft zu sein ...

    Ich hab die einfach mal auskommentiert und die main entsprechend geändert ... und siehe da ... funktioniert ;)

    Ich häng den von mir geänderten Code mal an ... schau' Dir das viellecht mal in Ruhe durch, evtl. entdeckst Du dann ja die Ursachen, warum das Gesamtkonstrukt nich so recht laufen will.

    cheers,

    -ds-

  • Du hast da mittlerweile ein ziemliches Durcheinander mit Deinen #defines (ECHO, TRIGGER) und dem Initialisieren und andererseits dem Schreiben/Lesen mit direkter Angabe des GPIO ...

    Das hatte auf die schnelle gemacht zum testen.

    Ich häng den von mir geänderten Code mal an .

    Wenn ich alle Dateien von dir eins zu eins in ein neues Projekt kopiere und das ganze Kompiliere und ausführe, Kommt immer noch timeout1! auf die Konsole.

    Kann sein, dass irgendwelche Prozesse im Hintergrund laufen, die das Ausführen stören? (ist das der Begriff "Zombie"?)

    Wie kann ich feststellen welche Prozesse bzw. Dämonen bzw. Zombies ich nicht mehr brauche?

    Grüße aus Berlin,

    Golpe



  • Hi,

    die Messungen werden ja jetzt in einer Endlosschleife in relativ kurzen Zeitintervallen durchgeführt.

    Da kann es dann durchaus mal zu einem Timeout kommen.

    Ansonsten überprüfe mal Deine Verkabelung. Ich hab die #defines jetzt angepasst und frage auch mit den Makros ab.

    Aktuell ist ECHO an GPIO18 und TRIGGER an GIO23 ... kann sein, dass da was bei Deinem Aufbau nicht übereinstimmt.

    Spoiler anzeigen

    pi@pi-lcurr:~/GOLPE $ sudo ./main

    GPIOs mode were sucessfully selected

    GPIOs were sucessfully initialisated

    PUDs were sucessfully initialisated

    Olivia´s initialisation sucessfully

    must i turn?= 0

    must i turn?= 0ping

    timeout 1!

    must i turn?= 1ping

    must i turn?= 0timeout 1!

    must i turn?= 1ping

    must i turn?= 0timeout 1!

    must i turn?= 1ping

    must i turn?= 0timeout 1!

    must i turn?= 1ping

    must i turn?= 0timeout 1!

    must i turn?= 1ping

    must i turn?= 0timeout 1!

    ^C2018-09-13 12:16:19 sigHandler: Unhandled signal 2, terminating

    must i turn?= 1pi@pi-lcurr:~/GOLPE $


    Zudem ist der sleep zwischen den Messungen/Ausgaben relativ lang ... das ist aber tuning und muss sowieso mal passend geändert werden.

    cu,

    -ds-

  • Ansonsten überprüfe mal Deine Verkabelung.

    Es sieht so aus:

    Die Konsole sieht bei mir genau so aus wie in deinem Spoiler.

    so wie ich es verstehe sollte ich hier die Zeiten verlärgern:

    Endlosschleife in relativ kurzen Zeitintervallen durchgeführt.

    und hier kürzen:

    der sleep zwischen den Messungen/Ausgaben relativ lang .

    richtig?

    Grüße aus Berlin,

    Golpe



  • Hi,

    Die Konsole sieht bei mir genau so aus wie in deinem Spoiler.

    na dann passt's doch ....

    Der sleep im main() sollte ganz raus ... der ist zum rumprobieren ja ganz nett, aber prinzipiell sollte da gar kein sleep sein, denn sonst verpasst Du evtl. Statuswechsel.
    Den delay im thread musst Du halt an Dein gewünschtes Messintervall anpassen ... timeout-Ausgaben stellen keine Fehler dar, sondern sind nur ein Hinweis darauf, dass kein (sinnvoll) messbares Ergebnis vorliegt.

    Allerdings solltest Du dann auch den übergebenen int* auf einen struct xy* umstellen, und im thread auch entsprechend casten.

    In der Struktur hast Du dann den int turn und z.B. ein bool end Flag, das von aussen gesetzt wird um die Schleife im Therad zu beenden.

    //EDIT: Wobei ich mir an Deiner Stelle noch mal überlegen würde ob es nicht sinnvoller ist, einen int *distance statt des int *turn zu verwenden und dadurch main die Entscheidung zu überlassen, ob gelenkt, gebremst oder rückwärts gefahren werden muss.


    ciao,

    -ds-

  • Hallo ihr alle,

    da wir jetzt das Projekt zu dritt machen, werden auch die verschiedene Meinungen berücksichtigt.

    Da die anderen evtll. eine arduino einsetzen möchten (raspi ist nicht ausgeschlossen) habe ich angefang mit meine Leonardo rumzuspielen.

    Da ich für die Sensorik Teil zuständig bin, habe ich mir gedacht, ich mache eine Art Library für die Sensoren.

    Hier versuche ich den Code immer aktualisiert zu behalten.

    Grüße aus Berlin,

    Golpe



Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!