Innehållsförteckning:

SpookyEyes Skull: 8 steg
SpookyEyes Skull: 8 steg

Video: SpookyEyes Skull: 8 steg

Video: SpookyEyes Skull: 8 steg
Video: HOW TO DRAW A HALLOWEEN PUMPKIN 2024, November
Anonim
SpookyEyes Skull
SpookyEyes Skull

Här är en enkel ändring som jag gjorde på en Halloween -skalle i plast. Jag borrade ögonkontakten och lade till ett par röda lysdioder. Lysdioderna är anslutna till en mikrokontroller för specialeffekter (blek in/ut, blink, sånt). Det finns några ytterligare funktioner i denna design:

  • Batteridriven
  • Optimerad för lång livslängd (jag räknar med 200 timmar eller mer på en uppsättning med 3 alkaliska AA -batterier.

    • Tänds i skymningen.
    • Kör i N timmar (kan ställas in av programmeraren) och stängs sedan av.
    • Stannar av under dagen.
  • Använder ett ATtiny84 -mikrokontrollerchip.

Om du är en Arduino -entusiast och allt du någonsin har arbetat med är de marker som kommer förinstallerade på ett Arduino -kort, så kan det här vara ett bra projekt för dig att utöka dina horisonter lite. Det finns ett så brett utbud av ATmega -chips i olika storlekar som håller sig låsta till de 2 eller 3 enheter som tillhandahålls av de vanliga Arduino -erbjudandena är ganska begränsande. För det första skulle det här projektet göras mycket annorlunda om jag var tvungen att använda Uno Rev. 3. Den här tavlan i sig är $ 22; Jag får jobbet gjort här för endast $ 1,50! Dessutom, eftersom det är mycket långsammare (även om det är tillräckligt snabbt för att tända lysdioder), använder det mindre ström. Det betyder att den är bättre lämpad för ett batteridrivet projekt.

Steg 1: Mål

Mål
Mål

Här är de:

  1. Skapa skrämmande röda ögon i ögonhålorna på en annars tramsig billig Halloween -skalle i plast.
  2. För att driva den med batterier.
  3. Att få det att fungera i ca 2 veckor eller så säger batterierna.
  4. Att ha ett utgångsdatum. Jag bor i ett område där häftiga saker som ligger utanför har en tendens att gå bort. (Skrämmande rätt? Jag menar, en Halloween -skalle plötsligt reser sig och går därifrån. Jag har aldrig sett det, men jag vet att det händer och tanken fyller mig med rädsla.) Därför:

    • Jag vill inte att någon knucklehead ska njuta av frukterna av mitt arbete. Om de får min skalle blir det snart värdelöst för dem! MWAH-hah-hah-HAH-HAH-HAH-HAAAHHHH !!!
    • Denna skalle kommer bara att lysa upp i X antal dagar innan den ger upp spöket, så att säga.
  5. Minimala delar (se punkt nummer 2 ovan).
  6. För att få kunskap om andra AVR -mikrokontroller, förutom ATmega328p i Arduino Uno och andra.
  7. För att lära dig hur du använder USBASP -enheten. Se https://www.fischl.de/usbasp/. Som Thomas säger, "USBasp är en USB-kretsprogrammerare för Atmel AVR-styrenheter … Programmeraren använder en USB-drivrutin endast för firmware, ingen speciell USB-kontroller behövs."

Som du kanske vet kommer Arduino Uno, Leonardo och andra AVR-baserade kort med en massa extra komponenter, till exempel ett FT232RL USB-till-seriellt chip, en effektregulator, en kristalloscillator, olika kontakter och lampor, rubriker för kabeldragning etc. Och efter att chipet är programmerat över USB -gränssnittet är den extra IC: n bara en strömavtappning. Dessutom, om du levererar ström från batterier, är spänningsregulatorn i bästa fall värdelös och i värsta fall mer avlopp på din strömförsörjning. Om du bara vill styra ett par lysdioder är i stort sett allt förutom processorn överflödigt under större delen av ditt projekts liv.

Dessutom kommer de flesta om inte alla AVR-chips med en inbyggd klockoscillator. Det är inte lika snabbt eller lika exakt som kristallen, men vad spelar det för roll för ett enkelt användningsfall?

Genom att använda en processor från den lämpligt namngivna "ATtiny" -linjen får du en otroligt duktig liten processor som drar lite ström, ger alla utgångar du behöver, har mer än tillräckligt med hastighet, är riktigt billig och håller din andel låg, att starta.

Avvägningen är att du måste ta med din egen programmeringsenhet. Lyckligtvis finns det en där ute som heter "USBASP". Tänk på det som Arduinos inbyggda USB-till-seriella chip men separat och avtagbart. Du kan använda den för alla dina projekt. Ännu bättre, det eliminerar behovet av en bootloader. Du får tillbaka minnet om du behöver det.

Och var inte rädd- USBASP är verkligen lätt att använda. Många pionjärer innan du har använt den, så den är ganska bekant och väl stödd för uppgiften. I den här självstudien kommer vi att använda den och som ett enkelt projekt för att få fötterna blöta i ATtiny -processors värld kan det vara en bra tid för dig att bekanta dig.

8. Slutmål: Jag hoppas att du kommer att gilla denna instruerbara!

Steg 2: Ingredienser

Ingredienser
Ingredienser
Ingredienser
Ingredienser
Ingredienser
Ingredienser
  • 3x AA -batterier (Walgreens)
  • Batterihållare för 3 AA -batterier (eBay)
  • 9V batteriklämma (eBay)
  • Brödbräda för testning (eBay)
  • PC -kort (lödbart brödbräda)
  • 0,1 tum (0,254 mm) kvinnliga rubriker (för din ATtiny84a. Om du är säker kan du bara löda ATtiny till PC -kortet). (EBay)
  • 2x 5 mm röda lysdioder (eBay)
  • 100 uF elektrolytkondensator (eBay)
  • 0,1 uF keramisk kondensator (eBay)
  • 2,2 megohm motstånd (eBay)
  • ljuskänsligt motstånd (eBay)
  • 2x 82 ohm motstånd (eBay)
  • ATtiny84a mikrokontrollerchip (eBay)
  • 24 gauge solid hookup wire (eBay)
  • lödkolv (Amazon eller Radio Shack)
  • löd (Amazon eller Radio Shack. Blyfritt är bäst.)
  • lim
  • Halloween -skalle i plast, inte för liten, ihålig (Walmart, Dollar Store, etc.)
  • usbasp programmerare (eBay)

Tips och tricks för att köpa elektronik för dem i USA:

För någon av dina grunder (motstånd, transistorer, kondensatorer, lysdioder, etc.), gå till eBay. Dina elektronikprojekt tar i allmänhet standardstorlekar (som är fallet här); det här är en bra tid att fylla på. Sök runt och hitta förpackningar med 20, 40, 100 bitar i. Köp de; du kan i allmänhet hitta dem för under 10 dollar och gratis frakt. Detta är mycket billigare än Mouser/Digi-Key/Newark. Där får du rimliga priser på delarna, men då får du 9 dollar för frakt; de låga priserna avdunstar bråttom! Du kan säkert hitta de specialiserade delarna och utbudet är stort i specialaffärerna, men du skadas av den frakten. Å andra sidan hittade jag ett paket med 5 ATtiny84a för 7,50 dollar på eBay, med gratis frakt. 5 MCU för mindre än priset på frakt 1 från Mouser! Yowser! Och eBay har alla olika komponentpaket du kan behöva, och du vet att om du behöver ett motstånd behöver du ett dussin!

Steg 3: USBasp

USBasp
USBasp
USBasp
USBasp

Innan vi börjar, låt oss prata lite om USBasp. De är lätta att hitta på eBay, så köp en. Oroa dig inte, jag väntar …

Du har det? Bra! Köpte du den från Kina? Inte konstigt att det tog så lång tid.:-) Ok, ja det var billigare på det sättet är jag säker på. Fri frakt också.

Om du är en Linuxälskare som jag fungerar USBasp out-of-the-box. För Windows 10 är det lite mer komplicerat. Så låt oss gå igenom det:

USBasp -webbplatsen på https://www.fischl.de/usbasp/ pekar oss på installationsverktyget "Zadig" på

  • Ladda ner det. Jag laddade ner version 2.4.
  • Windows 10 kommer att fråga dig om du vill att den ska göra ändringar på din enhet. Ja. Ja det gör du.
  • Bestäm om du vill att Zadig ska söka efter programuppdateringar. Jag sa ja.
  • Nu följde jag instruktionerna från https://rayshobby.net/dead-simple-driver-installa…. Det är,
  • Anslut USBasp -enheten. Förmodligen kommer du att se en röd LED lysa på den.
  • I Zadig, i rutan till höger om den stora gröna pilen, klicka på de små upp- eller nedpilarna tills du ser libusbK (v3.0.7.0). Detta är för Windows 10.
  • Klicka på den stora knappen Installera drivrutin.
  • Vänta. På några sekunder ser du "Drivrutinen installerades framgångsrikt". dialog ruta. Stäng det.

Din USBasp -enhet är nu klar!

Steg 4: Arduino -stöd för ATtiny

Arduino -stöd för ATtiny
Arduino -stöd för ATtiny
Arduino -stöd för ATtiny
Arduino -stöd för ATtiny

Arduino IDE stöder inte ATtiny -serien chips ut ur lådan. Du måste lägga till den i IDE med hjälp av styrelsehanteraren. Se

Förutsatt att du redan har laddat ner Arduino -programvaran, återskapar jag stegen från webbadressen ovan. Helt enkelt

  • Öppna Arduino -programvaran (jag använder 1.8.7 i skrivande stund).
  • Öppna menyn: Arkiv -> Inställningar. Hitta rutan "Ytterligare Boards Manager -webbadresser" längst ner.
  • Kopiera och klistra in följande:

raw.githubusercontent.com/damellis/attiny/…

  • Det är
  • Klicka på OK
  • Öppna menyn: Verktyg -> Board: "" -> Boards Manager (högst upp i listan)
  • Bläddra till botten. Du bör hitta "attiny av David A. Mellis".
  • Klicka på knappen Installera.
  • Bläddra till botten av listan. Du bör se "INSTALLERAD" nu.
  • Öppna menyn: Verktyg -> Styrelse: ""
  • Du bör se ATtiny längst ner i listan. Klicka på "ATtiny24/44/84".
  • Öppna menyn: Verktyg -> Processor: "". Välj ATtiny84.
  • Under Verktyg -menyn ska du se en klockpost. Standard är bra. Så här skickar ATtiny -processorerna med en 1 MHz intern klocka.
  • Välj Port under Verktyg -menyn. Du vill ha "COM1".

Steg 5: Testa, testa: Breadboard din krets

Testa, testa: Breadboard din krets
Testa, testa: Breadboard din krets
Testa, testa: Breadboard din krets
Testa, testa: Breadboard din krets

Om du inte är bekant med brödbrädor … ja, skaffa en. Detta är det enda sättet att testa dina kretsar och se till att de gör vad du vill. Jag rekommenderar det även om du bygger en känd krets som denna, som har testats och fungerar. Du gör dig bekant med hur saker och ting ordnas så att om och när något inte fungerar som det ska, har du lättare att felsöka.

Bifogad är en möjlig layout för brödbräda och en schematisk bild av denna lilla krets också. Koppla din krets enligt bilden.

När du sätter i lysdioderna och den elektrolytiska kondensatorn, kom ihåg att riktningen räknas: du måste lägga den negativa sidan mot batteriets negativa och den positiva sidan mot den mer positiva sidan av saker. När det gäller lysdioderna tänds de när ATTiny84as stift blir positivt (eller "HÖG"). Så den positiva sidan av lysdioderna bör anslutas till rätt stift på ATTiny84a.

Det finns många webbplatser som diskuterar LED -polaritet; en sådan handledning finns här: https://learn.sparkfun.com/tutorials/polarity/diod…. I slutändan är det bästa sättet jag har hittat att testa polaritet att ansluta ett 120 ohm motstånd till batteriets negativa, anslut en stift av en lysdiod till den andra änden av motståndet och anslut sedan den andra änden av lysdioden till batteriets positiva (även känd som VCC). Om lysdioden lyser vet du vilken stift som är vilken.

För 100 mikrofaradkondensatorn är detta en elektrolytisk kondensator. I grund och botten betyder det att dess orientering också är viktig. Den negativa stiftet ska märkas. Genom elimineringsprocess kan du räkna ut vilken som är den positiva stiftet:-). Anslut den korrekt.

Motstånd, fotocellen och den lilla cirkulära keramiska kondensatorn har inte polaritet. Anslut dem åt vilket håll du vill. Se till att du ansluter den lilla keramiska kondensatorn mycket nära VCC- och GND -stiften på ATTiny84a. Dess uppgift är att jämna ut alla snabba kraftpikar från ATtiny mikrokontroller. Den fylls med en liten laddning från strömkällan (batterier), som är tillgänglig mycket snabbt om mikrokontrollern skulle behöva det på mikrosekundtid. Det förhindrar att matningsspänningen till chipet sjunker för lågt på grund av övergående snabba strömdragningar.

Den 100 mikrofarade elektrolytkondensatorn gör samma sak, men med större intervall. På grund av det faktum att det är en lindning av tunna metallplåtar, innehåller det en del inre motstånd och därför är laddningen inte lika lätt tillgänglig. Det kan vara snabbt, det är sant, men inte med den hastighet som tillhandahålls av den keramiska skivkondensatorn.

Båda kondensatorerna reagerar snabbare på övergående strömström än batterierna, varför de ingår. Det har varit så att mina kretsar har betett sig konstigt om de saknas. Det kan vara väldigt mystiskt, så de är viktiga.

Uppdatering

Visas inte här, men nödvändigt är ett 10K ohm motstånd från stift 4 till Vcc. Det skulle vara bra att installera en. Det gjorde jag dock inte och kretsen fungerade bra. Men utan det riskerar du att återställa ditt chip.

Steg 6: Ladda skissen

Ladda skissen
Ladda skissen

Nu är det dags att ladda skissen. Låt oss göra de blinkande lamporna!

Du hittar källkoden för skissen på

  • Ta tag i det och ladda det i Arduino -programvaran.
  • OBS: Det finns ett avsnitt i koden som ser ut så här:

// --- DEBUG DEBUG DEBUG DEBUG D-vvvv-UG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG // --- DEBUG DEBUG DEBUG DEBUG DBUG DEBU DEBU DEBU DEBU DEBU DEBU DEBU DEBU DEBU DEBU / --- DEBUG DEBUG DEBUG DEBUG D-vvvv-UG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG // --- DEBUG DEBUG DEBUG DEBUG D-vvvv-UG DEBUG DEBU DEBU DEBU DEBU DEBU DEBU DEBU

Jag rekommenderar att du ändrar

#undef DEBUG

till

#define DEBUG

eftersom loop -tiderna förkortas kraftigt. Du bör ändra det och ladda upp det igen när du är redo att visa SpookyEyes på riktigt.

  • Fortsätt och gör det nu. Resten av denna sida förutsätter att du har gjort det.
  • Se till att du har följt stegen under steg 4: Arduino -stöd för ATtiny
  • Anslut nu usbaspens Arduino -sida till ditt kort. Du vill ansluta den enligt följande:

    • GND till ditt batteri negativt
    • MOSI till pin 7 i ATtiny
    • MISO till pin 0 i ATtiny
    • SCK till stift 9 i ATtiny
    • RST till pin 4 i ATtiny
  • Anslut den andra änden av USBasp till datorns USB -port
  • Anslut batteriet eller en annan 5V strömkälla till din krets.
  • Ladda upp skissen med Arduino IDE (Sketch-> Upload). Lysdioderna blinkar eftersom några av stiften som används för kretsen också används för USBasp.

Hur skissen fungerar

Se till att du är i ett något ljust rum, eller rikta ljuset från en ficklampa till det lilla ljuskänsliga motståndet. Slå på kretsen och observera ögats lysdioder. Detta är "dagsljus" -läge. Nu när skissen körs bör du se följande. Observera att områdena i koden som beskrivs här är markerade med "BooKmarks", inte radnummer, så du kan följa med. Dessa har formen: #BK.descriptive_string ("Pound B K Period" sedan någon form av beskrivande sträng). Till exempel heter det första bokmärket "#BK. Hello" och kan hittas i koden där lysdioderna tänds en sekund och sedan tomma för en sekund:

  • Båda lysdioderna tänds en sekund och sedan tomma för en sekund. #BK. Hej
  • Båda blinkar långsamt 3 gånger. Detta indikerar att ATtiny är inställt på 1 MHz hastighet. #BK.check_time * Se NOT A nedan.
  • Pausa en sekund.
  • De blinkar sedan snabbt två gånger.
  • Pausa en sekund.
  • Nu är du i slingan () #BK.loop. Kom ihåg att en timme bara är 10 sekunder nu.

"Spärren" är avstängd. Och en HOUR_millis (== 1 timme, i vanligt läge) har ännu inte gått. Så vi hoppar förbi allt tills vi kommer till #BK.indicate_duration. Än så länge är vi i nolltid, så vi blinkar 0 gånger.

  • Detta fortsätter tills vi når HOUR_millis sekunder (10 sekunder, i DEBUG -läge).
  • Blinka sedan snabbt tre gånger. #BK.time_management
  • Lägg till ytterligare en "timme" genom att öka variabeln latch_time_off
  • Hoppa sedan hela vägen ner till #BK.indicate_duration. Där blinkar vi antalet "timmar" vi har kört. Detta nummer lagras i EEPROM, så det är tillgängligt även om strömmen tas bort från chipet.

    • Vår första timme i ljuset är klar. Så vi blinkar en gång, kort.
    • Pausa sedan 2 sekunder.
  • Tillbaka till loop ():

    • Varje iteration genom slingan nu kontrollerar vi om HOURS_milli -tiden har gått. För de första flera iterationerna (i DEBUG) har det inte gjort det. Så vi blinkar inte 3 gånger.
    • Vi hoppar ner till #BK.indicate_duration, och vi blinkar snabbt ett antal timmar som vi har varit i ljuset, vilket igen lagras på EEPROM -plats 0.
    • Detta fortsätter länge.
    • Observera att när siffran i EEPROM -plats 0 är tillräckligt stor blir slingan helt enkelt:

      • Flasha 3 gånger i rimlig takt,
      • Blinka snabbt antalet HOURS_millis som vi har varit i ljuset,
      • Vänta 2 sekunder,
      • upprepa.

Lägg nu fingret ovanpå det ljuskänsliga motståndet. Eller bara släcka lamporna. Slingan blir nu:

  • Vår latch_time_off har varit över en timme och det är mörkt, så vid #BK.check_the_light, upptäcker vi att det verkligen är mörkt.
  • Vi slår på spärren. Detta startar de läskiga grejerna varje loop. Se HÄR ÄR DET SPOOKY STUFF. Koden ska vara ganska beskrivande.
  • När spärren har varit tillräckligt länge stänger vi av den. Se #BK.turn_spookiness_off.
  • Nu går vi tillbaka till #BK.time_management enligt "blinka snabbt tre gånger" ovan.

Spring på riktigt

Glöm inte att ändra skissen till #undef DEBUG.

OBSERVERA A

* OBS A: Kod ingår för att ställa in den till 8 MHz. Se CLKPR = 0x00; kommenterade kod. Om du vill göra detta (och det finns ingen anledning att göra det för den här kretsen), se till att du ändrar Arduino IDE i menyalternativet Verktyg-> Klocka.

Steg 7: Från brödbräda till lödkrets

Från brödbräda till lödkrets
Från brödbräda till lödkrets
Från brödbräda till lödkrets
Från brödbräda till lödkrets
Från brödbräda till lödkrets
Från brödbräda till lödkrets

Nu är det dags att göra kretsproduktionen! Skaffa lite lödbar perfboard; Jag gillar Radio Shack Catalog #: 2760159, sett här: https://www.radioshack.com/collections/prototyping…. Det finns gott om hål för att överföra dina PC -kortkomponenter till perfboard.

Glöm inte att inkludera små uttag för att sätta i USBasp -kablarna (för programmering)! Du behöver 5 av dem.

Förbered skallen

Orientera din skalle om hur den kommer att sitta på marken. Du måste borra ett hål för fotoresistorn så att den faktiskt blir ljus:-). … Viktigt steg! Skär också upp botten av skallen med ditt favoritskärverktyg så att det blir plats för kretskortet och batterierna. Klipp den bara på 3 sidor för att skapa en dörr.

Borra hålet till att fotoresistorn passar en press. Uppenbarligen kan du testa storleken från utsidan av skallen för att få det rätt. Börja alltid smått med dina övningar och borra inte för snabbt för att inte skapa mycket blixt runt hålet som du behöver raka av med en kniv.

Borra hål i ögonen för lysdioderna. Storleksanpassa dem så att lysdioderna passar en press. Jag satte in mina lysdioder inifrån, och eftersom det inte fanns mycket utrymme att arbeta inuti droppade jag bara lite smältlim på baksidan av lysdioderna som en liten extra försäkring för att hålla dem.

Jag var också noga med att mantla en av ledningarna till varje lysdiod i värmekrympbara slangar.

Sätt i kretsen

Eftersom skallen bara sitter där var jag inte särskilt noga med att montera kretskortet. Jag såg till att batteriet gick på botten och det skulle inte bli några kortslutningar. När jag hade anslutit, satt in och drivit stängde jag ipt upp och la en klick smältlim på bottenfliken.

Se till att du gör ledningarna till lysdioderna och fotoresistorn långa för att kunna dra ut kretskortet för omprogrammering.

Steg 8: Spoooooky Eyes !!!! Oooooooo !!!

Spoooooky Eyes !!!! Oooooooo !!!!
Spoooooky Eyes !!!! Oooooooo !!!!

Ok, nu är det så. Dina Spooky Eyes tänds i skymningen, visas för trick-or-treaters i 4 timmar och stängs sedan av för att bevara batterierna. Den stannar kvar till nästa kväll. Det kommer att göra detta i TOTAL_RUN_HOURS timmar, så förbered det värdet i skissen noggrant. Eftersom jag har en 4 timmars standard MAX_RUNTIME betyder 40 timmar för TOTAL_RUN_HOURS att den kommer att köras i 10 dagar.

Om någon bestämmer sig för att det är för läckert för dig att ta det och tar hem det, kommer SpookyEyes att slutföra sin löpning och sedan bli tyst och för alltid förfölja deras själar. Det räcker med att säga, tjuvar gör det bra om du undviker att ta din SpookyEyes -skalle!

Lägg bort dina SpookyEyes för säsongen. Nästa år, ladda upp skissen igen och SpookyEyes kommer till liv! Hur läskigt är det? Ooooooo !!!!

Förbättringar

Jag borde nog ha fått ATtiny att sova under dagen. Strömmen drar mycket lite ström.

Jag borde ha satt ett 10K ohm motstånd på stift 4. Detta hindrar kretsen från att mystiskt återställa. Jag hade dock inga problem. Men det bör göras för att vara korrekt.

Batteridriven

Jag älskar ATtiny84. Det är ett bra litet chip för en lågdriven krets. Visst, det har inte Serial.print () -funktionerna för Arduino ATmega328p och dess liknande, men du kan låta lamporna blinka på vissa sätt för att berätta vad som händer i din krets för felsökning. Det är inte svårt att arbeta med.

Jag hoppas att du fann detta instruerbart … instruerbart!

Rekommenderad: