Star Wars quillon Neopixel ljussabel (2 / 5 steg)
Steg 2: Inspiration och härledning...
Så jag läsa upp på Adafruit blogg och kom över Gewfys gör av en mini 3D tryckta ljussabel . Så jag säger till mig själv, "det är inte en ljussabel, mate. Detta är en ljussabel..." Och jag har en påse-o-prydnadssaker, 5v och 3v och kära och jag är inte rädd för att använda dem.
Nåväl, dags att undersöka vidare och läsa på vad han hade att erbjuda. Jag velat alltid göra en ljussabel och med tekniken som finns idag, det gör det lätt att återskapa saker. Jag vet tillräckligt om elektronik vara farligt så detta projekt inte kan vara så svårt att ta itu med. Jag ville göra en full storlek en. Förutom, jag nae har en 3D-skrivare.
Han erbjuder koden för Attiny85 som han använde för att bygga sin Neopixel trollspö. Hmmm, tror jag jag ska kunna dra och använda den i den Adafruit prydnadssak som jag har. Jag har också några Neopixel remsor från min Halo Cortana LED halsduk. Jag har viss erfarenhet med lödning och arbeta med de Neopixel remsorna.
De gräver i den Attiny världen för första gången kommer att ha frustration som Stifttilldelningar betecknas alla annorlunda och varje kommer att behandlas annorlunda beroende på dess sammanhang används. Ser på sin kod, var detta nya, med en tryck knapp switch som ett avbrott. Efter programmering med avbrott (kommandon till tillträde microcontroller direkt i stället för kommandona i det programmera språket eller IDE) var mest hacker-liknande, kommandona är till synes kryptiska. Attiny85 är en liten 8-pin mikrokontroller som många använder trots sina begränsningar. Vad vi har är en fasad med sin Arduino typ miljö byggd över den standard Attiny85.
Jag satt upp min switch till prydnadssak på pin # 3 och vissa delar av Neopixel remsor kontrolleras på pin # 0. Jag hade trådbunden upp en lång remsa av Neopixels. Jag pusslas ihop två 30 ledde segmentet bitar genom kedjning ena till den andra. Jag behöll makten leder på båda segmenten separat så jag kunde injicera makt till längre band. Försök att använda en full 1 meter remsa av 60 Neopixels. Jag hade repurposed min remsor från halsduken. Du kan se skillnaden när det är i röret eftersom röran av ledningar utrymmen ut Neopixel remsorna. Jag sköt upp strandtest prov skiss att se till att alla lampor var bra.
Jag kopierade i Gewfys skiss att se om jag kunde få det att fungera.
Det finns några kod att använda en potentiometer för att styra ljusstyrka och en strömbrytare att cykla ljuseffekt lägen. Låt mig hålla det enkelt med bara en strömbrytare först. Dessutom hade jag en extra stor knopp potentiometer liggande som ska användas.
Programmerat prydnadssak med Arduino IDE. Ingenting. Hmmm, läste jag på alla diskussionsämnen för med avbrott på Attiny85 och prydnadssak. Jag var att bli avskräckt efter att ha läst att vissa säger PCINT0 som inte är samma som INT0 på pin PB2 eller 7 på Attiny85 men stift 0 på fasad är det enda som fungerar. Slå på prydnadssak Pin 3 kanske inte bra eftersom det används också för USB. Bästa att göra, lägga ner och gå till sova och få tillbaka till det på morgonen.
Så några försök på ändra avbryta samtalet, ändra avbrott masken och omlödning växla till en annan PIN-kod, fortfarande inte fungerar. Sedan läste jag med att använda switchar med Arduinos. Jag hade inte ett motstånd med växeln eftersom jag visste att du kunde aktivera ombord eller inre pullup i koden, tillgänglig på PB3. Jag hade växeln trådbunden upp till puls 5 volt +. Sedan hade jag vad kan ha varit en stroke av insikt. Jag gick igenom några diagram av ledningar setup för en switch. Programmet letar efter växeln att gå höga men internt utlösta som att gå lågt. ReWire till marken och saker började arbeta.
Och när växeln cykling genom lägen, jag började programmera några olika ljussekvenser.
Men nu, försöker jag att Linda mitt huvud runt hur man Dämpningstid växeln. Jag har försökt några prov snuttar men det verkar millis() inte kanske fungerar korrekt i prydnadssak genomförandet (bifoga avbrott och delayMicroseconds() kan behövas) eller jag kan ha att göra med timer register till programvara debounce. Som sett i demovideo, den punkt där avbrottet som registreras är inte synkroniserad med ljuseffekt efterbehandling och hoppar en eller två lägen till en annan programmerade ljus effekt. Det borde ha fylld med en färg, pulsera som enfärgade, och sedan komprimera enfärgade och stäng av.
När jag får det funktionsduglig, kanske jag kommer att införliva en eller mer slå sensorer längs röret. Det utlöser sedan en vit blixt av ljus. Du kan filma en ljussabel duell utan att behöva rotoscope det.
Så är min kod ett hopkok av saker och förändringar för felsökning av att jag inte är säker vad till attribut längre. Om någon har frågor om vad jag gjorde i min kod kommer jag glady svara på frågor. Någon borde sätta upp en kompatibel på vad ska titta efter när du postar upp block av kod.