LEDCube 5x5x5 (080355)

Postby arjen h. » Sun Nov 23, 2008 12:00 am

Met interesse heb ik het project Driedimensionale lichtshow bekeken. Ik heb altijd het idee gehad om ooit ook eens zo'n ding te maken (zie RGB 8x8x8 op basis van het usb data-acquisitiekaart).

Wat ik in het verhaal van de Driedimensionale lichtshow een beetje mis is:
- wat informatie over de gebruikte controller
- hoe groot (tijdsduur) het patroon kan zijn
- programmeren van de controller

Verder begreep ik dat dit project een stage-opdracht is geweest. Kan me niet anders voorstellen dan dat het een dikke voldoende moet zijn geweest !!!
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1305
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Mon Nov 24, 2008 12:00 am

Grappig,
Ik sprak deze jongen ( inderdaad een stagiaire MTS )afgelopen zaterdag bij Elektorlive!
Aangezien het principe niet zo heel moeilijk is kun je je eigen creativiteit er goed in kwijt.

Opslag van de patronen ligt een beetje aan de manier van opslaan en het grote van de array. Als het 8x8x8 is ben je dus 256 bytes kwijt aan data als je het RAW opslaat. Uitgaande van elk LED is 1 bit.
Voor RGB ben je dus drie maal zoveel kwijt.

Even een snelle opzet.....
Uitgaande van 8x8x8 RGB:

8 bit in 1 keer aansturen ( kan per bit maar waarom niet 8 tegelijkertijd zoals een lichtkrant... ).
Dan zijn de ROWs gedekt.
Dan een demultiplexer voor de kolommen. Drie bits dus...
Het zelfde voor de planes is dus ook drie bits.
Als je dus een counter gebruikt en dat op een poort zet kun je dus eenvoudig en snel alle leds aan.

Dan rest nu nog RGB, of te wel kleur.

In totaal zijn we nu 6 bits kwijt voor de kolommen en planes. De andere twee bits kunnen we gebruiken voor de kleuren. Als deze ook op een demultiplexer ( 2 bits versie ) aangesloten worden kunnen we R, G en B aansturen.

0X00 - 0X3F RED
0X40 - 0x7F GREEN
0x80 - 0xBF BLUE
0xC0 - 0xFF NOT USED


Laat een teller van 0x00 tot 0xBF en je hebt alle LEDs en kleuren gehad.
Dit moet dus wel heel snel gebeuren... 30 of meer keer per seconde om geen geknipper te zien.

Misschien is dit een goede start om een idee te krijgen.


Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby jerryjacobs » Wed Nov 26, 2008 12:00 am

Arjen H.Met interesse heb ik het project Driedimensionale lichtshow bekeken. Ik heb altijd het idee gehad om ooit ook eens zo'n ding te maken (zie RGB 8x8x8 op basis van het usb data-acquisitiekaart).

Wat ik in het verhaal van de Driedimensionale lichtshow een beetje mis is:
- wat informatie over de gebruikte controller
- hoe groot (tijdsduur) het patroon kan zijn
- programmeren van de controller

Verder begreep ik dat dit project een stage-opdracht is geweest. Kan me niet anders voorstellen dan dat het een dikke voldoende moet zijn geweest !!!


Ik heb het artikel geschreven met het idee dat al enige kennis bezitten over microcontrollers/AVR. Het was niet de bedoeling om mensen te leren hoe een AVR werkt en hoe ik daaruit mijn kubus heb ontwikkeld. En het patroon is toch gewoon 5x5x5 en de software is aanpasbaar ( dus ook tijdsduur ). De ververssnelheid is afhankelijk ook waar je de processor intern op hebt draaien ...


Ik geloof dat het ook interessant is om een RGB kubus te ontwikkelen. Niet een standaard maar per X kolommen aangestuurd door middel van PWM met een tiny avr. Dit via een gezamelijke i2c bus ( dus de tinys als slaves ) En 1 main controller die mischien aan usb of rs232 kan aangesloten worden. Denk dan aan een mega32 of mega64 (meer flash) of mischien met een SPI/i2c flash memory. Als je in 10 bit modus gaat werken op i2c geeft het je dus de mogelijkheid om 1024 kolom paren te maken. Ga er vanuit dat je een tiny neemt die 4 PWM uitgangen heeft.. Mogelijkheid genoeg.

Groeten,
Jerry Jacobs
* Elektor Lab Stagair
jerryjacobs
 
Posts: 8
Joined: Thu Jan 02, 2014 3:42 pm

Postby arjen h. » Wed Nov 26, 2008 12:00 am

Ik heb inmiddels de code bekeken. Kan niet anders zeggen dat het heel overzichtelijk is en betrekkelijk eenvoudig. Maar ja, dat zeg ik als iemand die C kan lezen.

Waar ik nieuwsgierig naar was is hoe de patronen zijn opgebouwd. Dit is dus in C-code met do-while en for lussen. Iemand die zelf een patroon wil maken moet dus kennis van C hebben. De grootte van het patroon is dus beperkt tot het beschikbare programma-geheugen van de controller.

Een geprogrammeerde controller is niet bij Elektor verkrijgbaar. Iemand die de cube wil maken moet dus zelf zo'n controller kopen en het ding zien te programmeren en dus waarschijnlijk ook een programmer zal moeten kopen of bouwen. De drempel voor veel hobbyisten zal hierdoor vrij hoog liggen denk ik...

Ik denk alleen soms (wel eens teveel) vanuit het oogpunt van dummies die ook wat zouden willen maken. Een geprogrammeerde (geteste) controller is handig om de hardware te testen en meer algemene functies zouden handig kunnen zijn om patronen te ontwikkelen.

Maar...... bovenstaande doet niets af aan je gemaakte opdracht, zoals gezegd: prima werk!
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1305
Joined: Thu Jan 02, 2014 10:40 am

Postby jerryjacobs » Thu Nov 27, 2008 12:00 am

Eigen animatie effecten
Deze kunnen als bijlage(s) meegepost worden (dus niet de code in de post !). Dan kan iedereen effecten gebruiken en testen van anderen om nieuwe ideeën op te doen. Als er iemand een bug of verbetering weet te brengen in de low-level driver dan kan deze ook meegepost of gemailt worden.
jerryjacobs
 
Posts: 8
Joined: Thu Jan 02, 2014 3:42 pm

Postby mr beamer » Wed Dec 24, 2008 12:00 am

ik ben nu bezig met de code te builden maar ik krijg steeds een error:
cube.c:60: warning: implicit declaration of function 'ani__display_charset'
cube.c: At top level:

cube.c:145: fatal error: opening dependency file .dep/cube.o.d: No such file or directory
compilation terminated.
make: *** [cube.o] Error 1

Build failed with 1 errors and 1 warnings...

Ik weet alleen niet waar deze error vandaan komt
de regel die hij aangeeft(145) is de laatste regel van cube.c


Ik heb het al gevonden. het was een vista probleem
op een windows xp machine draaid het wel goed

Avr studio 4.15
Winavr 20081205
mr beamer
 
Posts: 6
Joined: Thu Jan 02, 2014 3:42 pm

Postby jerryjacobs » Fri Dec 26, 2008 12:00 am

Dat is mooi ik gebruikte zelf een oudere WinAVR release bij elektor. Thuis draai ik Ubuntu GNU/Linux en geen windows en werkt het prima op.

Groeten en succes.
Jerry
jerryjacobs
 
Posts: 8
Joined: Thu Jan 02, 2014 3:42 pm

Postby jean-pierre de muyt » Thu Jan 01, 2009 12:00 am

Ziehier het probleem die ik heb en de gebruikte opgeving:

Ik gebruik AVR Studio 4.15
en gebruik als programmer de mySmartUSB MK2 Version 2.5 van myAVR.
In AVR studio gebruik ik (in Tools menu) AVRProg om de op de op de elektuur website gedownloade HEX file cube_1mhz_atmega32.hex up te loaden naar mn kubus.
Ik druk op de knop Program Flash waarna mn programmer succesvol de hex file naar de kubus stuurt (Erasing device...Programming...Verifying...OK).
Bij het verwijderen van de programmer en het onder spanning brengen van de kubus blijkt alles netjes te werken (karakters verschijnen, animaties starten), EDOCH: kolom 11,12 en 14 blijven constant branden terwijl kolom 13 altijd uit blijft!
De reden waarom ik overtuigd ben dat het geen hardware maar een software probleem is: ik heb twee kubussen gemaakt, eentje rood en eentje met groene LEDS en toch vertonen beiden kubussen het identiek zelfde probleem.
Kan iemand me helpen aub? Wat deed ik verkeerd?
Dit zijn mn eerste stappen in het programmeren van een AVR en ik ken van C of C++ niks af...
jean-pierre de muyt
 
Posts: 4
Joined: Thu Jan 02, 2014 3:42 pm

Postby mr beamer » Thu Jan 01, 2009 12:00 am

Dit is een instelling in je programmer.
De atmega32 heeft standaard de jtag interface pinnen hoog staan en de firmware kan daarom pinnen 6,7,8 niet aansturen respectievelijk kolom 11,12,14,
je moet dus even naar de fuse's van de programmer zoeken en daar Jtag interface pinnen uitschakelen.
Daarna zal het wel gaan werken.
mr beamer
 
Posts: 6
Joined: Thu Jan 02, 2014 3:42 pm

Postby jerryjacobs » Thu Jan 01, 2009 12:00 am

==Atmel ATMEGA 32==
JTAG Disable ( 6th bit of hfuse)
flash hfuse to 1101 1001 or 0xD9


8mhz internal clock:
lfuse to 0xE4

If virgin chip
program:

hfuse to 0xD9
lfuse to 0xE4


Dit stond in mijn ontwikkeldocumentatie, zodra er een nieuwe firmware uitkomt zal ik dit erbij zetten dat de fuses correct moeten worden geprogrammeerd.
jerryjacobs
 
Posts: 8
Joined: Thu Jan 02, 2014 3:42 pm

Next

Return to 2008-12 LED kubus

Who is online

Users browsing this forum: No registered users and 1 guest