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

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.