Spisu treści:

Wisielec Arduino w języku Morse'a: 9 kroków
Wisielec Arduino w języku Morse'a: 9 kroków

Wideo: Wisielec Arduino w języku Morse'a: 9 kroków

Wideo: Wisielec Arduino w języku Morse'a: 9 kroków
Wideo: 5 projektów na nudę w Python 2024, Listopad
Anonim
Wisielec Arduino w języku Morse
Wisielec Arduino w języku Morse

W tym samouczku pokażę, jak skonfigurować własne Arduino do gry w Wisielec, wysyłając kod Morse'a za pomocą prostej latarki lub funkcji latarki z telefonu.

Wszystko, co musisz wykonać, to: płytka Arduino. 10 diod LED, przewody do połączenia tego wszystkiego. Dodatkowo: element piezo (do dodawania dźwięku).

Krok 1: Konfiguracja świateł LED

Konfigurowanie świateł LED
Konfigurowanie świateł LED

Ta gra Morse'a wykorzystuje 4 lampki, aby wskazać 4 litery w słowie, które należy odgadnąć i 5 lampek, aby wskazać życie, które gracz musi odgadnąć, więc przede wszystkim musisz podłączyć 9 diod LED -świeci w zwykły sposób, jak widać na zdjęciu.

Krok 2: Dodaj prowizoryczny czujnik światła

Nie możemy wyrzucać pieniędzy w sklepach z elektroniką, więc postanowiłem utrzymać ten projekt tanim kosztem, używając prostej diody LED jako prowizorycznego czujnika światła.

Wszystko, co musisz zrobić, to podłączyć stronę plus światła LED do jednego z twoich portów analogowych (w moim przypadku A0), a stronę minus do ziemi.

Krok 3: Dodaj swój słownik

Dodaj swój słownik
Dodaj swój słownik

Po pierwsze, zacznijmy od dodania pewnego rodzaju słownika do tłumaczenia liter na odpowiadające im kody Morse'a. Aby to zrobić, po prostu tworzymy tablicę 26 na 5, przy czym pierwsze gniazdo każdej tablicy drugorzędnej ma literę, a 4 kolejne gniazda mają odpowiedni kod Morse'a lub spację, jeśli nie ma już kodu. Na przykład przy literze s, pierwsze miejsce ma 's', drugie, trzecie i czwarte miejsce ma '.' a ostatni slot ma „”.

Krok 4: Spraw, aby światła zapalały się domyślnie

Spraw, aby światła zapalały się domyślnie
Spraw, aby światła zapalały się domyślnie
Spraw, aby światła zapalały się domyślnie
Spraw, aby światła zapalały się domyślnie

W tym kroku upewniamy się, że światła są włączone po uruchomieniu programu, a alfabetem Morse'a reprezentują one literę, którą reprezentują, gdy użytkownik poprawnie je odgadł (kod do tego zostanie napisany w kroku 6). Dbamy również o to, aby zapaliło się tylko tyle świateł, ile żyć pozostało graczowi.

Przed tym upewnij się, że masz tablicę z numerami portów i liczbami całkowitymi ustawionymi na 0, aby reprezentować czas, w którym światło powinno się włączyć, wyłączyć i która część alfabetu Morse'a jest aktualnie wyświetlana.

Krok 5: Dodawanie danych wejściowych

Dodawanie danych wejściowych
Dodawanie danych wejściowych

Teraz napiszemy kod, aby sprawdzić, czy odtwarzacz świeci lampką LED podłączoną do naszego portu analogowego A0 i czy mają go przetłumaczyć na poprawną literę.

Aby upewnić się, że odczyt jest prawidłowy, uśredniamy każde 20 odczytów za pomocą światła LED i używamy tej liczby do śledzenia, czy światło jest wyłączone, czy włączone. Aby to zrobić, na początku programu ustawiamy NUM_AVG na tyle razy, ile chcemy, aby sprawdzał światło przed uśrednieniem. Im wyższa jest ta liczba, tym dokładniejszy odczyt, ale może również powodować opóźnienia.

msBtnPushed reprezentuje czas, przez który światło było włączone.lastPressed to wartość logiczna, która śledzi, czy w poprzedniej pętli światło było włączone.

Krok 6: Obsługa danych wejściowych

Obsługa danych wejściowych
Obsługa danych wejściowych
Obsługa danych wejściowych
Obsługa danych wejściowych

W tym kroku przyjrzymy się, co zrobić, gdy minie wystarczająco dużo czasu, aby założyć, że nie zostanie dodany więcej Morse'a, i musimy sprawdzić, czy przesłany Morse jest listem i czy jest to poprawny list.

Aby to zrobić, musimy ustawić ciąg wordToGuess na słowo, które mają odgadnąć nasi gracze. Osobiście mam generator liczb losowych, który ustawia go na losowe słowo na początku, ale możesz też po prostu ustawić go na pojedyncze słowo.

Musimy również upewnić się, że licznik wzrasta o jeden w każdej pętli, w przeciwnym razie cały program nic by nie zrobił. Ponadto dodałem funkcję opóźnienia, aby zapewnić pętlę co milisekundę.

PS: Wszystkie funkcje Serial.println służą wyłącznie do celów testowych. Po zakończeniu mogą zostać usunięte.

GoodTimer i badTimer są po prostu wartościami, jeśli planujesz użyć elementu Piezo do dodania dźwięku. Jeśli chcesz to zrobić, musisz również dodać kod na drugim obrazku, który odtwarza dźwięki.

Krok 7: Morsing poprawnie odgadniętych liter

Morsing poprawnie odgadniętych liter
Morsing poprawnie odgadniętych liter

Jak obiecano wcześniej, w tym kroku zrobimy światła reprezentujące litery, które zostały poprawnie odgadnięte Morse'a ich literą.

W tym celu napisałem dwie funkcje: morseThis i nextLetter. Wykorzystuje liczby, które wcześniej ustawiliśmy w naszej tablicy timerów i zmienia je w zależności od tego, która część kodu Morse'a aktualnie świeci.

Jeśli zegar osiągnie czas, w którym światło powinno się zapalić, po prostu włącza światło i uruchamia kod, aby ustawić nowe zegary, aby wyłączyć i ponownie włączyć światło. Jeśli zegar osiągnie część, w której światło powinno się cofnąć wyłączone, wyłącza światło, a następnie ustawia kod do reprezentowania następnej części litery. Jeśli nie ma następnej części, resetuje ją do pierwszej części.

Krok 8: Przeglądanie naszej konfiguracji i resetowanie

Przeglądanie naszej konfiguracji i resetowanie
Przeglądanie naszej konfiguracji i resetowanie

Oczywiście program nie będzie działał, jeśli światła nie są ustawione na wyjście i wejście. Dodaję również generator liczb losowych, aby dodać słowo z listy słów, które umieściłem w tablicy o nazwie wordsToGuess.

Poza tym powinniśmy dodać funkcję resetowania i upewnić się, że wszystkie wartości są zresetowane do wartości domyślnych.

Krok 9: Wszystkie zmienne na jednym obrazie

Wszystkie zmienne na jednym obrazku
Wszystkie zmienne na jednym obrazku

Na koniec możesz użyć tego do sprawdzenia, czy masz wszystkie niezbędne zmienne skonfigurowane poprawnie.

Teraz graj w Wisielec Morse'a!

Zalecana: