Tartalomjegyzék:
Videó: Arduino puzzle doboz: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Ehhez a projekthez egy rejtvénydobozt készítünk, amely zenével működik. A lényeg az, hogy amikor megnyom egy gombot, egy dallamot ad ki, és az Arduino kiszámítja, hogy mely gombokat kell megnyomni, hogy tudja, mi a helyes és mi a rossz válasz.
Kellékek
1 x Arduino uno
1 x 1 k ohmos ellenállás
5 x 220 Ohm ellenállás
1 x piezo zümmögő
5 x 6x6 mm -es nyomógomb
1 db Jumper vezeték
1 x perf/szalag tábla
1 x forrasztókészlet
1 x zsanér
1 x bilincs
1 x kis komód/fa
1x forró ragasztópisztoly + ragasztópálca
1 x 9V elem + tartó
egy kis worbla
festék
1. lépés:
Kezdésként be kell nyomnia a csapokat a kenyértáblába. Most csatlakoztassa az analóg 2 -t egy vezetékkel a tábla sarkához. Két ellenállást fogunk csatlakoztatni hozzá egy sorban. Az első egy 10 k ohmos ellenállás. Ennek az ellenállásnak a másik végéhez csatlakoztatjuk a vezetéket az analóg földhöz. A második ellenállás egy 220 ohmos ellenállás, amelyet az első gombhoz csatlakoztatunk. Használjon másik azonos értékű ellenállást, hogy a gomb második nyitott oldalát a második gombbal kösse össze. Csatlakoztassa az ilyen gombokat az utolsóhoz. Az utolsónál megragad egy vezetéket, és a gomb megfelelő zárt oldalához csatlakoztatja, és a sorban következőhöz csatlakoztatja. Most ismételje meg azt a folyamatot, amelyet az ellenállásokkal csak sima vezetékeknél tud. Csatlakoztassa az első gombot az Arduino analóg 3, 3 V -os portjához. Összességében kapsz egyfajta keresztapát, amint az alább látható.
2. lépés:
Ezután csatlakoztassa a zümmögőt a kenyértáblához, és rögzítse egyik oldalát a digitális földhöz, a másikat pedig a 12 -es porthoz. Bölcs dolog már feltölteni az alábbi kódot az Arduino -ba, hogy tesztelhesse, hogy minden megfelelően működik -e. Ha igen, elkezdheti az alkatrészek forrasztását. Ehhez vegye ki őket a kenyértáblából, és közvetlenül forrasztja össze a vezetékeket és csatlakozásokat. Ha úgy gondolja, hogy több hosszra van szüksége a gombok között, akkor adjon hozzá egy kis vezetéket az ellenállások közé. A kenyértáblára ekkor már nincs szükség.
3. lépés:
Miután minden felforrasztott, ideje elkészíteni a dobozt. Egy olcsó fiókkészletet használtam az enyém alapjául. Egyszerűen hosszában félbevágtam, és eltávolítottam a hátát és az oldalt, amelyet átvágtam. Most két c alakú darabot kell kapnia. Vágja le egyikük egyik oldalát fedőként. Most forgassa el az egyik fennmaradó darabot úgy, hogy fedetlen dobozként illeszkedjenek egymáshoz, és ragassza össze őket. Miután a ragasztó megfelelően megszilárdult, fúrjon egy kis lyukat a doboz mindkét oldalára a gombokhoz, és egy nagyobbat a fedélben lévő zümmögőhöz.
4. lépés:
Most elkezdheti festeni a dobozt. Az enyémet a BOTW -n alapuló virágmintával készítettem, de valóban választhat bármilyen formatervezést. Miután ez megtörtént, a gombokat a lyukakba helyezheti, és ragasztógömböt helyezhet a gomb hátoldalára és a környező fára. Ugyanez az elv vonatkozik a zümmögőre is, de az enyém tökéletesen illeszkedik a lyukba, így szükségtelenné válik. Ezután megragad egy kis munkalapot és felmelegíted, és apró gombokat készítesz. Óvatosan ragasztja őket a gombokra, de ügyeljen arra, hogy ne használjon túl sok ragasztót, mert véletlenül elakadhatnak a gombok. Most átfestheti őket, hogy jobban illeszkedjenek a dobozba.
5. lépés:
Végül ragasztja vagy csavarozza, a bilincset és a csuklópántokat a dobozon és a fedélen, amelyek összekötik a kettőt.
6. lépés:
Most, hogy a doboza kész, mindössze annyit kell tennie, hogy behelyezi az Arduino -t és az akkumulátort, és becsukja a fedelet.
7. lépés: Kód
// Ez a Zelda témájú rejtvény/zenei doboz kódja.
// ez összekapcsolja a kódot a jegyzetek listájával a másik lapon
#include "pitchches.h"
// ez a változó biztosítja, hogy az Arduino a gomb hosszabb megnyomását egyetlen megnyomásnak látja
int azonos = 0;
// innen olvassa be az Ön bevitelét
int k = 2;
// ez a kimeneti pin
int hangszóró = 12;
// alább a végső dallamok
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};
// a hang normális időtartama
int BEATTIME = 300;
// a számláló, amelyet nyomon követünk, ha a megoldásban vagyunk
int teller = 0;
void setup () {
Sorozat.kezdet (9600);
pinMode (2, BEMENET);
pinMode (1, BEMENET);
}
void loop () {
// beolvassa a bemenetet a csapokból
k = analóg (2);
int p = analógOlvasás (1);
// ha nincs gomb megnyomva, akkor nem lehet hangjelzés
ha (mondó == 0) {
noTone (12);
}
// ha az olvasott adatok megfelelnek a paramétereknek, futtassa a leírt kódbitet
if (k> 320 && k <350) {
rechts ();
}
//""
különben ha (k 290) {
linkek ();
}
//""
különben ha (k> 260 && k <280) {
boven ();
}
//""
különben ha (k> 240 && k <260) {
onder ();
}
//""
különben ha (k> 220 && k <240) {
a ();
}
// ha nem (ha nincs gomb megnyomva), futtassa ezt a kódot
más {
// alaphelyzetbe állítás, így a következő gombnyomásra használható
azonos = 0;
// ha a számláló egy bizonyos számig tart, futtassa a leírt kódbitet
ha (mondó == 166) {
zelda ();
}
//""
különben ha (teller == 386) {
saria ();
}
//""
különben ha (mondó == 266) {
epona ();
}
//""
különben ha (teller == 999) {
// ezt a hangot játssza le a hiba megjelölésére
hang (hangszóró, NOTE_C3, BEATTIME);
// állítsa vissza a számlálót 0 -ra
mondó = 0;
}
}
// a bemenet és a kimenet közötti késleltetés
késleltetés (100);
// kinyomtatja a bemenet értékeit a soros monitoron
Soros.println (k);
}
// ez az első dallam
void zelda () {
// ez beállít egy számlálót, amely frissíti magát a dallam lejátszása közben, hogy el tudja olvasni és leálljon, amikor kell
for (int i = 0; i <sizeof (Zelda); i ++) {
// azt mondja, hogy egy jegyzetnek mennyi ideig kell tartania
int ZTime = 1000 / ZeldaTime ;
// generálja a hangokat
hangszín (hangszóró, Zelda , ZTime);
// létrehozza a megfelelő késleltetést
int szünet = ZTime * 1.30;
késleltetés (szünet);
// visszaállítja a számlálót
mondó = 0;
// kinyomtatja a bemenet értékeit a soros monitoron
Serial.println (teller);
}
}
//""
void epona () {
for (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
hangszín (hangszóró, Epona , ETime);
int szünet = ETime * 1,30;
késleltetés (szünet);
mondó = 0;
Serial.println (teller);
}
}
//""
void saria () {
for (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
hang (hangszóró, Saria , STime);
int szünet = STime * 1,30;
késleltetés (szünet);
mondó = 0;
Serial.println (teller);
}
}
void rec
hts () {
// ha ezt még nem nyomták meg
ha (ugyanaz == 0) {
// ha a számláló jelenleg rendelkezik ezen értékek egyikével, adja hozzá ezt
ha (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || teller == 374) {
teller = teller + 1;
}
// egyébként állítsa 999 -re, így hibazajt hall
más {
teller = 999;
}
// állítsa ugyanazt egyre, így az Arduino nem olvassa el a hosszan tartó nyomást többszöri megnyomásként
azonos = 1;
}
// játszani a hangot
más {
hang (hangszóró, NOTE_A4, BEATTIME);
}
// kinyomtatja a bemenet értékeit a soros monitoron
Serial.println (teller); }
//""
void links () {
ha (ugyanaz == 0) {
ha (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
teller = teller + 11;
}
különben ha (mondó == 0) {
elbeszélő = 111;
}
más {
teller = 999;
}
azonos = 1;
} más{
hangszín (hangszóró, NOTE_B4, BEATTIME);
} Sorozat.println (elbeszélő);
}
//""
void boven () {
ha (ugyanaz == 0) {ha (teller == 111 || teller == 144 || teller == 233) {
teller = teller + 21;
}
különben ha (mondó == 0) {
elbeszélő = 221;
}
más {
teller = 999;
}
azonos = 1;
}
más {
hang (hangszóró, NOTE_D5, BEATTIME);
Serial.println (teller);
}
}
//""
void onder () {
ha (ugyanaz == 0) {
ha (mondó == 343) {
teller = teller + 31;
}
különben ha (mondó == 0) {
elbeszélő = 331;
} más {
teller = 999;
} azonos = 1;
} más {
hang (hangszóró, NOTE_F4, BEATTIME);
Serial.println (teller);
}
}
//""
void a () {
ha (ugyanaz == 0) {
ha (mondó == 0) {
elbeszélő = 461;
}
más {
teller = 999;
}
azonos = 1;
}
hang (hangszóró, NOTE_D4, BEATTIME);
Serial.println (teller);
}
Ajánlott:
Arduino billentyűzet joystick bővítő doboz és hangvezérlő dolog a Deej használatával: 8 lépés
Az Arduino billentyűzet joystick bővítő doboza és hangvezérlője a Deej használatával: Miért Egy ideje szeretnék egy kis joystickot hozzáadni a billentyűzetemhez az interfész elemek vezérléséhez, vagy más kisebb feladatokat a játékokban és szimulátorokban (MS Flight Sim, Elite: Dangerous, Csillagok háborúja: századok stb.). Továbbá az Elite: Dangerous esetében voltam
Arduino: Éneklő születésnapi doboz ajándékoknak: 14 lépés
Arduino: Éneklő születésnapi doboz ajándékoknak: Ez az éneklő születésnapi doboz születésnapi ajándékok csomagolására készült, Arduino segítségével különleges funkciókat biztosít, beleértve az éneklést és a LED gyertya meggyújtását. Azzal a képességgel, hogy énekelni kell a Boldog születésnapot, és felgyulladhat a LED
Egy régi útválasztó doboz újratervezése az Arduino projekthez: 3 lépés
Régi útválasztó doboz újratervezése az Arduino projekthez: Ez a projekt az otthoni automatizálási projekt megvalósításának szükségességéből jött létre. Úgy döntöttem, hogy az esetet egy régi hibás PlusNet útválasztóról (Thomson TG585 router) alakítom át. burkolat volt :: Alacsony profilú falra szerelhető doboz Könnyen lehajtható fedéllel
Arduino 12 módú kék doboz - Bevezetés: 5 lépés
Arduino 12 módú Blue Box - Bevezetés: FIRMWARE UPDATE !! -2019.08.08-https://github.com/donfroula/Arduino-Multimode-Blue-Box- Itt bemutatott egy Arduino-alapú "Kék doboz". Előállítja a " hagyományos " Kék doboz 2600 Hz-es hang és MF (többfrekvenciás) hangok, de
Cédrus (szivar?) Doboz hangszóró doboz: 8 lépés (képekkel)
Cedar (szivar?) Doboz hangszóró doboz: A Munny hangszórók ihlette, de nem hajlandó többet költeni, mint 10 dollár, itt az én útmutatásom a régi számítógépes hangszórók, a fából készült doboz a takarékboltból és sok forró ragasztó segítségével