Problem beim programmieren von Roboterauto

  • left = motor1.forward(0.5)
    right = motor2.forward(0.5)
    randint(left, right)

    ich habe keine Ahnung, aber ich frage mich ob 0.5 wirklich int ist?

    Du willst doch keine Zahl als Rückgabewert?

    warum nicht wenn left 1 ist und right 2 ist

    Dann könnte ein random zw. 1 & 2 auch was bringen

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • ich habe keine Ahnung, aber ich frage mich ob 0.5 wirklich int ist?

    Auf der Dokumentation zu GPIOzero, https://projects.raspberrypi.o…cts/physical-computing/14, bedeutet das halbe Geschw

    Ich denke du musst dir hier etwas passenderes aussuchen.

    Eventuell 'choice' ?

    Wie importiere ich dieses choise? Es kommt die Meldung "builtin_function_or_method, object has no attribute 'choise' "

    Die Hand voller Asse, doch das Leben spielt Schach.



    Erfolg besteht aus drei Buchstaben: Tun

    Göthe

  • warum nicht wenn left 1 ist und right 2 ist

    Dann könnte ein random zw. 1 & 2 auch was bringen

    Wie müsste ich das mit Variablen umsetzen?

    etwa so?


    Code
    left = motor1.forward(0.5)
    1 = left

    Die Hand voller Asse, doch das Leben spielt Schach.



    Erfolg besteht aus drei Buchstaben: Tun

    Göthe

  • ich nix Python!:blush:

    Du willst Python? mutt du lernen:lol:


    z.B. erst mal durch print Ausgaben

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • warum nicht wenn left 1 ist und right 2 ist

    Weil 'left' und 'right'' so definiert sind:

    Code
    left = motor1.forward(0.5)
    right = motor2.forward(0.5)

    Und wenn ich das richtig verstehe, kann Python keine Zufallszahl ausgeben, die sich zwischen 'left' und 'right' befindet. Ich kann mich aber auch irren, bin ja selbst kein Profi.


    Wie importiere ich dieses choise?

    from random import choise


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Weil 'left' und 'right'' so definiert sind:

    natürlich muss man left right passend definieren!

    left = motor1.forward(0.5)

    ist sicher nicht passend für

    randint

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ich glaube mein Raspberry hat einfach keinen Bock zum arbeiten


    from random import choice


    random.choise(a, b)



    Ergebniss


    cannot import name 'choise' from 'random' (/usr/lib/python3.7/random.py

    Die Hand voller Asse, doch das Leben spielt Schach.



    Erfolg besteht aus drei Buchstaben: Tun

    Göthe

  • Dein Pi hat kein Problem. Du schreibst Dinge falsch. Klar geht das nicht.

  • Ich muss zuerst in die Bibliothek, dort kenne ich ein paar gute Bücher...


    Aber muss ich

    cannot import name 'choise' from 'random' (/usr/lib/python3.7/random.py

    da noch zuerst etwas importieren im CMD vom Raspberry?

    Die Hand voller Asse, doch das Leben spielt Schach.



    Erfolg besteht aus drei Buchstaben: Tun

    Göthe

  • Ooops..


    Er reklamiert trotzdem wegen dem random in random.choise. Er sagt es sei nicht definiert.

    Die Hand voller Asse, doch das Leben spielt Schach.



    Erfolg besteht aus drei Buchstaben: Tun

    Göthe

  • So jetzt erst mal durchatmen. Dann nehm dir einen Übersetzer und lese dir die verlinkte Dokumentation über 'random' durch. Dann entscheidest du dich für die passende Funktion. 'choice' war nur nach kurzem überfliegen ein Vorschlag.


    Ändere dann deinen Code. Wenn es dann nicht klappt, poste den neuen Code mit vollständiger Fehlermeldung. Am besten du schreibst noch dazu, was du dir beim Code-schreiben gedacht hast.


    Ab und zu braucht man kurz eine Pause, das geht mir auch oft so.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?

  • Vielen Dank Dennis.

    Ich mache Pause und mache gegen Abend weiter. Ich muss noch viel lernen.


    Schönen Nachmittag noch


    Raspifriend

    Die Hand voller Asse, doch das Leben spielt Schach.



    Erfolg besteht aus drei Buchstaben: Tun

    Göthe

  • Und wenn ich das richtig verstehe, kann Python keine Zufallszahl ausgeben, die sich zwischen 'left' und 'right' befindet. Ich kann mich aber auch irren, bin ja selbst kein Profi.

    Was meinst du damit?

    Das du keine Float bekommen kannst als Zufallszahl?

  • Hallo Hofei


    das bezog sich nicht auf Python im Allgemeinen sondern auf den Code.


    In der Dokumentation zu 'randint' steht:

    Quote


    Return a random integer N such that a <= N <= b. Alias for randrange(a, b+1).

    Ich verstehe das so, dass beim Anwenden auf (a,b) die Funktion einen zufälligen Wert zwischen 'a' und 'b' ausgibt. Dafür muss (nach meinem Verständnis) 'a' und 'b' als Zahlen definiert sein.

    Der TE wendet diese Funktion aber auf 'left' und 'right' an und die sind bei ihm so definiert:

    Code
    left = motor1.forward(0.5)
    right = motor2.forward(0.5)

    Wenn ich davon ausgehe, das ich es richtig verstanden habe, dann kann in diesem Fall Python mit 'randit(left, right)' nichts anfangen, da 'randit' eine Form von Zahlen erwartet, dafür aber zwei Anweisungen bekommt.



    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?