Glühwürmchen - reloaded

OP #8093716
Lesenswert?
• ▲
▼

Hallo,

ich habe das Glühwürmchen Projekt mit KI modifiziert bzw. auf einen aktuellen Stand gebracht Beitrag "Glühwürmchen in Rotkohlglas gefangen". Mit dem Originalautor Hagen war ich in Kontakt, er hat leider die Sourcen von der Wave-editor Delphi Windows App nicht mehr gehabt, ich dafür eine kleine Typescript Applikation als Ersatz gebaut: https://github.com/heresiarch/Waveditor Die ATtiny45 Mikrocontroller Sourcen habe ich auch komplett überarbeitet, um diese auf aktuellen Toolchains mit platform.io zum Laufen zu bekommen. Assembler Routinen wurden durch C ersetzt und eine Menge Code eingebaut, die bei Abstürzen den uC wieder neu starten. https://github.com/heresiarch/Firefly2026 Zusätzlich gibt es auch eine Portierung für den ATiny412, mit einer komplett anderen Architektur, die neuen Cores haben mehr Möglichkeiten: https://github.com/heresiarch/SuperFireflies Für mich war es ein Experiment, wie gut KI zur Entwicklung/Refactoring von Mikrocontroller Applikationen genutzt werden kann und um ein altes Spielzeug wiederzubeleben.

VG, René

Persönliche Seite #8095890
Lesenswert?
• ▲
▼

Zu LFSF: Die AVR-LibC hat lfsr Routinen, braucht man also nicht selber klöppeln: https://avrdudes.github.io/avr-libc/avr-libc-user-manual/group__util__crc.html Nicht von der Doku verwirren lassen; die Routinen stehen alle in Inline Assembler.

Ich geh mal davon aus, dass LFSR nur für Pseudo-Zufall verwendet wird. Hier hat die AVR-LibC 2.3 eine überarbeitetes rand(), das nur noch ca 120 Bytes Code braucht und weniger als 100 Cycles: https://avrdudes.github.io/avr-libc/avr-libc-user-manual/group__avr__stdlib.html#gae23144bcbb8e3742b00eb687c36654d1

(Firma: 1984now) #8096936
Lesenswert?
• ▲
▼

Johann L. schrieb:

Hier hat die AVR-LibC 2.3 eine überarbeitetes rand(), das nur noch ca 120 Bytes Code braucht und weniger als 100 Cycles: https://avrdudes.github.io/avr-libc/avr-libc-user-manual/group__avr__stdlib.html#gae23144bcbb8e3742b00eb687c36654d1

Spannend, das werde ich mir mal ganz genau anschauen.

Die Brauchbarkeit von Pseudozufall steht und fällt ja mit der Vorhersagbarkeit des verwendeten Startwerts. Mit nur 60 Instruktionen genug Entropie für einen diesbezüglich brauchbaren Startwert einzusammeln... Sportlich. Mal sehen, was da als Entropiequelle(n) verwendet wurde.

(Firma: 1984now) #8098115
Lesenswert?
• ▲
▼

Thomas G. schrieb:

Hab mal wo gelesen, das Auslesen des weissen Rauschens des ADC wäre noch am zufälligsten.

Leider ist das längst nicht so zufällig, wie man es in dieser Anwendung gerne hätte... Und auch ansonsten sieht's mit brauchbaren Quellen für Entropie bei den AVR8 eher mau aus. Was normalerweise bewirkt, dass man ziemlich erheblichen Aufwand betreiben muss, um zu einem zumindest halbwegs brauchbaren Zufall zu kommen.

Genau deswegen wunderte es mich ja so, das Johann L. so begeistert ist.

OP #8098379
Lesenswert?
• ▲
▼

Hallo Frank, Frank D. schrieb im Beitrag #8097277:

Kann ich das mit dem Microchip Studio kompilieren und auf den Chip brennen oder braucht es da was anderes?

Das ATtiny415 Projekt kann mit VSCode und platform.io AVR Unterstützung und einem normalen ISP gebaut/geflashed werden (z. B. STK500 kompatibel oder einen Arduino Uno als ISP). Für das ATtiny 412 Projekt geht auch VSCode und platform.io aber man braucht einen UPDI Programmer z. B. MPLAB Snap.

VG, René

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren