Inhoudsopgave:
- Stap 1: De componenten
- Stap 2: Bereid de diodes voor
- Stap 3: Soldeer de diodes op het bord
- Stap 4: Bereid de LED's voor
- Stap 5: Soldeer de LED's op het bord
- Stap 6: Ruim voldoende startkabels op
- Stap 7: Bereid de startkabels voor
- Stap 8: Soldeer de startkabels op het bord en sluit ze aan
- Stap 9: Bouw klaar
- Stap 10: Schematisch
- Stap 11: Alleen de knoppen
- Stap 12: Knoppen instellen
- Stap 13: Scannen
- Stap 14: Niet alle druk op de knop is gelijk gemaakt
Video: Arduino LED-knoppenblok dat verwerkingsanimaties aanstuurt - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
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)
-
Het toetsenblok in elkaar zetten - Begint in stap 1
Dit houdt in dat de componenten worden voorbereid en op de print worden gesoldeerd
-
De Arduino-code - begint in stap 10
Hiervoor hebben we begrip nodig van matrixscanning, waar ik het over zal hebben.
-
De verwerkingscode - begint in stap 24
Er zijn hier eindeloze mogelijkheden, ik zal een voorbeeld bespreken dat ik tot nu toe heb gemaakt.
-
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
- 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
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
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
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
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
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
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
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
Neem even de tijd om feestelijk op enkele (nog niet-functionele) knoppen te drukken en laten we dan wat code gebruiken!
Stap 10: 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
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
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
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:
Living Pixels - Stel je voor dat technologie leven heeft: 4 stappen (met afbeeldingen)
Living Pixels - Imagine Technology Has Life: Aangezien smarthome-producten steeds vaker voorkomen in ons leven, ben ik gaan nadenken over de relatie tussen mensen en deze producten. Als smart home-producten op een dag een onmisbaar onderdeel van ieders leven worden, welke houding moeten we dan aannemen
Nike LED-swoosh! Dit is een geweldig decor voor een kamer. Dit is het enige project dat iedereen kan herhalen: 5 stappen
Nike LED-swoosh! Dit is een geweldig decor voor een kamer. Dit is het enige project dat iedereen kan herhalen.: Gereedschap - meetlint - schroevendraaier - soldeerbout - copingzaag - elektrische boor - schuurpapier Benodigdheden - LED-strip (RGB) 5 m - LED-controller - Voeding 12V 4A-hout 50-50-1500 2x-hout 20-20-3000 2x-multiplex 500-1000mm-schroeven (45mm) 150x-schroeven (35mm) 30x-scr
Als dit, dan dat: draagbare Arduino-console: 5 stappen
Als dit, dan dat: draagbare Arduino-console: dit is een eenvoudig schietspel. Je beweegt de speler met twee capacitieve aanraakmodules en je schiet door harde geluiden te maken, zoals klappen, schreeuwen of schudden met de doos. Onderdelen die ik heb gebruikt: Arduino Uno Arduino a000096 tft scherm 2 TTP223B Touch Module
Arduino Singleplayer Pong - Als dit, dan dat: 5 stappen
Arduino Singleplayer Pong- If This, Then That: Dit arduino-project is gebaseerd op een 2-speler pong-project hier op instructables(https://www.instructables.com/id/Portable-Arduino-a…) maar dit project is single player met een simpele AI.Onderdelen: Arduino Uno Nokia 5100 scherm. https://ww
Geleidende lijm en geleidende draad: maak een LED-display en een stoffen circuit dat oprolt. 7 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Geleidende lijm en geleidende draad: maak een LED-display en een stoffen circuit dat oprolt: maak uw eigen geleidende stoffen, draad, lijm en tape en gebruik ze om potentiometers, weerstanden, schakelaars, LED-displays en circuits te maken. en geleidende draad kunt u LED-displays en circuits maken op elke flexibele stof