Indholdsfortegnelse:

Arduino LED -knap, der driver behandling af animationer: 36 trin (med billeder)
Arduino LED -knap, der driver behandling af animationer: 36 trin (med billeder)

Video: Arduino LED -knap, der driver behandling af animationer: 36 trin (med billeder)

Video: Arduino LED -knap, der driver behandling af animationer: 36 trin (med billeder)
Video: NOOBS PLAY CLASH ROYALE FROM START LIVE 2024, November
Anonim
Image
Image
Arduino LED -knap, der driver behandling af animationer
Arduino LED -knap, der driver behandling af animationer
Arduino LED -knap, der driver behandling af animationer
Arduino LED -knap, der driver behandling af animationer

Denne knapplade er fremstillet ved hjælp af et printkort og andre komponenter fremstillet af Sparkfun. Den er drevet af en Arduino Mega. Hver knap er fin og squishy og tilfredsstillende at trykke på, og den har en RGB LED indeni! Jeg har brugt den til at styre animationer, jeg har kodet i Processing. Tastaturet sender en besked, når der trykkes på en knap, og siger hvilken knap det var. Behandling modtager disse meddelelser og ændrer variabler i skitsen afhængigt af, hvad der blev trykket på.

Hvorfor

Lysdioder er fede. Knapper er sjove at trykke på. Animerede geometriske mønstre er flotte. Jeg ville kombinere alle tre. Jeg tog dette projekt til en fest, projicerede det visuelle på væggen og lod folk lege med knapperne. Det kunne også bruges af en VJ på en mere performativ måde, meget gerne en midi -controller, men mere DIY.

Hvordan

Der er fire hoveddele til dette projekt.

Den vedhæftede Youtube -video giver et godt kig på, hvordan tastaturet hænger sammen. Denne instruktionsbog dækker såvel Arduino- og behandlingskoden - (yderligere videoer til dem er under udarbejdelse)

  1. Sammensætning af tastaturet - Starter i trin 1

    Dette indebærer at forberede komponenterne og lodde dem til printkortet

  2. Arduino -koden - Starter i trin 10

    Til dette har vi brug for en forståelse af matrixscanning, som jeg vil tale igennem.

  3. Behandlingskoden - starter i trin 24

    Der er uendelige muligheder her, jeg vil gennemgå et eksempel, jeg har lavet hidtil.

  4. Få Arduino til at sende beskeder til Processing - Trin 16 til afsendelse, Trin 30-31 til modtagelse

    Dette er pænt og enkelt, det sender beskeden via en seriel forbindelse.

Niveau

Jeg prøver at skrive mine tutorials på en sådan måde, at en person med absolut ingen viden overhovedet i det mindste kan følge med. Du vil måske finde det nyttigt først at se nogle indledende selvstudier om behandling. Jeg ville starte med Daniel Shiffmans YouTube -kanal.

Kode

Hele koden (Arduino og Processing) er på min github her.

Credits

Jeg lærte en masse fra denne vejledning https://learn.sparkfun.com/tutorials/button-pad-ho… og meget af Arduino-koden er derfra, selvom jeg har redigeret den til at fungere lidt anderledes end nogen af eksemplerne der.

Trin 1: Komponenterne

Komponenterne!
Komponenterne!
Komponenterne!
Komponenterne!
Komponenterne!
Komponenterne!
Komponenterne!
Komponenterne!
  • 16 x 5 mm RGB -lysdioder (ikke adresserbare, bare almindelige almindelige katodele)
  • 16 x 1N4148 dioder
  • Silikoneknapunderlag
  • Knapplade PCB
  • Arduino Mega
  • Jumper kabler

(Der er også en masse ting, du kan få fra Sparkfun til at huse det hele lidt mere pænt, men jeg har ikke gjort dette)

Trin 2: Forbered dioderne

Forbered dioderne
Forbered dioderne
Forbered dioderne
Forbered dioderne
Forbered dioderne
Forbered dioderne

Bøj hver diode, og skub den derefter gennem printet.

Benene stikker ud på knappen side, hvilket vi ikke ønsker. Så tag dioden ud igen og klip benene korte. (Du har måske nogle snips, der lader dig skære benene i flugt med brættet, mens det stadig er derinde, hvilket vil gøre dit liv lettere, men jeg havde kun en normal saks, så jeg var nødt til at trække dem ud for at klippe dem kort nok.)

Det er super vigtigt at bøje benene og skubbe dem gennem printet, før du klipper dem korte. Hvis du først klipper dem korte, vil du ikke være i stand til at bøje dem i form.

Lav 16 af disse små myre-lignende ting.

Trin 3: Lod loddioderne på tavlen

Lod loddioderne på tavlen
Lod loddioderne på tavlen
Lod loddioderne på tavlen
Lod loddioderne på tavlen
Lod loddioderne på tavlen
Lod loddioderne på tavlen

Læg hver af dioderne tilbage i tavlen. Det er vigtigt at kontrollere diodernes retning. Den har en sort streg på den ene side, som stemmer overens med linjen på printkortet. (Se billede)

Det er lidt besværligt at få dioderne på plads, og derfor sagde jeg, at hvis du har snips, der lader dig skære benene uden at fjerne dem, vil det gøre dit liv lettere. Det havde jeg ikke, så jeg brugte en pincet til at placere dem tilbage, hvilket hjalp lidt.

Lod hver af dioderne på plads.

Trin 4: Forbered lysdioderne

Forbered lysdioderne
Forbered lysdioderne
Forbered lysdioderne
Forbered lysdioderne
Forbered lysdioderne
Forbered lysdioderne
Forbered lysdioderne
Forbered lysdioderne

Skub lysdioderne gennem brættet, og skær derefter benene af. Ligesom med dioderne; det er vigtigt at skubbe benene først gennem brættet, for at få dem spredt til de korrekte vinkler, før man skærer benene.

Der er lidt prøvelse og fejl med at skære benene i den rigtige længde. Hvis du gør dem for lange, vil de stikke ud, men for korte, og det er svært at få lysdioden tilbage.

Forbered 16 af disse små amputerede gutter.

Trin 5: Lodd lysdioderne på bordet

Lodde lysdioderne på bordet
Lodde lysdioderne på bordet
Lodde lysdioderne på tavlen
Lodde lysdioderne på tavlen
Lodde lysdioderne på bordet
Lodde lysdioderne på bordet

Skub alle LED'erne tilbage i kortet.

Orienteringen er vigtig igen her. Den ene side af lysdioderne har en flad kant, og denne skal stemme overens med den flade kant af cirklen på printkortet. (Se billede)

Se om lysdioderne er skubbet langt nok ind ved at lægge silikonepuden over brættet og kontrollere, at de ikke forstyrrer knapperne, der skubbes.

Lodde LED'erne på brættet.

Bemærk: Det er siden blevet påpeget for mig, at da det ikke betyder så meget, hvis lidt af benene stikker ud på ryggen, kan du bare skubbe lysdioderne igennem, lodde dem bagpå og derefter skære benene af.

Trin 6: Sortér nok jumperkabler

Sortér nok jumperkabler
Sortér nok jumperkabler

Lad os tale lidt om tavlen. Tavlen er arrangeret i 4 kolonner og 4 rækker lysdioder/knapper.

Hver af kolonnerne kræver 2 forbindelser, en til LED -jorden og en til knapbunden. Hver af rækkerne kræver 4 forbindelser, fordi vi har brug for en separat forbindelse til de røde, grønne og blå kanaler samt en forbindelse til Her er de kabelfarver og pin -numre, jeg valgte for hver af disse forbindelser.

Række Hvad det er til Kabelfarve Pinkode PCB -etiket
Række 1 Rød Rød 22 RØD1
Grøn Grøn 23 GRØN1
Blå Blå 30 BLÅ1
Knapindgang Gul 31 SKIFT 1
Række 2 Rød Rød 24 RØD2
Grøn Grøn 25 GRØN2
Blå Blå 32 BLÅ2
Knapindgang Gul 33 SKIFT 2
Række 3 Rød Rød 26 RØD3
Grøn Grøn 27 GRØN3
Blå Blå 34 BLÅ3
Knapindgang Gul 35 SKIFT 3
Række 4 Rød Rød 28 RØD4
Grøn Grøn 29 GRØN4
Blå Blå 36 BLÅ4
Knapindgang Gul 37 SKIFT 4
Kolonne Hvad det er til Kabelfarve Pinkode PCB -etiket
Kol 1 LED jord hvid 38 LED-GND-1
Knap jord Sort 39 SWT-GND-1
Kol 2 LED jord hvid 40 LED-GND-2
Knap jord Sort 41 SWT-GND2
Kol 3 LED jord hvid 42 LED-GND-3
Knap jord Sort 43 SWT-GND3
Kol 4 LED jord hvid 44 LED-GND4
Knap jord Sort 45 SWT-GND4

Trin 7: Klargør jumperkablerne

Klargør jumperkablerne
Klargør jumperkablerne
Klargør jumperkablerne
Klargør jumperkablerne

Hvert jumperkabel har brug for en han -ende og en ende, der er fjernet fra et par mm ledning. Jeg kan godt lide at bruge en slags beholder til at fange afskårne trådbits, da de ellers ender overalt i min lejlighed og muligvis værre end glitter.

Trin 8: Lod lod jumperkablerne til kortet og sæt dem i

Lod lod jumperkablerne til brættet, og sæt dem i
Lod lod jumperkablerne til brættet, og sæt dem i
Lod lod jumperkablerne til brættet, og sæt dem i
Lod lod jumperkablerne til brættet, og sæt dem i

Brug diagrammet fra et par trin tilbage for at få kablerne loddet til de korrekte steder på printkortet og sat i de rigtige stifter på Arduino.

Trin 9: Byg klar

Byg klar!
Byg klar!

Brug et lille øjeblik på at fejre tryk på nogle (endnu ikke -funktionelle) knapper og lad os derefter komme ind på en kode!

Trin 10: Skematisk

Skematisk
Skematisk

Dette er en skematisk af PCB og de ting, vi har loddet til det.

De grå kasser repræsenterer hver en af knapperne / LED -kombinationerne. Hvis dette ser super kompliceret ud (det gjorde mig første gang, jeg så det), så rolig, jeg vil bryde det ned.

Hvis du bare selv vil kigge koden igennem, er den på min github her.

Trin 11: Bare knapperne

Bare knapperne
Bare knapperne
Bare knapperne
Bare knapperne

Lysdioderne og knapperne er faktisk adskilt fra hinanden (bortset fra at alle er forbundet til Arduino), så lad os bare se på knapperne først.

Hver grå boks indeholder en knap og en diode (dem vi lodde på - jeg forklarer formålet med dem om lidt).

Bemærk: Jeg er sikker på, at dette er superindlysende for nogle mennesker, men jeg var ikke sikker på det, da jeg først begyndte at finde ud af dette, så jeg vil sige det! Rækkerne (i grønt) og kolonnerne (i blåt) er ikke forbundet, de er bare lagt på tværs af hinanden. Ting er kun forbundet, hvor der er en lille sort prik. Ved at lukke en af knapkontakterne skabes der imidlertid en forbindelse mellem rækken og kolonnen.

Trin 12: Konfigurer knapnåle

Opsæt knapnåle
Opsæt knapnåle
Opsæt knapnåle
Opsæt knapnåle
Opsæt knapnåle
Opsæt knapnåle

For knapperne vil vi bruge kolonnerne som output og rækkerne som input.

Vi vil være i stand til at kontrollere, om der trykkes på en knap, for hvis der er en forbindelse mellem en række og en kolonne, vil spændingen fra udgangen nå input. For at starte, sender vi i opsætningen () en høj spænding til alle kolonnerne. Vi satte rækkerne til at være pull up -input, hvilket betyder, at de som standard også læser højt.

Trin 13: Scanning

Scanning
Scanning
Scanning
Scanning
Scanning
Scanning

I sløjfen går en funktion kaldet scan () gennem en kolonne ad gangen og indstiller dens spænding til at være lav.

Derefter ser den på hver knapforbindelsesrække for at se, om nogen af dem læser lavt.

Hvis en knaprække læser lavt, betyder det, at den knap, der forbinder den række og kolonne, er blevet skubbet.

Trin 14: Ikke alle knaptryk skabes lige

Hvis knappen trykkes hurtigt og fast, vil spændingsoverførslen fra søjlen til rækken være pæn og ren.

Men hvis det skubbes lidt langsomt eller vanvittigt, kan spændingen rystes lidt, indtil der er en god forbindelse mellem knappladen og kontakterne på printkortet.

Det betyder, at et tryk på et knap, som et menneske tror er kun et, kan fortolkes af arduinoen som flere separate tryk.

Anbefalede: