Inhoudsopgave:

Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt - Ajarnpa
Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt - Ajarnpa

Video: Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt - Ajarnpa

Video: Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt - Ajarnpa
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, Juli-
Anonim
Image
Image
Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt
Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt
Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt
Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt

Wat Dit knoppenpaneel is gemaakt met behulp van een PCB en andere componenten die zijn vervaardigd door Sparkfun. Het wordt aangedreven door een Arduino Mega. Elke knop is lekker zacht en bevredigend om in te drukken, en het heeft een RGB-LED aan de binnenkant! Ik heb het gebruikt om animaties te besturen die ik heb gecodeerd in Processing. Het knoppenpaneel stuurt een bericht wanneer er op een knop wordt gedrukt, met de mededeling welke knop het was. Processing ontvangt deze berichten en verandert variabelen in de schets afhankelijk van wat er is ingedrukt.

Waarom

LED's zijn cool. Knoppen zijn leuk om in te drukken. Geanimeerde geometrische patronen zijn leuk. Ik wilde ze alle drie combineren. Ik nam dit project mee naar een feestje, projecteerde de visuals op de muur en liet mensen met de knoppen spelen. Het kan ook door een VJ op een meer performatieve manier worden gebruikt, net als een midi-controller, maar meer DIY.

Hoe

Dit project bestaat uit vier hoofdonderdelen.

Het bijgevoegde Youtube-filmpje geeft goed te zien hoe het knoppenpaneel in elkaar steekt. Deze Instructable behandelt dat, evenals de Arduino- en verwerkingscode - (aanvullende video's daarvoor zijn in de maak)

  1. Het toetsenblok in elkaar zetten - Begint in stap 1

    Dit houdt in dat de componenten worden voorbereid en op de print worden gesoldeerd

  2. De Arduino-code - begint in stap 10

    Hiervoor hebben we begrip nodig van matrixscanning, waar ik het over zal hebben.

  3. De verwerkingscode - begint in stap 24

    Er zijn hier eindeloze mogelijkheden, ik zal een voorbeeld bespreken dat ik tot nu toe heb gemaakt.

  4. De Arduino berichten naar Processing laten sturen - Stap 16 voor verzenden, Stap 30-31 voor ontvangen

    Dit is lekker simpel, het verstuurt het bericht over een seriële verbinding.

Peil

Ik probeer mijn tutorials zo te schrijven dat iemand met absoluut geen kennis op zijn minst kan volgen. Misschien vindt u het handig om eerst enkele inleidende tutorials over Processing te bekijken. Ik zou beginnen met het YouTube-kanaal van Daniel Shiffman.

Code

Alle code (Arduino en Processing) staat hier op mijn github.

Credits

Ik heb een heleboel geleerd van deze tutorial https://learn.sparkfun.com/tutorials/button-pad-ho… en veel van de Arduino-code komt daar vandaan, hoewel ik het heb bewerkt om iets anders te werken dan elk van de voorbeelden daar.

Stap 1: De componenten

De onderdelen!
De onderdelen!
De onderdelen!
De onderdelen!
De onderdelen!
De onderdelen!
De onderdelen!
De onderdelen!
  • 16 x 5 mm RGB-LED's (niet adresseerbare, alleen gewone gewone kathode)
  • 16 x 1N4148-diodes
  • Siliconen knoopkussen
  • Knoppenblok PCB
  • Arduino Mega
  • Startkabels

(Er zijn ook een heleboel dingen die je van Sparkfun kunt krijgen om het geheel wat netter te huisvesten, maar dit heb ik niet gedaan)

Stap 2: Bereid de diodes voor

Bereid de diodes voor
Bereid de diodes voor
Bereid de diodes voor
Bereid de diodes voor
Bereid de diodes voor
Bereid de diodes voor

Buig elke diode en duw deze vervolgens door de PCB.

Aan de knoopkant steken de pootjes uit, wat we niet willen. Dus haal de diode er weer uit en knip de pootjes kort. (Misschien heb je wat knipsels waarmee je de benen gelijk met het bord kunt knippen terwijl het er nog in zit, wat je leven gemakkelijker zal maken, maar ik had alleen een normale schaar, dus ik moest ze eruit trekken om ze kort genoeg te knippen.)

Het is super belangrijk om de pootjes te buigen en door de print heen te duwen voordat je ze afknipt. Als je ze eerst kort knipt, kun je ze niet in vorm buigen.

Maak 16 van deze kleine mierachtige dingetjes.

Stap 3: Soldeer de diodes op het bord

Soldeer de diodes op het bord
Soldeer de diodes op het bord
Soldeer de diodes op het bord
Soldeer de diodes op het bord
Soldeer de diodes op het bord
Soldeer de diodes op het bord

Plaats elk van de diodes terug in het bord. Het is belangrijk om de richting van de diode te controleren. Het heeft aan één kant een zwarte lijn die op één lijn ligt met de lijn op de printplaat. (Zie afbeelding)

De diodes op hun plaats krijgen is nogal onhandig, daarom zei ik dat als je knipsels hebt waarmee je de benen gelijk kunt knippen zonder ze te verwijderen, het je leven gemakkelijker zal maken. Ik had dat niet, dus ik gebruikte een pincet om ze terug te plaatsen, wat een beetje hielp.

Soldeer elk van de diodes op hun plaats.

Stap 4: Bereid de LED's voor

Bereid de LED's voor
Bereid de LED's voor
Bereid de LED's voor
Bereid de LED's voor
Bereid de LED's voor
Bereid de LED's voor
Bereid de LED's voor
Bereid de LED's voor

Duw de LED's door het bord en knip vervolgens de poten af. Net als bij de diodes; het is belangrijk om eerst de benen door het bord te duwen, om ze in de juiste hoeken te spreiden, voordat je de benen afsnijdt.

Het is een beetje vallen en opstaan om de benen op de juiste lengte te knippen. Als je ze te lang maakt, steken ze uit, maar te kort en het is moeilijk om de LED er weer in te krijgen.

Bereid 16 van deze kleine geamputeerde jongens voor.

Stap 5: Soldeer de LED's op het bord

Soldeer de LED's op het bord
Soldeer de LED's op het bord
Soldeer de LED's op het bord
Soldeer de LED's op het bord
Soldeer de LED's op het bord
Soldeer de LED's op het bord

Duw alle LED's terug in het bord.

Ook hier is de oriëntatie belangrijk. Een kant van de LED's heeft een platte rand en deze moet op één lijn liggen met de platte rand van de cirkel op het PCB-diagram. (Zie afbeelding)

Kijk of de LED's ver genoeg naar binnen zijn geduwd door de siliconen pad over het bord te plaatsen en te controleren of ze de ingedrukte knoppen niet hinderen.

Soldeer de LED's op het bord.

Opmerking: er is me sindsdien op gewezen dat, aangezien het niet zo veel uitmaakt als een stukje van de pootjes aan de achterkant uitsteekt, je de LED's er gewoon doorheen kunt duwen, ze aan de achterkant kunt solderen en dan de pootjes kunt afsnijden.

Stap 6: Ruim voldoende startkabels op

Sorteer genoeg startkabels
Sorteer genoeg startkabels

Laten we het even over het bord hebben. Het bord is gerangschikt in 4 kolommen en 4 rijen LED's/knoppen.

Elk van de kolommen heeft 2 aansluitingen nodig, een voor de LED-aarde en een voor de knopaarde. Elk van de rijen heeft 4 aansluitingen nodig, omdat we een aparte aansluiting nodig hebben voor de rode, groene en blauwe kanalen, evenals een aansluiting voor de knopinvoer. Hier zijn de kabelkleuren en pinnummers die ik voor elk van die verbindingen heb geselecteerd.

Rij Waar het voor is? Kabel kleur Pincode PCB-label
Rij 1 rood rood 22 ROOD1
Groente Groente 23 GROEN1
Blauw Blauw 30 BLAUW1
Knopinvoer Geel 31 SCHAKELAAR1
Rij 2 rood rood 24 ROOD 2
Groente Groente 25 GROEN2
Blauw Blauw 32 BLAUW2
Knopinvoer Geel 33 SCHAKELAAR2
Rij 3 rood rood 26 RED3
Groente Groente 27 GROEN3
Blauw Blauw 34 BLAUW3
Knopinvoer Geel 35 SCHAKELAAR3
Rij 4 rood rood 28 RED4
Groente Groente 29 GROEN4
Blauw Blauw 36 BLAUW4
Knopinvoer Geel 37 SCHAKELAAR4
Kolom Waar het voor is? Kabel kleur Pincode PCB-label
Kol 1 LED grond wit 38 LED-GND-1
Knop grond zwart 39 SWT-GND-1
Col 2 LED grond wit 40 LED-GND-2
Knop grond zwart 41 SWT-GND2
Kol 3 LED grond wit 42 LED-GND-3
Knop grond zwart 43 SWT-GND3
Col 4 LED grond wit 44 LED-GND4
Knop grond zwart 45 SWT-GND4

Stap 7: Bereid de startkabels voor

Bereid de startkabels voor
Bereid de startkabels voor
Bereid de startkabels voor
Bereid de startkabels voor

Elke startkabel heeft één mannelijk uiteinde nodig en één uiteinde dat is ontdaan van een paar mm draad. Ik gebruik graag een soort container om gestripte draadbits op te vangen, omdat ze anders overal in mijn flat terechtkomen en het is mogelijk erger dan glitter.

Stap 8: Soldeer de startkabels op het bord en sluit ze aan

Soldeer de startkabels aan het bord en sluit ze aan
Soldeer de startkabels aan het bord en sluit ze aan
Soldeer de startkabels aan het bord en sluit ze aan
Soldeer de startkabels aan het bord en sluit ze aan

Gebruik de kaart van een paar stappen terug om de kabels op de juiste plaatsen op de PCB te solderen en in de juiste pinnen op de Arduino te steken.

Stap 9: Bouw klaar

Bouw klaar!
Bouw klaar!

Neem even de tijd om feestelijk op enkele (nog niet-functionele) knoppen te drukken en laten we dan wat code gebruiken!

Stap 10: Schematisch

Schematisch
Schematisch

Dit is een schema van de printplaat en de dingen die we erop hebben gesoldeerd.

De grijze vakken vertegenwoordigen elk een van de knop / LED-combo's. Als dit er super ingewikkeld uitziet (dat deed ik de eerste keer dat ik het zag), maak je dan geen zorgen, ik ga het opsplitsen.

Als je de code zelf wilt bekijken, staat deze hier op mijn github.

Stap 11: Alleen de knoppen

Alleen de knoppen
Alleen de knoppen
Alleen de knoppen
Alleen de knoppen

De LED's en de knoppen zijn eigenlijk gescheiden van elkaar (afgezien van dat ze allemaal op de Arduino zijn aangesloten), dus laten we eerst naar de knoppen kijken.

Elke grijze doos bevat één knop en een diode (degene die we hebben gesoldeerd - ik zal het doel van die in een beetje uitleggen).

Opmerking: ik weet zeker dat dit voor sommige mensen heel duidelijk is, maar ik was er niet zeker van toen ik dit voor het eerst begon uit te zoeken, dus ik zal het zeggen! De rijen (in groen) en de kolommen (in blauw) zijn niet met elkaar verbonden, ze zijn gewoon over elkaar heen gelegd. Dingen zijn alleen verbonden waar er een kleine zwarte stip is. Het sluiten van een van de knopschakelaars creëert echter wel een verbinding tussen de rij en de kolom.

Stap 12: Knoppen instellen

Knoppen instellen
Knoppen instellen
Knoppen instellen
Knoppen instellen
Knoppen instellen
Knoppen instellen

Voor de knoppen gaan we de kolommen gebruiken als uitvoer en de rijen als invoer.

We kunnen controleren of er op een knop wordt gedrukt, want als er een verbinding is tussen een rij en een kolom, zal de spanning van de uitgang de ingang bereiken. Om te beginnen voeren we in de setup() een hoge spanning uit naar alle kolommen. We hebben de rijen ingesteld als pull-up-invoer, wat betekent dat ze standaard ook hoog lezen.

Stap 13: Scannen

Scannen
Scannen
Scannen
Scannen
Scannen
Scannen

In de lus gaat een functie met de naam scan() één kolom tegelijk door en stelt de spanning in op laag.

Vervolgens kijkt het naar elke rij met knopverbindingen om te zien of er een laag staat.

Als een knoprij laag is, betekent dit dat de knop die die rij en kolom verbindt, is ingedrukt.

Stap 14: Niet alle druk op de knop is gelijk gemaakt

Als de knop snel en stevig wordt ingedrukt, zal de spanningsoverdracht van de kolom naar de rij mooi schoon zijn.

Als het echter een beetje langzaam of wankel wordt geduwd, kan de spanning een beetje schommelen totdat er een goede verbinding is tussen het knoppenpaneel en de contacten op de print.

Dit betekent dat een druk op de knop waarvan een mens denkt dat het er maar één is, door de arduino kan worden geïnterpreteerd als verschillende afzonderlijke drukken.

Aanbevolen: