Spisu treści:
Wideo: Pudełko z łamigłówkami Arduino: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Na potrzeby tego projektu zamierzamy stworzyć pudełko z puzzlami, które będzie współpracowało z muzyką. Sednem tego jest to, że po naciśnięciu przycisku zwalnia melodię, a Arduino oblicza, które przyciski są wciśnięte, aby wiedzieć, co jest prawidłowe, a jaka jest zła.
Kieszonkowe dzieci
1 x Arduino
Rezystor 1 x 1 k Ohm
Rezystory 5 x 220 Ohm
1 x brzęczyk piezoelektryczny
5 x przycisk 6x6 mm
1 x zestaw przewodów połączeniowych
1 x deska perf/stripboard
1 x zestaw lutowniczy
1 x zawias
1 x zacisk
1 x mała komoda/drewno
1x pistolet do klejenia na gorąco + klej w sztyfcie
1x bateria 9 v + uchwyt;
trochę worbla
farba
Krok 1:
Na początek musisz wcisnąć szpilki w płytkę stykową. Teraz podłącz analog 2 przewodem do rogu płytki. Podłączymy do niego linią dwa rezystory. Pierwszy to rezystor 10k Ohm. Do drugiego końca tego rezystora podłączamy przewód do masy analogowej. Drugi rezystor to rezystor 220 Ohm, który podłączamy do pierwszego przycisku. Użyj innego rezystora o tej samej wartości, aby połączyć drugą otwartą stronę przycisku z drugim przyciskiem. Kontynuuj podłączanie takich przycisków aż do ostatniego. Na ostatnim łapiesz przewód i łączysz go z odpowiednią zamkniętą stroną przycisku i łączysz go z następnym w linii. Teraz powtarzasz proces, który wykonałeś z rezystorami znanymi tylko ze zwykłymi przewodami. Podłącz pierwszy przycisk do portu analogowego 3, 3V w Arduino. W sumie otrzymasz rodzaj krzyża, jak pokazano poniżej.
Krok 2:
Następnie podłącz brzęczyk do płytki stykowej i przymocuj jedną stronę do uziemienia cyfrowego, a drugą do portu 12. Sprytnie jest już przesłać następujący kod do Arduino, dzięki czemu można przetestować, czy wszystko działa poprawnie. Jeśli tak, możesz zacząć lutować elementy razem. Zrób to, wyjmując je z płytki stykowej i lutując bezpośrednio ze sobą przewody i połączenia. Jeśli uważasz, że potrzebujesz większej długości między przyciskami, możesz dodać dodatkowy przewód między rezystorami. Płytka prototypowa nie jest już potrzebna w tym momencie.
Krok 3:
Po zlutowaniu wszystkiego nadszedł czas na wykonanie samego pudełka. Użyłem taniego zestawu szuflad jako podstawy dla mojej. Po prostu przeciąłem na pół wzdłuż i usunąłem tył i bok, przez które przeciąłem. Powinieneś mieć teraz dwa kawałki w kształcie litery C. Odetnij jedną stronę jednego z nich, aby użyć go jako pokrywki. Teraz obróć jeden z pozostałych elementów tak, aby pasowały do siebie jak pudełko bez pokrywki i sklej je razem. Po prawidłowym związaniu kleju wywierć mały otwór z każdej strony pudełka na przyciski i większy na brzęczyk w pokrywie.
Krok 4:
Teraz możesz zabrać się do malowania pudełka. Zrobiłem mój z projektem kwiatowym opartym na BOTW, ale naprawdę możesz wybrać dowolny wzór. Po wykonaniu tej czynności możesz umieścić guziki w otworach i nałożyć kulkę kleju na tył guzika i otaczające drewno. Ta sama zasada dotyczy brzęczyka, ale mój idealnie mieści się w otworze, przez co jest niepotrzebny. Następnie łapiesz trochę worbla, podgrzewasz i kroisz na małe guziki. Ostrożnie przyklej je do przycisków, ale pamiętaj, aby nie używać zbyt dużo kleju, ponieważ możesz przypadkowo zablokować przyciski. Teraz możesz je pomalować, aby lepiej komponowały się z pudełkiem.
Krok 5:
Na koniec sklejasz lub przykręcasz zacisk i zawiasy na pudełku i pokrywie łączące oba.
Krok 6:
Teraz, gdy pudełko jest gotowe, wystarczy włożyć do niego Arduino i baterię oraz zamknąć pokrywę.
Krok 7: Kod
// To jest kod łamigłówki/pozytywki o tematyce Zeldy.
// to łączy twój kod z listą notatek w innej zakładce
#include "smoły.h"
// ta zmienna zapewni, że Arduino będzie widział dłuższe naciśnięcie przycisku jako jedno naciśnięcie
wewn. to samo = 0;
// stąd odczyta twoje wejście
int k = 2;
//to jest twój pin wyjściowy
wewn mówca = 12;
// poniżej melodie końcowe
int Zelda = {UWAGA_B4, UWAGA_D5, UWAGA_A4, UWAGA_G4, UWAGA_A4, UWAGA_B4, UWAGA_D5, UWAGA_A4, UWAGA_G4, UWAGA_A4, UWAGA_B4, UWAGA_D5, UWAGA_A5, UWAGA_G5, UWAGA_D5, UWAGA_C5, UWAGA_B4, UWAGA_A5};
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {UWAGA_D5, NOTA_B4, NOTA_A4, NOTA_D5, NOTA_B4, NOTA_A4, NOTA_D5, NOTA_B4, NOTA_A4, NOTA_B4, NOTA_A4};
int Czas Epona = {4, 4, 1,5, 4, 4, 1,5, 4, 4, 2, 2, 1};
int Saria = {UWAGA_F4, UWAGA_A4, UWAGA_B4, UWAGA_F4, UWAGA_A4, UWAGA_B4, UWAGA_F4, UWAGA_A4, UWAGA_B4, UWAGA_E5, UWAGA_D5, UWAGA_B4, UWAGA_C5, UWAGA_B4, UWAGA_G4, UWAGA_E4, UWAGA_D4, UWAGA_E4, UWAGA_G4, UWAGA_E4};
int CzasSaria = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// normalny czas trwania nuty
int CZAS BEATU = 300;
// licznik, który będzie śledzić, czy jesteśmy w rozwiązaniu
int kasjer = 0;
pusta konfiguracja () {
Serial.początek(9600);
pinMode(2, WEJŚCIE);
pinMode(1, WEJŚCIE);
}
pusta pętla () {
// odczytuje wejście z pinów
k = odczyt analogowy(2);
int p = odczyt analogowy(1);
//jeśli nie jest wciśnięty żaden przycisk, nie powinno być żadnego dźwięku
jeśli (kasjer == 0) {
brak Dźwięku(12);
}
//jeżeli odczytane dane są zgodne z parametrami uruchom opisany bit kodu
jeśli (k > 320 && k < 350) {
rechts();
}
//""
inaczej, jeśli (k 290) {
spinki do mankietów();
}
//""
inaczej jeśli (k > 260 && k < 280) {
boven();
}
//""
inaczej jeśli (k> 240 && k < 260) {
dalej();
}
//""
inaczej jeśli (k > 220 && k < 240) {
a();
}
// jeśli nie (gdy żaden przycisk nie jest wciśnięty), uruchom ten kod
w przeciwnym razie {
// zresetuj to samo, aby można było go użyć przy następnym naciśnięciu przycisku
to samo = 0;
// jeśli licznik jest do określonej liczby uruchom opisany bit kodu
jeśli (kasjer == 166) {
zelda();
}
//""
inaczej, jeśli (mówiący == 386) {
saria();
}
//""
inaczej, jeśli (mówiący == 266) {
epona();
}
//""
inaczej, jeśli (kasjer == 999) {
//odtwórz ten dźwięk, aby zaznaczyć błąd
ton(głośnik, NOTE_C3, BEATTIME);
//zresetuj licznik do 0
kasjer = 0;
}
}
//opóźnienie między wejściem a wyjściem
opóźnienie (100);
// wyświetla wartości twojego wejścia w monitorze szeregowym
Serial.println(k);
}
// to jest pierwsza melodia
nieważne zelda () {
//to ustawia licznik, który aktualizuje się podczas odtwarzania melodii, aby mógł ją odczytać i zatrzymać się, kiedy powinien
for (int i = 0; i < sizeof(Zelda); i++) {
//mówi, jak długo powinna trwać notatka
int ZTime = 1000 / ZeldaTime;
//generuje dźwięki
ton (głośnik, Zelda, ZTime);
//tworzy poprawne opóźnienie
int pauza = ZTime * 1,30;
opóźnienie(pauza);
//resetuje licznik
kasjer = 0;
// wyświetla wartości twojego wejścia w monitorze szeregowym
Serial.println(kasjer);
}
}
//""
nieważne epona() {
for (int i = 0; i < sizeof(Epona); i++) {
int ETime = 1000 / EponaTime;
ton (głośnik, Epona, ETime);
int pauza = E Czas * 1,30;
opóźnienie(pauza);
kasjer = 0;
Serial.println(kasjer);
}
}
//""
pusta saria () {
for (int i = 0; i < sizeof(Saria); i++) {
int STime = 1000 / SariaTime;
ton (głośnik, Saria, STime);
int pauza = SCzas * 1,30;
opóźnienie(pauza);
kasjer = 0;
Serial.println(kasjer);
}
}
nieważne rec
hts() {
// jeśli to nie zostało już naciśnięte
jeśli (tak samo == 0) {
// jeśli licznik aktualnie ma jedną z tych wartości, dodaj to do niego
jeśli (kasjer == 0 || kasjer == 132 || kasjer == 165 || kasjer == 232 || kasjer == 265 || kasjer == 331 || kasjer == 374) {
kasjer = kasjer + 1;
}
// w przeciwnym razie ustaw go na 999, aby usłyszeć dźwięk błędu
w przeciwnym razie {
kasjer = 999;
}
// ustaw to samo na jeden, aby Arduino nie czytało przedłużonego naciśnięcia jako wielokrotnych naciśnięć
to samo = 1;
}
// zagraj dźwięk
w przeciwnym razie {
ton(głośnik, NOTE_A4, BEATTIME);
}
// wyświetla wartości twojego wejścia w monitorze szeregowym
Serial.println(kasjer); }
//""
nieważne linki () {
jeśli (tak samo == 0) {
jeśli (kasjer == 133 || kasjer == 254 || kasjer == 244 || kasjer == 332 || kasjer == 375 || kasjer == 221) {
kasjer = kasjer + 11;
}
inaczej, jeśli (mówiący == 0) {
kasjer = 111;
}
w przeciwnym razie {
kasjer = 999;
}
to samo = 1;
} w przeciwnym razie{
ton(głośnik, NOTE_B4, BEATTIME);
} Serial.println(kasjer);
}
//""
nieważne boven () {
jeśli (to samo == 0) {jeśli (kasjer == 111 || kasjer == 144 || kasjer == 233) {
kasjer = kasjer + 21;
}
inaczej, jeśli (mówiący == 0) {
kasjer = 221;
}
w przeciwnym razie {
kasjer = 999;
}
to samo = 1;
}
w przeciwnym razie {
ton(głośnik, NOTE_D5, BEATTIME);
Serial.println(kasjer);
}
}
//""
nieważne dalej () {
jeśli (tak samo == 0) {
jeśli (kasjer == 343) {
kasjer = kasjer + 31;
}
inaczej, jeśli (mówiący == 0) {
kasjer = 331;
} w przeciwnym razie {
kasjer = 999;
} to samo = 1;
} w przeciwnym razie {
ton(głośnik, NOTE_F4, BEATTIME);
Serial.println(kasjer);
}
}
//""
nieważne a() {
jeśli (tak samo == 0) {
jeśli (kasjer == 0) {
kasjer = 461;
}
w przeciwnym razie {
kasjer = 999;
}
to samo = 1;
}
ton(głośnik, NOTE_D4, BEATTIME);
Serial.println(kasjer);
}
Zalecana:
Kieszonkowe bezużyteczne pudełko (z osobowością): 9 kroków (ze zdjęciami)
Kieszonkowe bezużyteczne pudełko (z osobowością): Chociaż możemy być daleko od powstania robotów, jest jedna maszyna, która już sprzeciwia się ludziom, choć w najdrobniejszy możliwy sposób. Niezależnie od tego, czy chcesz nazwać to bezużytecznym pudełkiem, czy maszyną do pozostawienia mnie w spokoju, ten dzielny, bezczelny robot jest
Zrób pudełko TARDIS Infinity: 9 kroków (ze zdjęciami)
Zrób pudełko TARDIS Infinity: Wcześniej zbudowałem model TARDIS. Jedną z charakterystycznych cech TARDIS jest to, że jest większy w środku niż na zewnątrz. Oczywiście nie mogę tego zrobić, ale w tym Instruktażowym dostosowuję model, aby wyglądał na duży
Pudełko dopaminy - Projekt podobny do Mike'a Boyda - Nie być Mike'em Boydem: 9 kroków
Pudełko dopaminy | Projekt podobny do Mike'a Boyda - Nie bycie Mike'em Boydem: Chcę jeden! Potrzebuję jednego! Jestem prokrastynatorem! Cóż, chcę skrzynkę z dopaminą… bez konieczności programowania. Żadnych dźwięków, tylko czysta wola
Arduino: Śpiewanie urodzinowe pudełko na prezenty: 14 kroków
Arduino: Singing Birthday Box for Presents: To Singing Birthday Box jest przeznaczone do pakowania prezentów urodzinowych, wspomagane przez Arduino w zapewnieniu specjalnych funkcji, w tym śpiewania i zapalania świeczki LED. Dzięki możliwości śpiewania piosenki z okazji urodzin i zapalania diody LED c
Pudełko propozycji z Arduino: 6 kroków
Pudełko propozycji z Arduino: W tej instrukcji pokażę, jak zrobić proste pudełko propozycji małżeństwa za pomocą Arduino Uno. Będzie to idealny sposób na zaproponowanie komuś, kto pasjonuje się elektroniką/projektami Arduino.Ten projekt jest inspirowany filmem na Youtube