Satura rādītājs:
Video: Arduino mīklu kaste: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Šim projektam mēs izgatavosim mīklu kastīti, kas darbojas ar mūziku. Pamata būtība ir tāda, ka, nospiežot pogu, tiek atskaņota melodija, un Arduino aprēķina, kuras pogas tiek nospiestas, lai zinātu, kas ir pareizs un kas ir nepareiza atbilde.
Piegādes
1 x Arduino uno
1 x 1k omu rezistors
5 x 220 omi rezistori
1 x Piezo skaņas signāls
5 x spiedpoga 6x6 mm
1 x komplekts Jumper vadi
1 x perforācijas/sloksnes dēlis
1 x lodēšanas komplekts
1 x eņģe
1 x skava
1 x maza kumode/koks
1x karstās līmes pistole + līmes spieķi
1 x 9V akumulators + turētājs
mazliet darba
krāsot
1. darbība:
Lai sāktu ar to, jums ir jānospiež tapas maizes dēļā. Tagad pievienojiet analogo 2 ar vadu tāfeles stūrim. Mēs tam līnijā pievienosim divus rezistorus. Pirmais ir 10k omu rezistors. Šī rezistora otrā galā mēs savienojam vadu ar analogo zemi. Otrais rezistors ir 220 omu rezistors, kuru mēs savienojam ar pirmo pogu. Izmantojiet citu tādas pašas vērtības rezistoru, lai pogas otro atvērto pusi savienotu ar otro pogu. Turpiniet savienot šādas pogas līdz pēdējai. Pēdējā jūs paņemat vadu un pievienojat to attiecīgajai slēgtajai pogas pusei un pievienojat to nākamajai rindā. Tagad jūs atkārtojat procesu, ko veicāt ar rezistoriem, kas zināmi tikai ar vienkāršiem vadiem. Savienojiet pirmo pogu ar Arduino analogo 3, 3V portu. Kopumā jūs saņemsiet sava veida krustojumu, kā parādīts zemāk.
2. darbība:
Tālāk pievienojiet skaņas signālu maizes dēlim un vienu pusi piestipriniet pie digitālās zemes, bet otru - pie 12 porta. Ir prātīgi jau augšupielādēt šo kodu savā Arduino, lai jūs varētu pārbaudīt, vai viss darbojas pareizi. Ja tā ir, varat sākt komponentu lodēšanu kopā. Dariet to, izņemot tos no maizes dēļa un tieši pielodējot vadus un savienojumus. Ja domājat, ka starp pogām ir nepieciešams vairāk garuma, starp rezistoriem varat pievienot papildu vadu. Maizes dēlis šajā brīdī vairs nav nepieciešams.
3. darbība:
Kad viss ir pielodēts, ir pienācis laiks izgatavot pašu kastīti. Es izmantoju lētu atvilktņu komplektu kā pamatu manai. Vienkārši pārgriezu uz pusēm gareniski un noņēmu muguru un sānu, kuram izgriezu cauri. Tagad jums vajadzētu būt diviem c formas gabaliem. Izgrieziet vienu no tām, lai izmantotu kā vāku. Tagad pagrieziet vienu no atlikušajiem gabaliem, lai tie atbilstu kā kastīte bez vāka, un salīmējiet tos kopā. Kad līme ir kārtīgi sacietējusi, katrā lodziņa pusē urbiet nelielu caurumu pogām un lielāku - vāka skaņas signālam.
4. solis:
Tagad jūs varat ķerties pie kastes krāsošanas. Es to izdarīju ar ziedu dizainu, kura pamatā ir BOTW, bet jūs patiešām varat izvēlēties jebkuru vēlamo dizainu. Kad tas ir izdarīts, pogas var ievietot caurumu iekšpusē un pogas aizmugurē un apkārt esošajā kokā uzlikt līmi. Tas pats princips attiecas arī uz skaņas signālu, bet manējais lieliski iederas caurumā, padarot to nevajadzīgu. Tālāk jūs paņemat dažas darba vietas un sasildāt un sagriežat, lai izveidotu dažas mazas pogas. Uzmanīgi pielīmējiet tās uz pogām, taču nelietojiet pārāk daudz līmes, jo pogas var nejauši iestrēgt. Tagad jūs varat tos pārkrāsot, lai tie vairāk sajauktos ar kastīti.
5. darbība:
Visbeidzot, jūs pielīmējat vai skrūvējat, skavu un eņģes uz kastes un vāka, kas savieno abus.
6. darbība
Tagad, kad jūsu kaste ir pabeigta, viss, kas jums jādara, ir ievietot Arduino un akumulatoru tajā un aizvērt vāku.
7. solis: kods
// Šis ir Zelda tēmas mīklas/mūzikas kastes kods.
// tas savieno jūsu kodu ar piezīmju sarakstu citā cilnē
#include "piķi.h"
// šis mainīgais nodrošinās, ka Arduino ilgāku pogas nospiešanu redz tikai vienu nospiešanu
int vienāds = 0;
// no šejienes tas lasīs jūsu ievadīto informāciju
int k = 2;
// šī ir jūsu izejas tapa
int runātājs = 12;
// zemāk ir beigu melodijas
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOTE_D5, NOTE_C5, NOTE_B4, NOTE_A5};
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1,5, 4, 4, 1,5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_4, int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// normāls piezīmes ilgums
int BEATTIME = 300;
// skaitītājs, kas sekos, ja mēs atrodamies risinājumā
int teicējs = 0;
void setup () {
Sērijas sākums (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// nolasa ievadi no tapām
k = analogRead (2);
int p = analogRead (1);
// ja nav nospiesta neviena poga, nedrīkst būt signāla
ja (teicējs == 0) {
noTone (12);
}
// ja nolasītie dati atbilst parametriem, palaidiet aprakstīto koda bitu
ja (k> 320 && k <350) {
rechts ();
}
//""
citādi, ja (k 290) {
saites ();
}
//""
citādi, ja (k> 260 && k <280) {
boven ();
}
//""
citādi, ja (k> 240 && k <260) {
onder ();
}
//""
citādi, ja (k> 220 && k <240) {
a ();
}
// ja tā nav (ja netiek nospiesta neviena poga), palaidiet šo kodu
cits {
// atiestatīt to pašu, lai to varētu izmantot nākamreiz, nospiežot pogu
tas pats = 0;
// ja skaitītājs ir līdz noteiktam skaitlim, palaidiet aprakstīto koda bitu
ja (teicējs == 166) {
zelda ();
}
//""
citādi, ja (teicējs == 386) {
Sārija ();
}
//""
citādi, ja (teicējs == 266) {
epona ();
}
//""
citādi, ja (teicējs == 999) {
// atskaņot šo signālu, lai atzīmētu kļūdu
tonis (skaļrunis, NOTE_C3, BEATTIME);
// atiestatīt skaitītāju uz 0
teicējs = 0;
}
}
// aizkave starp ievadi un izvadi
kavēšanās (100);
// izdrukā jūsu ievadītās vērtības seriālajā monitorā
Sērijas.println (k);
}
// šī ir pirmā melodija
void zelda () {
// tas nosaka skaitītāju, kas sevi atjaunina, atskaņojot melodiju, lai tā varētu to izlasīt un apstāties, kad vajadzētu
par (int i = 0; i <sizeof (Zelda); i ++) {
// saka, cik ilgi vajadzētu notis
int ZTime = 1000 / ZeldaTime ;
// ģenerē toņus
tonis (skaļrunis, Zelda , ZTime);
// rada pareizu aizkavi
int pauze = ZTime * 1,30;
kavēšanās (pauze);
// atiestata skaitītāju
teicējs = 0;
// izdrukā jūsu ievadītās vērtības seriālajā monitorā
Serial.println (teicējs);
}
}
//""
void epona () {
par (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
tonis (skaļrunis, Epona , ETime);
int pauze = ETime * 1,30;
kavēšanās (pauze);
teicējs = 0;
Serial.println (teicējs);
}
}
//""
void saria () {
par (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
tonis (runātājs, Saria , STime);
int pauze = STime * 1,30;
kavēšanās (pauze);
teicējs = 0;
Serial.println (teicējs);
}
}
anulēts rec
hts () {
// ja šis vēl nebija nospiests
ja (tas pats == 0) {
// ja skaitītājam pašlaik ir viena no šīm vērtībām, pievienojiet to
ja (teicējs == 0 || teicējs == 132 || teicējs == 165 || teicējs == 232 || teicējs == 265 || teicējs == 331 || teicējs == 374) {
teicējs = teicējs + 1;
}
// citādi iestatiet to uz 999, lai jūs dzirdētu kļūdas troksni
cits {
teicējs = 999;
}
// iestatiet to pašu uz vienu, lai Arduino nelasītu ilgstošu presi kā vairākas reizes
tas pats = 1;
}
// spēlēt toni
cits {
tonis (skaļrunis, NOTE_A4, BEATTIME);
}
// izdrukā jūsu ievadītās vērtības seriālajā monitorā
Serial.println (teicējs); }
//""
tukšas saites () {
ja (tas pats == 0) {
ja (teicējs == 133 || teicējs == 254 || teicējs == 244 || teicējs == 332 || teicējs == 375 || teicējs == 221) {
teicējs = teicējs + 11;
}
citādi, ja (teicējs == 0) {
teicējs = 111;
}
cits {
teicējs = 999;
}
tas pats = 1;
} vēl {
tonis (skaļrunis, NOTE_B4, BEATTIME);
} Serial.println (teicējs);
}
//""
void boven () {
ja (tas pats == 0) {ja (teicējs == 111 || teicējs == 144 || teicējs == 233) {
teicējs = teicējs + 21;
}
citādi, ja (teicējs == 0) {
teicējs = 221;
}
cits {
teicējs = 999;
}
tas pats = 1;
}
cits {
tonis (skaļrunis, NOTE_D5, BEATTIME);
Serial.println (teicējs);
}
}
//""
void onder () {
ja (tas pats == 0) {
ja (teicējs == 343) {
teicējs = teicējs + 31;
}
citādi, ja (teicējs == 0) {
teicējs = 331;
} vēl {
teicējs = 999;
} tas pats = 1;
} vēl {
tonis (skaļrunis, NOTE_F4, BEATTIME);
Serial.println (teicējs);
}
}
//""
anulēts a () {
ja (tas pats == 0) {
ja (teicējs == 0) {
teicējs = 461;
}
cits {
teicējs = 999;
}
tas pats = 1;
}
tonis (skaļrunis, NOTE_D4, BEATTIME);
Serial.println (teicējs);
}
Ieteicams:
Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: 8 soļi
Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: Kāpēc Jau kādu laiku es vēlos tastatūrai pievienot nelielu kursorsviru, lai kontrolētu saskarnes elementus, vai citus mazākus uzdevumus spēlēs un simulatoros (MS Flight Sim, Elite: Dangerous, Zvaigžņu kari: eskadras utt.). Arī Elite: Dangerous, es esmu bijis
Kreka koda spēle, uz Arduino balstīta mīklu kaste: 4 soļi (ar attēliem)
Kreka koda spēle, uz Arduino balstīta mīklu kaste: Šajā pamācībā es jums parādīšu, kā izveidot savu kreka koda spēli, kurā jūs izmantojat rotējošu kodētāja ciparnīcu, lai uzminētu nejauši ģenerēto kodu uz seifu. Seifa priekšpusē ir 8 gaismas diodes, lai pastāstītu, cik no
Azimutālā projekcija 3D karšu dekorēšana X Tautas mūzikas mīklu spēle - Arduino: 7 soļi
Azimuthal Projection 3D Map Decoration X Tautas mūzikas mīklu spēle - Arduino: IEVADS Nākamajā lapā tiks norādīts, kā izveidot Arduino projektu, kuram ir divas galvenās funkcijas - vienkārša dekorēšana ar apgaismojumu un tautas mūzikas mīklu spēle, kas ietver ģeogrāfijas, ģeometrijas jomas. , kartes, ANO un
Mīklu kaste - koda lauzēji un revolucionāri [UCM]: 7 soļi (ar attēliem)
Mīklu kaste - koda lauzēji un revolucionāri [UCM]: lāzergrieztas mīklu kastes komplekts, kas paredzēts digitālo veidotāju darbnīcai Fitzwilliam muzejā Kembridžā saistībā ar viņu Codebreakers and Groundbreakers izstādi. Darbnīcai poga mīklu kastē bija savienota ar MakeyMakey a
Arduino "breadbot" mīklu spēle: 6 soļi (ar attēliem)
Arduino "breadbot" mīklu spēle: Ak nē! Manam mazulim robotam ir vajadzīgi pāris vadi, lai tas atkal atdzīvotos! Šodien mēs izveidosim mīklu spēli, kas varētu iemācīt arduino lietotājiem kaut ko par maizes dēli. Tāpēc es to uztaisīju! Jūs varat padarīt to tik sarežģītu, cik vēlaties, bet es izvēlējos