Spisu treści:

Przetestuj samo Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED: 4 kroki
Przetestuj samo Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED: 4 kroki

Wideo: Przetestuj samo Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED: 4 kroki

Wideo: Przetestuj samo Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED: 4 kroki
Wideo: 7. Kurs Arduino - Wyświetlacz 7 segmentowy [Tinkercad] 2024, Lipiec
Anonim
Przetestuj nagie Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED
Przetestuj nagie Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED
Przetestuj nagie Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED
Przetestuj nagie Arduino z oprogramowaniem do gier przy użyciu wejścia pojemnościowego i diody LED

Gra interaktywna „Push-It” wykorzystująca płytkę Arduino, bez żadnych zewnętrznych części ani okablowania (wykorzystuje pojemnościowe wejście „touch”). Pokazane powyżej pokazuje, że działa na dwóch różnych planszach.

Push-It ma dwa cele.

  1. Aby szybko zademonstrować / zweryfikować, czy twoja płyta Arduino działa i czy jesteś poprawnie skonfigurowany, aby pobrać do niej nowy szkic kodu. Będziesz mógł zobaczyć, że wykonuje wejście i wyjście (czuj poziom wejścia cyfrowego, wyjście do wbudowanej diody LED); przechowywać i odzyskiwać wartość z nieulotnej pamięci EEPROM. Wszystko bez podłączania jakichkolwiek przewodów czy urządzeń.
  2. Zapewnij zabawną i wymagającą grę, współpracującą z płytą Arduino.

Ta instrukcja zakłada, że zainstalowałeś już Arduino IDE i przynajmniej w minimalnym stopniu znasz jego użycie. Jeśli nie, odsyłam do tych linków:

Pierwsze kroki z Arduino

Dodanie obsługi Digispark (z bootloaderem) do istniejącego środowiska IDE Arduino 1.6.x

Push-It będzie współpracować z większością płyt Arduino, m.in. płytkę Nano, Uno lub DigiSpark Attiny85. Przetestowałem ją z płytą Nano 3.1 i DigiSpark. W tekście, gdy odnoszę się do nazw/numerów pinów, będą one używane w taki sam sposób jak na płycie Nano (w przeciwieństwie do DigiSpark).

Krok 1: Posiadanie rzeczy, których będziesz potrzebować

Czyli po prostu dowolna płytka Arduino lub porównywalna.

Jeśli jeszcze go nie masz, polecam zacząć od DigiSpark Pro (~12 USD) lub Nano 3.0 z serwisu eBay za ~3 USD (ale będziesz miał dodatkowy tydzień lub dwa, aby poczekać, aż przyjedzie z Chin i musisz zainstalować sterownik USB CH340). DigiSpark ~ 10 USD (nie Pro) bardzo dobrze nadaje się do tej jednobitowej gry „wideo” (ta uproszczona jednostka, mająca tylko 6 wejść/wyjść, jest nieco trudniejsza do załadowania)

Linki do sprzętu używanego w niniejszym dokumencie:

Nano V3.0 Atmega328P w serwisie eBay

Płytka rozwojowa USB Digipark

Krok 2: Pobierz i pobierz kod

Pobierz i pobierz kod
Pobierz i pobierz kod

Skopiuj poniższy kod do pliku szkicu arduino (np. …/Push_It/Push_It.ino) Próbowałem go dość dobrze skomentować. Mam nadzieję, że kod jest dla Ciebie zrozumiały. Logika określająca, kiedy zwiększać, zmniejszać, a kiedy nie, jest nieco skomplikowana, ale ta część jest również wyspecjalizowanym kodem i nie ma ogólnej użyteczności. Więcej informacji na temat konfigurowania nowego „szkicu” (projektu kodu) do użycia z IDE Arduino zobacz:

Tworzenie nowego szkicu Arduino

Pobierz szkic „Push_It” do naszego mikrokontrolera zgodnie z instrukcjami Arduino IDE dla swojej płyty.

Krok 3: Granie

Gra
Gra

Celem gry jest sprawienie, aby dioda LED (na pokładzie) mrugała jak najwięcej razy w serii błysków, które następnie się powtarzają

Grać w gre:

Push-It zaczyna się od pojedynczego błysku, który następnie zostanie powtórzony. Jeśli dotkniesz palcem w pobliżu styku wejściowego, gdy dioda jest włączona, w następnym cyklu dioda LED mignie dwa razy.

Za każdym razem, gdy naciśniesz pseudo przycisk podczas pierwszego błysku zestawu błysków, do tego zestawu zostanie dodany kolejny błysk. Zasadniczo nie ma znaczenia, kiedy podnosisz/odsuwasz palec.

Ale jeśli „naciśniesz” przed lub po pierwszym błysku, liczba błysków w zestawie zostanie zmniejszona.

Jeśli nie zrobisz nic więcej, liczba błysków w zestawie zostaje utrzymana. Ponadto, gdy licznik nie zmienia się przez cały cykl, numer licznika jest zapisywany w pamięci EEPROM.

Za każdym razem, gdy uda Ci się zwiększyć liczbę błysków, taktowanie trochę przyspiesza, co sprawia, że coraz trudniej jest uzyskać wysoką liczbę błysków. Kiedy zrobisz poślizg i liczba błysków zmniejszy się, nastąpi dłuższa przerwa przed rozpoczęciem kolejnego cyklu. Stanowi to dodatkowe wyzwanie, ponieważ może zwiększyć prawdopodobieństwo przeskoczenia broni. Więc bądź czujny.

Gdy już osiągniesz wysoką liczbę błysków, możesz je zabrać (lub wysłać pocztą, do czego DigiSpark jest dobry) do znajomego, gdzie po podłączeniu zobaczą, jak wysoką liczbę błysków osiągnąłeś do. Uważam, że to dość trudne, aby uzyskać więcej niż 8. Z dołączonym rzeczywistym przyciskiem udało mi się zwiększyć go do kilkunastu. Aby powrócić do niższej liczby, możesz wielokrotnie naciskać ją w dowolnym momencie przed lub po pierwszym błysku. Również jeśli połączysz pin wejściowy z masą podczas włączania, licznik zostanie zresetowany do 1.

Zwróć uwagę, że oryginalna płyta DigiSpark ma 10-sekundowe opóźnienie po włączeniu zasilania, przed którym rozpocznie wykonywanie kodu „Push-It” i gra. Wykorzystuje ten czas, aby spróbować porozmawiać przez piny USB w celu otrzymania ewentualnej nowej aktualizacji kodu pobierania.

Jeśli płyta Arduino, której używasz, ma diodę LED USB TX, ta dioda LED będzie miała szybki, malutki błysk, gdy skutecznie „naciśniesz przycisk”. Za każdym razem, gdy wartość zliczona w EEPROM zostanie zaktualizowana o nową wartość, dioda będzie bardziej intensywnie migać. Ta informacja zwrotna może znacznie pomóc w ustaleniu, kiedy lub upewnieniu się, że skutecznie wywołałeś zdarzenie „naciśnięcia przycisku”. Może być konieczne upewnienie się, że nie dotykasz uziemienia obwodu (takiego jak metal wokół złącza micro-USB), aby twoja postać rzeczywiście indukowała zakłócenia na otwartym bolcu wejściowym. Pojawią się dodatkowe i nieco nieprzewidywalne wyzwania ze względu na fakt, że pin wejściowy jest unoszący się (nie pociągany w górę ani w dół przez obciążenie przewodzące/rezystancyjne) oraz ze zmiennym szumem sygnału przechodzącym przez palec.

Fala prostokątna o częstotliwości 250 Hz jest wyprowadzana na pin znajdujący się obok pinu wejściowego, co znacznie zwiększa pewność wprowadzonego sygnału wejściowego, gdy palec zakrywa oba piny.

Odkryłem, że reakcja deski DigiSpark jest dość konsekwentnie przewidywalna po lekkim ściśnięciu palców w róg deski, w którym znajdują się D3-D5.

Kiedy gram w „Push-It”, lubię to robić z płytą podłączoną do przenośnego akumulatora USB 5v (patrz zdjęcia). Można je ogólnie znaleźć niedrogo w pojemnikach obok pojemników na zasilacze USB AC i 12 V; w większości domów towarowych dział elektroniki.

Krok 4: Opcjonalne eksperymenty z komponentami zewnętrznymi

Opcjonalne eksperymenty z komponentami zewnętrznymi
Opcjonalne eksperymenty z komponentami zewnętrznymi

Uwaga: Jeśli dołączysz prawdziwy przycisk, jest jedna linia kodu, którą należy zakomentować, jak podano w kodzie.

W przypadku głośnika z jednej strony do ziemi, jeśli dotkniesz drugiego przewodu do D4, usłyszysz dźwięk fali prostokątnej o częstotliwości 250 Hz. W D3 występuje fala prostokątna 500 Hz. Jeśli podłączysz głośnik między D3 i D4, usłyszysz połączenie dwóch sygnałów.

Bardzo ciekawe jest podłączenie diody LED zamiast głośnika jak powyżej. Nie ma potrzeby martwić się o napięcie, poziomy prądu, rezystory, a nawet biegunowość (co gorsza, nie świeci, po prostu odwróć). Spróbuj przede wszystkim z ujemnym przewodem (katodą) podłączonym do masy, a drugim do D3 lub D4. Dioda LED będzie świecić w połowie ze względu na fale prostokątne. Ponadto nie jest wymagany rezystor, ponieważ wyjścia mikrokontrolerów są ograniczone prądowo. Wykonałem pomiary prądu, które dały 15mA i 20mA odpowiednio dla MCU Attiny85 i Atmega328. Poziomy te stanowią około połowy obecnie ograniczonej wartości dla tych części ze względu na 50% cykl pracy sygnałów sterujących falą prostokątną. Odczyty miernika są w rzeczywistości średnią wartością prądu płynącego przez badany obwód.

Co ciekawe, jeśli zmostkujesz między D3 i D4 za pomocą diody LED (patrz zdjęcie powyżej i po lewej), dioda będzie świecić w obie strony i przy około ½ jasności, jak to miało miejsce z jedną stroną podłączoną do masy. Zapraszam do zastanowienia się dlaczego.

Zalecana: