Turinys:
Video: „Arduino“dėlionės dėžutė: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šiam projektui mes sukursime dėlionės dėžutę, kuri veikia su muzika. Pagrindinė jo esmė yra ta, kad paspaudus mygtuką jis išleidžia melodiją ir „Arduino“apskaičiuoja, kurie mygtukai yra paspaudžiami, kad žinotų, kas yra teisinga, o kas - neteisingas atsakymas.
Prekės
1 x „Arduino uno“
1 x 1k omo rezistorius
5 x 220 omų rezistoriai
1 x Piezo garsinis signalas
5 x 6x6 mm mygtukai
1 x komplektas jungiamųjų laidų
1 x perforuota/juostelinė lenta
1 x litavimo komplektas
1 x vyriai
1 x spaustukas
1 x maža komoda/mediena
1x karšto klijų pistoletas + klijų lazdelės
1 x 9 V baterija + laikiklis
truputis darbo
dažyti
1 žingsnis:
Norėdami pradėti, turite paspausti kaiščius savo duonos lentoje. Dabar prijunkite 2 analogą laidu prie plokštės kampo. Mes ketiname prie jo prijungti du rezistorius linijoje. Pirmasis yra 10 kΩ rezistorius. Prie kito šio rezistoriaus galo prijungiame laidą prie analoginio įžeminimo. Antrasis rezistorius yra 220 omų rezistorius, kurį mes prijungiame prie pirmojo mygtuko. Norėdami sujungti antrą atvirą mygtuko pusę su antruoju mygtuku, naudokite kitą tos pačios vertės rezistorių. Toliau prijunkite tokius mygtukus iki paskutinio. Paskutiniame jūs paimkite laidą ir prijunkite jį prie atitinkamos uždarytos mygtuko pusės ir prijunkite prie kitos eilutės. Dabar jūs kartojate procesą, kurį atlikote su rezistoriais, kuriuos žinote tik paprastais laidais. Prijunkite pirmąjį mygtuką prie analoginio 3, 3 V prievado „Arduino“. Apskritai jūs gausite kryžminį paterną, kaip parodyta žemiau.
2 žingsnis:
Tada prijunkite signalą prie duonos lentos ir vieną pusę pritvirtinkite prie skaitmeninio įžeminimo, o kitą - prie 12 prievado. Protinga jau įkelti šį kodą į „Arduino“, kad galėtumėte patikrinti, ar viskas veikia tinkamai. Jei taip, galite pradėti lituoti komponentus kartu. Padarykite tai, ištraukdami juos iš duonos lentos ir tiesiogiai lituodami laidus ir jungtis. Jei manote, kad tarp mygtukų reikia daugiau ilgio, galite pridėti papildomą laidą tarp rezistorių. Duonos lentos šiuo metu nebereikia.
3 žingsnis:
Po to, kai viskas yra sulituota, laikas pasidaryti pačią dėžutę. Aš naudoju pigų stalčių komplektą kaip savo pagrindą. Aš tiesiog perpjoviau išilgai per pusę ir nuėmiau nugarą bei šoną, kurį perpjoviau. Dabar turėtumėte turėti dvi c formos dalis. Nupjaukite vieną jų pusę, kad galėtumėte naudoti kaip dangtį. Dabar pasukite vieną iš likusių dalių taip, kad jos derėtų kaip dėžutė be dangčio ir klijuokite jas kartu. Kai klijai tinkamai sukietėja, kiekvienoje dėžutės pusėje išgręžkite mažą skylutę sagoms ir didesnę skylę dangtelyje.
4 žingsnis:
Dabar galite pradėti dažyti dėžutę. Aš padariau savo gėlių dizainą, pagrįstą BOTW, bet jūs tikrai galite pasirinkti bet kokį norimą dizainą. Kai tai bus padaryta, galite įkišti mygtukus į skylių vidų ir uždėti klijų rutulį ant mygtuko užpakalinės dalies ir aplinkinės medienos. Tas pats principas galioja ir garso signalui, bet mano puikiai tinka skylėje, todėl jo nereikia. Tada paimkite šiek tiek darbo ir pašildykite ir supjaustykite, kad padarytumėte mažus mygtukus. Atsargiai priklijuokite juos prie mygtukų, tačiau stenkitės nenaudoti daug klijų, nes galite netyčia įstrigti. Dabar galite juos dažyti, kad jie geriau susimaišytų su dėžute.
5 veiksmas:
Galiausiai klijuojate arba užsukite varžtą, spaustuką ir vyriai ant dėžutės ir dangčio, jungiančio abu.
6 žingsnis:
Dabar, kai dėžutė baigta, viskas, ką jums reikia padaryti, yra įdėti „Arduino“ir bateriją į ją ir uždaryti dangtį.
7 žingsnis: kodas
// Tai yra „Zelda“temos dėlionės/muzikos dėžutės kodas.
// tai sujungia jūsų kodą su pastabų sąrašu kitame skirtuke
#įtraukti „pikches.h“
// šis kintamasis užtikrins, kad „Arduino“matytų ilgesnį mygtuko paspaudimą kaip vieną paspaudimą
int tas pats = 0;
// iš čia jis skaitys jūsų įvestį
int k = 2;
// tai yra jūsų išvesties kaištis
int garsiakalbis = 12;
// žemiau yra pabaigos melodijos
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};
// įprasta natos trukmė
int BEATTIME = 300;
// skaitiklis, kurį ketiname sekti, jei esame sprendime
int tarėjas = 0;
void setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// skaito įvestį iš kaiščių
k = analogRead (2);
int p = analogRead (1);
// jei nepaspaudžiamas joks mygtukas, neturėtų būti jokio tono
jei (sakytojas == 0) {
noTone (12);
}
// jei nuskaityti duomenys atitinka parametrus, paleiskite aprašytą kodo bitą
jei (k> 320 && k <350) {
rechts ();
}
//""
kitaip, jei (k 290) {
nuorodos ();
}
//""
kitaip jei (k> 260 && k <280) {
boven ();
}
//""
kitaip jei (k> 240 && k <260) {
onderis ();
}
//""
kitaip, jei (k> 220 && k <240) {
a ();
}
// jei ne (kai nepaspaudžiamas joks mygtukas), paleiskite šį kodą
Kitas {
// atstatyti tą patį, kad jį būtų galima naudoti kitą kartą paspaudus mygtuką
tas pats = 0;
// jei skaitiklis yra iki tam tikro skaičiaus, paleiskite aprašytą kodo bitą
jei (kasininkas == 166) {
zelda ();
}
//""
kitaip jei (sakytojas == 386) {
sarija ();
}
//""
kitaip jei (sakytojas == 266) {
epona ();
}
//""
kitaip jei (kasininkas == 999) {
// paleiskite šį toną, kad pažymėtumėte klaidą
tonas (garsiakalbis, NOTE_C3, BEATTIME);
// atstatyti skaitiklį į 0
sakytojas = 0;
}
}
// vėlavimas tarp įvesties ir išvesties
vėlavimas (100);
// spausdina jūsų įvesties reikšmes serijiniame monitoriuje
Serijinis.println (k);
}
// tai pirmoji melodija
void zelda () {
// tai nustato skaitiklį, kuris atnaujinamas grojant melodijai, kad galėtų ją perskaityti ir sustabdyti, kai turėtų
už (int i = 0; i <sizeof (Zelda); i ++) {
// nurodo, kiek laiko turėtų trukti pastaba
int ZTime = 1000 / ZeldaTime ;
// generuoja tonus
tonas (garsiakalbis, „Zelda “, „ZTime“);
// sukuria teisingą delsą
int pauzė = ZTime * 1.30;
vėlavimas (pauzė);
// iš naujo nustato skaitiklį
sakytojas = 0;
// spausdina jūsų įvesties reikšmes serijiniame monitoriuje
Serial.println (kasininkas);
}
}
//""
void epona () {
už (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
tonas (garsiakalbis, „Epona “, „ETime“);
int pauzė = ETime * 1.30;
vėlavimas (pauzė);
sakytojas = 0;
Serial.println (kasininkas);
}
}
//""
void saria () {
už (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
tonas (garsiakalbis, Saria , STime);
int pauzė = STime * 1.30;
vėlavimas (pauzė);
sakytojas = 0;
Serial.println (kasininkas);
}
}
negaliojantis rec
hts () {
// jei tai dar nebuvo paspausta
jei (tas pats == 0) {
// jei skaitiklis šiuo metu turi vieną iš šių verčių, pridėkite tai
jei (kasininkas == 0 || kasininkas == 132 || kasininkas == 165 || kasininkas == 232 || kasininkas == 265 || kasininkas == 331 || kasininkas == 374) {
kasininkas = kasininkas + 1;
}
// kitaip nustatykite jį į 999, kad išgirstumėte klaidos triukšmą
Kitas {
kasininkas = 999;
}
// nustatykite tą patį į vieną, kad „Arduino“neskaitytų ilgo spaudimo kaip kelių paspaudimų
tas pats = 1;
}
// groti tonu
Kitas {
tonas (garsiakalbis, NOTE_A4, BEATTIME);
}
// spausdina jūsų įvesties reikšmes serijiniame monitoriuje
Serial.println (kasininkas); }
//""
tuščios nuorodos () {
jei (tas pats == 0) {
jei (kasininkas == 133 || kasininkas == 254 || kasininkas == 244 || kasininkas == 332 || kasininkas == 375 || kasininkas == 221) {
kasininkas = kasininkas + 11;
}
kitaip jei (sakytojas == 0) {
kasininkas = 111;
}
Kitas {
kasininkas = 999;
}
tas pats = 1;
} Kitas{
tonas (garsiakalbis, NOTE_B4, BEATTIME);
} Serial.println (kasininkas);
}
//""
void boven () {
jei (tas pats == 0) {jei (sakytojas == 111 || kasininkas == 144 || kasininkas == 233) {
kasininkas = kasininkas + 21;
}
kitaip jei (sakytojas == 0) {
kasininkas = 221;
}
Kitas {
kasininkas = 999;
}
tas pats = 1;
}
Kitas {
tonas (garsiakalbis, NOTE_D5, BEATTIME);
Serial.println (kasininkas);
}
}
//""
void onder () {
jei (tas pats == 0) {
jei (sakytojas == 343) {
kasininkas = kasininkas + 31;
}
kitaip jei (sakytojas == 0) {
pasakotojas = 331;
} Kitas {
kasininkas = 999;
} tas pats = 1;
} Kitas {
tonas (garsiakalbis, NOTE_F4, BEATTIME);
Serial.println (kasininkas);
}
}
//""
anuliuoti a () {
jei (tas pats == 0) {
jei (sakytojas == 0) {
kasininkas = 461;
}
Kitas {
kasininkas = 999;
}
tas pats = 1;
}
tonas (garsiakalbis, NOTE_D4, BEATTIME);
Serial.println (kasininkas);
}
Rekomenduojamas:
Atminties dėlionės žaidimas naudojant „BBC MicroBit“: 7 žingsniai
Atminties dėlionės žaidimas naudojant „BBC MicroBit“: Jei nežinote, kas yra „BBC MicroBit“, tai iš esmės yra labai mažas įrenginys, kurį galite užprogramuoti taip, kad būtų įvesties ir išvesties. Kažkas panašaus į „Arduino“, bet labiau įmantrus. „MicroBit“man labai patiko tai, kad jis turi dvi įmontuotas įvestis b
„Azimuthal“projekcija 3D žemėlapio dekoravimas X liaudies muzikos dėlionės žaidimas - „Arduino“: 7 žingsniai
„Azimuthal Projection 3D Map Decoration X“liaudies muzikos dėlionės žaidimas - „Arduino“: ĮVADAS Šiame puslapyje bus nurodyta, kaip sukurti „Arduino“projektą, kuris turi dvi pagrindines funkcijas - paprastą dekoravimą su apšvietimu ir liaudies muzikos dėlionę, apimančią geografijos, geometrijos sritis. , žemėlapiai, Jungtinės Tautos ir
„Dėlionės dėžutė“- kodų laužytojai ir novatoriai [UCM]: 7 žingsniai (su paveikslėliais)
„Puzzle Box“- kodų laužytojai ir griautiniai [UCM]: lazeriu supjaustytas galvosūkių dėžučių rinkinys, skirtas skaitmeninių kūrėjų dirbtuvėms Kembridžo „Fitzwilliam“muziejuje, susijusiam su jų „Codebreakers and Groundbreakers“paroda. Seminaro metu galvosūkių dėžutės mygtukas buvo prijungtas prie „MakeyMakey a
Arduino „breadbot“dėlionės žaidimas: 6 žingsniai (su paveikslėliais)
Arduino „breadbot“dėlionė: O ne! Mano kūdikiui robotui reikia poros laidų, kad jis vėl atgytų! Šiandien mes sukursime dėlionės žaidimą, kuris gali išmokyti pradedančius arduino vartotojus kažko apie „boardboarding“. Štai kodėl aš tai padariau! Galite padaryti tai taip sudėtingai, kaip norite, bet aš pasirinkau
„Barbie“dėžutė: užmaskuotas dėklas/ strėlės dėžutė jūsų MP3 grotuvui: 4 žingsniai (su nuotraukomis)
„Barbie Box“: užmaskuotas dėklas/ strėlės dėžutė jūsų MP3 grotuvui: Tai yra paminkštintas apsauginis dėklas jūsų mp3 grotuvui, kuris taip pat konvertuoja ausinių lizdą į ketvirtadalio colį, gali veikti kaip strėlės dėžutė perjungus jungiklį ir užmaskuoja jūsų mp3 grotuvą kaip dešimtojo dešimtmečio pradžios magnetofoną ar panašias mažas vagystes