![]() | ![]() |
![]() Een tijd terug heb ik samen met een vriend een ledbar in elkaar geknutselt met de intentie deze in te bouwen in m'n chieftec kast. De ledbar bestaat uit 2 aparte printjes met 32 leds per print. Deze leds worden aangestuurd door middel van een controllerprintje met hierop een pic 16f628 microcontroller. Deze microcontroller regelt de 64 individuele 8 bits PWM kanalen op 75 hz. Dat betekent dat elke led individueel op een bepaalde intensiteit ingesteld kan worden (256 stapjes van uit tot vol aan). Via de PC kan vervolgens serieel data verstuurd worden naar de microcontroller, die vervolgens de leds aanstuurd. Hoewel ik de printjes in de zomervakantie al in elkaar heb gesoldeerd, heb ik nog geen tijd gehad om deze in te bouwen in m'n pc behuizing. Twee weken geleden heb ik eindelijk wat tijd kunnen vinden om het ding in m'n chieftec behuizing in te bouwen. Dus... hier wat pics en filmpjes: De controller print met de pic 16f628 @ 20 mhz (deze zit ingebouwd in een 3'5" slot). Een van de boxheaders wordt gebruikt om de data naar de leds te sturen, de andere is om de pic in-circuit te kunnen programmeren... dus geen gedoe met een losse programmer ![]() Een van de printjes met de ledbars erop (hier zitten 8 bit serial-in shiftregistertjes op): ![]() Voorkant van de kast waar de ledbars zijn ingebouwd (ledbars zitten precies in de gleuven die in het deurtje zitten): ![]() Weer de voorkant, maar nu met wat leds aan... ![]() Achterkant van het deurtje (moet nog afgewerkt worden met een of andere plaat zodat je de prints niet meer ziet): ![]() En uiteraard wat filmpjes om het geheel in werking te zien (het knipperen in de filmpjes komt door de refreshrate van de leds... hetzelfde effect als je met een camera je monitor filmt dus. irl zie je dat geknipper dus absoluut niet): knightrider effect met afterglow (498 KB / DivX 5.0) vu meter met afterglow (4182 KB / DivX 5.0) vumeter met falloff en afterglow (6256 KB / DivX 5.0) Ik heb jammergenoeg nog geen tijd gehad om er een fatsoenlijk stukje software voor te schrijven (de effecten uit de filmpjes komen van een snel in elkaar gehacked c++ console progseltje), maar ik hoop daar over een of twee maanden wat tijd voor te hebben, zodat ik een fatsoenlijk programma kan schrijven met plugin support etc. Er zijn namelijk zoveel leuke effecten om op die ledsbars weer te geven... (cpu/mem usage, network up/download speeds enz.) edit (wat belangrijke info vanuit topic naar topicstart copy/pasted): Kostprijs Beetje lastig te bepalen, maar het zal iets in de volgende richting zijn: 8 euro voor de printplaten 5 euro voor de pic 16f628 12 euro voor de ledbars (8 ledbars van 8 leds per stuk) 1,50 euro voor de weerstanden 6 euro voor overig spul (74hct573 latch, max232, condensatoren, 20 mhz kristal, weerstandnetwerkje, box/pinheaders etc) 0 euro voor sub-d 9 pins printconnector, molex printconnector, kabeltjes etc (van oude apparatuur afgesloopt) In totaal dus 32,50 euro (inclusief de programmer, die zit nl op de print) Onderdelen onderdelen controller print: 1x sub D printconnector, 9 pins female 1x molex printconnector, 4 pins male 1x ic max232 (of vergelijkbaar, bv st232) 4x condensator 0,1 uF 1x electrolytische condensator 22 uF 1x 10k Ohm weerstand 1x 1k Ohm weerstand 1x ic microchip pic 16f628, dip, 20mHz 1x kristal, 20 mHz 2x condensator 22 pF 1x boxheader 2x5 pins onderdelen voor de progger: (ook op de controller print, kan eraf gelaten worden als je de pic niet in circuit wilt programmeren) 1x 10k Ohm weerstandsnetwerk (1x4) 1x ic 74hct573 1x boxheader 2x5 pins onderdelen led-prints (per print): 4x ic 74hc595 shiftregister (4094 kan evt ook wel, maar deze heeft een andere pinout!) 1x haakse pinheader, 5 pins 32x led (heb zelf gebruik gemaakt van ledbars met 8 leds per bar) 32x weerstand voor led PIC Code de code + binary voor de pic: http://faq.tweakers.net/cme/64ledbar/ledbar.rar Mocht iemand zover komen om iets werkends te produceren... het protocol is nogal simpel (gaat zeker aangepast worden, is nu redelijk brak namelijk). Als je een beetje bedreven bent met software schrijven, dan kan je iig iets maken om het aan te sturen. Hiervoor gebruik je de volgende settings voor de compoort: 115200 bps 8 data bits no parity 1 stop bit no flow control Als je de poort geopend hebt in je software, moet je 65 bytes versturen. De eerste byte moet altijd waarde 255 (0xff) hebben. Deze zorgt ervoor dat de "pointer" in de pic naar de eerste led wijst. Daarna stuur je 64 bytes, waarbij elke byte de intensiteit van een led voorstelt. (let op, je mag _geen_ 255 gebruiken als ledwaarde... alleen de waardes 0 t/m 254 dus). Als je dat dan meerdere keren doet, kan je iets "bewegends" weergeven De code is niet final oid. Heb er al een tijd niks meer aan gedaan, maar ik ga 'm binnenkort wel wat updaten (beter protocol etc). Je kunt de .hex iig direct gebruiken om de pic te programmeren. De assembler code kun je met mplab (ide van microchip) assembleren. Mensen die wat zicht hebben op pic assembler zien misschien wel iets wat niet helemaal klopt met de pwm... dat klopt De programmer op de print is afgeleid van de TLVP (trivial low voltage programmer). Voor meer info + programma's die samenwerken hiermee zijn te vinden op http://www.finitesite.com/d3jsys/. Printlayout / schema's hier nog een picje vh controller printje... ![]() Ledprint + Controllerprint Eagle .brd: http://faq.tweakers.net/cme/64ledbar/eagle_ledbarbrds.rar Foto's van de print, met en zonder componenten http://faq.tweakers.net/cme/64ledbar/ledbarpics.rar Dat was het wel zo'n beetje... Hier kun je nu wel vooruit denk ik (mits je wat kennis van zaken hebt). mzzls, Lonert NB: de muismod die verderop in deze thread staan heeft nu zijn eigen topic: [rml][ HowTo]RGB-led muismod met PIC[/rml] |
[ Voor 134% gewijzigd door Anoniem: 44568 op 02-12-2004 16:56 . Reden: upgraded naar Howto en linked vanuit CME Faq: Contrib sectie ]
Experience has taught me that interest begets expectation, and expectation begets disappointment, so the key to avoiding disappointment is to avoid interest.