3D led cube. Part 3

Door _ferry_ op dinsdag 22 juli 2008 15:14 - Reacties (11)
Categorie: Elektro en DIY, Views: 11.635

Okee, tijd voor deeltje 3, waarin we gaan kijken hoe je alles op een fatsoenlijke manier in elkaar zet. Eigenlijk had ik daarvoor in het vorige deeltje moeten aangeven wat je ervoor nodig hebt. Dus dat doen we dan nu nog maar even, anders weet je ook niet wat je in elkaar moet zetten ;) Ik ga er vanuit dat de meeste wel wat spul op voorraad hebben liggen als elektro knutselaar, zoals pull up/down weerstanden etc.

Shoplist:
-PIC 16F628
Andere controllers uiteraard ook bruikbaar, gebruik zelf de 16f648 met 2x meer geheugen.)
-leds (512x)
Heb zelf 550 diffuus blauwe leds besteld, deze geven aan alle kanten een mooi egaal blauw licht door de mat plastic kop. Bij normale heldere led's gaat bijna al het licht recht omhoog, waardoor je eigenlijk de bovenstaande led gaat verlichten, en vanaf de zijkant weinig ziet.
-74HC595 schuifregister (9x)
Deze zorgen voor het aansturen van de led's
-FET's (8x)
Om de 8 lagen te schakelen naar ground heb ik 8 FET's gebruikt, had ik liggen, maar een darlington array of goeie transistor moet ook kunnen. Iedereen weet de voor en nadelen denk ik wel.
-draad
div. kleurtjes, lengtes enzo, spreekt voor zich :P Naar de kolommen heb ik flatcable gebruikt.
-experimenteer print.
Ik hou niet zo van printen etsen, heb er de spullen ook niet voor, en vaak solder ik het sneller op een experimenteer bordje dan dat ik het eerst moet gaan ontwerpen en etsen. En zo werkt het toch ook? :+
-voeding
Heb zelf een adaptor 5V 1000mA gebruikt, ruim voldoende vermogen.
-weerstanden (64x)
Door het multiplexen kun je in feite meer stroom door de led's heen sturen, zodat ze zodat de lichtopbrengst gelijk blijft. Echter ben ik gewoon uitgegaan van de normale waardes van de led's (3,2V 20mA) om de weerstanden te berekenen. Want ze hoeven niet op full power te werken, ze zijn fel genoeg op 1/8e van hun brandduur :) Het gaat om het licht, niet om te verlichten zeg maar ;)
Ik weet niet welke waarde ik heb gebruikt, maar volgens de formule:
(5v-3,2v)x0,02mA=90. Het zal dus wel 82ohm zijn geweest.
-diverse.
Zoals ic voetjes, ontstoringscondensators, pull up/down weerstanden etc.

Okee, door met het in elkaar zetten van al die meuk :P

Het solderen van de leds is natuurlijk een tijdrovend klusje. Om het allemaal zo recht mogelijk te maken had ik een malletje gemaakt. neem led 1 en led 2, en een punttangetje, vouw ongeveer 2mm van het lange pootje om deze gaan we later weer onder de kop van het ledje wat er onder zit solderen.
Maar eerst even het andere pootje naar achteren toe buigen, die komt vast aan het pootje van de led ernaast, en dat zo 8x achter elkaar.
http://tweakers.net/ext/f/tfL0bnWFLyY3maB7rTiMKfhm/full.gif
Plaatje maakt het hopelijk wat duidelijker. Nu pakje led 2, en buig je de pootjes in dezelfde vorm. De 2 horizontale pootjes soldeer je met zo'n 3 mm aan elkaar, buig ze netjes haaks, en kijk wat de afstand is tussen het middenpunt van de leds. Op die afstand kun je nu in een plankje plexiglas of hout 8 gaates boren op een nette rechte lijn. Zodoende kun je nu alles een stuk makkelijker solderen. (1 rij klaar? Nog 63 te gaan :P )

Zodra ik 8 rijtjes af had kon ik die aan elkaar maken, leg 1 rij op je werblad, en doe de pootjes welke je 3mm hebt omgebogen even vertinnen. Vervolgens leg je die bovenop een volgende rij led's en soldeer de omgebogen pootjes nu vlak onder de kop van de led. Dat doe je 8x en dan heb je 2 rijen aan elkaar gemaakt. Zo 8 rijen aan elkaar en je hebt 1 verticaal vlak af.

http://tweakers.net/ext/f/gweRMp7W2xYz1DwcI44TByt2/full.jpg
http://tweakers.net/ext/f/TP6v58QqYUDBcRcwspukOH5O/full.jpg
http://tweakers.net/ext/f/29a69d391a2727af26eb412977834c9d/full.jpg
GoT it? :P

Als je eenmaal de 8 vlakken hebt gemaakt kun je ze onderling verbinden. Horizontaal moeten er 8 draden gesoldeerd worden die de lagen in elk verticaal vlak met elkaar verbinden. Ik heb daar dus gewoon wat massief draad voor genomen. En alleen aan de achterkant geplaatst. Aan de voorkant van de kubus ook 1 om te zorgen dat alles netjes vierkant blijft. Uiteraard vantevoren even kijken op welke afstand je ze moet knippen en solderen om hem vierkant te houden.

Let's move... Naar het PCB:

Ik heb gewoon een experimenteer print genomen, ruimte zat, simpel schema, en eenvoudig omdat het eigenlijk telkens hetzelfde is wat je er op soldeert: De uitgangen.

http://tweakers.net/ext/f/d7ee886bff30dee3c0160b3794dac976/full.jpg
Hier is de print voorzien van de uC en 8x uitgang-schuifregister.

Na voltooing ziet de print er zo uit:
http://tweakers.net/ext/f/gns740b6AygRuC6W3qfkh7i2/full.jpg

http://tweakers.net/ext/f/QrPVX7qU3FLFSgZXjwVVsg6b/full.jpg
Je kijkt hier tegen de onderzijde aan, dus de pennen zitten op de foto op deze volgorde:
9-10-11-12-13-14-15-16
+----------------------+
| -- IC 74HC595 -- <|
+----------------------+
8-7-6-5-4-3-2-1

Qua draad: Geel= +5V Zwart= GND Blauw & groen worden gebruikt voor de signalen.

Qua pinout kan ik zelf een schema maken, maar ik kan ook gewoon even linken naar een ander schema wat gebruikt maakt van de 74hc595: klik

Hierin zie je de data lijn (SPL_out rechts bovenaan) welke naar pin 14 gaat. Vanaf daar gaat hij naar pin 14. Daar komt hij weer 'uit' via pin 9,welke je dan weer doorlust naar pin 14 van het volgende IC. En zo doe je dat voor alle 9 de IC's.

Verder Voorzie je elk IC van een Clock en reset, welke je gewoon van IC naar IC kunt doorlussen. Zie voor de specificaties daarvan de datasheet

Uiteindelijk kun je deze 3 lijntjes op het uC aansluiten. Welke pinnen uitgangspinnen? Dat maakt niet zo heel veel uit, kwestie van instellen in het programma :)

high speed fotografie

Door _ferry_ op zaterdag 17 mei 2008 13:06 - Reacties (22)
Categorie: Elektro en DIY, Views: 11.066

Laatst had ik een arduino bordje besteld, of betergezegd, een freeduino. Eigenlijk hetzelfde, maar dan opensource qua printplaat.
Dit is een bordje met een micorcontroller welke je via de USB poort kunt programmeren. Erg handig voro test projecten enzo, want je kunt makkelijk dingen uitlezen via de seriele communicatie en ook het programmeren ervan is best makkelijk. Binnen no-time had ik al text op een display staan.

Anywaaai... Ik wilde hem natuurlijk wel ergens voor gebruiken, namelijk high-speed foto's maken, waarbij het bordje een vallende druppel registreert met een laser+fotodiode en afhankelijk van een door mij ingestelde tijd de camera en flitser aanstuurt.
http://tweakers.net/ext/f/7jnNdiK1egcb8yMed7qqcQWa/full.jpg

En dat gaf deze resultaten:
http://tweakers.net/ext/f/RneIpS8tVP9xfzf9M14n8XuH/full.jpg

http://tweakers.net/ext/f/pcvmvn0La2e3XTRzlVs99vEL/full.jpg

http://tweakers.net/ext/f/o1iXSx41tJ2p3PvYOPsTvLcn/full.jpg

http://tweakers.net/ext/f/uaPGoQLcvfOhO15bm8bYykT9/full.jpg

http://tweakers.net/ext/f/CYackEulLV95Ciy3TesKV8Tl/full.jpg

http://tweakers.net/ext/f/I3RGDD85qe6VeVDHeEfoHExK/full.jpg

http://tweakers.net/ext/f/iPrLMKRGdpnDcLUndFbsL0KV/full.jpg

http://tweakers.net/ext/f/HmrR73gUpv3oiSG4zmy3P68W/full.jpg

http://tweakers.net/ext/f/bR2BE0WIlDihdHUMNYILpmD0/full.jpg

http://tweakers.net/ext/f/pEBCnd9FElJo2qEoUV61ZzKO/full.jpg


Al met al een leuk projectje geweest. Nu eens verzinnen wat de volgende taak wordt van het arduino bordje, misschien wel mijn freesmachine aansturen. Maar dat wordt alweer een stukje lastiger, niet alleen qua programma, ook qua besturen van de frees zelf. en het nut ervan is nogal beperkt.

extra info:

De foto's zijn gemaakt met een canon 400D met sigma 17-70mm. De eerste reeks had ik van een afstandje gemaakt waardoor ik die bijna 100% moest croppen. De foto's met border heb ik van dichterbij gemaakt (waardoor ik telkens de spetters er af moest vegen :P ) Maar dat scheelde wel in het resultaat :) En dus ook in high-res waardoor ik er een stel heb afgedrukt.

De aansturing ging als volgt:
Laser schijnt op sensor, zodra deze lichtstraal onderbroken wordt, wacht hij de ingestelde tijd. Daarna doet hij de camera aansturen, hiervoor heb ik de afstandsbediening-ingang van de camera gebruikt. Dat is gewoon een simpel contactje wat gemaakt wordt.
Het opklappen van de spiegel duurt even (volgens de metingen zo'n 250ms). Dus daar wacht hij even op. Vervolgens wordt de daadwerkelijke foto gemaakt, door de flitser aan te sturen. Ook hier door simpelweg een contactje te maken. Daarna de sluiter weer dicht, en is de foto klaar.

high res versies
Niet van elke foto beschikbaar, maar wel van de laatste reeks:
arduino - hi speed

Corsair padlock hacking

Door _ferry_ op maandag 10 maart 2008 10:56 - Reacties (15)
Categorie: Elektro en DIY, Views: 22.009

Gisteren ontving ik als geschenk een corsair padlock. Een USB stick die alleen toegankelijk is dmv een pincode.
Nu is wel vaker gebleken dat USB sticks maar beperkt te beveiligen zijn, fingerprints kunnen nagemaakt worden, software kan gewijzigd worden etc. Enkele voorbeelden daarvan kun je op Sprite_tm zijn site vinden: http://spritesmods.com/?art=security

Maargoed, even terug naar de Padlock, deze werkt niet met software die ales encrypt of beveiligd met een code, ook niet met een vingerafdruk, nee, met een pincode op het apparaat zelf:
http://corsair.com/_images/products/padlock_hero.jpg

http://tweakers.net/ext/f/I7Nattlk2y7g1lT6dMHCfpvM/full.jpg
Tijd om hem open te maken, dit had denk ik een stukje beveiliging moeten zijn: lijm waarmee de componenten van het PCB worden getrokken bij het openen. Staat niet in de gebruiksaanwijzing vermeld dat hij niet geopend kan/mag worden, terwijl dat misschien wel eens nodig zal zijn voor het vervangen van de batterij.
Gelukkig viel de schade mee: 1 transistor werd los getrokken. echter kon ik hem zo weer uit de lijm prikken met een stanley mes. 3 puntjes solderen en klaar :)

http://tweakers.net/ext/f/YHyifUdn2AxCPITQse9llJpR/full.jpg
Zie hier de plek van de ontbrekende transistor rechts bovenaan. Dit is zeg maar de print van de USB stick zelf, via 4 pinnetjes zit hij verbonden met de print er onder, welke de toetsen en dergelijke bevat, en het IC wat de code opslaat.

Vervolgens ging ik kijken wat er gebeurt als je de code intoets, mijn stoutste dromen werden waar: Zodra je de code intoets wordt 1 van de pennen hoog. Verder zag ik niets aan data ofzo.

http://tweakers.net/ext/f/NpQ1Evos0W1wwgcyImvEXq6r/full.jpg
Dat hoog maken kan ik zelf ook wel :P 10k weerstand gepakt, en vervolgens tussen die pen en de batterij gesoldeerd.

http://tweakers.net/ext/f/Y5lN9qcNCBAtvdDACbT18rfR/full.jpg
Daarna de USB stick in de computer en klaar!! Zo makkelijk kan het zijn. Het lampje blijft wel rood knipperen, als melding dat de USB stick gelocked is, maar da's logisch, want ik heb geen code ingevoerd. Echter het signaal wat ervoor zorgt dat de daadwerkelijke USB stick ingeschakeld wordt is wel aanwezig, dus daardoor gaat ie gewoon werken :)

Uiteindelijk is het dus erg simpel om ook deze USB stick te hacken, De enige bescherming is eigenlijk de lijm, die waarschijnlijk het spulletje zou moeten slopen, maar ook dat is te omzeilen. IPV hem open te maken kun je ook op de juiste plaats een gat in de behuizing boren/zagen en zo de weerstand bevestigen.

Kattenkwaad: tv-b-gone

Door _ferry_ op zondag 3 februari 2008 16:57 - Reacties (19)
Categorie: Elektro en DIY, Views: 9.731

WTF is een tv-b-gone zou je denken?
Nou, dat is een klein aparaatje op sleutelhanger formaat waarmee je TV's kunt uitzetten. Maakt niet uit wat voor type of merk, bijna elke TV gaat uit. Leuk voor op beurzen, en daarom heb ik er ook 1 besteld, omdat ik naar de CeBIT ga.
Een tijdje terug had iemand dat ook al geflikt op de CES:


En laatst was ik ermee ook even langs de muur met tv's van de makro gelopen O-)

Maargoed, er zit 1 IR led in, zoals bij alle afstandsbedieningen, dus je moet wel in de buurt zijn van de TV. Nu is dat dus niet het geval als je buiten loopt en de tv van je buren binnen achter het raam staat. Dus daar heb ik dit voor gemaakt:
tv-b-gone
http://tweakers.net/ext/f/DYWNYyp7uRpZPqODEPln7oKo/thumb.jpghttp://tweakers.net/ext/f/eax71JKY0NqXY2mbrX4SGlsk/thumb.jpghttp://tweakers.net/ext/f/2LWKYWW5JzDK4OrBhjdCfO8u/thumb.jpg
http://tweakers.net/ext/f/PloltzFvw1v7x2KWgMxWg47t/thumb.jpg

In totaal 30 IR led's welke een flink gebundelde straal "afvuren" waardoor je veel meer bereik hebt. Om goed te kunnen mikken zit er ook nog een soort van vizier op, en een blauwe led om te kunnen focussen en te richten.

Hopelijk kan ik hem van de week eens goed testen >:)

3D led cube. Part 2

Door _ferry_ op zaterdag 26 januari 2008 21:51 - Reacties (5)
Categorie: Elektro en DIY, Views: 10.492

Tijd voor een update, de vraag is natuurlijk hoe je met 1 microcontroller 512led's kunt aansturen.

In feite is dat niet zo moeilijk: Een matrix, schuifregister, van alles is mogelijk.
In deze kubus worden beide mogelijkheden gebruikt.

Een matrix komt veel voor, onder andere toetsenborden, lcd schermen en div. andere apparaten maken er gebruik van. Stel je hebt uitgang 0 tm 9 en A tm Z Dan kun je makkelijk een matrix maken van 10x26 = 260 leds maken. Ditzelfde passen we in de kubus toe. Alleen hebben we niet zoveel uitgangen(0-9 en a tm/z dat we die 260 leds kunnen aansturen. Laat staan om er 512 aan te kunnen sturen.
Daar komen de schuifregisters dus van pas, die hebben 3 pinnen nodig om aangestuurd te worden, en dan maakt het niet eens uit hoeveel je er aansluit.
Enig nadeel is dat je de data er eerst in met "schuiven" waarna de leds pas aan kunnen, dit kost allemaal wat extra tijd. Hoe meer je er dus aansluit hoe langer het duurt voordat alle data er in zit, en hoe meer het beeld zal flikkeren. Hiermee moeten we wel rekening houden, maar een echt probleem is het niet. Het menselijk oog ziet een 50hz flikkering als een stilstaand beeld, dus als we de ledjes 50x per seconde aan zetten, zal de cube een mooi beeld geven. Uiteindelijk zal de frequentie zelfs nog hoger liggen, ik schat zo'n 150hz voor een nog beter en rustiger beeld.

Voor de duidelijkheid heb ik er maar een tekening van gemaakt. Zelf bouw ik dit soort dingen met slechts wat eenvoudige aantekeningen, maar dit is een how-to, dus zal ik toch wat tekeningen moeten maken hoe alles in elkaar steekt ;)

http://tweakers.net/ext/f/prhS09zN8WqndbbfWYJJ1ejY/full.png
Hier zien we een schematische weergave van hoe de led cube in elkaar steekt. De In feite maak je dus 8 vlakken van 8x8 led's die je daarna met de horizontale lagen (blauw in de tekening) aan elkaar maakt. Dit doe je later, en aan de achterzijde, zodat het niet opvalt. Hier later meer over, lees eerst maar eens wat de rest nu eigenlijk inhoud ;)

De 3 signalen van de microcontroller komen links onderaan binnen, oranje is de data lijn, welke serieel met de schuifregisters is verbonden. Die komt binnen op pin 14 van het 1e schuifregister, komt er weer uit op pin 9 en gaat dan naar pin 14 van het volgende schuifregister. En zo doen we dat 9x
De andere 2 lijnen zijn de clock en reset lijn. Deze kunnen elk parallel op de schuifregisters aangesloten worden.

Verder zien we onderaan de schuifregister voor de kolommen, daar zitten een aantal weerstanden achter om de stroom door de led's te begrenzen. In feite geld de regel R=U/I waarbij U de spanning- spanning van de led is, en I de stroom welke de led mag hebben. Maar dat weten jullie vast wel ;) Maar omdat de led's op een hoge frequentie gestuurd worden, en dus niet continu aanstaan mag je een hogere stroom er doorheen sturen. Zodat ze wat feller zijn. Maar dat maakt voor ons niets uit, met de normale weerstandsberekening zit je ook goed, de leds hoeven voor onze toepassing niet op volle sterkte te branden. Je zal dan op iets van 100 ohm uitkomen bij een voedingsspanning van 5V en blauwe of witte leds.

Aan de linkerkant zien we de schakeling die de lagen actief maakt. een schuifregister met 8 FET's deze hebben wat voordelen in vergelijking met transistors zoals het hogere rendement. Desondanks zou je ook transistors of een darlington array kunnen gebruiken.

Als je bovenstaande zou maken heb je in feite uitgang 0tm7 en A-H, wat je al 64 onafhankelijk aanstuurbare leds geeft. Het daadwerkelijke beeld wordt opgebouwd door eerst de bovensta laag actief te maken met het linker schuifregister en de leds aan te sturen voor die laag. Vervolgens herhaal je dat 8 keer voor elke laag, en dan heb je een eerste plaatje:
http://tweakers.net/ext/f/15cbd60792a7cfd3708e1fd37f49d4f5/full.jpg
Jaah, er moest hier nog een hoop gebeuren, als je goed kijkt zie je vaag een smiley er in, maar door wat slechte code in de microcontroller zijn ook de omliggende led's ook enigzins aangestuurd. Ik heb dat in het huidige ontwerp ook soms nog wel eens een beetje, op de onderste laag waaneer er een bepaalde combinatie van leds actief is, maar het is niet storend, omdat het slechts wat flauw opgloeien betreft.
Het probleem was met name te wijten aan de hoge frequentie, waardoor er meer data werd weggeschreven en pinnen hoog of laag werden gemaakt (met de bijbehorende vertragingen) IPV dat de led's echt aan stonden om een goed beeld te vormen. Kwestie van wat finetunen van de code en het circuit waarschijnlijk.