Spisu treści:

Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków
Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków

Wideo: Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków

Wideo: Ręczna gra nożyczek Arduino Paper Rock przy użyciu wyświetlacza LCD 20x4 z I2C: 7 kroków
Wideo: Ручной станок для перемотки брони блендеров, дрелей, полировальных машин, пылесосов и т.д. 2024, Lipiec
Anonim
Handheld Arduino Paper Rock Scissors Game za pomocą wyświetlacza LCD 20x4 z I2C
Handheld Arduino Paper Rock Scissors Game za pomocą wyświetlacza LCD 20x4 z I2C
Handheld Arduino Paper Rock Scissors Game za pomocą wyświetlacza LCD 20x4 z I2C
Handheld Arduino Paper Rock Scissors Game za pomocą wyświetlacza LCD 20x4 z I2C
Handheld Arduino Paper Rock Scissors Game za pomocą wyświetlacza LCD 20x4 z I2C
Handheld Arduino Paper Rock Scissors Game za pomocą wyświetlacza LCD 20x4 z I2C

Witam wszystkich, a może powinienem powiedzieć "Hello World!"

Z wielką przyjemnością podzielę się z Wami projektem, który był moim wstępem do wielu rzeczy związanych z Arduino. Jest to podręczna gra Arduino Paper Rock Scissors wykorzystująca wyświetlacz LCD I2C 20x4. Wiem, że możesz pomyśleć: „Kolejna gra Paper Rock Scissors?” Ale większość gier Arduino Paper Rock Scissors wykorzystuje proste diody LED, a także widziałem jedną, która używa symboli papieru podnoszonych przez serwa. To są fajne. Ten projekt wykorzystuje wyświetlacz LCD 20x4 i zrobił jeden z I2C, a drugi bez niego (nie pokazano tutaj). Chciałem niedrogiego etui o wykończonym wyglądzie, a nie tylko bałaganu po chlebie. Nie każdy ma dostęp do drukarki 3D i chce płacić komuś, kto to robi. Chciałem, żeby było to łatwe do zrobienia, żebym mógł dzielić się pomysłami z innymi. Ponieważ moje umiejętności programowania są na poziomie początkującym, szkic jest dość prosty i łatwy do zrozumienia i edycji. To była moja osobista edukacja w zakresie tworzenia szkicu. W szkicu znajdziesz wiele notatek, które przeszły wiele, wiele (20+?) iteracji, dopóki nie uznam, że jest w porządku. Projekt kosztuje mniej niż 20 USD (nie I2C).

Zacząłem z Arduino w 2018 roku i przeszedłem przez ich stronę internetową i przeczytałem wszystko, co mogłem. Zbudował i eksperymentował z przykładowymi projektami, z którymi się zawiera, i przeczytał wiele instrukcji, które wielu z was udostępniło przez lata. Naprawdę je doceniam i wiele się od was nauczyłem. Dziękuję Ci. Teraz chcę podzielić się tym, czego się nauczyłem, dodając własną kreatywność. Zanim sekcja komentarzy nagromadzi się z mnóstwem pytań, jak to zrobić i o czym, proszę pamiętać, zacząłem to bez doświadczenia w Arduino. Nauczyłem się, budując przykładowe projekty na stronach Arduino i Instructables. Nauczyłem się od was. Kiedy utkniesz, może to być najszybszy sposób na znalezienie rozwiązania.

Krok 1: Wprowadzenie do projektu

Wprowadzenie do projektu
Wprowadzenie do projektu
Wprowadzenie do projektu
Wprowadzenie do projektu

Wybrałem wyświetlacz LCD firmy Amazon i wybrałem I2C 20x4 LCD ze względu na niski koszt (około 12 USD - 18 USD) oraz łatwość okablowania i programowania. Jeśli chcesz, możesz użyć jednego bez I2C i możesz go kupić za 7 USD. Ale będziesz musiał użyć innej biblioteki i schematu okablowania i użyć więcej pinów Arduino. Nie martw się, wystarczy, aby przejść w obie strony. Szeregowy I2C 20x4 byłby łatwiejszy do zbudowania, mniej przewodów jest mniej mylących. Ale równoległy wyświetlacz LCD 20x4 jest o 5 USD tańszy. Narysowałem schematy dla obu schematów okablowania. Większość pozostałych części kupiłem od Amazona i kilku lokalnych sklepów. Moje pudełko to puste pudełko na napoje cappuccino. Podoba mi się, że pokrywa łatwo odskakuje, aby włączyć/wyłączyć zasilanie, pracować na dowolnych komponentach lub wymienić baterię. I "Hej!" pudełko było bezpłatne i lubię cappuccino. Recykling plastiku jest dobry dla środowiska. Możesz użyć dowolnego pudełka, do którego wszystko pasuje, a nawet pominąć pudełko lub tablicę chlebową projektu. Chciałem tanio „wygląd gotowego projektu”. Założę się, że ktoś tworzy wersję drukowaną w 3D. Arduino gra z tobą w Paper Rock Scissors na ekranie LCD, zapisuje wynik, możesz wprowadzać dane za pomocą przycisków, a jeśli wybierzesz, istnieje opcja, która pozwala ci oszukiwać. Pierwotnie funkcja oszustwa została napisana do celów debugowania, a kiedy ją skończyłem, skomentowałem ją. Dla zabawy włożyłem go z powrotem.

Krok 2: Deska do chleba

Deska do chleba
Deska do chleba
Deska do chleba
Deska do chleba

Ułożyłem swoje obwody na płytce za pomocą Arduino Uno, ale podczas składania wszystkiego użyłem Arduino Nano, ponieważ lepiej pasuje do pudełka. Możesz więc zbudować to z jednym z nich. Pamiętaj jednak o zmianie kilku ustawień w IDE. Nano jest instalowany z tyłu wyświetlacza LCD za pomocą pasków poleceń lub dwustronnej taśmy klejącej. Umieść Arduino Nano obok płytki I2C typu piggyback, tak aby złącze USB było skierowane na zewnątrz (po prawej stronie wyświetlacza LCD). Możesz użyć skrzynki na baterie 9v lub 4x AA (co daje 6v) z przełącznikiem suwakowym SPST do zasilania zamontowanego wewnątrz skrzynki, również z paskami Command Strips. Zbudowany w obie strony, Arduino ma wbudowany regulator napięcia, który obniża go do 5 woltów, których potrzebuje. Jeśli się nad tym zastanowić, ta gra może faktycznie przetwarzać "w większości martwe baterie 9V" w celu uzyskania zasilania i działa dobrze. (Wymieniasz baterie do czujnika dymu dwa razy w roku, prawda?) Inne urządzenia korzystające z baterii 9V mogą powiedzieć, że jest martwa przy 6-8 woltach; ale nie jest martwy, dopóki nie jest „Arduino Dead!”

Podczas projektowania projektu używałem 4 przycisków SPST do wprowadzania danych. Ale wbudowanie gotowej gry do pudełka używało 5 przycisków SPST, myśląc, że w przyszłości może spróbuję stworzyć grę, która będzie potrzebowała więcej przycisków. Może gra w labirynt? Rezystorowy dzielnik napięcia dla przycisków jest zamontowany razem na kawałku płytki prototypowej, którą można również zamontować za pomocą Command Strips.

Krok 3: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Montaż:

4 główne zespoły to wyświetlacz LCD z opcjonalną płytą I2C piggyback, Arduino Nano, rezystory i przełączniki połączone łańcuchowo z łączącą się płytą proto i skrzynką na baterie z włącznikiem/wyłącznikiem.

Powinieneś zacząć od płytki obwodu lub twardego drutu na płytce proto zgodnie ze schematem. Lubię przechowywać wyświetlacz LCD ekranem do dołu w pokrywie pudełka, aby go nie zarysować. Użyłem nagłówka tylko po jednej stronie Arduino, która ma 5 V, aby podłączyć go do płytki proto. Zrobiłem mostek z 3 nagłówkami (dużo pracy z lutowaniem) od Arduino do płyty proto, więc leżały płasko z tyłu wyświetlacza LCD z paskami poleceń lub dwustronną taśmą klejącą. Ale tak naprawdę płytki można połączyć tylko lutując przewody od jednego do drugiego. Użył żeńskiego nagłówka do podłączenia płyty proto do LCD I2C. Nogi rezystora płytki prototypowej mogą być użyte do wykonania 5 punktów lutowniczych dla przycisków. Druga noga każdego przycisku trafia do pinu A0 Arduino. Każdy przycisk będzie wymagał przylutowania 2 przewodów. Użyj miernika omów, aby określić, których nóg przycisku użyć, ale generalnie nie można się pomylić z niesąsiadującymi nogami (po przekątnej od siebie).

Wybierz ustawienia dla swojego Arduino w IDE. Pobierz szkic i załaduj go na Arduino i przetestuj / rozwiąż problemy.

Gotowy do włożenia do pudełka? Usunąłem etykietę cappuccino, umyłem i wysuszyłem pudełko. Dokładnie zmierz i wytnij otwór w pudełku na wyświetlacz LCD, jak widać, i jest on zamontowany za pomocą 3 kołków przykręconych do trzech otworów narożnych wyświetlacza LCD (2 do dołu pudełka, 1 przy pokrywie) na tyle długo, aby dotrzeć do z tyłu pudełka i utrzymuj go na miejscu przez tarcie. Otwór na śrubę na wyświetlaczu LCD na piggyback board może być zbyt blisko terminala, więc go pomijam. Użyto noża Exacto do wywiercenia otworów prowadzących na śruby w kołkach, aby się nie rozszczepiły (ostrożnie, nie ślizgaj się i nie kłuj, trzymaj kołki szczypcami). Trzeba było trochę zgiąć / zmiażdżyć skrzynkę przed ostatecznym montażem, ale wraca ona do właściwego kształtu. Otwory na przyciski są „nawiercane” poprzez ich pozycjonowanie (narysowanie linii z prostą krawędzią) i podgrzewanie końcówek lutownicą, aż „przetopią się” przez pudełko. Następnie wyjmij przyciski po ostygnięciu i przylutuj skrawki drutu 6" - 9" CAT 5e lub przewód 18ga do 22ga do przycisków. Zainstaluj przyciski z powrotem drutem z powrotem w ich otworach, a następnie przylutuj do płyty prototypowej rezystora. Kropka super kleju, kleju na gorąco, a nawet samego tarcia utrzyma guziki na miejscu. W jednej kompilacji użyto kilku łączników kabli telefonicznych (czerwone kółka w przezroczystych plastikowych blokach), aby ułatwić ostatnią garść połączeń między skrzynką na baterie, płytą prototypową rezystora i zespołem LCD / Arduino. Jeśli chcesz, możesz zamiast tego użyć lutu i koszulki termokurczliwej. Następnie ostrożnie i powoli wepchnij cały drut i elementy do pudełka i zamknij pokrywę. Zainstalowałeś baterię i wgrałeś szkic Arduino, zanim to wszystko zrobiłeś? Będziesz także potrzebować biblioteki dla wyświetlacza LCD 20x4 z lub bez I2C (w zależności od tego, co wybierzesz), którą możesz pobrać bezpłatnie na Github. Włącz go, wypróbuj i sprawdź, czy działa. Później edytowałem swój szkic z przerwami, aby był łatwiejszy do czytania, dodałem "efekt migających kropek" i kilka innych rzeczy wraz z mnóstwem komentarzy. Spróbuj ustawić Arduino tak, aby nadal można było podłączyć USB i wgrać nowy szkic. Używałem schematu blokowego, oczywiście podczas tworzenia szkicu. Przekonasz się, że komentarze w dużym stopniu definiują, gdzie znajdował się każdy blok schematu blokowego.

Przekonasz się, że przyciski są w obwodzie szeregowym / równoległym, który pozwala na użycie jednego pinu wejściowego Arduino dla tylu przycisków, ile chcesz. Obwód działa jak dzielnik napięcia, który podaje wartość do pinu analogowego, zmieniając wartość odczytaną po każdym naciśnięciu przycisku. Możesz użyć monitora szeregowego, aby obliczyć wartości obwodu w oparciu o rezystory i zmienić „akceptowane wartości” w swoim szkicu.

Mam nadzieję, że dobrze się bawisz, budując własne! Jeśli stworzysz jedną lub nawet kilka modyfikacji, podziel się nimi z resztą. Dziękuję za przeczytanie.

Krok 4: Programowanie i ustawienia

Programowanie i ustawienia
Programowanie i ustawienia
Programowanie i ustawienia
Programowanie i ustawienia

Teraz zabawa z IDE. Mam nadzieję, że piłeś cappuccino. Możesz go potrzebować, aby nie zasnąć.

Może się okazać, że będziesz musiał skonfigurować kilka bibliotek. Będziesz potrzebował Wire.h dla I2C, LCD.h dla LCD, LiquidCrystal_I2C.h dla LCD kontrolowanego przez I2C. Będziesz także musiał użyć polecenia lcd.begin(20, 4), aby powiedzieć Arduino, że używasz 20-znakowego 4-wierszowego wyświetlacza LCD i mogą istnieć inne ustawienia.

Aby uzyskać informacje na temat instalowania bibliotek, zobacz:

W Arduino IDE może się okazać, że będziesz musiał ustawić swoją płytkę i port, do którego jest podłączona. Port można znaleźć w panelu sterowania komputera/menedżerze urządzeń/kontrolerach uniwersalnej magistrali szeregowej. Musisz dowiedzieć się, którego Arduino używasz. Używam Arduino Nano, ale Uno też na to działa. Ostrożnie dobieraj ustawienia.

Być może będziesz musiał ustalić swój adres I2C. Powinieneś być w stanie odczytać go bezpośrednio ze zworek planszy. Możesz również pobrać skaner I2C z Arduino.cc lub też z https://www.gammon.com.au/forum/?id=10896 i innych miejsc.

Gdzieś w tym momencie powinieneś być w stanie załadować program do Arduino i przetestować funkcjonalność. Czy ekran LCD się świeci? Czy potrafisz czytać znaki? Kiedyś zbudowałem obwód, a następnie przetestowałem go, podświetlenie świeciło, ale znaki były nieczytelne. Spędziłem godziny (zgadza się, GODZINY) próbując ustawienia i tonowanie połączeń, aby upewnić się, że zostało zbudowane prawidłowo. Zrezygnowałem na kilka dni. Wróciłem do tego później i zdałem sobie sprawę, że opornik zmienny na płytce piggyback jest ustawiony na minimum. Podkręciłem i postacie były widoczne. Uderz głową o biurko. Kolejny powód, by walić głową w biurko? Jeśli potrzebujesz zmienić baterię, być może będziesz musiał ponownie wyregulować ten rezystor zmienny. Kiedy to się stało, wyciąłem mały otwór z tyłu pudełka, aby uzyskać dostęp.

Być może będziesz musiał ustawić własne wartości przycisków w tym programie w oparciu o rezystory, których używasz do swoich przycisków. Możesz do tego użyć tego poręcznego szkicu i pamiętaj o aktywacji monitora szeregowego. Uruchom szkic i naciśnij każdy przycisk i zapisz każdą wartość. Następnie edytuj szkic, aby odzwierciedlić wartości przycisków. Następnie prześlij edytowany szkic na swoją tablicę i sprawdź, czy działa.

Jest wiele małych zmiennych, które muszą się zgadzać, a twoje mogą być inne niż moje. Bycie cierpliwym i próbowanie różnych rzeczy pomoże ci w pracy. Pamiętaj też, że po ustawieniu zmiennych Arduino (takich jak nazwa płyty, com 3, 5 lub cokolwiek, procesor i programator [wszystkie w narzędziach]) możesz je wszystkie ustawić poprawnie, ale to nie działa, ponieważ musisz ponownie uruchomić komputer. Odłącz Arduino i podłącz go z powrotem do komputera. Być może będziesz musiał ponownie zapisać i ponownie uruchomić komputer.

Prześlij ten szkic, uruchom monitor, naciśnij przyciski i zapisz wartości, a następnie edytuj szkic Paper Rock Scissors, zastępując moje wartości rezystorów swoimi. Uruchom szkic Paper Rock Scissors i sprawdź, czy działa poprawnie. O tak, czy zainstalowałeś przyciski w złej kolejności? Być może będziesz musiał je ponownie zainstalować, jeśli chcesz je w określonej kolejności.

Baw się dobrze!

Krok 5: Przycisk czytania szkicu pomoże ci znaleźć wartości oporu, które można edytować w głównym szkicu. Naciśnij każdy przycisk i zapisz wartości rezystorów, aby wejść do głównego szkicu

// przycisk czytania szkicu

pusta konfiguracja () {

// umieść tutaj swój kod instalacyjny, aby uruchomić raz:

Serial.początek(9600);

}

pusta pętla () {

// umieść tutaj swój główny kod, aby uruchamiać się wielokrotnie:

PRZYCISK INT; //Do czytania przycisków

przycisk = 0; //Do czytania przycisków

PRZYCISK = odczyt analogowy (A0); //Polecenie używane do odczytywania przycisków

opóźnienie (100);

Serial.println(przycisk);

Krok 6: Listy części i narzędzia, których możesz potrzebować

Lista części z Amazon:

Arduino Uno lub Arduino Nano

Wyświetlacz LCD 20x4 z lub bez I2C

Skrzynka na baterie 9 V lub 6 V z przełącznikiem suwakowym SPST (lub osobno przełącznik suwakowy)

5x przyciski SPST

1x Rezystor podciągający 1k - 5k

5x rezystory mniejsze niż 1k, 200 - 500 omów jest dobre

Listy części Inne lokalizacje lub sklepy:

9 V lub 4 x 1,5 V bateria (opcja 9 V pozwala na recykling "w większości martwych" baterii)

Command Strips (używane opakowanie uzupełniające) lub dwustronna taśma klejąca

Rozdzielacze kabli telefonicznych (opcjonalne, ale ułatwiające podłączenie przewodów)

Kilka cali kołka 1/4"

Małe wkręty do drewna do mocowania kołków do LCD

Lutować

Termokurczliwe dla przewodów 18 ga

Odpady lub części do recyklingu:

Puste pudełko na napoje cappuccino (nie każdy ma drukarkę 3D, ma trochę cappuccino i poddaje recyklingowi trochę plastiku)

Około 1 "x 2" złomu płyty Proto, chociaż używałem płyty prototypowej z Amazon

Różne długości drutu 18ga do 22ga lub stały rdzeń Cat 5e

Narzędzia, których możesz potrzebować:

Mały śrubokręt Philips

Mały płaski śrubokręt

Nóż Exacto

Lutownica i lut

Nożyczki do dużych obciążeń

Szczypce półokrągłe

Linijka

Krok 7: Więcej informacji i główny szkic

Dziękuję za przeczytanie. Wiem, że to dużo. To jest mój pierwszy Intrucable i samo to było dla mnie trochę pouczające. Patrząc wstecz widzę, że w niektórych miejscach jestem przegadany, a w innych zbyt zwięzły. Powinienem był rozbić zespół na więcej kroków. A ponieważ budowałem ten projekt kilkanaście razy, aż było w sam raz, niektóre zdjęcia pochodzą z jednego modelu lub innych. Muszę wrócić i zrobić zdjęcia tylko jednej modelce. Chcę również dołączyć film lub dwa. Więc tak, wrócę i naprawię to. Ale na razie oddaję to w twoje ręce. Mam nadzieję, że spodoba ci się budowanie go tak samo jak ja. Jeszcze raz dziękuję za przeczytanie.

Zalecana: