Inhoudsopgave:

Geek Spinner: 14 stappen (met afbeeldingen)
Geek Spinner: 14 stappen (met afbeeldingen)

Video: Geek Spinner: 14 stappen (met afbeeldingen)

Video: Geek Spinner: 14 stappen (met afbeeldingen)
Video: Wie is het, maar dan anders #BRAILLE #BILLEN #blindfluencer #blindfun #VoelJeGOED @roxannekwant3463 2024, November
Anonim
Image
Image
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner
Geek Spinner

Fidget-spinners zijn leuk, en je kunt er tegenwoordig een vinden aan ongeveer elke kassa voor slechts een paar dollar, maar wat als je er zelf een zou kunnen bouwen? En het had LED's? En je zou het kunnen programmeren om te zeggen of te laten zien wat je maar wilt? Als dat geeky cool klinkt, IS DIT HET PROJECT VOOR JOU.

Ik ben altijd al geïnteresseerd geweest in het gebruik van knipperende LED's om kinderen te interesseren voor programmeren. Het meest eenvoudige project met een Arduino-microcontroller is om een LED aan en uit te laten knipperen. Vervolgens laat je ze zien hoe snel een LED kan knipperen voordat het lijkt alsof hij continu brandt (intervallen van ongeveer 12 milliseconden). Dan schud je de LED heen en weer en zie je hem weer knipperen! Dit fenomeen wordt "persistentie van visie" (POV) genoemd en zo werkt dit project. Het kan leiden tot discussies over zowel hoe het oog werkt als hoe ongelooflijk snel computers zijn.

Dit project maakt gebruik van een programmeerbare 8-bit microcontroller, acht LED's en een knoopcel. Het draait met een standaard skateboardlager en gebruikt een Hall-effectsensor en een magneet om de rotatie te bepalen. Het is gemaakt met behulp van beginnersvriendelijke doorlopende onderdelen en kan worden geprogrammeerd met behulp van de Arduino-programmeeromgeving. Genoeg gepraat, laten we gaan maken…

Stap 1: Verzamel de onderdelen, gereedschappen en benodigdheden

Image
Image
Verzamel de onderdelen, gereedschappen en benodigdheden
Verzamel de onderdelen, gereedschappen en benodigdheden

Het is altijd frustrerend om halverwege een build te komen en te ontdekken dat je iets mist. Dit zijn de onderdelen die ik heb geprobeerd en die goed werken. Vervanging op eigen risico:

Stuklijst=================

  • 1 ea, Purple PCB, liefdevol vervaardigd in de VS door OSH Park
  • 1 stuk, Attiny 84, Atmel ATTINY84A-PU,
  • 1 ea, Tactiele schakelaar, TE 1825910-6,
  • 1 ea, Slide Switch SPDT Through Hole, C&K JS202011AQN,
  • 1 ea, Batterijhouder, Linx BAT-HLD-001-THM,
  • 8 stuks, 3 mm rode LED 160 Mcd, Wurth 151031SS04000,
  • 8 ea, 330 ohm 1/8W, Stackpole CF18JT330R,
  • 1 ea, 0,1 uF dop, KEMET C320C104M5R5TA,
  • 1 st, Magnetische schakelaar, Melexis MLX92231LUA-AAA-020-SP,
  • 1 ea, 608 Skateboardlager,
  • 1 ea, kleine zeldzame-aardemagneet 2 mm x 1 mm,
  • 2 ea, 3D-geprinte doppen (STL-bestand bijgevoegd).
  • 1 ea, CR2032-batterij, Panasonic BSP of gelijkwaardig,

Gereedschappen en benodigdheden: voor mijn workshops gebruik ik SparkFun's Beginner's ToolKit die alles heeft wat je nodig hebt, behalve het pincet:

  • Soldeerbout.
  • Soldeerdraad
  • Flush-cut plyers (ik ben dol op de Hakko CHP170 van $ 5!)
  • Desolderen vlecht
  • superlijm

Programmeren van de Attiny (Stap 4, niet vereist als je dit als kit koopt):

  • Arduino (vermijd de goedkope Chinese klonen en steun uw Amerikaanse Open Source-fabrikanten).

    • SparkFun Redboard
    • Adafruit Metro
    • Arduino UNO
  • AVR-programmeerscherm.
  • Pogo-adapter (indien geprogrammeerd met geïnstalleerde chip).
  • Een standaard USB A-B voor Uno, USB Mini voor Redboard of USB Micro voor Metro.

Een kit voor dit project is beschikbaar op Tindie.com (minus de batterij). Door de kit aan te schaffen, bespaart u tijd en kosten van het bestellen bij verschillende leveranciers en vermijdt u de minimale PCB-bestellingspremie. Bovendien is het programmeren van een Attiny niet triviaal, en als je de kit koopt, is deze al voorgeprogrammeerd. Je helpt me ook bij het ontwikkelen en delen van andere projecten in mijn workshops!

Stap 2: Weerstand is essentieel

Weerstand is essentieel
Weerstand is essentieel
Weerstand is essentieel
Weerstand is essentieel
Weerstand is essentieel
Weerstand is essentieel

We gaan ervan uit dat je enige ervaring hebt met het bouwen van kits. Als je hulp nodig hebt bij het solderen, ga dan naar www.sparkfun.com/tutorials/213 om het op te frissen of kijk hoe de Geek Girl het uitlegt op https://www.youtube.com/embed/P5L4Gl6Q4Xo. Ik heb ook een kit die geschikt is voor beginners op

Ik begin graag met de weerstand omdat a) ze relatief hittebestendig zijn terwijl je in je soldeergroef komt en het strijkijzer op temperatuur komt, b) ze geen polariteit hebben, dus oriëntatie is niet kritisch, en c) ze zijn de laagste onderdeel op het bord, dus blijf goed zitten tijdens het solderen. Er zijn acht stroombeperkende weerstanden van 330 ohm, één voor elk van de LED's. Je kunt er één tegelijk doen, of alle acht tegelijk.

  • Buig de draden tot de breedte van de pads en plaats de weerstand.
  • Draai het bord om en soldeer de draden.
  • Trim de leads met flush cuts.
  • Sla ze nogmaals met het strijkijzer als je wilt dat ze indruk maken op je geekvrienden.

Stap 3: Coderen?

Code?
Code?
Code?
Code?
Code?
Code?
Code?
Code?

Als je mijn kit hebt gekocht, is de chip voorgeprogrammeerd en kun je doorgaan naar de volgende stap.

Ja, dit project heeft wat code nodig. En als je goed oplet, in stap 1 heb ik je verteld dat het programmeren van een Attiny niet triviaal was. Ik gebruik de Arduino, zijn programmeeromgeving, mijn AVR-programmeur en een pogo-pin-mal.

De chip kan worden geprogrammeerd voordat deze op zijn plaats wordt gesoldeerd (foto 2), of nadat deze op zijn plaats is gesoldeerd met behulp van de ISP-header aan de onderkant van de print (foto 3). In beide gevallen is de programmering als volgt:

  • Download de Arduino-programmeeromgeving.
  • Installeer ondersteuning voor de Attiny 85 vanuit:

    • https://highlowtech.org/?p=1695 (Arduino Tiny)
    • https://github.com/SpenceKonde/ATTinyCore (Attiny-kern)
  • Upload de "Arduino als ISP-schets": [Bestand] -> [Voorbeelden] -> [Arduino als ISP].
  • Bevestig het AVR-programmeerscherm en steek de lintkabel in de Attiny84-positie
  • Als u de Pogo-adapter gebruikt, plaatst u deze op de ISP-header op het bord. De positieve en negatieve pads zijn gemarkeerd, zodat u de kop correct kunt oriënteren.
  • Als u de chip gebruikt, plaatst u deze met pin één in de richting van de USB-connector.
  • Selecteer de juiste chip:

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

      • Chip "Attiny 84"
      • 8 MHz (intern)
      • Pintoewijzing "tegen de klok in"
  • Selecteer de programmeur, [Tools] -> [Programmer] -> [Arduino als ISP]
  • Stel de programmeerzekeringen in, [Tools] -> [Burn Bootloader]
  • Upload de bijgevoegde schets, [File] -> [Upload using programmer]

