Talaan ng mga Nilalaman:
Video: Arduino Puzzle Box: 7 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Para sa proyektong ito ay gagawa kami ng isang kahon ng palaisipan na gumagana sa musika. Ang pangunahing kabuluhan nito ay kapag pinindot mo ang isang pindutan ay naglalabas ito ng isang tune at kinakalkula ng Arduino kung aling mga pindutan ang pinindot upang malaman nito kung ano ang tama at kung ano ang maling sagot.
Mga gamit
1 x Arduino uno
1 x 1k Ohm risistor
5 x 220 Ohm resistors
1 xPiezo Buzzer
5 x pushbutton 6x6 mm
1 x set Jumper wires
1 x perf / strip board
1 x solderset
1 x bisagra
1 x clamp
1 x maliit na dibdib ng mga drawer / kahoy
1x mainit na baril ng pandikit + mga pandikit na pandikit
1 x 9v baterya + may hawak
kaunting worbla
pintura
Hakbang 1:
Upang magsimula sa kailangan mong pindutin ang iyong mga pin sa iyong breadboard. Ngayon ikonekta ang analog 2 sa isang kawad sa sulok ng board. Ikonekta namin ang dalawang resistors dito sa isang linya. Ang una ay isang resistor na 10k Ohm. Sa kabilang dulo ng risistor na ito ay kumokonekta kami sa wire sa analog ground. Ang pangalawang risistor ay isang resistor na 220 Ohm kumokonekta kami sa unang pindutan. Gumamit ng isa pang risistor ng parehong halaga upang ikonekta ang pangalawang bukas na bahagi ng pindutan sa pangalawang pindutan. Patuloy na ikonekta ang mga pindutan tulad nito hanggang sa huling isa. Sa huling kukuha ka ng isang kawad at ikonekta ito sa isang kaukulang saradong gilid ng pindutan at ikonekta ito sa susunod na nasa linya. Inuulit mo ngayon ang proseso na ginawa mo sa mga resistors na alam mo lang sa mga simpleng wires. Ikonekta ang unang pindutan sa analog 3, 3V port sa iyong Arduino. Lahat sa lahat ay makakakuha ka ng isang uri ng cross patern na nakalarawan sa ibaba.
Hakbang 2:
Susunod na plug mo buzzer sa breadboard at i-secure ang isang gilid sa digital ground at ang isa pa sa 12 port. Ito ay matalino upang mai-upload ang sumusunod na code sa iyong Arduino upang masubukan mo kung ang lahat ay gumagana nang tama. Kung ito ay maaari mong simulang magkakasama sa paghihinang ng mga sangkap. Gawin ito sa pamamagitan ng paglabas sa kanila ng breadboard at paghihinang ng mga wire at koneksyon nang direkta. Kung sa palagay mo kailangan mo ng higit pang haba sa pagitan ng mga pindutan maaari kang magdagdag ng dagdag na kawad sa pagitan ng mga resistors. Ang breadboard ay hindi na kinakailangan sa puntong ito.
Hakbang 3:
Matapos ang lahat ay maghinang oras na upang gawin ang kahon mismo. Gumamit ako ng isang murang hanay ng mga drawer bilang isang batayan para sa minahan. Pasimpleng pinutol ko ang kalahating pahaba at tinanggal ang likuran at ang tagiliran na pinagputol ko. Dapat ay mayroon kang dalawang piraso ng hugis c ngayon. Gupitin ang isang gilid ng isa sa mga ito upang magamit bilang takip. Paikutin ngayon ang isa sa natitirang mga piraso upang magkasama sila tulad ng isang walang takip na kahon at idikit ito. Kapag ang pandikit ay nakatakda nang maayos, mag-drill ng isang maliit na butas sa bawat panig ng kahon para sa mga pindutan at isang mas malaki para sa buzzer sa talukap ng mata.
Hakbang 4:
Ngayon ay makakapunta ka sa pagpipinta ng kahon. Ginawa ko ang akin ng isang disenyo ng bulaklak batay sa BOTW ngunit maaari kang pumili ng anumang disenyo na nais mo. Matapos ito ay tapos na maaari mong ilagay ang mga pindutan sa loob ng mga butas at maglagay ng isang glob ng pandikit sa likod ng pindutan at sa mga nakapaligid na kahoy. Nalalapat ang parehong prinsipyo sa buzzer ngunit ang minahan ay ganap na umaangkop sa butas na ginagawa itong hindi kinakailangan. Susunod na kukuha ka ng ilang worbla at pag-init at gupitin ito upang makagawa ng ilang maliliit na pindutan. Maingat na idikit ang mga ito papunta sa mga pindutan ngunit tiyaking hindi gagamitin sa labis na pandikit dahil maaari mong aksidenteng ma-stuck ang mga pindutan. Ngayon ay maaari mo nang ipinta ang mga ito upang maisama pa ang mga ito sa kahon.
Hakbang 5:
Panghuli mong pandikit o tornilyo, ang salansan at mga bisagra sa kahon at takip na kumukonekta sa dalawa.
Hakbang 6:
Ngayon na kumpleto na ang iyong kahon ang kailangan mo lang gawin ay ilagay ang Arduino at baterya sa loob nito at isara ang takip.
Hakbang 7: Code
// Ito ang code para sa isang Zelda na may temang puzzle / music box.
// kinokonekta nito ang iyong code sa listahan ng mga tala sa iba pang tab
# isama ang "mga pitches.h"
// ang variable na ito ay titiyakin na ang Arduino ay makakakita ng isang mas matagal na pindutin ang pindutan bilang isang pagpindot lamang
int pareho = 0;
// mula dito babasahin ang iyong input
int k = 2;
// ito ang iyong output pin
int speaker = 12;
// sa ibaba ay ang mga huling himig
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, NOTE5, NOTE
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
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// ang normal na tagal ng isang tala
int BEATTIME = 300;
// ang counter na susubaybayan ay nasa solusyon tayo
int teller = 0;
walang bisa ang pag-setup () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
void loop () {
// binabasa ang input mula sa mga pin
k = analogRead (2);
int p = analogRead (1);
// kung walang anumang pindutan na pinindot dapat walang tono
kung (teller == 0) {
noTone (12);
}
// kung ang binasang data ay tumutugma sa mga parameter patakbuhin ang inilarawan na bit ng code
kung (k> 320 && k <350) {
rechts ();
}
//""
kung hindi man (k 290) {
mga link ();
}
//""
kung hindi man (k> 260 && k <280) {
boven ();
}
//""
kung hindi man (k> 240 && k <260) {
onder ();
}
//""
kung hindi man (k> 220 && k <240) {
a ();
}
// kung hindi (kapag hindi pinindot ang pindutan), patakbuhin ang code na ito
iba pa {
// reset parehas upang magamit ito sa susunod na pinindot ang isang pindutan
pareho = 0;
// kung ang counter ay hanggang sa isang tiyak na numero patakbuhin ang inilarawan na bit ng code
kung (teller == 166) {
zelda ();
}
//""
kung hindi man (teller == 386) {
saria ();
}
//""
kung hindi man (teller == 266) {
epona ();
}
//""
kung hindi man (teller == 999) {
// play this tone upang markahan ang error
tono (nagsasalita, NOTE_C3, BEATTIME);
// reset ang counter sa 0
tagapagbalita = 0;
}
}
// ang pagkaantala sa pagitan ng input at output
pagkaantala (100);
// print ang mga halaga ng iyong input sa serial monitor
Serial.println (k);
}
// ito ang unang himig
void zelda () {
// nagtatakda ito ng isang counter na nag-a-update sa sarili nito habang pinapatugtog ang himig upang mabasa ito at huminto kung kailan dapat
para sa (int i = 0; i <sizeof (Zelda); i ++) {
// sabi kung gaano katagal dapat magtagal ang isang tala
int ZTime = 1000 / ZeldaTime ;
// bumubuo ng mga tono
tono (nagsasalita, Zelda , ZTime);
// lumilikha ng tamang pagkaantala
int pause = ZTime * 1.30;
antala (i-pause);
// resets counter
tagapagbalita = 0;
// print ang mga halaga ng iyong input sa serial monitor
Serial.println (teller);
}
}
//""
void epona () {
para sa (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
tono (nagsasalita, Epona , ETime);
int pause = ETime * 1.30;
antala (i-pause);
tagapagbalita = 0;
Serial.println (teller);
}
}
//""
void saria () {
para sa (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
tono (nagsasalita, Saria , STime);
int pause = PANAHON * 1.30;
antala (i-pause);
tagapagbalita = 0;
Serial.println (teller);
}
}
walang bisa rec
hts () {
// kung hindi pa ito napipindot
kung (pareho == 0) {
// kung ang counter ay kasalukuyang may isa sa mga halagang ito idagdag ito rito
kung (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || teller == 374) {
teller = teller + 1;
}
// kung hindi man ay itakda ito sa 999 upang marinig mo ang ingay ng error
iba pa {
tagapagbalita = 999;
}
// magtakda ng pareho sa isa upang ang Arduino ay hindi mabasa ang isang matagal na pindutin bilang maraming mga pagpindot
pareho = 1;
}
// patugtugin ang tono
iba pa {
tono (speaker, NOTE_A4, BEATTIME);
}
// print ang mga halaga ng iyong input sa serial monitor
Serial.println (teller); }
//""
walang bisa na mga link () {
kung (pareho == 0) {
kung (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
tagapagbalita = tagwento + 11;
}
kung hindi man (teller == 0) {
tagapagbalita = 111;
}
iba pa {
tagapagbalita = 999;
}
pareho = 1;
} iba pa {
tono (speaker, NOTE_B4, BEATTIME);
} Serial.println (teller);
}
//""
void boven () {
kung (pareho == 0) {kung (teller == 111 || teller == 144 || teller == 233) {
tagapagbalita = tagwento + 21;
}
kung hindi man (teller == 0) {
tagapagbalita = 221;
}
iba pa {
tagapagbalita = 999;
}
pareho = 1;
}
iba pa {
tono (nagsasalita, NOTE_D5, BEATTIME);
Serial.println (teller);
}
}
//""
void onder () {
kung (pareho == 0) {
kung (teller == 343) {
tagapagbalita = tagwento + 31;
}
kung hindi man (teller == 0) {
tagapagbalita = 331;
} iba pa {
tagapagbalita = 999;
} pareho = 1;
} iba pa {
tono (speaker, NOTE_F4, BEATTIME);
Serial.println (teller);
}
}
//""
walang bisa () {
kung (pareho == 0) {
kung (teller == 0) {
tagapagbalita = 461;
}
iba pa {
tagapagbalita = 999;
}
pareho = 1;
}
tono (nagsasalita, NOTE_D4, BEATTIME);
Serial.println (teller);
}
Inirerekumendang:
Web Lamp Puzzle LED Lamp Na May ESP32: 5 Mga Hakbang (na may Mga Larawan)
WebApp Puzzle LED Lamp Sa ESP32: Naglalaro ako ng mga LED strip sa loob ng maraming taon, at kamakailan lamang lumipat sa lugar ng isang kaibigan kung saan hindi ako nakagawa ng malalaking pagbabago tulad ng pag-mount ng strip sa mga dingding, kaya pinagsama ko ang lampara na ito isang solong kawad na lalabas para sa lakas at maaaring maging plac
I-crack ang Code Game, Arduino Batay sa Puzzle Box: 4 na Hakbang (na may Mga Larawan)
I-crack ang Code Game, Arduino Batay sa Puzzle Box: Sa Instructable na ito, ipapakita ko sa iyo kung paano bumuo ng iyong sariling basagin ang code game kung saan gumagamit ka ng isang rotary encoder dial upang hulaan ang random na nabuong code sa ligtas. Mayroong 8 LEDs sa harap ng ligtas upang sabihin sa iyo kung ilan sa
Isang Maliliit na Bass Preamp at Mga Box ng Mga Epekto: Itim na Yelo, Electra Fuzz: 9 Mga Hakbang (na may Mga Larawan)
Isang Maliliit na Bass Preamp at Mga Box ng Mga Epekto: Itim na Yelo, Electra Fuzz: Sa gabay na ito ipapakita ko kung paano mo magagawa ang iyong sariling bass / gitara pre-amplifier at effects box. Pinili kong gumawa ng isang hybrid effect box, na pinaghahalo ang karaniwang "Black Ice" o "Electra Distortion" distortion effect sa "Bazz Fuss" fuzz effect.
Puzzle Box - Codebreakers at Groundbreakers [UCM]: 7 Hakbang (na may Mga Larawan)
Puzzle Box - Codebreakers and Groundbreakers [UCM]: Isang laser cut puzzle box kit na idinisenyo para sa isang digital maker workshop sa The Fitzwilliam Museum, Cambridge kaugnay sa kanilang Codebreakers at Groundbreakers exhibit. Para sa pagawaan, ang pindutan sa kahon ng puzzle ay konektado sa isang MakeyMakey a
Numero ng Puzzle Sa Arduino: 4 Mga Hakbang (na may Mga Larawan)
Numero ng Puzzle Sa Arduino: Kumusta mga kaibigan, ngayon nais na ibahagi ang solong proyekto. Ito ay tungkol sa isang larong puzzle na may arduino, kung saan ang laro ay ipinapakita sa TV at kinokontrol ng isang keypad ng (4x4) Tingnan ang video dito