Posts by Dennis89

    numpy.arange kann mit float umgehen. Dann müsstest du eigentlich nur noch die Nachkommastellen bestimmen um den 'step' anzugeben.


    Kannst ja mal testen, ob dir das hilft:


    Ansonsten schön das alles funktioniert wie es soll.


    Grüße

    Dennis

    !,4 ist schon eine Zahl die nur Näherungsweise dargestellt werden kann, da kann 'Decimal' nicht wieder eine "genaue" 1,4 daraus machen.


    Ich weis ja nicht was du vor hast, aber vielleicht genügt es auch einfach bei der Ausgabe des letztendlichen Ergebnisses die Zahl zu formatieren? Intern kann ja mit den Kommastellen gerechnet werden. (Also falls das auf deinen Anwendungsfall zutrifft.)


    Grüße

    Dennis

    Hallo,

    In Python könnte man `Decimal`-Objekte aus dem `decimal`-Modul in der Standardbibliothek verwenden

    Dann müsste man die Zahl aber als String übergeben oder gibt es noch eine andere Möglichkeit?

    Python
    from decimal import Decimal
    print(Decimal(1.4) - 1)
    0.3999999999999999111821580300
    print(Decimal(1.4 - 1))
    0.399999999999999911182158029987476766109466552734375
    print(Decimal('1.4') - 1)
    0.4


    Grüße

    Dennis

    Hallo,


    ich habe mal etwas ähnliches gemacht und dafür auch einen Mikrokontroller verwendet.

    Hier habe ich das mal vorgestellt:


    Vielleicht findest du da brauchbare Infos. Ansonsten einfach nachfragen, falls was interessantes fehlt.


    Grüße

    Dennis

    Rein vom Platzbedarf und Programmumfang ist mir dieser so nicht ganz einwandfrei PING so umfänglich ?

    Hast du soviel Code auf dem Controller, das es für die 107 Zeilen keinen Platz mehr hast?

    Grundsätzlich ist das meiner Meinung nach nicht sonderlich aufwändig. Du nimmst den Code und speicherst ihm auf deinem Controller unter "uping.py" ab und in deinem Hauptprogramm importierst du uping import uping und rufst dann darauf 'ping' auf:

    uping.pin(IP_ADRESSE)


    Es gibt auch ein Thread dazu:

    https://forum.micropython.org/…1fe460151520487ae44c6ae15


    Grüße

    Dennis

    Das sollte aus __blackjack__ 's Beitrag auch ersichtlich sein, aber es funktioniert deswegen:

    Ach und das sage nicht ich, sondern die Doku sagt, dass da Wahrheitswerte erwartet werden:

    "reverse is a boolean value. If set to True, then the list elements..."

    are sorted as if each comparison were reversed."


    https://docs.python.org/3/library/stdtypes.html#list.sort


    Edit: Etwas zulangsam, dafür mit Beispiel und Lesestoff :P

    Wo findet bitte nochmals eine Wandlung Tuple in Tuple statt ?

    Code
    was_ist_das = ()
    print(type(was_ist_das))
    <class 'tuple'>

    Also ist '(marks,)' schon vom Typ Tuple und ein 'tuple()'-Aufruf davor ist nicht notwendig.


    Ich verstehe hiervon kein Wort.

    Du überprüfst eine Länge von etwas, bei dem es Wurst ist wie lange das ist und ob die Länge überhaupt bestimmt werden kann:

    Code
    _iterator = iter((1, 2))
    len(_iterator)
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    TypeError: object of type 'tuple_iterator' has no len()
    next(_iterator)
    1
    next(_iterator)
    2


    du meinst diese Zeile: ?

    'flag' ist vermutlich 'True' oder 'False', dann brauchst du nicht 'flag == 1' abfragen sondern 'if flag:' oder 'if not flag'.


    Der Rest darf dir __blackjack__ erklären, der hat die Aufgabenstellung schon verinnerlicht 8o Ich habe das nur beim überfliegen gesehen.

    Hallo,

    Ich habe zu dem Thema mal gegoogelt, aber leider keine Ansätze gefunden, wie ich das mit den Signalen des BWM (Zeit messen, Reaktionen ignorieren, etc.) oder eine Klasse schreiben lösen könnte.

    der Vollständigkeits halber, um das hier nicht unbeantwortet zu lassen und um vorzubeugen, dass andere User die 'sleep'-Methode nicht nutzen, wenn es um zeitkritischere Aktionen geht, hier mein Vorschlag zur Zeitmessung und ignorieren von Aktionen.

    Allerdings ist das als Konzenpt/Grundgerüst zu sehen und löst nicht die Aufgabenstellung hier. Dafür gibt es hier schon Code der die Aufgabenstellung gut und genau genug löst.


    Wie man sieht, wird für Zeitmessungen 'monotonic' verwendet. Wenn eine Bewegung erkannt wird, wird der Zeitpunkt "in der Klasse gespeichert" beim der nächsten Bewegung wird vom aktuellen Zeitpunkt der gespeicherte Zeitpunkt abgezogen. Ist die Differenz kleiner wie der Intervall, dann passiert einfach nichts.

    Falls doch mal Zeit und Lust aufkommt, etwas tiefer in Python einzusteigen:

    https://docs.python.org/3/tutorial/


    Grüße

    Dennis

    Hallo,


    den Code habe ich nur am Handy überflogen. Du machst folgendes, du schickst dein Programm 180Sekunden schlafen und wenn es dsmit fertig ist, wiederholst du das und so geht es immer weiter, weil du die Dauerschleife nicht verlässt.

    Wenn du willst das nach einer Erkennung eine gewisse Zeit nichts passiert, dann musst du die Zeit messen und entsprechend die Reaktion so lange ignorieren.


    Sorry Codebeispiele sind mir am Handy zu aufwändig.


    Grüße

    Dennis

    es ist nur überhaupt nicht intuitiv.

    Ich weis nicht wieso, aber Fedora mag ich vom Betriebssystem wirklich am liebsten. Auch wenn die deutsche Community nicht so groß ist, wie zum Beispiel bei Ubuntu. Aber die Installation kostet mich jedes mal Nerven.



    Danke und Grüße

    Dennis

    So ich habe das mal versucht.

    Das Problem das ich habe/hatte war folgendes.

    Wenn ich eine manuelle Installation auswähle, dann muss ich '/boot', '/home', '/root' manuell erstellen und jeweils Größen festlegen. Ich kann nicht sagen, Fedora bekommt jetzt beispielsweise 'sda5' und soll darauf installiert werden.

    Darauf hat auch meine vorherige Frage abgezielt. Das war vielleicht etwas schlecht ausgedrückt.


    Also die Installation war erfolgreich und ich kann Fedora oder Windows nutzen, puuuuh :bravo2:


    Ich habe mich nicht getraut irgendwas von Windows zu löschen, auch wenn man es wieder herstellen könnte.

    'sda1' habe ich bei der Installation in '/boot/efi' eingehängt und mein Boot-Menü war von Anfang an da. Das war mit das größte Glücksgefühl (Bezogen auf die Installation ^^ )


    Sieht das so jetzt einigermaßen ok aus?:



    Danke und Grüße

    Dennis

    Guten Morgen,


    das heißt aber, das ich vor der Installation noch entsprechende Partitionen für Fedora erstellen muss? Ab sda6 aufwärts alles löschen ist verständlich.

    Wenn ich aber auf automatische Installation klicke, dann habe ich meinen boot-loader nicht da wo er sein soll.

    Ich muss nachfragen bevor wieder ein Chaos entsteht.


    Es wäre nett, wenn ihr mir „kurz“ sagen könnt welche Partitionen ich erstellen muss, mit entsprechenden Größe.

    Wenn ich für den boot-loader die vorhandene sda1 auswähle, wird nichts überschrieben?


    Vielen Dank und Grüße

    Dennis


    PS ich weis das es dafür Anleitungen gibt, aber nach dem ich mir dass das letzte mal selbst zusammen gereimt hatte entstand das Chaos. :blush:

    Hallo,


    Nun würde ich noch eine BLINK Funktion ergänzen. Leider fehlt mir hier jede Idee wie.

    fehlt dir die Idee, weil du so viele Sachen auf ein mal ausführen willst oder weil du nicht weist wie du dafür sorgen sollst, das ein Pin an der DUOLED aus ist und ein anderer an und sich das Spiel dann abwechselt?


    Wenn ersteres, dann wäre interessant was du da genau machen willst.


    Deine Klasse wie du sie hier gepostet hat macht für mich, ohne Hintergrundwissen, nicht wirklich Sinn. 'LED1_OFF' da wird alles ausgeschalten und 'self.on' wird false gesetzt, in 'LED2_OFF' das gleiche Spiel und in 'OFF' dann auch. Nur dass da 'self.on' nicht geändert wird. Das sind zwei Funktionen zu viel. 'OFF' würde reichen und der Funktion einfach den Statuswechsel der Flag hinzufügen.

    Ich verstehe auch nicht wieso erst alle LEDs ausgeschaltet werden und dann eins von beiden wieder an, da würde es reichen, eine einfach auszuschalten?

    Funktionen schreibt man übrigends klein_mit_unterstrich. Ich würde das auch als eine LED behandeln und die Pins vermutlich in einer Liste behalten und daraus die Werte setzen, ob da jetzt pin1 oder pin2 oder eine Liste(oder sonst eine sinnvolle Struktur) das beide beinhaltet, bringt meiner Meinung nach keinen wirklichen Vorteil. Naja das nur nebenbei.


    Grüße

    Dennis


    Edit: Stammt die Klasse aus einem Python2 Tutorial? 'Object' muss nicht mehr übergeben werden, es reicht class DUO_LED. Es sei denn da ist noch was bei dir, von dem ich nichts weis.

    Hallo,

    Selbst wenn die Datenausreiser mit -1053.35 ankommen, müßten die doch mit der Abfrage in T1W.py auf das relevante Intervall [-30,+60] gestutzt werden?

    das hast du jetzt schon öfters gefragt und es wurde doch schon gesagt, dass die Abfrage in deinem gezeigten Code funktioniert. Und das kannst du ja auch testen:

    Code
    ti = float(format(-1053.35, ".2f"))
    if (ti > 60) or (ti < -30):
        print('Wert ist nicht in Ordnung')
    else:
        print('Wert ist in Ordnung')

    Das müsste ziemlich deinem Code gleichen?


    Du hast da in der Funktion schon viele Indexzugriffe drin und schiebst Daten in den Listen hin und her, gut möglich das in deinem restlichen Code vielleicht etwas nicht stimmt.


    Grüße

    Dennis

    Hallo,


    einen Fehler im Sinne der Logik nicht. Schöner gestalten ja, aber das kann man später noch.


    Ich bin kein Elektronikprofi, aber was ist mit der gemeinsamen Masse? Sollte der Pin nicht auf Masse gezogen werden, wenn kein Signal anliegt? Ich denke dass ist auch das was Tell meinte. Dazu gibt dir bestimmt bald jemand detailliertere Antworten, falls ich recht habe.


    Grüße

    Dennis