Posts by Andreas

    Hallo 4711,

    Scvhau mal nach OpenCV - damit kannst du per Kamera Objekte vermessen. Ziemlich millimetergenau im günstigen Fall.

    In Youtube gibts zahlreiche Videos mit anschaulichen Beispielen.

    das funktioniert natürlich auch ohne OpenCV.


    Bei bekanntem (konstantem?) Abstand Objekt zu Kamera ergibt sich die Objektgröße über den bekannten Strahlensatz oder über Höhe = Abstand * sin(vom Objekt aufgespreizter Winkel)


    Das kann jeder moderne Rechenschieber.


    Oder eine einzeilige Funktion in jeder beliebigen Programmiersprache.


    Beste Grüße


    Andreas

    Hallo Jürgen,


    Ja, ich.


    Für ein Beratungsprojekt sollte ich verschiedenste Einplatinen-Räscheknäschte und -Controller vorstellen und für aktuelle Problemlösungen in Erwägung ziehen. Da kam einiges zusammen, da ich da großzügig zugelangt habe. Da kam ein großer Beerensalat zusammen. Und auch die Welt der micro-Controller hört nicht bei Arduino auf. Da hat es mir der Nucleo-64 F116re besonders angetan.




    Das bislang Geniale am Asus Tinker: Icon läuft mit einer Geschwindigkeit, die beeindruckend ist.


    Ein typischer Benchmark misst dabei die maximalen Laufzeitunterschiede bei einem bestimmten Algorithmus.

    RPi: 50%

    PC: 3%

    ASUS TINKER: knapp 1%


    Das heißt, das Teil braucht sehr exakt die gleiche Zeit.

    Das eröffnet dann ganz andere Anwendungsmöglichkeiten, bei denen es um das Abarbeiten innerhalb fester Zeiten geht.



    Beste Grüße


    Andreas

    Hallo Jürgen,

    Hart am Wind heizt das Teil durch den Garten (Sorry, Kopfkino).


    MfG


    Jürgen

    Du hast Dein Kopfkino - ich habe die Teile im echten Leben gesehen. Du schlenderst gedankenverloren am Strand entlang. Kilometer weit weg, siehst Du irgendwas mit Segel - und denkst nichts weiter - ischa weit weg. 20 m weiter sausen dir segelbetriebene Vehikel mit 1 oder 2 Personen drin oder drauf mit mindestens 80 Sachen nur wenige Meter an dir vorbei.

    Garantiert ohne Akkubetrieb, garantiert ohne Solarzelle.


    Und plötzlich siehst du Markierungen im Sand mit anderen Augen. AHA!


    Und bei der Geschwindigkeit machen dann auch kleine Windräder Sinn, um einen Akku zum Betrieb des RPi oder was auch immer zu laden.


    Beste Grüße


    Andreas

    Hallo zusammen,


    im Dezember habe ich den Auftrag bekommen, ein Reinraum-Monitoring-Programm zu entwickeln. Das Programm macht schon lange, was es soll. Aber ein paar Paranoia sollen noch hinein.


    Eines davon besteht darin, einen Controller auszulesen, auf dem die Daten gesammelt weden. Diese Daten landen in einem Download-Verzeichnis der Anwendung. Um zu verhindern, dass irgendjemand eine manipulierte Version der Daten bereitstellt, die dann von der Anwendung verarbeitet werden, soll das Download-Verzeichnis einfach gelöscht werden, wenn mehr als eine Datei vorhanden ist - anstatt sich mit der Frage zu quälen, welche von beiden Dateien nicht manipuliert sein könnte.


    Frickler-Pipe:

    Code
    1. find .../MCM_Download -type f | wc -l"

    ermittelt die Anzahl der Dateien im anwendungseigenen Download-Verzeichnis.


    Und in Icon sieht das dann so aus [Code-Ausschnitt]


    Statt ... steht dann natürlich der Pfad zum Verzeichnis.

    Hallo zusammen,


    ich beziehe mich auf diesen Thread.


    Wenn man mich hier persönlich beleidigen darf (wie hier zitiert), nur weil ich in aller Höflichkeit und Form auf einen Fehler meigrafd's hingewiesen habe, der übrigens von MEHREREN (!) anderen Usern bestätigt wurde, dann habt Ihr mich hier alle das Letzte Mal gesehen.


    Es gibt Foren, in denen ein anderer Umgangston gepflegt wird - in denen man auf Fehler hinweisen darf und in denen Fehler klar gestellt werden können.


    Viel Spaß im Sandkasten!



    Andreas

    ... habe ich mal gemeldet... Sollen anderen befinden ... was sie damit anstellen.


    Es geht um Deine Formulierungen, auf die ich mich bezog. Nicht auf, das was andere Dir vorgeschlagen haben, wie Du hättest schreiben sollen. Du schriebst. Nicht andere für Dich. Dieses Jahr geht so weiter wie 2014/2015/2016/2017 verliefen.

    Mein lieber meigrafd,


    mein Beitrag war nicht provokant. Ich habe lediglich auf eine Deiner fehlerhaften Aussagen hingewiesen und diese klar gestellt. Denn leider vermuten vielen jüngeren User, dass Du immer alles besser weißt. Weil Du ja immer jeder Wurst Deinen Senf aufdrückst.


    In dem Fall lagst Du leider mal wieder daneben. Es ist mein gutes Recht, dies tun zu dürfen. Und wie die Reaktionen der anderen gezeigt haben, stehst Du mit Deiner Ansicht alleine da - weil eben falsch.


    Ob Du zu der schwammigen Formulierung gegriffen, hast, weil Du es einfach nicht besser weißt oder eines der faulen Eier gelegt hast, bleibt Dir überlassen. Interessiert wohl auch niemanden hier. Du kannst programmieren wie Du willst, Deine Programme können sonstwas treiben. Sie können laufen oder unerklärlich abstürzen. Aber zwinge nicht immer Deine Ansichten allen anderen auf. Insbesondere denen nicht, die mehr verstanden haben als Du.


    Beste Grüße


    Andreas

    Hallo Nafetz,


    Wie kann ich herausfinden, woran das liegt? Habe den Debug-Mode aktiviert und direkt nach einem Reboot die Dateien kodi.log und kodi.old.log gesichert. Nach was kann ich jetzt suchen? z.B. einen "critical Error" vor dem Reboot oder ein "crashed" nach dem Reboot konnte ich bislang nicht finden...

    einfach mal die letzten 10, 20, 50 Zeilen der .log-Dateien senden?


    Dann erführen wir, warum welcher Prozess einen Reboot veranlasst.


    Hast Du einen Watchdog aktiviert? Wenn ja, deaktiviere ihn einfach mal... Es gibt nämlich weniger Gründe, dass ein Watchdog das System zu einem Reboot zwingt als man denkt.



    Beste Grüße


    Andreas

    Hallo meigrafd,

    Und nun denk mal noch weiter... Wenn man ein Programm zum abspielen startet und etwas anderes abspielen will, was macht man dann sinnvollerweise? Ich würde dann nicht den Prozess beenden und neu starten, sondern den Prozess dahingegend beeinflussen. Kann man das mit system(); ? As Far As I Know, nein. Das alleine ist für zumindest mich bereits ein "echter Vorteil gegenüber system();".


    Rät hier jemand lieber system(); anstatt popen(); zu verwenden :?: Wenn nicht weiß ich wirklich nicht worüber wir uns hier überhaupt unterhalten...

    Ich schicke da zwei Signale. Und dann läuft das Programm so weiter, wie ich das haben will - nur dass der Prozess niemals gekillt oder gar neugestartet zu werden brauchte. Wie gesagt, das Stichwort IPC wurde bereits ins Spiel gebracht.


    Anscheinend spielt es aber einen großen Unterschied in der Programmierung. Weiß man, dass ein Programm bei einem Absturz bei nächster Gelegenheit über crontab eh wieder angestoßen wird, dann muss das Programm nicht mal bis zur zweiten Ereignisbehandlung durchhalten.


    Will man aber Anwendungen entwickeln, die autonom und zuverlässig ihre Aufgaben erfüllen, ohne negativ aufzufallen, dann ist ein wenig mehr Grips in Ressourcenplanung [der Stapelspeicher ist vieles - aber weit von Unendlich entfernt!], Kommunikation und Zusammenspiel etc. zu investieren.



    Beste Grüße

    Andreas

    Hallo Manul,


    Dann solltest Du sie aber auch belegen. Die popen-man page ist zumindest anderer Auffassung:


    hm ... und wer liegt richtig? Wer hat erfahrungsgemäß belastbareres Wissen?


    Und wer glaubt im Gegensatz dazu, immer Recht zu haben - und setzt es dann auch lautstark durch? Bis aber auch alle Fakten dagegen sprechen? Fakten, die vorher zwar auch schon da waren, aber mit dem Mantel des Schweigens bedeckt wurden.


    Ich kann mich ganz dunkel erinnern, mal was zu dem Unsinn fallen gelassen zu haben, innerhalb von Pseudo-Interrupt-Routinen umfangreiche Aktionen wie formatierte Ausgaben von Fließkommazahlen, komplizierte Berechnungen bis hin zum Start und Abschluss externer Anwendungen ablaufen zu lassen. Haben damals viele gemacht (wenn auch nur in Python). Mann, was haben dreamshader , wenige andere und ich da Prügel einstecken müssen! Irgendwann hat sich das dann aber auch als "wahr" herausgestellt, denn der in den Pseudo-Interrup-Routinen entschlackte Code lief plötzlich ohne Absturz nach definierter Laufzeit.

    Heute wird allein deshalb sogar in Python-Kreisen von "zuviel" im Pseudo-Interrupt abgeraten. :conf: raten passt in dem Zusammenhang übrigens ganz gut.


    Lass ihn poltern. Was in Assembler, C und etlichen anderen Programmiersprachen seit Jahrzehnten etabliert ist und bis ins Betriebssystem Eingang gefunden hat, kann so schlecht nun nicht gerade sein.


    Nur weil jemand versucht, solche Ansichten in Python zu etablieren, müssen wir bei der Programmierung in C noch lange nichts übernehmen, was dem konträr gegenübersteht.



    Beste Grüße


    Andreas

    Hallo zusammen,


    Früher hat man Ergebnisse auch noch überschlägig im Kopf auf Plausibilität geprüft :)</OT>sorry


    hm... ich hatte es fast schon verdrängt... diesen Mathe-Test in der Schule...


    Der Lehrer hat mehrere Aufgaben herausgegeben. Da war für jeden was dabei. Als ich zur letzten Aufgabe kam, war nicht mehr genug Zeit, um zu verstehen, um was es da eigentlich ging. Der Lösungsansatz hat sich mir spontan nicht eröffnet. Ich schaute mir die Zahlen an und schrieb dann hin

    "Ich schätze das Ergebnis auf 20."

    Richtige Lösung 18.


    Ich fand mein Ergebnis richtig toll. So aus der Hüfte geschossen die Zielscheibe zum Wackeln gebracht - ist doch nicht so schlecht!


    Bei der Führerscheinprüfung hat einer der Fahrschüler einen Bremsweg ausgerechnet... ich meine wirklich gerechnet. Er kam bei einer Geschwindigkeit von 100 km/h auf 3 cm Bremsweg.


    Der Fahrlehrer, der sich davor wirklich Mühe gegeben hatte, den Bremsweg zu vermitteln, meinte nur: "Dann kannst Du auch gleich gegen eine 100 cm dicke Betonwand fahren. Die Wirkung ist die gleiche wir bei 3 cm Bremsweg. Der Vorteil der Betonwand ist die deutlich größere Knautschzone, die dabei voll zur Geltung kommt."

    Kapiert hat der Fahrschüler es dann aber immer noch nicht.


    Beste Grüße


    Andreas

    Hallo pgloor,


    wahrscheinlich gehen noch viel mehr...


    Teile die Anzahl der insgesamt vorhandenen GPIO-Pins(*) durch die Anzahl der GPIO-Pins, die für I2C draufgehen, und multiplizierst mit 104, dann sollte das auch möglich sein.


    Denn I2C kannst Du auch mit anderen GPIO-Pins "bitbangen".


    (*) Und das ComputeModule hat davon noch ein paar mehr...



    Beste Grüße


    Andreas

    Hallo Meigrafd,


    nö, im Gegenteil:

    Wenn es darum geht, ein Linu-Kommando aufzurufen, dann mit system() oder die Kaskade mit fork(), exec() etc.


    Wenn es darum geht, Ergebnisse von einem Linux-Kommando zum nächsten zu schicken bzw. zum aufrufenden Programm mehr zu liefern als "funktioniert", dann geht das nur mit popen() (was für pipe open steht).


    Intern passiert dagegen das Gleiche. So gleich, dass Deine Erklärung sogar falsch ist.


    Guckst Du:

    Quote

    popen() gives you control over the process's input or output file streams. system() doesn't. If you don't need to access the process's I/O, you can use system() for simplicity.

    system() is in C89 and C99; popen() is Posix only (though the Windows API also has one).

    Both functions invoke some form of a shell to execute the command (e.g. /bin/sh on Linux, and probably cmd.exe on Windows). If you want to execute an executable file directly and you are on Posix, you can also look at the exec*-family of functions in conjuction with fork() (since exec() replaces the current process.




    Beste Grüße


    Andreas

    Hallo n.nikisch,


    die Bildschirmdarstellng erfolgt gemäß vorgefundender Konfiguration. In deren Abwesenheit werden Voreinstellungen verwendet.


    Wenn es bei Dir also mal nicht passt, dann musst Du die Konfiguration in

    Code
    1. /boot/config.txt

    selber übernehmen. Die Parameter und deren Auswirkung sind entweder in der Datei enthalten oder Du nutzest dafür passende Tutorials, die zu dieser Datei erstellt wurden.


    Beste Grüße


    Andreas

    Hallo n.nikisch,


    ob Du was falsch machst, kann ich nicht beurteilen. Mich würde erstmal die Diode stutzig machen. Erlaubt diese denn soviel Strom, dass der Raspberry POi sich daran nicht stört?


    Wenn die rote PWR-LED dauerhaft leuchtet, ist dies für mich ein hinreichendes Kriterium einer mindestens ausreichenden Spannungsversorgung.


    Wenn Du feststellen möchtest, ob alle Dienste stromseitig laufen und nicht ständig de- und reaktiviert werden, dann schaue Dir doch mal die Auisgabe von

    Code
    1. dmesg

    an. Stecke mal irgendwas in die USB-Buchse (USB-Speicherstick, WLAN-Stick, ...). Wenn diese Teile nicht ständig de- und reaktiviert werden, dann fließt da auch genug Strom.


    Wenn Du Dir sicher bist, dass alles passt, dann kannst Du auch diesen gelben Blitz / Regenbogen-Quadrat oder was auch immer von Betriebssystem unterstützt wird, abschalten.


    Beste Grüße


    Andreas

    Mein lieber Meigrafd,


    Andreas : Es geht hier um PYTHON, nicht Icon :fluchen:


    Der Thread hier ist explizit im PYTHON Bereich erstellt


    Hört bitte mit dieser verflucht dreisten Art und Weise auf! Es reicht langsam! Achtet auf die Frage der Frager und respektiert diese :!:

    Ihr verzettelt Euch mit halbgaren Ansätzen, um irgendwas zu erreichen. In anderen Programmiersprachen sind längst Lösungen erarbeitet worden, um nicht im Minutenabstand (cronjob) sondern mit Auflösungen bis hinunter zu Millisekunden Abläufe anzustoßen. Auf einen davon habe ich mal verlinkt - auf einen anderen weiter vorne im Thread. Ich habe hier lediglich den noch offenen Link gepostet, den ich früher angekündigt hatte, und der über die Forensuche nicht (aber über meine Toolbox schon) auffindbar war.



    Was war noch mal der Grund, weshalb Du Dich aufregtest?


    Ich habe doch ganz gewiss keinen Icon-Code in einem Python-Thread gebracht. Das kannst Du mir nicht vorwerfen. Ist mir auf Deinen Wunsch offiziell untersagt worden. Daran halte ich mich auch - auch wenn es für viele Threads nicht gut ist, wenn Sichtweisen aus anderen Richtungen und auf anderem Niveau dann ausbleiben.



    Beste Grüße


    Andreas