Stap 2: Inspiratie en afleiding...
Dus ik was van lezing omhoog op de blog van Adafruit en Gewfy het maken van een mini 3D gedrukte lightsaber kwam. Dus ik bij mezelf zegt, "dat is niet een lightsaber, stuurman. Dit is een lightsaber..." En ik heb een zak-o-snuisterijen, 5v en 3v enen en ik ben niet bang om ze te gebruiken.
Nou, tijd om verder te onderzoeken en te lezen over wat hij te bieden had. Ik wilde altijd een lightsaber en met de technologie die beschikbaar is vandaag, het maakt het gemakkelijk om dingen opnieuw. Ik weet genoeg over elektronica worden gevaarlijk, zodat dit project mogelijk niet te hard aan te pakken. Ik wilde een volledige grootte een. Trouwens, ik nae hebben een 3D-printer.
Hij biedt de code voor de Attiny85 die hij gebruikte om zijn toverstokje Neopixel bouwen. Hmmm, ik denk dat ik zou moeten kunnen gebruiken in de Adafruit Trinket die ik heb te trekken die. Ik heb ook sommige Neopixel strips uit mijn Halo Cortana LED sjaal. Ik heb enige ervaring met solderen en werken met de Neopixel strips.
Die graven in de Attiny-wereld voor de eerste keer zal hebben frustratie die de pinouts worden allemaal aangeduid als anders en elk verschillend afhankelijk van de context in gebruik zal worden aangepakt. In zijn code bekijkt, was dit nieuwe, met een druk op de knop knop als een interrupt. Was de meest hacker-achtige, de opdrachten zijn schijnbaar cryptisch sinds programmeren met behulp van interrupts (opdrachten voor toegang tot de microcontroller rechtstreeks in tegenstelling tot de opdrachten in de programmeertaal of IDE). De Attiny85 is een kleine 8-pins microcontroller die veel ondanks zijn beperkingen gebruiken. Wat wij hebben is een Trinket met het Arduino type omgeving gebouwd boven de standaard Attiny85.
Mij troep opwaarts mijn overstap naar de Trinket op pin # 3 en sommige soorten Neopixel strips gecontroleerd op pin # 0. Ik had een lange strook van Neopixels bekabeld. Ik samen twee 30 gereconstrueerd segment stukken O.L.V. chaining ene naar de andere. Ik dus ik kon macht aan de verder strook injecteren de macht leidt op beide segmenten gescheiden gehouden. Probeer te gebruiken van een volledige 1 meter strip van 60 Neopixels. Ik had mijn strips van de sjaal voorzien. Wanneer er in de buis, omdat de puinhoop van bedrading ruimtes uit de Neopixel strips zijn, kunt u de kloof zien. Ik schoot strandtest monster schets om ervoor te zorgen dat alle de LEDs waren goed.
Ik heb gekopieerd in Gewfy de sketch om te zien of ik kon het werkend krijgen.
Er is wat code met behulp van een potentiometer controle van de helderheid en een schakelaar aan de lichteffect modi cyclus. Ik houd het simpel met alleen een switch eerst. Trouwens, ik heb niet een vrije grote knop potentiometer rondslingeren moet worden gebruikt.
Geprogrammeerd de Trinket met de Arduino IDE. Niets. Hmmm, lees ik meer over alle de onderwerpen van de bespreking voor het gebruik van interrupts op de Attiny85 en de Trinket. Ik was na lezing dat sommigen zeggen PCINT0 dat niet hetzelfde als INT0 op pin PB2 is krijgen ontmoedigd of 7 op de Attiny85, maar pin 0 op de Trinket is het enige dat werkt. Schakelaar op Trinket Pin 3 mogelijk niet goed omdat het ook voor USB gebruikt wordt. Beste ding om te doen, zet het neer en gaan slapen en weer terug naar het in de ochtend.
Dus een paar probeert bij het veranderen van de interrupt-oproep, wijzigen de interrupt-masker en resoldering de overstap naar een andere pin, nog steeds niet werkt. Dan las ik omhoog met het gebruik van switches met Arduinos. Ik heb niet een weerstand met de schakeloptie omdat ik wist dat je kon het activeren van de onboard of interne pullup in de code, beschikbaar op PB3. Ik had de schakelaar tot bekabelde pulse de 5 volt +. Dan had ik wat had kunnen zijn een slag van inzicht. Ik ging door enkele diagrammen van de bedrading setup voor een switch. Het programma was op zoek naar de switch te gaan hoog maar intern geactiveerde als laag gaat. ReWire aan de grond en dingen begon te werken.
En zodra de schakeloptie was fietsen door modi, begon ik te programmeren van sommige verschillende lichte sequenties.
Maar nu, ben ik proberen om mijn hoofd wikkelen rond het debounce van de schakelaar. Ik heb geprobeerd enkele fragmenten van de steekproef, maar het lijkt millis() kan niet correct werken in de uitvoering van de Trinket (interrupt hechten en delayMicroseconds() kan het nodig zijn) of ik kan te maken hebben met timer registers te software ontdendering. Zoals gezien in de video van de manifestatie, het punt waarop de interrupt is wordt aangevoeld is niet synchroon met het lichteffect afwerking en een of twee modi zal overslaan naar een verschillende geprogrammeerde lichteffect. Het moet gevuld met een effen kleur, pulseren die effen kleur, en vervolgens de effen kleur samen te vouwen en uit te schakelen.
Zodra ik dat het werken te krijgen, misschien zal ik het nemen van een of meer knock sensoren langs de buis. Het zal dan een witte lichtflits teweegbrengen. U kunt een lightsaber duel film zonder te rotoscope het.
Dus, mijn code is dergelijke een allegaartje van spullen en veranderingen voor het oplossen van dat ik niet zeker wat met kenmerk meer ben. Als iedereen vragen heeft over wat ik heb gedaan in mijn code zal ik glady antwoord vragen. Iemand moet een ible over wat te zoeken bij het boeken van blokken code opgemaakt.