Sadržaj:
Video: Arduino slagalica: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Za ovaj projekt napravit ćemo slagalicu koja radi s muzikom. Osnovna suština je u tome da kada pritisnete dugme, pušta melodiju, a Arduino izračunava koja su dugmad pritisnuta tako da zna šta je pravi, a šta pogrešan odgovor.
Supplies
1 x Arduino uno
1 x 1k Ohm otpornik
5 x 220 Ohm otpornici
1 xPiezo zujalica
5 x dugme 6x6 mm
1 x postavljene kratkospojne žice
1 x perf/ploča
1 x set za lemljenje
1 x šarka
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 igle u matičnu 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 drugim gumbom. Nastavite povezivati ovakve tipke do posljednjeg. Na posljednjoj zgrabite žicu i spojite je na odgovarajuću zatvorenu stranu gumba i povežite je sa sljedećom u nizu. Sada ponavljate postupak koji ste izveli s otpornicima samo s običnim žicama. Spojite prvo dugme na analogni 3, 3V port na vašem Arduinu. Sve u svemu, dobit ćete neku vrstu križne slike 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 direktno zalemite žice i veze. Ako mislite da vam je potrebno više duljine između gumba, možete dodati dodatnu žicu između otpornika. Okvir u ovom trenutku više nije potreban.
Korak 3:
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 presjekao. 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 učvrsti, 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 napravio svoj sa cvjetnim dizajnom na bazi BOTW -a, 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 dugmeta i okolno drvo. Isti princip vrijedi i za zujalicu, ali moja se savršeno uklapa u rupu čineći je nepotrebnom. Zatim uzmite malo worble i zagrijte pa je izrežite kako biste napravili neke male dugmad. Pažljivo ih zalijepite na dugmad, ali pazite da ne koristite previše ljepila jer biste mogli slučajno zaglaviti dugmad. Sada ih možete obojiti kako biste se više stopili s kutijom.
Korak 5:
Na kraju zalijepite ili zašrafite 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 i zatvoriti poklopac.
Korak 7: Kodirajte
// Ovo je kod za zagonetku/muzičku kutiju sa temom Zelda.
// ovo povezuje vaš kôd sa listom bilješki na drugoj kartici
#include "pitches.h"
// ova varijabla će osigurati da Arduino vidi dulji pritisak na gumb 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
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 teller = 0;
void setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {{100} {101}
// čita ulaz sa pinova
k = analogRead (2);
int p = analogRead (1);
// ako nije pritisnuto nijedno dugme, ne bi trebalo biti ni tona
if (teller == 0) {
noTone (12);
}
// ako pročitani podaci odgovaraju parametrima, pokrenite opisani bit koda
if (k> 320 && k <350) {
rechts ();
}
//""
inace if (k 290) {
linkovi ();
}
//""
inace if (k> 260 && k <280) {
boven ();
}
//""
inace if (k> 240 && k <260) {
onder ();
}
//""
inace if (k> 220 && k <240) {
a ();
}
// ako ne radi (kad se ne pritisne nijedno dugme), pokrenite ovaj kod
else {
// resetira isto tako da se može koristiti sljedeći put kada pritisnete dugme
isto = 0;
// ako je brojač do određenog broja, pokrenite opisani bit koda
if (teller == 166) {
zelda ();
}
//""
inace if (teller == 386) {
saria ();
}
//""
inace if (teller == 266) {
epona ();
}
//""
inače if (teller == 999) {
// pusti ovaj ton za označavanje greške
ton (zvučnik, NOTE_C3, BEATTIME);
// resetira brojač na 0
blagajnik = 0;
}
}
// kašnjenje između ulaza i izlaza
kašnjenje (100);
// ispisuje vrijednosti vašeg unosa na serijskom monitoru
Serial.println (k);
}
// ovo je prva melodija
void zelda () {
// ovo postavlja brojač koji se ažurira tokom sviranja melodije kako bi je mogao pročitati i zaustaviti kada 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;
kašnjenje (pauza);
// 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;
kašnjenje (pauza);
blagajnik = 0;
Serial.println (blagajnik);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
ton (govornik, Saria , STime);
int pause = STime * 1,30;
kašnjenje (pauza);
blagajnik = 0;
Serial.println (blagajnik);
}
}
void rec
hts () {
// ako ovo već nije pritisnuto
if (isto == 0) {
// ako brojač trenutno ima jednu od ovih vrijednosti, dodajte mu ovo
if (kazivač == 0 || kazivač == 132 || kazivač == 165 || kazivač == 232 || kazivač == 265 || kazivač == 331 || kazivač == 374) {
blagajnik = šalter + 1;
}
// U suprotnom postavite na 999 da biste čuli šum greške
else {
blagajnik = 999;
}
// postavi isto na jedan tako da Arduino ne čita duže štampanje kao više pritiska
isto = 1;
}
// pusti ton
else {
ton (zvučnik, NOTE_A4, BEATTIME);
}
// ispisuje vrijednosti vašeg unosa na serijskom monitoru
Serial.println (blagajnik); }
//""
void links () {
if (isto == 0) {
if (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
šalter = šalter + 11;
}
inače if (teller == 0) {
blagajnik = 111;
}
else {
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) {
šalter = šalter + 21;
}
inace if (teller == 0) {
blagajnik = 221;
}
else {
blagajnik = 999;
}
isto = 1;
}
else {
ton (zvučnik, NOTE_D5, BEATTIME);
Serial.println (blagajnik);
}
}
//""
void onder () {
if (isto == 0) {
if (teller == 343) {
blagajnik = blagajnik + 31;
}
inače if (teller == 0) {
blagajnik = 331;
} else {
blagajnik = 999;
} isto = 1;
} else {
ton (zvučnik, NOTE_F4, BEATTIME);
Serial.println (blagajnik);
}
}
//""
void a () {
if (isto == 0) {
if (teller == 0) {
blagajnik = 461;
}
else {
blagajnik = 999;
}
isto = 1;
}
ton (zvučnik, NOTE_D4, BEATTIME);
Serial.println (blagajnik);
}
Preporučuje se:
WebApp slagalica LED lampa sa ESP32: 5 koraka (sa slikama)
WebApp slagalica LED lampa sa ESP32: Godinama sam se igrao sa LED trakama, a nedavno sam se preselio kod prijatelja gdje nisam mogao napraviti velike promjene, poput postavljanja trake na zidove, pa sam sastavio ovu lampu 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 vizuelni programski jezik zasnovan 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 Instructable -u pokazat ću vam kako izgraditi vlastitu crack kod igru u kojoj koristite okretni kodirač za biranje da pogodite nasumično generirani kôd na sigurno. Na prednjoj strani sefa nalazi se 8 LED dioda koje vam govore koliko
Virtuelna slajd slagalica: 8 koraka
Virtuelna slajd slagalica: Uvod Prije nekoliko godina vidio sam ovu jednostavnu slajd slagalicu sa serijskom igrom ['Originalna uputstva https: //www.instructables.com/id/Batch-Game-Slide …], bilo je super. Napravio sam ga, svirao nekoliko puta, ali izgubio sam interes zbog njegove jednostavnosti. Sa
Slagalica u boji: 6 koraka
Slagalica u boji: Zdravo! Za školski projekat pod nazivom "Ako je ovo onda to" Morao sam izgraditi interaktivni objekt koristeći Arduino. Odlučio sam da napravim slagalicu zasnovanu na boji sa jednostavnim sistemom povratnih informacija. Šta radi (ukratko): Određuje boju predmeta