Innholdsfortegnelse:

Geek Spinner: 14 trinn (med bilder)
Geek Spinner: 14 trinn (med bilder)

Video: Geek Spinner: 14 trinn (med bilder)

Video: Geek Spinner: 14 trinn (med bilder)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, November
Anonim
Image
Image
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner

Fidget-spinnere er morsomme, og du kan finne en på omtrent hvilken som helst utsjekkingsdisk for bare noen få dollar i disse dager, men hva om du kunne bygge din egen? Og den hadde lysdioder? Og du kan programmere den til å si eller vise hva du vil? Hvis det høres kult ut, er dette prosjektet for deg.

Jeg har alltid vært interessert i å bruke blinkende lysdioder for å få barn interessert i programmering. Det enkleste prosjektet med en Arduino mikrokontroller er å blinke en LED på og av. Deretter får du dem til å se hvor fort en LED kan blinke før det ser ut til å være på kontinuerlig (ca. 12 millisekunders intervaller). Deretter rister du LED -en frem og tilbake, og du kan se den blinke igjen! Dette fenomenet kalles "persistence of vision" (POV) og er hvordan dette prosjektet fungerer. Det kan føre til diskusjoner om både hvordan øyet fungerer og hvor utrolig raske datamaskiner er.

Dette prosjektet bruker en programmerbar 8-biters mikrokontroller, åtte lysdioder og en myntcelle. Den spinner ved hjelp av et standard skateboardlager, og bruker en Hall-effekt sensor og en magnet for å bestemme rotasjon. Den er laget med nybegynnervennlige gjennomgående hull og kan programmeres ved hjelp av Arduino programmeringsmiljø. Nok snakk, la oss lage…

Trinn 1: Samle deler, verktøy og rekvisita

Image
Image
Samle deler, verktøy og rekvisita
Samle deler, verktøy og rekvisita

Det er alltid frustrerende å komme halvveis i bygget og finne at du mangler noe. Dette er delene jeg har prøvd og funnet å fungere godt. Erstatter på egen risiko:

Materialkatalog ===================

  • 1 stk., Lilla PCB, produsert kjærlig i USA av OSH Park
  • 1 ea, Attiny 84, Atmel ATTINY84A-PU,
  • 1 stk., Taktil bryter, TE 1825910-6,
  • 1 ea, Slide Switch SPDT Through Hole, C&K JS202011AQN,
  • 1 stk., Batteriholder, Linx BAT-HLD-001-THM,
  • 8 ea, 3 mm rød LED 160 Mcd, Wurth 151031SS04000,
  • 8 ea, 330 ohm 1/8W, Stackpole CF18JT330R,
  • 1 stk., 0,1 uF -hette, KEMET C320C104M5R5TA,
  • 1 stk., Magnetisk bryter, Melexis MLX92231LUA-AAA-020-SP,
  • 1 ea, 608 Skateboard Bearing,
  • 1 stk., Liten sjelden jordmagnet 2 mm x 1 mm,
  • 2 stk, 3D -trykte caps (STL -fil vedlagt).
  • 1 stk., CR2032 -batteri, Panasonic BSP eller tilsvarende,

Verktøy og forsyninger: Til verkstedene mine bruker jeg SparkFun's Beginner's ToolKit som har alt du trenger bortsett fra pinsetten:

  • Loddejern.
  • Loddetinn
  • Flush-cut plyers (jeg elsker $ 5 Hakko CHP170!)
  • Desoldering flette
  • superlim

Programmering av Attiny (trinn 4, ikke nødvendig hvis du kjøper dette som et sett):

  • Arduino (vær så snill å unngå de billige kinesiske klonene og støtt US Open Source Manufactures).

    • SparkFun Redboard
    • Adafruit Metro
    • Arduino UNO
  • AVR -programmeringsskjerm.
  • Pogo -adapter (hvis programmering med brikke installert).
  • En standard USB A-B for Uno, USB Mini for Redboard eller USB Micro for Metro.

Et sett for dette prosjektet er tilgjengelig på Tindie.com (minus batteriet). Når du kjøper settet, sparer du tid og kostnader ved å bestille fra flere forskjellige leverandører og unngår minimum PCB -bestillingspremie. Også å programmere en Attiny er ikke trivielt, og hvis du kjøper settet, vil det allerede være forhåndsprogrammert. Du vil også hjelpe meg med å utvikle og dele andre prosjekter i mine workshops!

Trinn 2: Motstand er avgjørende

Motstand er avgjørende
Motstand er avgjørende
Motstand er avgjørende
Motstand er avgjørende
Motstand er avgjørende
Motstand er avgjørende

Vi kommer til å anta at du har erfaring med bygging av byggesett. Hvis du trenger hjelp med lodding, kan du gå til www.sparkfun.com/tutorials/213 for å pusse opp eller se Geek Girl forklare det på https://www.youtube.com/embed/P5L4Gl6Q4Xo. Jeg har også et sett som passer for nybegynnere på

Jeg liker å begynne med motstanden fordi a) de er relativt varmebestandige mens du kommer inn i loddesporet og jernet kommer opp til temp, b) de har ingen polaritet, så orientering er ikke kritisk, og c) de er den laveste komponenten på brettet, så sitt tett når du lodder. Det er åtte 330 ohm strømbegrensende motstander, en for hver av lysdiodene. Du kan gjøre en om gangen, eller alle åtte samtidig.

  • Bøy ledningene til bredden på putene og sett inn motstanden.
  • Snu brettet og lodd ledningene.
  • Trim ledningene med spyle kutt.
  • Slå dem igjen med strykejernet hvis du vil at de skal imponere dine nerdvenner.

Trinn 3: Kode?

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

Hvis du kjøpte settet mitt, er brikken forhåndsprogrammert og kan hoppe til neste trinn.

Ja, dette prosjektet trenger litt kode. Og hvis du var oppmerksom, fortalte jeg deg i trinn 1 at programmering av Attiny ikke var trivielt. Jeg bruker Arduino, det er programmeringsmiljø, AVR -programmereren min og en pogo pin -jig.

Brikken kan programmeres før lodding på plass (foto 2), eller etter at den er loddet på plass ved hjelp av ISP -hodet på bunnen av kretskortet (bilde 3). I begge tilfeller er programmeringen som følger:

  • Last ned Arduino programmeringsmiljø.
  • Installer støtte for Attiny 85 fra enten:

    • https://highlowtech.org/?p=1695 (Arduino Tiny)
    • https://github.com/SpenceKonde/ATTinyCore (Attiny Core)
  • Last opp "Arduino som ISP -skisse": [File] -> [Eksempler] -> [Arduino som ISP].
  • Fest AVR -programmeringsskjermen og sett inn båndkabelen til Attiny84 -posisjonen
  • Hvis du bruker Pogo -adapteren, plasserer du den på ISP -hodet på kortet. De positive og negative putene er merket slik at du kan orientere hodet riktig.
  • Hvis du bruker brikken, setter du den inn med en pinne mot USB -kontakten.
  • Velg riktig brikke:

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

      • Chip "Attiny 84"
      • 8 Mhz (intern)
      • Pin -kartlegging "mot klokken"
  • Velg programmereren, [Verktøy] -> [Programmerer] -> [Arduino som ISP]
  • Sett programmeringssikringene, [Verktøy] -> [Brenn oppstartslaster]
  • Last opp den vedlagte skissen, [Fil] -> [Last opp ved hjelp av programmerer]

Den største feilkilden jeg får er å ikke ha pinnene justert riktig.

Trinn 4: Chip It

Chip It
Chip It
Chip It
Chip It
Chip It
Chip It
Chip It
Chip It

Nå som brikken din har kode på den, kan du installere den. Orienteringen til en DIP ("dual inline package") -brikke indikeres vanligvis enten med et hull ved siden av pinne en, eller et divot på enden av brikken som inneholder pinne en, slik tilfellet er her.

  • Bøy ledningene til 90 grader ved å trykke dem mot en flat overflate (bilder 1 og 2).
  • Juster brikken med symbolet på kretskortet og sett inn brikken (foto 3).
  • Lodd en pinne på motsatte sider, og kontroller at både brikken er flat mot kretskortet og at retningen er riktig. Det blir veldig vanskelig å fikse etter dette. Stol på meg på dette.
  • Når du er sikker på at den er riktig, lodder du de resterende pinnene og kutter dem deretter.

Trinn 5: Bryter og kondensator

Bryter og kondensator
Bryter og kondensator
Bryter og kondensator
Bryter og kondensator

Trykknappen går ved siden av IC, og kondensatoren på den andre siden.

  • Trykk på trykknappen på plass (sørg for at den er i riktig retning).
  • Lodd den på plass.
  • Klipp ledningene av baksiden.

Kondensatoren har ikke en orientering, men hvis du setter skrivesiden ut, vet dine nerdvenner hvilken verdi du brukte.

Trinn 6: Bryter og batteriholder

Bryter og batteriholder
Bryter og batteriholder
Bryter og batteriholder
Bryter og batteriholder
Bryter og batteriholder
Bryter og batteriholder
Bryter og batteriholder
Bryter og batteriholder

Bryteren går med nivået pekende utover. Som de andre elementene, lodd inn to pinner, kontroller at den sitter flatt, og lodd deretter resten.

Batteriholderen har merking for å vise retningen, men det spiller ingen rolle. Det vil imidlertid kreve litt mer varme enn vanlige ledninger, og du vil sørge for at det sitter flatt for å holde batteriet på plass (bilde 4).

Trinn 7: Lysdioder

Lysdioder
Lysdioder
Lysdioder
Lysdioder
Lysdioder
Lysdioder
Lysdioder
Lysdioder

Det er ikke et anstendig prosjekt som ikke inneholder minst én LED. Dette har ÅTTE!

Den lange ledningen er positiv (anode). Det er et "+" merke på silketrykket, og puten er firkantet. Hvis du gjør alle åtte samtidig, holder du dem oppe for å være sikker på at alle retninger er riktige.

  • Lodd en ledning på hver LED.
  • Kontroller retningen og at de sitter flatt (bilde 3).

    Hvis de ikke er det, trykker du på etuiet med tommelen og varmes på nytt til den klikker på plass (bilde 4)

  • Lodde resten.
  • Fest ledningene.

Trinn 8: Sjekk det ut

Image
Image
Spinntid
Spinntid

På dette tidspunktet kan vi fortsatt sjekke lysdiodene og slå ut:

  • Sett inn et batteri med den positive siden utover.
  • Slå på spinneren og trykk deretter på knappen til alle (forhåpentligvis) lysdiodene er på (se videoen).
  • Spinn på spinneren og se mønsteret. Hvis en LED ikke lyser, kan den installeres bakover eller ha blitt varmeskadd. Fjern loddetinnet og sett inn et nytt.

Feilsøking:

  • Hvis ingen lysdioder lyser:

    • Sørg for at batteriet er godt og i riktig retning.
    • Har du programmert brikken din? Er det i riktig retning? Blir det varmt?
    • Er lysdiodene riktig orientert? Bruke myntcellen på tvers av leddet loddeskjøter for å teste dem?
  • Hvis bryteren ikke får LEDene til å blinke:

    • Kontroller loddeskjøtene på LED -en.
    • Kontroller loddeskjøtene på Attiny.
  • Hvis alt annet mislykkes, kan du ta og legge ut bilder med høy oppløsning på forsiden og baksiden og be om hjelp i kommentarene.

Trinn 9: Spinntid

Spinntid
Spinntid
Spinntid
Spinntid
Spinntid
Spinntid

Lageret holdes på plass ved å lodde saken til den store puten. Dette krever tålmodighet og mye varme:

  • Bruk noe som mynter på en hard overflate for å plassere lageret.
  • Varm opp både puten og lagerskallet til du ser loddetinn strømme inn på saken (det tar litt).
  • Gjenta på den andre siden.
  • Kontroller at lageret er riktig justert ved å snurre spinneren.
  • Snu brettet og lodd to punkter på den andre siden.

Trinn 10: Er dette en revolusjon?

Image
Image
Er dette en revolusjon?
Er dette en revolusjon?
Er dette en revolusjon?
Er dette en revolusjon?

For å vise meldinger i stedet for bare mønstre, må vi vite posisjonen til spinneren i forhold til sirkelen. Vi bruker en Hall-effekt sensor og en magnet. Dette ligner på hvordan forbrenningsmotorer vet når de skal fyre gnisten for å få mest mulig kraft. Orientering og justering av både sensoren og magneten er avgjørende for at dette skal fungere.

  • Skriften på forsiden av enheten vender mot lageret som matcher silkeskjermen (foto 1).
  • Juster høyden til like over lageret (der magneten i hetten vil være).
  • Lodd en ledning.
  • Kontroller høyden og maten.
  • Lodde de resterende ledningene.
  • Fest ledningene.

Hvis du bruker en Omni-pol sensor, må du finne ut orienteringen til magneten. Den beste måten å gjøre dette på er å sette en annen modus enn mønsteret fra forrige trinn og deretter finne siden av magneten som starter LED -lampene med å blinke (se video). Lim magneten med siden som arbeidet vendt utover. Dobbeltsjekk arbeidet ditt.

Trinn 11: Balanseloven

Balanseringsloven
Balanseringsloven
Balanseloven
Balanseloven

Hvis du holder spinneren horisontalt med batteriet inne, ser du at den svinger til batterisiden ned. Til tross for min beste innsats for å balansere komponenter, er det fortsatt utenfor balanse. Du kan legge til litt vekt på siden uten batteri ved hjelp av en mutter og bolt, eller legge litt loddetinn til puten.

Trinn 12: Du er operativ

Image
Image
Men vent, det er mer.
Men vent, det er mer.

Med magneten din og sensoren på plass, er du klar til å sjekke hele fenomenet til din Geek Spinner. Modusen til spinneren vises med LED -lampen som lyser ved oppstart eller etter et tastetrykk (D0 - D7). Modusen endres ved å trykke på knappen (se video).

int -moduser = 8; // antall tilgjengelige moduser

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

Trinn 13: Men vent, det er mer.

Men vent, det er mer.
Men vent, det er mer.
Men vent, det er mer.
Men vent, det er mer.
Men vent, det er mer.
Men vent, det er mer.

"Hjertet" og "smilefjes" -mønstrene ble opprettet ved å bruke en polær graf for å vise hvordan de åtte segmentene ville se ut hver 5. rotasjonsgrad.

For hånd:

  • Last ned og skriv ut bildet i full oppløsning (bilde 1).
  • Fyll ut blokkene for å lage bildet ditt (bilde 2).
  • Langs radialen, start en 0, beregne byte med svart = 1, hvit = 0;

    Den første radialen i hjertet er 1, 0, 0, 0, 0, 0, 0, 0, 0, så byte = 0b100000000;

  • Fortsett til du er ferdig (hint, hvis bildet ditt er symmetrisk, trenger du bare å gjøre halvparten).
  • Lim inn byte i "textAndShapes.h" -delen av skissen under "form_1 " eller "form_2 ".

Bruke Python:

  • Installer Python.
  • Installer Pythons bildebibliotek.
  • Last ned det vedlagte "readGraph.py" -manuset.
  • Last ned bilde i full oppløsning (bilde 1).
  • Åpne bildet i favorittredigereren din (GIMP eller MS Paint).
  • Bruk kommandoen "Fyll" med svart farge valgt for å fylle segmentene du vil lyse (bilde 2).
  • Lagre bildet i den samme katalogen som "readGraph.py" -skriptet, og endre filnavnet i skriptet slik at det samsvarer med det:

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

Kjør skriptet og lim inn utdataene i "textAndShapes.h" -delen av skissen under "shape_1 " eller "shape_2"

Uansett, del gjerne skapelsen din (bilde og kode) i kommentarene!

Trinn 14: studiepoeng og siste tanker

Studiepoeng og siste tanker
Studiepoeng og siste tanker

Jeg kom absolutt ikke på dette helt alene. Ikke på langt hold.

  • Min første praktiske erfaring med POV var med et prosjekt fra Nick Sayer kalt POV Twirlie: https://www.tindie.com/products/nsayer/pov-twirlie/. (Jeg bruker også pogo -adapter).
  • Tanken "LED + Fidget spinner = POV" dukket opp i hjernen min etter å ha sett Techydiy's Instructable
  • Hver gang du har en fantastisk idé, har noen allerede gjort det: https://www.instructables.com/id/POV-Arduino-Fidget-Spinner/. Overflatemontering er noe jeg kan gjøre, men egentlig ikke nybegynnervennlig. Koden hans var også litt over hodet mitt, men jeg brukte ideene hans om å vise RPM og tellinger.
  • Jeg var i stand til å forstå og brukte utdrag av Reger-menns POV Clock-kode for å vise tekst:

Ingen prosjekter er noen gang fullførte eller perfekte. Her er noen tanker jeg har fremover:

  • Balanse: Dataark har sjelden informasjon om vekten av komponentene, så det er vanskelig å gjøre enda en utdannet gjetning om balansen uten bare å bygge den. Batteriet er åpenbart den tyngste komponenten. Jeg la til hull i hver ende slik at jeg kunne legge til vekt etter behov for å balansere den.
  • Med urviseren? Hvis du la merke til det, vises teksten bare riktig hvis du snurrer i retning med klokken. Spinning den andre retningen skaper et speilbilde. Hvis du legger til en annen Hall -sensor eller magnet, kan du utlede rotasjonsretning (Seans prosjekt gjorde dette).
  • Farge? Ved å bruke programmerbare RGB -lysdioder kan du lage farger. De er vanligvis overflatemonterte skjønt.

Anbefalt: