Innholdsfortegnelse:

Arduino LED -knappepute som driver behandling av animasjoner: 36 trinn (med bilder)
Arduino LED -knappepute som driver behandling av animasjoner: 36 trinn (med bilder)

Video: Arduino LED -knappepute som driver behandling av animasjoner: 36 trinn (med bilder)

Video: Arduino LED -knappepute som driver behandling av animasjoner: 36 trinn (med bilder)
Video: Amazing arduino project 2024, November
Anonim
Image
Image
Arduino LED -knappepute som driver behandling av animasjoner
Arduino LED -knappepute som driver behandling av animasjoner
Arduino LED -knappepute som driver behandling av animasjoner
Arduino LED -knappepute som driver behandling av animasjoner

Hva Denne knappputen er laget av en PCB og andre komponenter produsert av Sparkfun. Den drives av en Arduino Mega. Hver knapp er fin og squishy og tilfredsstillende å trykke på, og den har en RGB LED inni! Jeg har brukt den til å kontrollere animasjoner jeg har kodet i Processing. Knappene sender en melding når en knapp trykkes, og sier hvilken knapp det var. Behandlingen mottar disse meldingene og endrer variabler i skissen avhengig av hva som ble trykket.

Hvorfor

Lysdioder er kule. Knapper er morsomme å trykke på. Animerte geometriske mønstre er fine. Jeg ønsket å kombinere alle tre. Jeg tok dette prosjektet til en fest, projiserte det visuelle på veggen og lot folk leke med knappene. Det kan også brukes av en VJ på en mer performativ måte, omtrent som en midi -kontroller, men mer DIY.

Hvordan

Det er fire hoveddeler i dette prosjektet.

Den vedlagte Youtube -videoen gir en god titt på hvordan knappeputen henger sammen. Denne instruksen dekker det så vel som Arduino- og behandlingskoden - (flere videoer for de som er under arbeid)

  1. Å sette knappeknappen sammen - Starter i trinn 1

    Dette innebærer å forberede komponentene og lodde dem til PCB

  2. Arduino -koden - starter i trinn 10

    For dette trenger vi en forståelse av matriseskanning, som jeg vil snakke gjennom.

  3. Behandlingskoden - starter i trinn 24

    Det er uendelige muligheter her. Jeg skal snakke gjennom ett eksempel jeg har laget så langt.

  4. Få Arduino til å sende meldinger til Processing - Trinn 16 for sending, Trinn 30-31 for mottak

    Dette er fint og enkelt, det sender meldingen over en seriell tilkobling.

Nivå

Jeg prøver å skrive opplæringen min på en slik måte at noen med absolutt ingen kunnskap i det minste kan følge med. Det kan være nyttig å først se noen introduksjonsopplæringer om behandling. Jeg ville begynne med Daniel Shiffmans YouTube -kanal.

Kode

All koden (Arduino og prosessering) er på githuben min her.

Studiepoeng

Jeg lærte en haug fra denne opplæringen https://learn.sparkfun.com/tutorials/button-pad-ho… og mye av Arduino-koden er derfra, selv om jeg har redigert den for å fungere litt annerledes enn noen av eksemplene der.

Trinn 1: Komponentene

Komponentene!
Komponentene!
Komponentene!
Komponentene!
Komponentene!
Komponentene!
Komponentene!
Komponentene!
  • 16 x 5 mm RGB -lysdioder (ikke adresserbare, bare vanlige katodene)
  • 16 x 1N4148 dioder
  • Knappepute i silikon
  • Knappeplate PCB
  • Arduino Mega
  • Hoppekabler

(Det er også en haug med ting du kan få fra Sparkfun for å huse det hele litt mer pent, men jeg har ikke gjort dette)

Trinn 2: Forbered dioder

Forbered dioder
Forbered dioder
Forbered dioder
Forbered dioder
Forbered dioder
Forbered dioder

Bøy hver diode og skyv den deretter gjennom kretskortet.

Bena stikker ut på knappesiden, noe vi ikke vil ha. Så ta ut dioden igjen og kutt beina. (Du kan ha noen snips som lar deg klippe bena i flukt med brettet mens det fortsatt er der, noe som vil gjøre livet ditt lettere, men jeg hadde bare en vanlig saks, så jeg måtte trekke dem ut for å klippe dem kort nok.)

Det er super viktig å bøye bena og skyve dem gjennom PCB før du klipper dem korte. Hvis du kutter dem først først, vil du ikke kunne bøye dem til form.

Lag 16 av disse små maurlignende tingene.

Trinn 3: Lodd dioder på brettet

Loddioder på bordet
Loddioder på bordet
Loddioder på bordet
Loddioder på bordet
Loddioder på bordet
Loddioder på bordet

Plasser hver av dioder tilbake i brettet. Det er viktig å sjekke retningen til dioden. Den har en svart linje på den ene siden som er på linje med linjen på PCB. (Se bildet)

Å få dioder på plass er litt rotete, og det er derfor jeg sa at hvis du har snips som lar deg kutte beina uten å fjerne dem, vil det gjøre livet ditt lettere. Jeg hadde ikke det, så jeg brukte pinsett til å plassere dem tilbake, noe som hjalp litt.

Lodd hver av dioder på plass.

Trinn 4: Forbered lysdiodene

Forbered lysdiodene
Forbered lysdiodene
Forbered lysdiodene
Forbered lysdiodene
Forbered lysdiodene
Forbered lysdiodene
Forbered lysdiodene
Forbered lysdiodene

Skyv lysdiodene gjennom brettet og klipp deretter av bena. Akkurat som med dioder; Det er viktig å skyve bena gjennom brettet først, for å få dem spredt til riktige vinkler, før du skjærer bena.

Det er litt prøving og feiling med å kutte beina til riktig lengde. Hvis du gjør dem for lange, stikker de ut, men for korte, og det er vanskelig å få LED -en tilbake.

Forbered 16 av disse små amputerte gutta.

Trinn 5: Lodd lysdiodene på brettet

Lodd lysdiodene på brettet
Lodd lysdiodene på brettet
Lodd lysdiodene på brettet
Lodd lysdiodene på brettet
Lodd lysdiodene på brettet
Lodd lysdiodene på brettet

Skyv alle lysdiodene tilbake i brettet.

Orienteringen er viktig igjen her. Den ene siden av lysdiodene har en flat kant, og denne skal være på linje med den flate kanten av sirkelen på PCB -diagrammet. (Se bildet)

Se om lysdiodene skyves langt nok inn ved å legge silikonputen over brettet og kontrollere at de ikke forstyrrer knappene som skyves.

Lodd lysdiodene på brettet.

Merk: Det har siden blitt påpekt for meg at siden det ikke betyr så mye om litt av beina stikker ut på baksiden, kan du bare skyve lysdiodene gjennom, lodde dem på baksiden og deretter kutte bena av.

Trinn 6: Sorter ut nok hoppekabler

Sorter ut nok hoppekabler
Sorter ut nok hoppekabler

La oss snakke litt om brettet. Brettet er ordnet i 4 kolonner og 4 rader med lysdioder/knapper.

Hver av kolonnene krever 2 tilkoblinger, en for LED -bakken og en for knappens bakke. Hver av radene krever 4 tilkoblinger, fordi vi trenger en separat tilkobling for de røde, grønne og blå kanalene, samt en tilkobling for Her er kabelfargene og pin -tallene jeg valgte for hver av disse tilkoblingene.

Rad Hva det er til Kabelfarge PIN-kode PCB -etikett
Rad 1 rød rød 22 RØD1
Grønn Grønn 23 GRØNN1
Blå Blå 30 BLÅ1
Knappinngang Gul 31 BRYTER 1
Rad 2 rød rød 24 RØD2
Grønn Grønn 25 GRØNN2
Blå Blå 32 BLÅ2
Knappinngang Gul 33 BRYTER2
Rad 3 rød rød 26 RØD3
Grønn Grønn 27 GRØNN 3
Blå Blå 34 BLÅ3
Knappinngang Gul 35 BRYTER 3
Rad 4 rød rød 28 RØD4
Grønn Grønn 29 GRØNN 4
Blå Blå 36 BLÅ4
Knappinngang Gul 37 BRYTER 4
Kolonne Hva det er til Kabelfarge PIN-kode PCB -etikett
Kol 1 LED bakken Hvit 38 LED-GND-1
Knappjord Svart 39 SWT-GND-1
Kol 2 LED bakken Hvit 40 LED-GND-2
Knappjord Svart 41 SWT-GND2
Kol 3 LED bakken Hvit 42 LED-GND-3
Knappjord Svart 43 SWT-GND3
Kol 4 LED bakken Hvit 44 LED-GND4
Knappjord Svart 45 SWT-GND4

Trinn 7: Forbered hoppekablene

Klargjør hoppekablene
Klargjør hoppekablene
Klargjør hoppekablene
Klargjør hoppekablene

Hver startkabel trenger en hannende, og en ende som er strippet for noen få mm ledning. Jeg liker å bruke en slags beholder for å fange avskårne trådbiter, for ellers havner de over hele leiligheten min og er muligens verre enn glitter.

Trinn 8: Lodd jumperkablene til brettet og sett dem inn

Lodd jumperkablene til brettet og sett dem inn
Lodd jumperkablene til brettet og sett dem inn
Lodd jumperkablene til brettet og sett dem inn
Lodd jumperkablene til brettet og sett dem inn

Bruk diagrammet fra et par skritt tilbake for å få kablene loddet til de riktige stedene på kretskortet, og plugget inn i de riktige pinnene på Arduino.

Trinn 9: Bygg ferdig

Bygg ferdig!
Bygg ferdig!

Ta et lite øyeblikk til å feire trykk på noen (ennå ikke -funksjonelle) knapper, og la oss deretter komme inn på noen kode!

Trinn 10: Skjematisk

Skjematisk
Skjematisk

Dette er en skjematisk oversikt over PCB og tingene vi har loddet til det.

De grå boksene representerer hver av knappene / LED -kombinasjonene. Hvis dette ser super komplisert ut (det gjorde meg første gangen jeg så det), så ikke bekymre deg, jeg kommer til å bryte det ned.

Hvis du bare vil se gjennom koden selv, er den på githuben min her.

Trinn 11: Bare knappene

Bare knappene
Bare knappene
Bare knappene
Bare knappene

Lysdiodene og knappene er faktisk atskilt fra hverandre (bortsett fra at alle er koblet til Arduino), så det er bare å se på knappene først.

Hver grå boks inneholder en knapp og en diode (de vi loddet på - jeg skal forklare formålet med dem om litt).

Merk: Jeg er sikker på at dette er veldig åpenbart for noen mennesker, men jeg var ikke sikker på det da jeg først begynte å finne ut av dette, så jeg skal si det! Radene (i grønt) og kolonnene (i blått) er ikke koblet sammen, de er bare lagt på tvers av hverandre. Ting er bare koblet til der det er en liten svart prikk. Å lukke en av knappbryterne skaper imidlertid en forbindelse mellom raden og kolonnen.

Trinn 12: Sett opp knappestifter

Sett opp knappestifter
Sett opp knappestifter
Sett opp knappestifter
Sett opp knappestifter
Sett opp knappestifter
Sett opp knappestifter

For knappene skal vi bruke kolonnene som utganger og radene som innganger.

Vi kan sjekke om en knapp trykkes fordi hvis det er en forbindelse mellom en rad og en kolonne, vil spenningen fra utgangen nå inngangen. For å starte, i oppsettet () sender vi ut en høyspenning til alle kolonnene. Vi setter radene til å trekke opp innganger, noe som betyr at de som standard også leser høyt.

Trinn 13: Skanning

Skanning
Skanning
Skanning
Skanning
Skanning
Skanning

I sløyfen går en funksjon som kalles scan () gjennom en kolonne om gangen og setter spenningen til å være lav.

Deretter ser den på hver knappeforbindelsesrad for å se om noen av dem leser lavt.

Hvis en knapprad leser lavt, betyr det at knappen som forbinder den raden og kolonnen har blitt trykket.

Trinn 14: Ikke alle knappetrykk skapes like

Hvis knappen trykkes raskt og fast, vil spenningsoverføringen fra kolonnen til raden være fin og ren.

Imidlertid, hvis den presses litt sakte eller vanvittig, kan spenningen rive litt til det er en god forbindelse mellom knappeknappen og kontaktene på kretskortet.

Dette betyr at et knappetrykk som et menneske tror er bare ett, kan tolkes av arduinoen som flere separate trykk.

Anbefalt: