Hallo zusammen,
bei Pollin wird zur Zeit ein 3x3x3 LED Cube Bausatz angeboten:
http://www.pollin.de/shop/dt/NzY3OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_LED_Cube.html
Eigentlich nichts besonderes aber zum Basteln ganz nett.
Also mal das Teil bestellt und zusammengebaut. Nur die Anleitung
für die LEDs zum Montieren ist besch.... gemacht. Da gibt es bessere
Lösungen. Einfach mal danach googlen.
Mit dem bereits fertig programmierten ATTiny2313 ist die Animation nicht
gerade atemberaubend aber zum Testen reicht es.
Nun zum eigentlichen Thema:
Hauchen wir dem Tiny neues Leben ein. Also ein neues Programm in C
geschrieben um längere Animationen abspielen zu können. Leider kann man
mit dem Tiny natürlich keine großen Sprünge machen also war der nächste
Schritt, das Ganze doch in Assembler zu schreiben. Das Programm ist
recht einfach und sollte auch kurz sein, damit mehr für die Animation
Platz hat.
Im Anhang nun das Programm und das Hex File.
Das Programm spielt nur die Animation ab, mehr eigentlich nicht.
Der Taster hat die Funktion, die Animation zu bremsem.
Vielleicht hat noch jemand Ideen, wie man das Programm noch kürzer
bekommt oder auch eine Möglichkeit die Daten anderswo zu speichern.
Ernst
Unter dem Pollin Link kann man sich auch die Anleitung runterladen.
Alternativ gleich hier unter diesem Link:
http://www.pollin.de/shop/downloads/D810232B.PDF
Auf der letzten Seite ist dann der Schaltplan enthalten.
Erschreckend welche Energieverschender die Entwickler von Pollin sind
:-). Der ATtini läuft auch mit 3V. Die Transistoren kann man in
Collektorschaltung verschalten und damit auf alle Widerstände
verzichten. 0,7V fallen dann an den Transistoren ab und 0,3 Volt
verkafren die Ports des ATtiniys. Bleiben 2,0 V für die LED. Einziger
Nachteil man braucht ein Programmer der mit 3V klar kommt :-). Der
Pollinaufbau hat ca. 77% Verlustleistung. Der vereinfachte Aufbau nur
33%.
Bitte nicht zu ernst nehmen ;-)
LG Christof
Mir gings eher ums Programmieren und Code sparen und nicht um den Strom
:-)
Wenn man das Teil aber mit einer Batterie betreibt, wäre das schon ein
wichtiger Gesichtspunkt.
Ich nehmen alles
Ernst.
Hallo Ernst :-)
Am Code selbst holst du maximal 20 % raus. Das reicht dir wahrscheinlich
nicht mal für ein neues Muster. Interesanter wird es, wenn man vieleicht
eine Datensequenz opfert und eine Art “morphing“ code dazu schreibt.Der
dann die Daten dreht oder ähnliches, dann kann es sehr vielseitig werden
und sehr lange Sequenzen ergeben.
Lg Christof
Momentan werden ja 4 Bytes pro Bild verwendet die den kompletten
Cube darstellen.
Alternativ könnte man auch nur ein Byte verwenden und nur das Delta
anwenden. Aber bei den meisten Bildwechsel ändern sich aber mehr
als vier LED so das hier auch keine Ersparnis raus zu holen ist.
Ernst schrieb:> Auf der letzten Seite ist dann der Schaltplan enthalten.
Ein Kondensator über der VCC des µC ist wohl dem Rotstift der
Betriebswirtschaftler zum Opfer gefallen ;-(
Mike schrieb:> Ernst schrieb:>> Auf der letzten Seite ist dann der Schaltplan enthalten.> Ein Kondensator über der VCC des µC ist wohl dem Rotstift der> Betriebswirtschaftler zum Opfer gefallen ;-(
hmm, ein Kondensator zwischen VCC und GND sollte doch reichen oder?
Gerade, weil das eigentlich für Batteriebetrieb gedacht ist.
Ist schon interessant, 93 Downloads aber keine Kommentare dazu.
Gut, es erfüllt ja auch seinen Zweck. Hier steht der Würfel am
Fensterbrett und blinkt vor sich hin. Einige Besucher können dem
Teil auch ewig zusehen. :-) Scheint eine einlullende Wirkung zu haben.
Aber sonst wird doch hier auch immer alles zerrissen.
Wie könnte man den Code noch kleiner machen oder alternativ die
Muster extern speichern?
Ernst
Hallo Ernst
Mich würde dein C-Code trozdem interessieren da ich mich momentan mit
der ansteuerung von so einem Cube beschäftigen will, jedoch von
Assambler keine Ahnung hab. Wäre dir sehr dankbar wenn du den auch noch
mit hochladen könntest.
Lg
Johannes
Hallo,
ich hatte diesen Bausatz schon sehr lange im Keller herumliegen, aber
jetzt hatte ich mal Zeit und Lust gehabt "das Dingen" aufzubauen.
In diesem zusammenhang habe ich auch Dein Programm entdeckt (Vielen Dank
dafür) welches um einiges besser ist als das mitgelieferte.
Ich habe eigentlich nur eine kurz banale Frage, falls der Programm-Autor
noch mitliest :
Ist das Programm für 8 MHz oder für 4 Mhz geschrieben ? Irgendwie habe
ich das Gefühl, das bei 8 MHz die Animationen teilweise etwas zu
schnell, aber dafür bei 4 MHz irgendwie etwas zu langsam ablaufen.
MfG Der Doctor
Hallo,
erstmal vielen Dank an Ernst für die tolle lange Sequenz! Viel besser
als das Original!
Ich habe den Assembler Quelltext mal so angepasst, dass zwischen den
Mustern per PWM ein fließender Übergang stattfindet (siehe Anhang).
Damit finde ich es nochmal schöner anzusehen.
Solange der Taster gedrückt wird findet jetzt zum Vergleichen der harte
Übergang statt.
Schöne Grüße,
Michi
Klaus R. schrieb:> ...du fummelst 2019 an einem 3x3 Cube in ASM rum?
Michi tut genau das, was in anderen Threads immer vorgebetet wird: Den
ATTiny auf der unteren Ebene begreifen anstatt in C oder Basic zu
fummeln.
Das ist genau der richtige Lernweg , mit einer überschaubaren
Anwendung zu beginnen.
Man kann natürlich auch nicht ausschließen, dass er bereits Erfahrung
mit ASM hat und das 'mal eben so' gemacht hat.
Hallo,
ich hatte früher viele Jahre unter anderem PIC16 in Assembler
programmiert, aber noch nie einen AVR. Aber ich hatte ja
dankenswerterweise eine gute Codebasis von Ernst.
Den Pollin-Bausatz hat mein Kind gelötet. Aber da die originalen
Sequenzen sehr kurz sind, bin ich sehr froh über das lange Muster von
Ernst. Das nahtlose Dimmen zwischen zwei Mustern hat mich gereizt und
auch irgendwie gefreut es hinbekommen zu haben.
(Hardy, die Unterseite ist bei mir verklebt, aber im Pollin Video sieht
man sie bei 0:22.)
Schöne Grüße,
Michi
ach vergessen:
Ich habe an die Platine zur Spannungsversorgung ein USB-Kabel nach dem
Linearregler angelötet. So kann der Würfel stundenlang vor sich hin
morphen ...
Hallo,
ich hab durch Zufall meinen Thread hier wieder entdeckt.
Schön, dass sich doch mal jemand noch Gedanken dazu gemacht hat.
Bei mir läuft der Cube ab der Adventszeit bis ins neue Jahr in der
bisherigen Version. Ich werde nun mal die neue Version testen und
dabei mal den 4313 verwenden. Da muss ich dann noch ein paar
Sequenzen basteln.
Natürlich kann man das auch in eine Hochsprache unter Windows
realisieren, aber die 150MB passen dann halt nicht in einen AVR. :-)
Ernst
Hallo,
eigentlich sind alle Informationen bei Pollin zu finden.
Bevor man sich hier die Mühe macht, die Platine selber zu ätzen,
kauft man sich einfach den Bausatz von Pollin.
Wenn man sich schon die Arbeit antun will, dann kann man auch ein
eigenes Layout machen und z.B eine ISP Buchse mit intergrieren.
@Michi: Ich hab mit dein Hex auf den Cube geladen, sieht doch ganz
nett aus. Allerdings scheint das Image für 1MHz ausgelegt zu sein?
Ernst
Hallo Ernst,
der Bausatz ist bei Pollin "aktuell nicht lieferbar", scheint aber
nachproduziert zu werden. Sonst steht da "nicht mehr lieferbar", wenn
man sich einen Link irgendwo aufgehoben hat.
Ich habe naiv und aus Unkenntnis einen USBasp-Klon zum Programmieren
gekauft gehabt, statt einen richtigen Atmel Programmer. Damit könnte ich
zwar anscheinend zur Not auch die Fuse-Bits programmieren um die
Frequenz einzustellen, aber wenn ich es richtig verstehe kann ich manche
nicht zurücksetzen, da es kein High Voltage Programmer ist. Und da alles
funktionierte habe ich keine Fuse Bits programmiert. Die Settings
dürften also noch denen vom Original Pollin Chip entsprechen, den ich
einfach umprogrammiert habe. Und ja, ich denke von meinen Beobachtungen
her, dass es 1 MHz sein müssten.
Ich war es von meinen PIC Projekten so gewohnt dass ich dort über die
__config Direktive die Fuse-Bits im Quelltext setzen kann und diese dann
auch in der hex-Datei drin sind. Bei Atmel habe ich so eine Funktion
nicht gefunden gehabt, es dann aber ja auch nicht zwingend gebraucht.
Mein Kind freut sich immer noch sehr über die lange Musterfolge von dir.
Nochmals vielen Dank!
Schöne Grüße,
Michi
@Michi: Ich hab hier zufällig auch den USBasp zum Programmieren
verwendet.
Allerdings hab ich die aktuelle Firmware installiert, was ohne zweiten
Progger schwierig sein dürfte.
Mit avrdude und Burn-O-Mat läuft das relativ problemlos. Nur, wenn der
Takt des Tinys auf 1MHz steht, kann der Progger nicht mehr einfach
zugreifen. Jetzt muss man unter Optionen -B den Takt runtersetzen.
(Im Bild rechts unten)
Auch mit meinen 3€ Progger läuft das problemlos und auch das Programm
läuft genauso gut wie unter einen 300€ Programmierer.