Turinys:

Klaviatūros modulio fortepijonas su RGB LED: 5 žingsniai (su paveikslėliais)
Klaviatūros modulio fortepijonas su RGB LED: 5 žingsniai (su paveikslėliais)

Video: Klaviatūros modulio fortepijonas su RGB LED: 5 žingsniai (su paveikslėliais)

Video: Klaviatūros modulio fortepijonas su RGB LED: 5 žingsniai (su paveikslėliais)
Video: FORTEPIJONAS - "NYKŠTUKAI" - NIDA ARDZEVIČIŪTĖ 2024, Lapkritis
Anonim
Image
Image
Reikalingos medžiagos
Reikalingos medžiagos

Įvadas

Sveikos ponios ir ponai, sveiki atvykę į mano pirmą pamokomą pamoką! Šiandien aš mokysiu jus, kaip sukurti fortepijoną, kurio pagrindiniai komponentai yra klaviatūros modulis ir pjezo garsinis signalas, ir leisti jam groti DO-RE-MI ir pan.

Dažniausiai naudojamas klaviatūros modulis yra klaviatūra kartu su arduino RFID, kad būtų sukurta vertingų daiktų seifas. Šiuo atveju aš pakeičiau klaviatūrą, užuot apsaugojusi ką nors, nusprendžiu kalbėti paprastu džiaugsmu ir muzika.

Idėjos koncepcija

Šios kūrybos idėja išsivystė iš paprastos laimingos atminties grojant ksilofonu, kai buvau jaunesnė muzikos klasėje. Džiaugsmas ir jaudulys, skriejantis per mano kūną, buvo didžiausias, turiu omenyje, kad kiekvienas vaikas buvo lengvai patenkintas, o mano pasitenkinimas - grojimas ksilofonu.

Tyrimai

Po to, kai užsidega jūsų idėjos lemputė, reikia šiek tiek ištirti. Kurį laiką naršęs internete, galiu rasti savo idėją, apie kurią iš pradžių pagalvojau! Klaviatūros modulis tapo fortepijonu, kažkas čia sukūrė tą patį projekto vaizdo įrašą. Mąstydamas iš anksto turėjau pridėti atskirą komponentą, kuris dar labiau sustiprintų projektą, bet padarytų jį patrauklesnį ir galėčiau jį pavadinti savo.

1 žingsnis: reikalingos medžiagos

Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos
Reikalingos medžiagos

Medžiagų sąrašas

  • „Piezo Buzzer“1x ▶
  • 4x4 klaviatūros modulis 1x ▶
  • „Arduino Uno“1x ▶
  • A/B tipo USB 2.0 kabelis 1x ▶
  • Garso jutiklio modulis 1x ▶
  • RGB LED 1x ▶
  • 330 omų rezistorius 3x ▶
  • Džemperis nuo patelės iki patelės 8x ▶
  • Sujungimo laidas nuo vyrų iki vyrų 4x ▶
  • 3 kištukinis jungiamasis laidas nuo patelės iki patelės 1x ▶

Medžiagų sąrašas yra tvarkingas su nuotraukomis aukščiau.

2 žingsnis: Laiko kūrimas

Statybos laikas!
Statybos laikas!
Statybos laikas!
Statybos laikas!
Statybos laikas!
Statybos laikas!
Statybos laikas!
Statybos laikas!

4x4 klaviatūros modulis ir pjezo garsinis signalas

Teorija

Kadangi 4x4 klaviatūros modulyje ir pjezo signalizatoriuje yra tiek daug atskirų kaiščių įvesties, aš nuspręsiu panaudotus komponentus padalyti į dvi poras. Sutelkiant dėmesį į klaviatūrą, paprastai naudojamą kaip įvestis. „SunFounder 4*4 Matrix“klaviatūros modulis yra nekoduojama matricinė klaviatūra, kurią sudaro 16 klavišų lygiagrečiai. Kiekvienos eilutės ir stulpelio klavišai yra sujungti per išorinius kaiščius- Y1-Y4 kaištis, pažymėtas šalia eilučių valdymo, kai X1- X4, stulpeliai.

Paskirtis

Šių komponentų tikslas visame projekte yra leisti vartotojui paspausti mygtuką, kuris yra nustatytas tam tikram garsui, kurį sukuria pjezo garsinis signalas, dažniu hercais.

Matricos modulio kaištis - „Arduino“kaištis

  • 4 - 2
  • 3 - 3
  • 2 - 4
  • 1 - 5
  • 5 - 6
  • 6 - 7
  • 7 - 8
  • 8 - 13

„Piezo Buzzer“- „Arduino Pin“

Juoda - GND

Raudona - galia

Sunkiausia mano užduotis šioje konstrukcijoje yra išsiaiškinti, kur yra prijungtas kiekvienas laidas. Aukščiau pateikiu jums greitą ir paprastą laidų išdėstymo būdą, jei laikomasi iš viršaus į apačią, patarimas yra neskubėti ir įsitikinkite, kad kiekvienas kaištis yra teisingai įkištas į tinkamą lizdą.

*Patarimas yra sekti, kur yra kiekvienas laidas nuo vieno galo iki kito.

Visi „Tinkercad“konkrečių komponentų laidų eskizai yra teisingai pažymėti spalvomis, todėl atidžiai sekite

3 žingsnis: garso jutiklio modulis ir RGB šviesos diodas

Garso jutiklio modulis ir RGB šviesos diodas
Garso jutiklio modulis ir RGB šviesos diodas
Garso jutiklio modulis ir RGB šviesos diodas
Garso jutiklio modulis ir RGB šviesos diodas
Garso jutiklio modulis ir RGB šviesos diodas
Garso jutiklio modulis ir RGB šviesos diodas

Garso jutiklio modulis ir RGB šviesos diodas

Teorija

Garso jutiklio modulis leidžia aptikti, kada garsas viršija jūsų pasirinktą nustatytąją vertę. Garsas aptinkamas per mikrofoną ir tiekiamas į LM393 stiprintuvą. Kai garso lygis viršija nustatytą tašką, modulio šviesos diodas užsidega ir išvestis.

Paskirtis

Šių komponentų tikslas visame projekte yra gauti garso jutiklio modulio garso/apimties rodmenis ir per jį skaitant RGB šviesos diodas suaktyvins teisingą garsui spalvą.

Garso jutiklio modulis - „Arduino“kaištis (naudokite 3 kontaktų jungiamąjį laidą)

  • Išėjimas - A0 analoginis kaištis
  • GND - bet koks atviras GND kaiščio lizdas
  • VCC - 3V

RGB bendrojo anodo (+) šviesos diodas - „Arduino“kaištis

  • Raudona - 9
  • Galia - 5V
  • Žalia - 10
  • Mėlyna - 11

Turėkite omenyje laidą, kiekvieną atskirą laidą per 330 omų rezistorių. Naudokite paveikslėlį aukščiau kaip nuorodą.

Sunkiausia mano užduotis šioje konstrukcijoje yra išsiaiškinti, kur yra prijungtas kiekvienas laidas. Aukščiau pateikiu jums greitą ir paprastą būdą, kaip patekti į laidų vietas, jei laikomasi iš viršaus į apačią, patarimas yra neskubėti ir įsitikinti, kad kiekvienas kaištis yra teisingai įkištas į tinkamą lizdą, kad ateityje būtų išvengta derinimo.

*Patarimas yra sekti, kur kiekvienas laidas įkišamas bet kuriuo būdu

Visi „Tinkercad“konkrečių komponentų laidų eskizai yra teisingai pažymėti spalvomis, todėl sekite

4 žingsnis: kodas

Kodas

Šis kodas leidžia visiems komponentams dirbti kartu, naudojant naujai apibrėžtą funkciją, kurioje yra daug valdiklių, vienas komponentas, turintis daug kintamų kintamųjų, tie komponentai buvo RGB ir naudojami rgb spalva, kad pakeistų spalvą įjungus, ir pjezo garsinis signalas bei garsą, kurį jis skleistų priklausomai nuo mygtuko paspaudimo.

Šiame kode privaloma turėti klaviatūros biblioteką

Nuoroda čia:

Atsisiuntę pridėkite naują biblioteką prie arduino, tada įveskite vieną kodo eilutę, reikalingą jai suaktyvinti.

Kodo metu turėjau sunkumų įdėti naujai apibrėžtas funkcijas, nes per bandymus ir klaidas supratau, kad tai turi būti sąrankoje, o ne cikle.

Kodas

#include // Klaviatūros biblioteka

int greenPin = 11; // RGB žalias kaištis prijungtas prie skaitmeninio kaiščio 9

int redPin = 10; // RGB raudonas kaištis prijungtas prie skaitmeninio kaiščio 9

int bluePin = 9; // RGB mėlynas kaištis prijungtas prie skaitmeninio kaiščio 9 int garsiakalbisPin = 12; // garsiakalbis prijungtas prie skaitmeninio kaiščio 12 const baitų ROWS = 4; // keturios eilutės const baitas COLS = 4; // keturi coloums const int soundPin = A0; // garso jutiklis pritvirtintas prie A0

„Char“klavišai [ROWS] [COLS] = {

{'a', 'b', 'c', 'd'}, {'e', 'f', 'g', 'h'}, {'i', 'j', 'k', ' l '}, {' m ',' n ',' o ',' p '}}; // Klaviatūros modulio vizualizacija

baitų rowPins [ROWS] = {2, 3, 4, 5}; // prisijungti prie klaviatūros eilučių

baitų colPins [COLS] = {6, 7, 8, 13}; // prisijungti prie klaviatūros kolonų

Klaviatūros klaviatūra = klaviatūra (makeKeymap (klavišai), rowPins, colPins, ROWS, COLS); // Sukuria raktus

void setup () {

pinMode (garsiakalbisPin, OUTPUT); // nustato, kad „speakerPin“būtų išvestis

pinMode (redPin, OUTPUT); // nustato raudoną kaištį kaip išvesties kaištįMode (greenPin, OUTPUT); // nustato žalią smeigtuką kaip išvesties kaištįMode (bluePin, OUTPUT); // nustato mėlyną kaištį kaip išvestį

Serial.begin (9600);

} void setColor (int raudona, int žalia, int mėlyna) // Nauja apibrėžta funkcija, leidžianti RGB rodyti spalvas per RGB kodą {#ifdef COMMON_ANODE red = 255 - red; žalia = 255 - žalia; mėlyna = 255 - mėlyna; #endif analogWrite (redPin, red); analogWrite (žaliasPin, žalia); analogWrite („bluePin“, mėlyna); }

tuščias pyptelėjimas (nepasirašytas char garsiakalbisPin, int dažnis InHertz, ilgai timeInMillisekundės) {// garsą skleidžiančios funkcijos

int x; long delayAmount = (ilgas) (1000000/frequencyInHertz); long loopTime = (ilgas) ((timeInMilliseconds*1000)/(delayAmount*2)); už (x = 0; x

void loop () {

char klavišas = keypad.getKey (); int value = analogRead (soundPin); // skaityti A0 Serial.println (vertė) reikšmę; // spausdinti reikšmę

if (raktas! = NO_KEY) {

Serial.println (raktas); } if (klavišas == 'a') {pyptelėjimas (garsiakalbisPin, 2093, 100); setColor (218, 112, 214); } if (klavišas == 'b') {pyptelėjimas (garsiakalbisPin, 2349, 100); setColor (218, 112, 214); } if (klavišas == 'c') {pyptelėjimas (garsiakalbisPin, 2637, 100); setColor (218, 112, 214); } if (klavišas == 'd') {pyptelėjimas (garsiakalbisPin, 2793, 100); setColor (218, 112, 214); } if (klavišas == 'e') {pyptelėjimas (garsiakalbisPin, 3136, 100); setColor (218, 112, 214); } if (klavišas == 'f') {pyptelėjimas (garsiakalbisPin, 3520, 100); setColor (218, 112, 214); } if (klavišas == 'g') {pyptelėjimas (garsiakalbisPin, 3951, 100); setColor (218, 112, 214); } if (klavišas == 'h') {pyptelėjimas (garsiakalbisPin, 4186, 100); setColor (218, 112, 214); } if (klavišas == 'i') {pyptelėjimas (garsiakalbisPin, 2093, 100); setColor (230, 230, 0); } if (klavišas == 'j') {pyptelėjimas (garsiakalbisPin, 2349, 100); setColor (180, 255, 130); } if (klavišas == 'k') {pyptelėjimas (garsiakalbisPin, 2637, 100); setColor (130, 255, 130); } if (klavišas == 'l') {pyptelėjimas (garsiakalbisPin, 2739, 100); setColor (130, 220, 130); } if (klavišas == 'm') {pyptelėjimas (garsiakalbisPin, 3136, 100); setColor (0, 255, 255); } if (klavišas == 'n') {pyptelėjimas (garsiakalbisPin, 3520, 100); setColor (0, 220, 255); } if (klavišas == 'o') {pyptelėjimas (garsiakalbisPin, 3951, 100); setColor (0, 69, 255); } if (klavišas == 'p') {pyptelėjimas (garsiakalbisPin, 4186, 100); setColor (255, 0, 255); }}

5 žingsnis: paskutinės mintys

Image
Image

Galutinės mintys

Galutinės šio projekto mintys yra numatytas tikslas būti žaislu, suteikti linksmybių ir supaprastinto džiaugsmo. Kadangi šis projektas yra baigtas ir prie jo dirbama, tikiu, kad šis kūrinys gali būti papildytas galbūt daugiau komponentų, tokių kaip įrašymo elementas, kopijavimo/simono sakinio elementas, ar net LCD su natomis, rodančiomis, kad leidžiama konkreti daina.

Norėčiau sužinoti jūsų nuomonę apie klaviatūros modulį, kokius komponentus, jūsų manymu, buvo galima pridėti. Ar ketinate jį naudoti bet kuriame savo projekte? Prašome paskelbti savo idėjas žemiau esančiame komentarų skyriuje.

Būtinai pasidalykite, jei jums patiko šis arduino projektas.

Rekomenduojamas: