Indholdsfortegnelse:

Geek Spinner: 14 trin (med billeder)
Geek Spinner: 14 trin (med billeder)

Video: Geek Spinner: 14 trin (med billeder)

Video: Geek Spinner: 14 trin (med billeder)
Video: seeing wife face for first time #shorts 2024, November
Anonim
Image
Image
Nørd Spinner
Nørd Spinner
Nørd Spinner
Nørd Spinner
Nørd Spinner
Nørd Spinner

Fidget-spinnere er sjove, og du kan finde en på omtrent enhver udtællingsdisk for kun et par penge i disse dage, men hvad nu hvis du kunne bygge din egen? Og den havde lysdioder? Og du kunne programmere det til at sige eller vise, hvad du ville? Hvis det lyder nørdet fedt, ER DETTE PROJEKTET FOR DIG.

Jeg har altid været interesseret i at bruge blinkende lysdioder til at få børn interesseret i programmering. Det mest enkle projekt med en Arduino mikrokontroller er at blinke en LED til og fra. Derefter får du dem til at se, hvor hurtigt en LED kan blinke, før det ser ud til at være tændt kontinuerligt (ca. 12 millisekunders intervaller). Derefter ryster du LED'en frem og tilbage, og du kan se den blinke igen! Dette fænomen kaldes "persistens of vision" (POV) og er, hvordan dette projekt fungerer. Det kan føre til diskussioner om både hvordan øjet fungerer og hvor utrolig hurtige computere er.

Dette projekt bruger en programmerbar 8-bit mikrokontroller, otte lysdioder og en møntcelle. Den drejer ved hjælp af et standard skateboardleje og bruger en Hall-effekt sensor og en magnet til at bestemme rotation. Det er lavet ved hjælp af begyndervenlige dele gennem huller og kan programmeres ved hjælp af Arduino programmeringsmiljø. Nok snak, lad os komme i gang…

Trin 1: Saml dele, værktøjer og forbrugsvarer

Image
Image
Saml dele, værktøjer og forbrugsvarer
Saml dele, værktøjer og forbrugsvarer

Det er altid frustrerende at komme halvvejs igennem en build og opdage, at du mangler noget. Dette er de dele, jeg har prøvet og fundet ud af at fungere godt. Udskift på egen risiko:

Materialeoversigt ===================

  • 1 stk., Lilla printplade, produceret kærligt i USA af OSH Park
  • 1 ea, Attiny 84, Atmel ATTINY84A-PU,
  • 1 stk., Taktil switch, TE 1825910-6,
  • 1 stk., Slide Switch SPDT Through Hole, C&K JS202011AQN,
  • 1 stk., Batteriholder, Linx BAT-HLD-001-THM,
  • 8 stk., 3 mm rød LED 160 Mcd, Wurth 151031SS04000,
  • 8 stk., 330 ohm 1/8W, Stackpole CF18JT330R,
  • 1 stk., 0,1 uF hætte, KEMET C320C104M5R5TA,
  • 1 stk., Magnetisk switch, Melexis MLX92231LUA-AAA-020-SP,
  • 1 ea, 608 Skateboard Bearing,
  • 1 stk., Lille sjælden jordartsmagnet 2 mm x 1 mm,
  • 2 stk. 3D -trykte kasketter (vedhæftet STL -fil).
  • 1 stk., CR2032 batteri, Panasonic BSP eller tilsvarende,

Værktøjer og forsyninger: Til mine workshops bruger jeg SparkFun's Beginner's ToolKit, som har alt hvad du behøver, undtagen pincetten:

  • Loddekolbe.
  • Loddetråd
  • Flush-cut plyers (jeg elsker $ 5 Hakko CHP170!)
  • Desoldering fletning
  • super lim

Programmering af Attiny (trin 4, ikke påkrævet, hvis du køber dette som et sæt):

  • Arduino (undgå de billige kinesiske kloner og understøt dine amerikanske open source -producenter).

    • SparkFun Redboard
    • Adafruit Metro
    • Arduino UNO
  • AVR -programmeringsskærm.
  • Pogo -adapter (hvis programmering med chip installeret).
  • En standard USB A-B til Uno, USB Mini til Redboard eller USB Micro til Metro.

Et kit til dette projekt er tilgængeligt på Tindie.com (minus batteriet). Hvis du køber sættet, sparer du tid og omkostninger ved at bestille fra flere forskellige leverandører og undgår den mindste PCB -ordrepræmie. Også programmering af en Attiny er ikke trivielt, og hvis du køber sættet, vil det allerede være forudprogrammeret. Du vil også hjælpe mig med at udvikle og dele andre projekter i mine workshops!

Trin 2: Modstand er afgørende

Modstand er afgørende
Modstand er afgørende
Modstand er afgørende
Modstand er afgørende
Modstand er afgørende
Modstand er afgørende

Vi går ud fra, at du har nogle kit-building erfaringer. Hvis du har brug for hjælp til lodning, skal du gå ind på www.sparkfun.com/tutorials/213 for at børste op eller se Geek Girl forklare det på https://www.youtube.com/embed/P5L4Gl6Q4Xo. Jeg har også et kit, der passer til begyndere på

Jeg kan godt lide at starte med modstanden, fordi a) de er relativt varmebestandige, mens du kommer ind i din lodningsspor, og jernet kommer op til temp, b) de har ingen polaritet, så orientering er ikke kritisk, og c) de er den laveste komponent på brættet, så sidd tæt ved lodning. Der er otte 330-ohm strømbegrænsende modstande, en for hver af LED'erne. Du kan gøre en ad gangen, eller alle otte på én gang.

  • Bøj ledningerne til bredden af puderne, og indsæt modstanden.
  • Vend brættet om og lod lodningerne.
  • Trim ledningerne med flush -udskæringer.
  • Slå dem igen med jernet, hvis du vil have dem til at imponere dine nørder.

Trin 3: Kode?

Kode?
Kode?
Kode?
Kode?
Kode?
Kode?
Kode?
Kode?

Hvis du har købt mit kit, er chippen forudprogrammeret og kan springe til næste trin.

Ja, dette projekt har brug for noget kode. Og hvis du var opmærksom, fortalte jeg dig i trin 1, at programmering af Attiny ikke var trivielt. Jeg bruger Arduino, det er programmeringsmiljø, min AVR -programmerer og en pogo pin -jig.

Chippen kan programmeres inden lodning på plads (foto 2), eller efter at den er loddet på plads ved hjælp af ISP -headeren i bunden af printkortet (foto 3). I begge tilfælde er programmeringen som følger:

  • Download Arduino programmeringsmiljø.
  • Installer support til Attiny 85 fra enten:

    • https://highlowtech.org/?p=1695 (Arduino Tiny)
    • https://github.com/SpenceKonde/ATTinyCore (Attiny Core)
  • Upload "Arduino som ISP -skitse": [Fil] -> [Eksempler] -> [Arduino som internetudbyder].
  • Monterede AVR -programmeringsskærmen, og isæt båndkablet til Attiny84 -positionen
  • Hvis du bruger Pogo -adapteren, skal du placere den på ISP -overskriften på kortet. De positive og negative puder er markeret, så du kan orientere headeren korrekt.
  • Hvis du bruger chippen, skal du indsætte den med en pin mod USB -stikket.
  • Vælg den korrekte chip:

    • Arduino Tiny: "Attiny 84 @ 8 Mhz"
    • Attiny Core: "Attiny 24/44/84"

      • Chip "Attiny 84"
      • 8 Mhz (intern)
      • Pin -kortlægning "mod uret"
  • Vælg programmereren, [Værktøjer] -> [Programmerer] -> [Arduino som internetudbyder]
  • Indstil programmeringssikringerne, [Værktøjer] -> [Burn Bootloader]
  • Upload den vedhæftede skitse, [Fil] -> [Upload ved hjælp af programmerer]

Den største fejlkilde, jeg får, involverer ikke at have stifterne rettet korrekt.

Trin 4: Chip det

Chip det
Chip det
Chip det
Chip det
Chip det
Chip det
Chip det
Chip det

Nu hvor din chip har kode på den, kan du installere den. Orienteringen af en DIP ("dual inline package") chip angives sædvanligvis enten med et hul ved siden af pin en eller en divot på enden af chippen, der indeholder pin one, som det er tilfældet her.

  • Bøj ledningerne til 90 grader ved at trykke dem mod en flad overflade (fotos 1 & 2).
  • Juster chippen med symbolet på printet, og indsæt chippen (foto 3).
  • Lod en stift på modsatte sider, og kontroller, at både chippen er fladt mod printet, og at orienteringen er korrekt. Det bliver virkelig svært at rette efter dette. Tro mig på dette.
  • Når du er sikker på, at den sidder korrekt, loddes de resterende stifter og skæres derefter i skål.

Trin 5: Kontakt og kondensator

Kontakt og kondensator
Kontakt og kondensator
Kontakt og kondensator
Kontakt og kondensator

Trykknappen går ved siden af IC'en og kondensatoren på den anden side.

  • Tryk trykknappen på plads (sørg for at den er i den rigtige retning).
  • Lod det på plads.
  • Klip ledningerne af bagsiden.

Kondensatoren har ikke en orientering, men hvis du sætter skriftsiden ud, ved dine nørder venner, hvilken værdi du har brugt.

Trin 6: Kontakt og batteriholder

Kontakt og batteriholder
Kontakt og batteriholder
Kontakt og batteriholder
Kontakt og batteriholder
Kontakt og batteriholder
Kontakt og batteriholder
Kontakt og batteriholder
Kontakt og batteriholder

Omskifteren går med niveauet pegende udad. Ligesom de andre emner loddes to stifter ind, kontrolleres, at den sidder fladt, og derefter loddes resten.

Batteriholderen har markering for at vise retningen, men det er virkelig ligegyldigt. Det vil dog kræve en del mere varme end almindelige ledninger, og du vil gerne sørge for, at det sidder fladt for at holde batteriet på plads (billede 4).

Trin 7: Lysdioder

LED'er
LED'er
LED'er
LED'er
LED'er
LED'er
LED'er
LED'er

Der er ikke et anstændigt projekt, der ikke indeholder mindst en LED. Dette har otte!

Den lange ledning er positiv (anode). Der er et "+" mærke på silketryk, og puden er firkantet. Hvis du gør alle otte på én gang, skal du holde dem oppe for at sikre, at du har alle retningerne korrekte.

  • Lod en ledning på hver LED.
  • Kontroller retningen, og at de sidder fladt (billede 3).

    Hvis de ikke er det, skal du trykke på sagen med din tommelfinger og genopvarme ledningen, indtil den klikker på plads (billede 4)

  • Lodde resten.
  • Klip ledningerne.

Trin 8: Tjek det ud

Image
Image
Centrifugeringstid
Centrifugeringstid

På dette tidspunkt kan vi stadig kontrollere lysdioderne og slukke:

  • Indsæt et batteri med den positive side udad.
  • Tænd spinneren, og tryk derefter på knappen, indtil alle (forhåbentlig) lysdioderne er tændt (se videoen).
  • Drej centrifugeren og se mønsteret. Hvis en LED ikke lyser, kan den installeres bagud eller have været varmeskadet. Fjern loddet og sæt en ny i.

Fejlfinding:

  • Hvis ingen lysdioder lyser:

    • Sørg for, at dit batteri er godt og i den rigtige retning.
    • Har du programmeret din chip? Er det i den rigtige retning? Bliver det varmt?
    • Er lysdioderne rettet korrekt? Vil du bruge møntcellen på tværs af leddet loddemetal til at teste dem?
  • Hvis kontakten ikke får LED'erne til at blinke:

    • Kontroller loddeforbindelserne på LED'en.
    • Kontroller loddeforbindelserne på Attiny.
  • Hvis alt andet fejler, skal du tage og sende billeder i høj opløsning af forsiden og bagsiden og bede om hjælp i kommentarerne.

Trin 9: Centrifugeringstid

Centrifugeringstid
Centrifugeringstid
Centrifugeringstid
Centrifugeringstid
Centrifugeringstid
Centrifugeringstid

Lejet holdes på plads ved at lodde sagen til den store pude. Dette kræver tålmodighed og masser af varme:

  • Brug noget som mønter på en hård overflade til at placere lejet.
  • Opvarm både puden og lejeskallen, indtil du ser lodning flyde ind på sagen (det tager lidt).
  • Gentag på den anden side.
  • Kontroller, at lejet er justeret korrekt ved at dreje spinneren.
  • Vend brættet om og lod to punkter på den anden side.

Trin 10: Er dette en revolution?

Image
Image
Er dette en revolution?
Er dette en revolution?
Er dette en revolution?
Er dette en revolution?

For at vise beskeder i stedet for bare mønstre, skal vi kende spinnerens position i forhold til cirklen. Vi vil bruge en Hall-effekt sensor og en magnet. Dette svarer til, hvordan forbrændingsmotorer ved, hvornår de skal affyre gnisten for at få mest mulig effekt. Orientering og justering af både sensoren og magneten er afgørende for, at dette fungerer.

  • Skriften på forsiden af enheden vender mod lejet, der matcher silketryk (foto 1).
  • Juster højden til lige over lejet (hvor magneten i hætten vil være).
  • Lod en bly.
  • Kontroller højden og spisningen.
  • Lod de resterende ledninger.
  • Klip ledningerne.

Hvis du bruger en Omni-pole sensor, skal du finde ud af magnetens retning. Den bedste måde at gøre dette på er at indstille en anden tilstand end mønsteret fra det foregående trin og derefter finde den side af magneten, der starter lysdioderne med at blinke (se video). Lim magneten med den side, der arbejdede udad. Dobbelttjek dit arbejde.

Trin 11: Balancelov

Balancelov
Balancelov
Balancelov
Balancelov

Hvis du holder spinneren vandret op med batteriet i, vil du se, at den drejer til batterisiden nedad. På trods af min bedste indsats for at afbalancere komponenter, er det stadig ude af balance. Du kan tilføje lidt vægt til siden uden batteri ved hjælp af en møtrik og bolt, eller tilføje noget loddemiddel til puden.

Trin 12: Du er operationel

Image
Image
Men vent, der er mere.
Men vent, der er mere.

Med din magnet og sensor på plads, er du klar til at tjekke den fulde fantastiskhed af din Geek Spinner. Spinnerens tilstand vises med LED'en, der lyser ved opstart eller efter et tryk på en knap (D0 - D7). Tilstanden ændres ved at trykke på knappen (se video).

int tilstande = 8; // antal tilgængelige tilstande

// 0 -> tekst "Hej verden!" // 1 -> RPM // 2 -> tid i sekunder // 3 -> centrifugering // 4 -> centrifugering (totalt) // 5 -> "lilly pad" -mønster // 6 -> form 1 (hjerte) // 7 -> form 2 (smil)

Trin 13: Men vent, der er mere.

Men vent, der er mere.
Men vent, der er mere.
Men vent, der er mere.
Men vent, der er mere.
Men vent, der er mere.
Men vent, der er mere.

"Hjertet" og "smiley" -mønstrene blev skabt ved hjælp af en polær graf for at vise, hvordan de otte segmenter ville se ud hver 5. rotationsgrad.

Med hånden:

  • Download og udskriv billedet i fuld opløsning (billede 1).
  • Udfyld blokkene for at lave dit billede (billede 2).
  • Langs radialen, startende med en 0, beregnes byte ved hjælp af sort = 1, hvid = 0;

    Hjertens første radial er 1, 0, 0, 0, 0, 0, 0, 0, så byte = 0b100000000;

  • Fortsæt, indtil du er færdig (tip, hvis dit billede er symmetrisk, skal du kun gøre det halve).
  • Indsæt dine bytes i afsnittet "textAndShapes.h" i skitsen under "form_1 " eller "form_2 ".

Brug af Python:

  • Installer Python.
  • Installer Pythons billedbibliotek.
  • Download det vedhæftede "readGraph.py" script.
  • Download billede i fuld opløsning (billede 1).
  • Åbn billedet i din foretrukne editor (GIMP eller MS Paint).
  • Brug kommandoen "Udfyld" med den sorte farve valgt til at udfylde de segmenter, du vil have belyst (billede 2).
  • Gem billedet i den samme mappe som scriptet "readGraph.py", og rediger filnavnet i scriptet, så det matcher det:

im = Image.open ('heart.png')

Kør scriptet og indsæt output i "textAndShapes.h" sektion af skitsen under "form_1 " eller "form_2"

Uanset hvad, er du velkommen til at dele din skabelse (billede og kode) i kommentarerne!

Trin 14: Kreditter og sidste tanker

Kreditter og sidste tanker
Kreditter og sidste tanker

Det kom jeg bestemt ikke helt på egen hånd. Ikke på lang afstand.

  • Min første praktiske oplevelse med POV var med et projekt fra Nick Sayer kaldet POV Twirlie: https://www.tindie.com/products/nsayer/pov-twirlie/. (Jeg bruger også pogo adapter).
  • Tanken "LED + Fidget spinner = POV" dukkede ind i min hjerne efter at have set Techydiy's Instructable
  • Hver gang du har en fantastisk idé, har nogen allerede gjort det: https://www.instructables.com/id/POV-Arduino-Fidget-Spinner/. Overflademontering er noget jeg kan gøre, men ikke rigtig nybegyndervenligt. Hans kode var også lidt over mit hoved, men jeg brugte hans ideer om at vise RPM og tæller.
  • Jeg var i stand til at forstå og brugte uddrag af Reger-mænds POV-urkode til at vise tekst:

Intet projekt er nogensinde færdigt eller perfekt. Her er nogle tanker, jeg har fremover:

  • Balance: Dataark har sjældent oplysninger om vægten af komponenterne, så det er svært at lave et uddannet gæt om balancen uden bare at bygge den. Batteriet er naturligvis den tungeste komponent. Jeg tilføjede huller i hver ende, så jeg kunne tilføje vægt efter behov for at balancere den.
  • Med uret? Hvis du har bemærket det, vises teksten kun korrekt, hvis du drejer i retning med uret. At dreje den anden retning skaber et spejlbillede. Tilføjelse af en anden Hall -sensor eller magnet ville give dig mulighed for at udlede rotationsretning (Seans projekt gjorde dette).
  • Farve? Brug af programmerbare RGB -lysdioder giver dig mulighed for at lave farver. De er dog typisk overflademonteret.

Anbefalede: