Sadržaj:
Video: Arduino slagalica: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Za ovaj projekt napravit ćemo slagalicu koja radi s glazbom. Osnovna srž toga je da kada pritisnete gumb, on pušta melodiju, a Arduino izračunava koji su gumbi pritisnuti tako da zna što je ispravno, a što krivo.
Pribor
1 x Arduino uno
1 x 1k Ohm otpornik
Otpornici 5 x 220 Ohm
1 xPiezo zujalica
5 x tipkalo 6x6 mm
1 x postavljene kratkospojne žice
1 x perf/ploča
1 x set za lemljenje
1 x šarke
1 x stezaljka
1 x mala komoda/drvo
1x pištolj za vruće ljepilo + štapići za ljepilo
1 x 9v baterija + držač
malo worbla
boja
Korak 1:
Za početak morate pritisnuti iglice na ploču s ploču. Sada spojite analogni 2 žicom s kutom ploče. Na njega ćemo u liniju spojiti dva otpornika. Prvi je otpornik od 10 k Ohma. Na drugi kraj ovog otpornika spojimo žicu na analogno uzemljenje. Drugi otpornik je otpornik od 220 Ohma koji povezujemo s prvim gumbom. Upotrijebite drugi otpornik iste vrijednosti za povezivanje druge otvorene strane gumba s drugom tipkom. Nastavite povezivati ovakve gumbe do posljednjeg. Na posljednjoj zgrabite žicu i spojite je na odgovarajuću zatvorenu stranu gumba i spojite je sa sljedećom u nizu. Sada ponavljate postupak koji ste radili s otpornicima koji su poznati samo običnim žicama. Spojite prvi gumb na analogni 3, 3V priključak na vašem Arduinu. Sve u svemu, dobit ćete neku vrstu križnog uzorka kako je dolje prikazano.
Korak 2:
Zatim priključite zujalicu u matičnu ploču i pričvrstite jednu stranu na digitalno uzemljenje, a drugu na 12 priključak. Pametno je već prenijeti sljedeći kod u svoj Arduino kako biste mogli provjeriti radi li sve ispravno. Ako jeste, možete početi lemiti komponente zajedno. Učinite to tako da ih izvadite iz matične ploče i izravno zalemite žice i spojeve. Ako mislite da vam je potrebna veća duljina između gumba, možete dodati dodatnu žicu između otpornika. Okvir u ovom trenutku više nije potreban.
3. korak:
Nakon što je sve zalemljeno, vrijeme je za izradu same kutije. Koristio sam jeftin set ladica kao osnovu za svoju. Jednostavno sam prepolovio po dužini i uklonio stražnju stranu i stranu koju sam prerezao. Sada biste trebali imati dva komada u obliku slova C. Odrežite jednu stranu jednog od njih kako biste ih koristili kao poklopac. Sada okrenite jedan od preostalih komada tako da se uklapaju poput kutije bez poklopca i zalijepite ih zajedno. Nakon što se ljepilo pravilno steglo, izbušite malu rupu na svakoj strani kutije za gumbe i veću za zujalicu u poklopcu.
Korak 4:
Sada možete pristupiti slikanju kutije. Ja sam svoj napravio s cvjetnim dizajnom temeljenim na BOTW -u, ali zaista možete odabrati bilo koji dizajn koji želite. Nakon što to učinite, gumbe možete staviti u rupe i staviti globus ljepila na stražnju stranu gumba i okolno drvo. Isti princip vrijedi i za zujalicu, ali moja je savršeno pristajala u rupu čineći je nepotrebnom. Zatim uzmete malo worble i zagrijete te je izrežete kako biste napravili neke male gumbe. Pažljivo ih zalijepite na gumbe, ali pazite da ne koristite previše ljepila jer biste mogli slučajno zaglaviti gumbe. Sada ih možete obojiti kako biste se više stopili s kutijom.
5. korak:
Na kraju zalijepite ili zavijte, stezaljku i šarke na kutiji i poklopcu koji ih spajaju.
Korak 6:
Sada kada je vaša kutija potpuna, sve što trebate učiniti je staviti Arduino i bateriju u nju te zatvoriti poklopac.
Korak 7: Kodirajte
// Ovo je kôd za zagonetku/glazbenu kutiju sa temom Zelda.
// ovo povezuje vaš kôd s popisom bilješki na drugoj kartici
#include "parcele.h"
// ova varijabla će osigurati da Arduino vidi dulji pritisak gumba kao samo jedan pritisak
int isto = 0;
// odavde će čitati vaš unos
int k = 2;
// ovo je vaš izlazni pin
int zvučnik = 12;
// ispod su završne melodije
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_5, NOTE_5, NOTE5
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_NET_4, 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};
// normalno trajanje note
int BEATTIME = 300;
// brojač kojeg ćemo pratiti da smo u rješenju
int blagajnik = 0;
void setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {{100} {101}
// čita ulaz iz pinova
k = analogRead (2);
int p = analogRead (1);
// ako nije pritisnuta niti jedna tipka, ne bi trebalo biti ni tona
if (teller == 0) {
noTone (12);
}
// ako očitani podaci odgovaraju parametrima, pokrenite opisani bit koda
if (k> 320 && k <350) {
rechts ();
}
//""
inače ako (k 290) {
veze ();
}
//""
inace if (k> 260 && k <280) {
boven ();
}
//""
inace if (k> 240 && k <260) {
onder ();
}
//""
inace if (k> 220 && k <240) {
a ();
}
// ako nema (kad se ne pritisne nijedan gumb), pokrenite ovaj kôd
drugo {
// resetirati isto pa se može koristiti sljedeći put kada pritisnete gumb
isto = 0;
// ako je brojač do određenog broja, pokrenite opisani bit koda
if (blagajnik == 166) {
zelda ();
}
//""
inace if (teller == 386) {
saria ();
}
//""
inace if (teller == 266) {
epona ();
}
//""
inace if (teller == 999) {
// pusti ovaj ton za označavanje pogreške
ton (zvučnik, NOTE_C3, BEATTIME);
// resetirati brojač na 0
blagajnik = 0;
}
}
// kašnjenje između ulaza i izlaza
kašnjenje (100);
// ispisuje vrijednosti vašeg unosa na serijskom monitoru
Serijski.println (k);
}
// ovo je prva melodija
void zelda () {
// ovo postavlja brojač koji se ažurira tijekom sviranja melodije kako bi je mogao pročitati i zaustaviti kad treba
for (int i = 0; i <sizeof (Zelda); i ++) {
// kaže koliko bi bilješka trebala trajati
int ZTime = 1000 / ZeldaTime ;
// generira tonove
ton (zvučnik, Zelda , ZTime);
// stvara ispravno kašnjenje
int pause = ZTime * 1,30;
odgoda (stanka);
// resetira brojač
blagajnik = 0;
// ispisuje vrijednosti vašeg unosa na serijskom monitoru
Serial.println (blagajnik);
}
}
//""
void epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
ton (zvučnik, Epona , ETime);
int pause = ETime * 1,30;
odgoda (stanka);
blagajnik = 0;
Serial.println (blagajnik);
}
}
//""
void saria () {
za (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
ton (govornik, Saria , STime);
int pause = STime * 1,30;
odgoda (stanka);
blagajnik = 0;
Serial.println (blagajnik);
}
}
void rec
hts () {
// ako ovo već nije pritisnuto
ako (isto == 0) {
// ako brojač trenutno ima jednu od ovih vrijednosti, dodajte mu to
if (kazivač == 0 || kazivač == 132 || kazivač == 165 || kazivač == 232 || kazivač == 265 || kazivač == 331 || kazivač == 374) {
kazivač = kazivač + 1;
}
// U suprotnom postavite na 999 tako da čujete šum pogreške
drugo {
blagajnik = 999;
}
// postavi isto na jedan tako da Arduino ne čita dulji tisak kao višestruke pritiske
isto = 1;
}
// pusti ton
drugo {
ton (zvučnik, NOTE_A4, BEATTIME);
}
// ispisuje vrijednosti vašeg unosa na serijskom monitoru
Serial.println (blagajnik); }
//""
void links () {
ako (isto == 0) {
if (kazivač == 133 || kazivač == 254 || kazivač == 244 || kazivač == 332 || kazivač == 375 || kazivač == 221) {
blagajnik = blagajnik + 11;
}
inace if (teller == 0) {
blagajnik = 111;
}
drugo {
blagajnik = 999;
}
isto = 1;
} else {
ton (zvučnik, NOTE_B4, BEATTIME);
} Serial.println (blagajnik);
}
//""
void boven () {
if (isto == 0) {if (teller == 111 || teller == 144 || teller == 233) {
blagajnik = blagajnik + 21;
}
inace if (teller == 0) {
blagajnik = 221;
}
drugo {
blagajnik = 999;
}
isto = 1;
}
drugo {
ton (zvučnik, NOTE_D5, BEATTIME);
Serial.println (blagajnik);
}
}
//""
void onder () {
ako (isto == 0) {
if (teller == 343) {
blagajnik = blagajnik + 31;
}
inace if (teller == 0) {
blagajnik = 331;
} else {
blagajnik = 999;
} isto = 1;
} else {
ton (zvučnik, NOTE_F4, BEATTIME);
Serial.println (blagajnik);
}
}
//""
void a () {
ako (isto == 0) {
if (teller == 0) {
blagajnik = 461;
}
drugo {
blagajnik = 999;
}
isto = 1;
}
ton (zvučnik, NOTE_D4, BEATTIME);
Serial.println (blagajnik);
}
Preporučeni:
WebApp slagalica LED lampa s ESP32: 5 koraka (sa slikama)
WebApp slagalica LED lampa s ESP32: Godinama sam se igrao LED trakama, a nedavno sam se preselio kod prijatelja gdje nisam mogao napraviti velike promjene, poput postavljanja trake na zidove, pa sam sastavio ovu svjetiljku koja ima jedna žica izlazi za napajanje i može se spojiti
Slagalica od ogrebotina: 5 koraka
Scratch Maze Puzzle: Danas ćemo napraviti jednostavan, ali tvrdi labirint koristeći Scratch. Scratch je vizualni programski jezik temeljen na blokovima. Za početak, potrebno je sljedeće: Uređaj na kojem možete pokrenuti ScratchLet's go
Razbijte igru Code, Arduino slagalica: 4 koraka (sa slikama)
Crack the Code Game, Arduino Box Puzzle Box: U ovom Instructableu pokazat ću vam kako izgraditi vlastitu crack kodnu igru u kojoj pomoću rotacijskog kodera za biranje pogodite nasumično generirani kôd na sigurno. Na prednjoj strani sefa nalazi se 8 LED dioda koje vam govore koliko
Azimuthalna projekcija 3D dekoracija karte X Slagalica s narodnom glazbom - Arduino: 7 koraka
Azimuthal Projection 3D Map Decoration X Folk Music Puzzle Game - Arduino: UVOD Sljedeća stranica će vas uputiti kako stvoriti Arduino projekt, koji ima dvije glavne funkcije - običan ukras sa rasvjetom i puzzle igra s narodnom glazbom, koja uključuje polja geografije, geometrije , karte, Ujedinjeni narodi i
Poljoprivrednik, lisica, guska, slagalica: 6 koraka
Farmer, Fox, Goose, Grain Puzzle: Kad sam bio dijete, uzeo sam knjigu svojih očeva pod nazivom The Scientific American Book of Projects For The Amateur Scientist. Knjigu još uvijek imam i razumijem da je teško doći do ovih dana. Ali možete ga pročitati na