De grootste bron van fouten die ik krijg, is dat de pinnen niet correct zijn uitgelijnd.

Stap 4: Chip it

Chip it
Chip it
Chip it
Chip it
Chip it
Chip it
Chip it
Chip it

Nu uw chip code bevat, kunt u deze installeren. De oriëntatie van een DIP-chip ("dual inline package") wordt meestal aangegeven door een gat naast pin één, of een groef aan het uiteinde van de chip die pin één bevat, zoals hier het geval is.

  • Buig de draden tot 90 graden door ze tegen een plat oppervlak te drukken (foto's 1 & 2).
  • Lijn de chip uit met het symbool op de print en plaats de chip (foto 3).
  • Soldeer een pin aan weerszijden en controleer of de chip beide plat tegen de PCB ligt en of de oriëntatie correct is. Het wordt daarna echt moeilijk te repareren. Vertrouw me hierin.
  • Zodra u er zeker van bent dat het correct is geplaatst, soldeert u de resterende pinnen en knipt u ze vlak af.

Stap 5: Schakelaar en condensator

Schakelaar en condensator
Schakelaar en condensator
Schakelaar en condensator
Schakelaar en condensator

De drukknop gaat naast het IC, en de condensator aan de andere kant.

  • Druk de drukknop op zijn plaats (zorg ervoor dat deze zich in de juiste richting bevindt).
  • Soldeer het op zijn plaats.
  • Knip de draden van de achterkant.

De condensator heeft geen oriëntatie, maar als je de schrijfkant naar buiten doet, weten je nerdvrienden welke waarde je hebt gebruikt.

Stap 6: Schakelaar en batterijhouder

Schakelaar en batterijhouder
Schakelaar en batterijhouder
Schakelaar en batterijhouder
Schakelaar en batterijhouder
Schakelaar en batterijhouder
Schakelaar en batterijhouder
Schakelaar en batterijhouder
Schakelaar en batterijhouder

De schakelaar gaat met het niveau naar buiten gericht. Net als de andere items, soldeer je twee pinnen erin, controleer je of deze plat zitten en soldeer dan de rest.

De batterijhouder heeft een markering om de oriëntatie aan te geven, maar dat maakt niet uit. Het vereist echter nogal wat meer warmte dan gewone snoeren, en u moet ervoor zorgen dat het plat zit om de batterij op zijn plaats te houden (afbeelding 4).

Stap 7: LED's

LED's
LED's
LED's
LED's
LED's
LED's
LED's
LED's

Er is geen fatsoenlijk project dat niet ten minste één LED bevat. Dit heeft ACHT!

De lange kabel is positief (anode). Er is een "+"-teken op de zeefdruk en het kussen is vierkant. Als je ze alle acht tegelijk doet, houd ze dan omhoog om er zeker van te zijn dat alle oriëntaties correct zijn.

  • Soldeer één draad op elke LED.
  • Controleer de oriëntatie en of ze plat zitten (afbeelding 3).

    Als dat niet het geval is, drukt u met uw duim op de behuizing en verwarmt u het snoer opnieuw totdat het op zijn plaats klikt (afbeelding 4)

  • Soldeer de rest.
  • Knip de draden vast.

Stap 8: Check It Out

Image
Image
Draaitijd
Draaitijd

Op dit punt kunnen we nog steeds de LED's controleren en uitschakelen:

  • Plaats een batterij met de positieve kant naar buiten.
  • Schakel de spinner in en druk vervolgens op de knop totdat (hopelijk) alle LED's branden (zie de video).
  • Draai aan de spinner en bekijk het patroon. Als een LED niet oplicht, is deze mogelijk achterstevoren geïnstalleerd of is deze door hitte beschadigd. Soldeer hem los en plaats er een nieuwe in.

Probleemoplossen:

  • Als er geen LED's branden:

    • Zorg ervoor dat uw batterij goed is en in de juiste richting staat.
    • Heb je je chip geprogrammeerd? Staat het in de goede richting? Wordt het heet?
    • Zijn de LED's correct georiënteerd? Gebruik de knoopcel over de led-soldeerverbindingen om ze te testen?
  • Als de schakelaar de LED's niet laat knipperen:

    • Controleer de soldeerverbindingen op de LED.
    • Controleer de soldeerverbindingen op de Attiny.
  • Als al het andere faalt, maak en plaats dan foto's in hoge resolutie van de voor- en achterkant en vraag om hulp in de opmerkingen.

Stap 9: Draaitijd

Draaitijd
Draaitijd
Draaitijd
Draaitijd
Draaitijd
Draaitijd

Het lager wordt op zijn plaats gehouden door de behuizing aan de grote pad te solderen. Dit vergt geduld en veel warmte:

  • Gebruik zoiets als munten op een hard oppervlak om het lager te positioneren.
  • Verwarm zowel de pad als de lagerschaal totdat je soldeer op de behuizing ziet vloeien (het duurt even).
  • Herhaal aan de andere kant.
  • Controleer of het lager correct is uitgelijnd door de spinner te draaien.
  • Draai het bord om en soldeer twee punten aan de andere kant.

Stap 10: Is dit een revolutie?

Image
Image
Is dit een revolutie?
Is dit een revolutie?
Is dit een revolutie?
Is dit een revolutie?

Om berichten te tonen in plaats van alleen patronen, moeten we de positie van de spinner ten opzichte van de cirkel weten. We gebruiken een Hall-effectsensor en een magneet. Dit is vergelijkbaar met hoe verbrandingsmotoren weten wanneer ze de vonk moeten afvuren om het meeste vermogen te krijgen. Oriëntatie en uitlijning van zowel de sensor als de magneet zijn van cruciaal belang om dit te laten werken.

  • Het schrift op de voorkant van het apparaat wijst naar het lager dat overeenkomt met de zeefdruk (foto 1).
  • Lijn de hoogte uit tot net boven het lager (waar de magneet in de dop zal zijn).
  • Soldeer één draad.
  • Controleer de hoogte en voeding.
  • Soldeer de resterende draden.
  • Knip de draden vast.

Als u een omnipolaire sensor gebruikt, moet u de richting van de magneet bepalen. De beste manier om dit te doen is door een andere modus in te stellen dan het patroon uit de vorige stap en dan de kant van de magneet te zoeken waar de LED's beginnen te knipperen (zie video). Lijm de magneet met de kant die werkte naar buiten gericht. Controleer je werk dubbel.

Stap 11: Evenwichtsact

Evenwichtsoefening
Evenwichtsoefening
Evenwichtsoefening
Evenwichtsoefening

Als je de spinner horizontaal omhoog houdt met de batterij erin, zie je hem met de batterij naar beneden draaien. Ondanks mijn beste inspanningen om componenten uit te balanceren, is het nog steeds uit balans. U kunt wat gewicht toevoegen aan de niet-batterijzijde met behulp van een moer en bout, of wat soldeer aan de pad toevoegen.

Stap 12: U bent operationeel

Image
Image
Maar wacht, er is meer.
Maar wacht, er is meer.

Met je magneet en sensor op hun plaats, ben je klaar om de volledige awesomeness van je Geek Spinner te bekijken. De modus van de spinner wordt weergegeven door de LED die oplicht bij het opstarten of na een druk op de knop (D0 - D7). De modus wordt gewijzigd door op de knop te drukken (zie video).

int-modi = 8; // aantal beschikbare modi

// 0 -> tekst "Hallo wereld!" // 1 -> RPM // 2 -> tijd in seconden // 3 -> aantal spins // 4 -> aantal spins (totaal) // 5 -> patroon "lilly pad" // 6 -> vorm 1 (hart) // 7 -> vorm 2 (glimlach)

Stap 13: Maar wacht, er is meer.

Maar wacht, er is meer.
Maar wacht, er is meer.
Maar wacht, er is meer.
Maar wacht, er is meer.
Maar wacht, er is meer.
Maar wacht, er is meer.

De "hart"- en "smiley"-patronen zijn gemaakt door een polaire grafiek te gebruiken om te laten zien hoe de acht segmenten er elke 5 graden rotatie uit zouden zien.

Met de hand:

  • Download en print de afbeelding in volledige resolutie (afbeelding 1).
  • Vul de blokken in om je afbeelding te maken (afbeelding 2).
  • Bereken langs de radiaal, beginnend met een 0, de byte met zwart = 1, wit = 0;

    De eerste radiaal van het hart is 1, 0, 0, 0, 0, 0, 0, 0, dus de byte = 0b100000000;

  • Ga door totdat je klaar bent (hint, als je afbeelding symmetrisch is, hoef je maar de helft te doen).
  • Plak je bytes in het gedeelte "textAndShapes.h" van sketch onder "shape_1" of "shape_2".

Python gebruiken:

  • Installeer Python.
  • Installeer de afbeeldingsbibliotheek van Python.
  • Download het bijgevoegde "readGraph.py"-script.
  • Download afbeelding in volledige resolutie (afbeelding 1).
  • Open de afbeelding in je favoriete editor (GIMP of MS Paint).
  • Gebruik de opdracht "Vullen" met zwarte kleur geselecteerd om de segmenten te vullen die u wilt verlichten (afbeelding 2).
  • Sla de afbeelding op in dezelfde map als het "readGraph.py"-script en wijzig de bestandsnaam in het script zodat deze overeenkomt:

im = Afbeelding.open('hart.png')

Voer het script uit en plak de uitvoer in het gedeelte "textAndShapes.h" van sketch onder "shape_1" of "shape_2"

Hoe dan ook, deel je creatie (foto en code) in de comments!

Stap 14: Credits en laatste gedachten

Credits en laatste gedachten
Credits en laatste gedachten

Ik heb dit zeker niet allemaal zelf bedacht. Bij lange na niet.

  • Mijn eerste hands-on ervaring met POV was met een project van Nick Sayer genaamd de POV Twirlie: https://www.tindie.com/products/nsayer/pov-twirlie/. (Ik gebruik ook is pogo-adapter).
  • De gedachte "LED + Fidget spinner = POV" schoot in mijn hoofd na het zien van Techydiy's Instructable
  • Elke keer dat je een geweldig idee hebt, heeft iemand het al gedaan: https://www.instructables.com/id/POV-Arduino-Fidget-Spinner/. Surface mount solderen is iets wat ik kan doen, maar niet echt beginnersvriendelijk. Zijn code was ook een beetje boven mijn hoofd, maar ik gebruikte zijn ideeën over het weergeven van RPM en tellingen.
  • Ik kon fragmenten van Reger-men's POV Clock-code begrijpen en gebruiken om tekst weer te geven:

Geen enkel project is ooit compleet of perfect. Hier zijn enkele gedachten die ik heb voor de toekomst:

  • Balans: Gegevensbladen bevatten zelden informatie over het gewicht van de componenten, dus het is moeilijk om zelfs maar een weloverwogen schatting te maken over de balans zonder deze gewoon op te bouwen. De batterij is natuurlijk het zwaarste onderdeel. Ik heb gaten aan elk uiteinde toegevoegd, zodat ik indien nodig gewicht kon toevoegen om het in evenwicht te brengen.
  • Met de klok mee? Als het je is opgevallen, wordt de tekst alleen correct weergegeven als je met de klok mee draait. Door de andere kant op te draaien ontstaat er een spiegelbeeld. Door een tweede Hall-sensor of magneet toe te voegen, kunt u de draairichting afleiden (het project van Sean deed dit).
  • Kleur? Door programmeerbare RGB-LED's te gebruiken, kunt u kleuren doen. Ze zijn echter meestal op het oppervlak gemonteerd.

Aanbevolen: