Indholdsfortegnelse:

SpookyEyes Skull: 8 trin
SpookyEyes Skull: 8 trin

Video: SpookyEyes Skull: 8 trin

Video: SpookyEyes Skull: 8 trin
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, November
Anonim
SpookyEyes Skull
SpookyEyes Skull

Her er en simpel ændring, jeg lavede på et plastik Halloween -kranium. Jeg borede øjenhulerne og tilføjede et par røde lysdioder. Lysdioderne er tilsluttet en mikrokontroller for specielle effekter (fade in/out, blink, den slags). Der er nogle ekstra funktioner i dette design:

  • Batteridrevet
  • Optimeret til lang levetid (jeg regner 200 timer eller mere med et sæt 3 alkaliske AA -batterier.

    • Tænder i skumringen.
    • Kører i N timer (kan indstilles af programmøren) og slukker derefter.
    • Afholder sig i løbet af dagen.
  • Bruger en ATtiny84 -microcontroller -chip.

Hvis du er en Arduino -entusiast, og alt du nogensinde har arbejdet med er de chips, der kommer forudinstalleret på et Arduino -bord, så kan dette være et godt projekt for dig at udvide din horisont lidt. Der er en så bred vifte af ATmega -chips i forskellige størrelser, der forbliver låst til de 2 eller 3 enheder, der leveres af de sædvanlige Arduino -tilbud, er ret begrænsende. For det første ville dette projekt blive udført meget anderledes, hvis jeg skulle bruge Uno Rev. 3. Dette bord er i sig selv $ 22; Jeg får jobbet udført her for kun $ 1,50! Plus, da det er meget langsommere (selvom det er hurtigt nok til at tænde lysdioder), bruger det mindre strøm. Det betyder, at det er bedre egnet til et batteridrevet projekt.

Trin 1: Mål

Mål
Mål

Her er de:

  1. Opret uhyggelige røde øjne i øjenhulerne på en ellers humdrum billig Halloween -kranium i plast.
  2. For at drive den med batterier.
  3. For at få det til at køre i godt 2 uger eller deromkring sagde batterierne.
  4. At have en udløbsdato. Jeg bor i et område, hvor seje ting, der er udeladt foran, har en tendens til at gå væk. (Skræmmende ikke? Jeg mener, en Halloween -kranium pludselig rejser sig og går væk. Jeg har aldrig set det, men jeg ved, at det sker, og ideen fylder mig med frygt.) Derfor:

    • Jeg vil ikke have noget knokhoved til at nyde frugterne af mit arbejde. Hvis de får mit kranium, vil det snart blive ubrugeligt for dem! MWAH-hah-hah-HAH-HAH-HAH-HAAAHHHH !!!
    • Dette kranium vil kun lyse op i X antal dage, før det så at sige opgiver spøgelset.
  5. Minimale dele (se punkt nummer 2 ovenfor).
  6. For at få viden om andre AVR -mikrokontrollere, udover ATmega328p i Arduino Uno og andre.
  7. For at lære at bruge USBASP -enheden. Se https://www.fischl.de/usbasp/. Som Thomas siger, "USBasp er en USB-kredsløbsprogrammerer til Atmel AVR-controllere … Programmereren bruger en USB-driver, der kun er firmware, og der kræves ingen speciel USB-controller."

Som du måske ved, kommer Arduino Uno, Leonardo og andre AVR-baserede tavler med en masse ekstra komponenter, såsom en FT232RL USB-til-seriel chip, en strømregulator, en krystaloscillator, forskellige stik og lys, headers til ledninger osv. Og efter at chippen er programmeret over USB -interfacet, er den ekstra IC blot et strømafløb. Desuden, hvis du leverer strøm fra batterier, er spændingsregulatoren i bedste fald ubrugelig og i værste fald mere afløb på din forsyning. Hvis du kun vil styre et par lysdioder, er stort set alt udover processoren overflødigt i det meste af dit projekts liv.

Derudover leveres de fleste, hvis ikke alle AVR-chips, med en indbygget uroscillator. Det er ikke så hurtigt eller så præcist som krystallen, men hvad betyder det for en enkel brugssag?

Ved at bruge en processor fra den passende navngivne "ATtiny" -linje får du en fantastisk dygtig lille processor, der trækker lidt strøm, giver alle de output, du har brug for, har mere end nok hastighed, er virkelig billig og holder din del tæller lav, at starte.

Afvejningen er, at du skal medbringe din egen programmeringsenhed. Heldigvis er der en derude der hedder "USBASP". Tænk på det som Arduino's indbyggede USB-til-serielle chip, men separat og aftagelig. Du kan bruge den til alle dine projekter. Endnu bedre, det eliminerer behovet for en bootloader. Du får den hukommelse tilbage, hvis du har brug for den.

Og vær ikke bange- USBASP er virkelig let at bruge. Mange pionerer før du har brugt det, så det er ganske velkendt og godt understøttet til opgaven. I denne vejledning bruger vi det, og som et simpelt projekt til at gøre dine fødder våde i ATtiny -processorer kan dette være et godt tidspunkt for dig at blive fortrolig.

8. Endelige mål: Jeg håber, at du nyder denne Instructable!

Trin 2: Ingredienser

ingredienser
ingredienser
ingredienser
ingredienser
ingredienser
ingredienser
  • 3x AA batterier (Walgreens)
  • Batteriholder til 3 AA -batterier (eBay)
  • 9V batteriklemme (eBay)
  • Brødbræt til test (eBay)
  • PC -bord (lodbart brødbræt)
  • 0,1 "(0,254 mm) kvindelige overskrifter (til din ATtiny84a. Hvis du er sikker, skal du bare lodde ATtiny til pc -kortet). (EBay)
  • 2x 5 mm røde lysdioder (eBay)
  • 100 uF elektrolytkondensator (eBay)
  • 0,1 uF keramisk kondensator (eBay)
  • 2,2 megohm modstand (eBay)
  • lysfølsom modstand (eBay)
  • 2x 82 ohm modstande (eBay)
  • ATtiny84a mikrokontroller -chip (eBay)
  • 24 gauge solid tilslutningstråd (eBay)
  • loddejern (Amazon eller Radio Shack)
  • loddemetal (Amazon eller Radio Shack. Blyfri er bedst.)
  • lim
  • plastik Halloween -kranium, ikke for lille, hul (Walmart, Dollar Store osv.)
  • usbasp programmerer (eBay)

Tips og tricks til køb af elektronik til dem i USA:

Gå til eBay for alle dine grundlæggende (modstande, transistorer, kondensatorer, lysdioder osv.). Dine elektronikprojekter vil generelt tage standardstørrelser (som det er tilfældet her); dette er et godt tidspunkt at lagre på. Søg rundt og find pakker med 20, 40, 100 stykker i dem. Køb dem; du kan generelt finde dem for under 10 dollars og gratis forsendelse. Dette er meget billigere end Mouser/Digi-Key/Newark. Der får du rimelige priser på delene, men så giver de dig 9 dollars til forsendelse; de lave priser fordamper i en fart! Du kan helt sikkert finde de specialiserede dele, og udvalget er stort i specialbutikkerne, men du er såret over den forsendelse. På den anden side fandt jeg en pakke med 5 ATtiny84a til 7,50 $ på eBay, med gratis forsendelse. 5 MCU'er til mindre end prisen på forsendelse 1 fra Mouser! Yowser! Og eBay har alle de komponentvariantpakker, du kan få brug for, og du ved, at hvis du har brug for en modstand, skal du bruge et dusin!

Trin 3: USBasp

USBasp
USBasp
USBasp
USBasp

Inden vi begynder, lad os tale lidt om USBasp. De er lette at finde på eBay, så tag en. Bare rolig, jeg venter …

Du har det? Godt! Har du købt det fra Kina? Ikke underligt, at det tog så lang tid.:-) Ok, ja det var billigere på den måde er jeg sikker på. Gratis forsendelse også.

Hvis du er en Linux-fan som mig, fungerer USBasp out-of-the-box. For Windows 10 er det lidt mere kompliceret. Så lad os gå igennem det:

USBasp -webstedet på https://www.fischl.de/usbasp/ henviser os til installationsværktøjet "Zadig" på

  • Download den. Jeg downloadede version 2.4.
  • Windows 10 spørger dig, om du vil have den til at foretage ændringer på din enhed. Ja. Jo du gør.
  • Beslut, om du vil have Zadig til at søge efter programopdateringer. Jeg sagde ja.
  • Nu fulgte jeg instruktionerne fra https://rayshobby.net/dead-simple-driver-installa…. Det er,
  • Tilslut USBasp -enheden. Sandsynligvis vil du se en rød LED lyser på den.
  • I Zadig, i feltet lige til højre for den store grønne pil, skal du klikke på de små pil op eller ned, indtil du ser libusbK (v3.0.7.0). Dette er til Windows 10.
  • Klik på den store Install Driver -knap.
  • Vente. På få sekunder ser du "Driveren blev installeret korrekt." dialog boks. Luk det.

Din USBasp -enhed er nu klar!

Trin 4: Arduino -understøttelse af ATtiny

Arduino Support til ATtiny
Arduino Support til ATtiny
Arduino Support til ATtiny
Arduino Support til ATtiny

Arduino IDE understøtter ikke ATtiny -serien af chips ud af kassen. Du skal tilføje den til IDE ved hjælp af bestyrelsesadministratoren. Se

Forudsat at du allerede har downloadet Arduino -softwaren, genskaber jeg trinene fra URL'en ovenfor. ganske enkelt

  • Åbn Arduino -softwaren (jeg bruger 1.8.7 i skrivende stund).
  • Åbn menuen: Fil -> Indstillinger. Find feltet "Yderligere Boards Manager -webadresser" nær bunden.
  • Kopier og indsæt følgende:

raw.githubusercontent.com/damellis/attiny/…

  • Det er
  • Klik på OK
  • Åbn menuen: Værktøjer -> Board: "" -> Boards Manager (øverst på listen)
  • Rul til bunden. Du bør finde "attiny af David A. Mellis".
  • Klik på knappen Installer.
  • Rul til bunden af listen. Du skal se "INSTALLERET" nu.
  • Åbn menuen: Værktøjer -> Board: ""
  • Du skal se ATtiny nederst på listen. Klik på "ATtiny24/44/84".
  • Åbn menuen: Værktøjer -> Processor: "". Vælg ATtiny84.
  • Under menuen Værktøjer skal du se en urindgang. Standarden er fin. Sådan sendes ATtiny -processorer med et 1 MHz internt ur.
  • Vælg Port i menuen Værktøjer. Du vil have "COM1".

Trin 5: Test, test: Breadboard dit kredsløb

Test, test: Breadboard dit kredsløb
Test, test: Breadboard dit kredsløb
Test, test: Breadboard dit kredsløb
Test, test: Breadboard dit kredsløb

Hvis du ikke er bekendt med brødbrætter … ja, få en. Dette er den eneste måde at teste dine kredsløb og sikre, at de gør, hvad du vil. Jeg anbefaler det, selvom du bygger et kendt kredsløb som dette, som er testet og fungerer. Du gør dig bekendt med arrangementet, så hvis og når noget ikke fungerer korrekt, har du lettere ved fejlfinding.

Vedhæftet er et muligt brødbrætlayout og også en skematisk oversigt over dette lille kredsløb. Tilslut dit kredsløb som vist.

Når du indsætter lysdioderne og den elektrolytiske kondensator, skal du huske, at retningen tæller: du skal lægge den negative side mod batteriets negative og den positive side mod den mere positive side af tingene. I tilfælde af lysdioderne vil de være tændt, når ATTiny84as pin bliver positiv (eller "HIGH"). Så den positive side af lysdioderne skal slutte til den passende pin på ATTiny84a.

Der er mange websteder, der diskuterer LED -polaritet; en sådan tutorial kan findes her: https://learn.sparkfun.com/tutorials/polarity/diod…. I sidste ende er den bedste måde, jeg har fundet til at teste polaritet, at tilslutte en 120 ohm modstand til batteriets negative, tilslut en pin af en LED til den anden ende af den modstand, og slut derefter den anden ende af LED'en til batteriets positive (også kendt som VCC). Hvis LED'en lyser, ved du, hvilken pin der er.

For 100 microfarad kondensator er dette en elektrolytisk kondensator. Grundlæggende betyder det, at dets orientering også er vigtig. Den negative pin skal mærkes. Ved elimineringsproces kan du finde ud af, hvilken der er den positive pin:-). Tilslut det korrekt.

Modstande, fotocellen og den lille cirkulære keramiske kondensator har ikke polaritet. Tilslut dem i den retning, du ønsker. Sørg for at tilslutte den lille keramiske kondensator meget tæt på VCC- og GND -benene på ATTiny84a. Dens opgave er at udjævne eventuelle hurtige stigninger i strømtræk fra ATtiny -mikrokontrolleren. Den er fyldt med en lille opladning fra strømkilden (batterier), som er meget hurtig tilgængelig, hvis mikrokontrolleren skulle have brug for det i mikrosekundtid. Det forhindrer forsyningsspændingen til chippen i at falde for lavt på grund af forbigående hurtige strømtræk.

Den 100 mikrofarad elektrolytkondensator gør det samme, men med større intervaller. På grund af det faktum, at det er en vikling af tynde metalplader, indeholder den en vis intern modstand, og ladningen er derfor ikke lige tilgængelig. Det kan være hurtigt, det er sandt, men ikke med den hastighed, der leveres af den keramiske disk kondensator.

Begge kondensatorer reagerer hurtigere på forbigående strømstrøm end batterierne, og derfor er de inkluderet. Det har været sådan, at mine kredsløb har opført sig mærkeligt, hvis de mangler. Det kan være meget mystisk, så de er vigtige.

Opdatering

Ikke vist her, men nødvendigt, er en 10K ohm modstand fra pin 4 til Vcc. Det ville være godt at installere en. Det gjorde jeg dog ikke, og kredsløbet fungerede fint. Uden det risikerer du imidlertid falske nulstillinger til din chip.

Trin 6: Indlæs skitsen

Indlæs skitsen
Indlæs skitsen

Nu er det tid til at indlæse skitsen. Lad os lave de blinkenlights!

Du finder kildekoden til skitsen på

  • Tag det, og indlæs det i Arduino -softwaren.
  • BEMÆRK: Der er et afsnit i koden, der ser sådan ud:

// --- DEBUG DEBUG DEBUG DEBUG D-vvvv-UG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG // --- DEBUG DEBUG DEBUG DEBUG DEBG DEBU DEBU DEBU DEBU DEBU DEBU DEBU DEBUG DEBU DEBU / --- DEBUG DEBUG DEBUG DEBUG D-vvvv-UG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG // --- DEBUG DEBUG DEBUG DEBUG D-vvvv-UG DEBUG DEBUG DEBU DEG

Jeg anbefaler at ændre

#undef DEBUG

til

#define DEBUG

da loop -timingen er forkortet kraftigt. Du bør ændre det igen og uploade igen, når du er klar til at vise SpookyEyes for alvor.

  • Fortsæt og gør det nu. Resten af denne side går ud fra, at du har gjort det.
  • Sørg for, at du har fulgt trinene under trin 4: Arduino -understøttelse af ATtiny
  • Tilslut nu usbaspens Arduino -side til dit bord. Du vil forbinde det som følger:

    • GND til dit batteri negativt
    • MOSI til pin 7 i ATtiny
    • MISO til pin 0 i ATtiny
    • SCK til pin 9 i ATtiny
    • RST til pin 4 i ATtiny
  • Slut den anden ende af USBasp til din pc's USB -port
  • Tilslut batteriet eller en anden 5v strømkilde til dit kredsløb.
  • Upload skitsen ved hjælp af Arduino IDE (Skitse-> Upload). LED'erne blinker, da nogle af de ben, der bruges til kredsløbet, også bruges til USBasp.

Sådan fungerer skitsen

Sørg for, at du er i et noget lyst værelse, eller ret lyset fra en lommelygte til den lille lysfølsomme modstand. Tænd for kredsløbet, og observer øjets lysdioder. Dette er tilstanden "dagslys". Nu hvor skitsen kører, skal du se følgende. Bemærk, at de områder i koden, der er beskrevet her, er markeret med "BooKmarks", ikke linjenumre, så du kan følge med. Disse har formen: #BK.descriptive_string ("Pound B K Periode" derefter en slags beskrivende streng). For eksempel kaldes det første bogmærke "#BK. Hello" og kan findes i koden, hvor lysdioderne tændes i et sekund, derefter tomme i et sekund:

  • Begge LED'er lyser et sekund, derefter blanke i et sekund. #BK. Hej
  • De blinker begge langsomt 3 gange. Dette indikerer, at ATtiny er indstillet til 1MHz hastighed. #BK.check_time * Se BEMÆRK A nedenfor.
  • Pause et øjeblik.
  • De blinker derefter hurtigt to gange.
  • Pause et øjeblik.
  • Nu er du i løkken () #BK.loop. Husk, at en time nu kun er 10 sekunder.

"Låsen" er slukket. Og en HOUR_millis (== 1 time, i normal tilstand) er endnu ikke gået. Så vi springer forbi alt, indtil vi når til #BK.indicate_duration. Indtil videre er vi i nul'eth -timen, så vi blinker øjnene 0 gange.

  • Dette fortsætter, indtil vi når HOUR_millis sekunder (10 sekunder i DEBUG -tilstand).
  • Blink derefter hurtigt tre gange. #BK.time_management
  • Tilføj endnu en "time" ved at øge variablen latch_time_off
  • Hop derefter helt ned til #BK.indicate_duration. Der blinker vi antallet af "timer", vi har kørt. Dette nummer er gemt i EEPROM, så det er tilgængeligt, selvom der fjernes strøm fra chippen.

    • Vores første time i lyset er afsluttet. Så vi blinker én gang, kort.
    • Hold derefter pause i 2 sekunder.
  • Tilbage til loop ():

    • Hver iteration gennem løkken nu kontrollerer vi, om der er gået HOURS_milli -tid. For de første flere iterationer (i DEBUG) har det ikke været det. Så vi blinker ikke 3 gange.
    • Vi springer ned til #BK.indicate_duration, og vi blinker hurtigt en optælling af det antal timer, vi har været i lyset, som igen er gemt på EEPROM -placering 0.
    • Dette fortsætter i lang tid.
    • Bemærk, at når tallet i EEPROM -placering 0 er stort nok, bliver sløjfen simpelthen:

      • Flash 3 gange i et rimeligt tempo,
      • Flash hurtigt antallet af HOURS_millis, vi har været i lyset,
      • Vent 2 sekunder,
      • gentage.

Sæt nu fingeren oven på den lysfølsomme modstand. Eller bare sluk lyset. Sløjfen bliver nu:

  • Vores latch_time_off har været over en time, og det er mørkt, så ved #BK.check_the_light, finder vi ud af, at det faktisk er mørkt.
  • Vi tænder låsen. Dette starter de uhyggelige ting hver loop. Se HER ER DET SPOOKY STUFF. Koden skal være temmelig beskrivende.
  • Når låsen har været længe nok, slukker vi den. Se #BK.turn_spookiness_off.
  • Nu går vi tilbage til #BK.time_management i henhold til "blink hurtigt tre gange" ovenfor.

Kør for rigtigt

Glem ikke at ændre skitsen til #undef DEBUG.

BEMÆRK A

* BEMÆRK A: Kode er inkluderet for at indstille den til 8 MHz. Se CLKPR = 0x00; kommenterede kode. Hvis du vil gøre dette (og der ikke er nogen grund til at gøre det for dette kredsløb), skal du sørge for at ændre Arduino IDE i menupunktet Værktøjer-> Ur.

Trin 7: Fra brødbræt til loddet kredsløb

Fra brødbræt til loddet kredsløb
Fra brødbræt til loddet kredsløb
Fra brødbræt til loddet kredsløb
Fra brødbræt til loddet kredsløb
Fra brødbræt til loddet kredsløb
Fra brødbræt til loddet kredsløb

Nu er det tid til at lave kredsløbsproduktionen! Få lidt loddet perfboard; Jeg kan godt lide Radio Shack Catalog #: 2760159, set her: https://www.radioshack.com/collections/prototyping…. Der er masser af huller til overførsel af dine printkortkomponenter til perfboardet.

Glem ikke at medtage små stikstykker til isætning af USBasp -ledningerne (til programmering)! Du skal bruge 5 af dem.

Forbered kraniet

Orienter dit kranium om, hvordan det vil sidde på jorden. Du skal bore et hul til fotoresistoren, så den faktisk bliver lys:-). … Vigtigt skridt! Brug også dit foretrukne skæreværktøj til at skære bunden af kraniet op for at give plads til printkort og batterier. Skær den kun på 3 sider for at lave en dør.

Bor hullet til, at fotoresistoren passer til pressen. Det er klart, at du kan teste størrelsen udefra på kraniet for at få det rigtigt. Start altid småt med dine øvelser, og bor ikke for hurtigt for ikke at skabe en masse flash omkring hullet, som du skal barbere af med en kniv.

Bor huller i øjnene til lysdioderne. Størr dem omhyggeligt, så lysdioderne passer til pressen. Jeg satte mine lysdioder ind fra indersiden, og da der ikke var megen frigang til at arbejde indeni, dryppede jeg bare lidt smeltelim på bagsiden af lysdioderne som en lille ekstra forsikring for at holde dem.

Jeg var også omhyggelig med at kappe en af ledningerne til hver LED i varmekrympbare slanger.

Sæt kredsløbet i

Da kraniet bare sidder der, var jeg ikke særlig forsigtig med at montere printkortet. Jeg sørgede for, at batteripakken gik på bunden, og der ville ikke være kortslutninger. Når jeg havde koblet den op, sat den i og drevet, lukkede jeg ipt op og lagde en klat smeltelim på bundklappen.

Sørg for at gøre ledningerne til lysdioderne og fotoresistoren lange for at kunne trække printkortet ud til omprogrammering.

Trin 8: Spoooooky Eyes !!!! Oooooooo !!

Uhyggelige øjne !!!! Oooooooo !!!!
Uhyggelige øjne !!!! Oooooooo !!!!

Ok, nu er det det. Dine uhyggelige øjne tændes i skumringen, vises for trick-or-treaters i 4 timer og slukker derefter for at bevare batterier. Den bliver ved til næste aften. Det vil gøre dette i TOTAL_RUN_HOURS timer, så forbered værdien i skitsen omhyggeligt. Da jeg har en 4 timers standard MAX_RUNTIME, betyder 40 timer i TOTAL_RUN_HOURS, at den kører i 10 dage.

Hvis nogen beslutter, at det er for lækkert til dig at have, og tager det med hjem, vil SpookyEyes afslutte sit løb og derefter tie stille og for evigt hjemsøge deres sjæl. Det er tilstrækkeligt at sige, tyve ville gøre klogt i at undgå at tage din SpookyEyes kranium!

Sæt dine SpookyEyes væk for sæsonen. Næste år skal du blot uploade skitsen igen, og SpookyEyes kommer til live! Hvor uhyggeligt er det? Ooooooo !!!!

Forbedringer

Jeg skulle nok have fået ATtiny til at sove i løbet af dagen. Slukket, det trækker meget lidt strøm.

Jeg skulle have sat en 10K ohm modstand på pin 4. Dette forhindrer kredsløbet i at mystisk nulstilles. Jeg havde dog ingen problemer. Men det skal gøres for at være korrekt.

Batteridrevet

Jeg elsker ATtiny84. Det er en fantastisk lille chip til et lavdrevet kredsløb. Nok har den ikke Serial.print () -funktionerne i Arduino ATmega328p og dens lignende, men du kan få lysene til at blinke på bestemte måder for at fortælle dig, hvad der foregår inde i dit kredsløb, til fejlfinding. Det er ikke svært at arbejde med.

Jeg håber, du fandt dette instruktivt … instruerbart!

Anbefalede: