Spisu treści:

Magic Answers Ball z Arduino Pro Mini i wyświetlaczem TFT: 7 kroków
Magic Answers Ball z Arduino Pro Mini i wyświetlaczem TFT: 7 kroków

Wideo: Magic Answers Ball z Arduino Pro Mini i wyświetlaczem TFT: 7 kroków

Wideo: Magic Answers Ball z Arduino Pro Mini i wyświetlaczem TFT: 7 kroków
Wideo: Amazing arduino project 2024, Lipiec
Anonim
Magiczna piłka odpowiedzi z Arduino Pro Mini i wyświetlaczem TFT
Magiczna piłka odpowiedzi z Arduino Pro Mini i wyświetlaczem TFT
Magiczna piłka odpowiedzi z Arduino Pro Mini i wyświetlaczem TFT
Magiczna piłka odpowiedzi z Arduino Pro Mini i wyświetlaczem TFT
Magiczna piłka odpowiedzi z Arduino Pro Mini i wyświetlaczem TFT
Magiczna piłka odpowiedzi z Arduino Pro Mini i wyświetlaczem TFT

Jakiś czas temu moja córka i ja rozebraliśmy kulkę Magic 8, aby mogła zastąpić dwadzieścia odpowiedzi wybranymi przez siebie. To był prezent dla jej przyjaciółki. To dało mi do myślenia, jak to zrobić na większą skalę. Czy możemy otrzymać więcej niż 20 odpowiedzi? Z wersją elektroniczną możemy!

Opiszę więc, jak zdemontowałem Mattel Magic 8 Ball (przepraszam, Mattel) i użyłem okrągłego wyświetlacza TFT, aby pokazać niesamowitą liczbę dodatkowych odpowiedzi (najmniejsza karta micro-SD, jaką udało mi się znaleźć, miała 8 GB, więc jest to naprawdę przesada dla do czego jest używany). Piłka wykorzystuje tablicę Sparkfun Wake-on-shake do wywołania reakcji i późniejszego wyłączenia piłki, aby oszczędzić baterię. Płytka ładująca służy do ładowania akumulatora z połączenia USB.

Kieszonkowe dzieci

Części:

Arduino Pro Mini 328 - 3,3 V/8 MHz

SparkFun Obudź się po potrząśnięciu

Bateria litowo-jonowa - 400 mAh

Organizer 12 sztuk Moduł ładowania TP4056 5 V Micro USB 1A 18650 Płytka ładująca baterię litową z modułem ładowarki ochronnej (potrzebujesz tylko jednego z nich, ale pakiet 12 był mniejszy niż 9 USD)

DAOKI 5 szt. Płytka do przechowywania Micro SD (ponownie potrzebujesz tylko jednej, ale 5 paczek było wciąż mniej niż 9 USD)

DFRobot 2,2-calowy moduł wyświetlacza TFT LCD

Kingston 8 GB microSD (możesz mieć starą kartę leżącą w domu)

Płytka PCB Perma-Proto o ćwiartce (możesz również użyć dowolnej płytki drukowanej)

Magiczna kula 8

FTDI Basic breakout 3,3 V (możesz już mieć jeden z nich, jeśli wykonałeś podobny projekt z Arduino Pro Mini lub podobną płytą)

4-pinowa obudowa z 2,54mm JST XH męski/żeński zestaw złączy przewodów Dupont (opcjonalny, ale zalecany do podłączenia akumulatora)

Inne podstawowe zaopatrzenie:

Klej do formowania Sugru (można użyć taśmy klejącej i kleju na gorąco, ale bardziej mi się to podoba)

Taśma klejąca

Dwustronna taśma piankowa

Drut

Narzędzia:

Lutownica

Wybrane narzędzie obrotowe (np. Dremel)

Zacisk meblowy

Krok 1: Przetnij kulę Magic 8 na pół

Przetnij kulkę Magic 8 na pół
Przetnij kulkę Magic 8 na pół
Przetnij kulkę Magic 8 na pół
Przetnij kulkę Magic 8 na pół

Najpierw musisz podzielić Magic 8 Ball na pół. Przymocowałem mój do stołu roboczego płaską stroną do dołu za pomocą zacisku do mebli. Używając narzędzia Dremel z dołączoną podstawową tarczą tnącą, przetnij wzdłuż szwu kuli. Będziesz musiał ciąć głęboko, prawie tak daleko, jak pozwoli na to tarcza tnąca. Nie śpiesz się. Nawet po całkowitym cięciu może być konieczne użycie płaskiego śrubokręta lub dłuta do ostatecznego oddzielenia. W środku znajduje się cylinder, w którym znajduje się „magiczna” ciecz, a w środku dwudziestościan (kształt o dwudziestu ścianach – tak, musiałem to sprawdzić). Po prostu wyrzuć to lub użyj w innym projekcie. Jeśli użyjesz go w innym projekcie, daj mi znać, co zrobiłeś, abym wiedział, co zrobić z moim.

Zostaniesz z dwiema połówkami, jak pokazano na zdjęciach. Robiłem to już trzy razy, a ostatnio biała warga była raczej gładka niż pofałdowana, więc twoja piłka może wyglądać nieco inaczej niż ta na zdjęciu.

Wokół zewnętrznej krawędzi nadal będzie znajdować się trochę plastikowego żużla (stopiony i ponownie utwardzony plastik). Zatrzymaj to rękami, jeśli możesz; użycie narzędzia wiąże się z ryzykiem zadrapania wykończenia piłki i żużel dość łatwo odchodzi.

Krok 2: Przygotuj piłkę

Przygotuj piłkę
Przygotuj piłkę
Przygotuj piłkę
Przygotuj piłkę
Przygotuj piłkę
Przygotuj piłkę

Musimy wprowadzić dwie modyfikacje plastikowych połówek piłki.

Po pierwsze, w otwartej połowie, na której jest namalowana cyfra „8”, będziemy musieli wyciąć wystarczająco duży obszar, aby nasza płyta ładująca USB mogła usiąść z wystającym portem USB. Użyłem mojego Dremela z dołączonym grubym bębnem do szlifowania. Chcesz, żeby była tak cienka, jak to tylko możliwe, bez przebijania się. Następnie wytnij mały otwór na tyle duży, aby port USB mógł przejść na zewnątrz. Użyłem suwmiarki do pomiaru portu USB, ale prawdopodobnie mógłbyś to zauważyć, jeśli zajdzie taka potrzeba. Ponownie użyłem narzędzia Dremel z małą przystawką do cięcia, aby wykonać otwór. Pierwsze dwa zdjęcia pokazują otwór i jak to wygląda z płytką USB za nim.

Po drugie, w drugiej połowie, ten z otworami po OBU stronach i białą plastikową wargą, przygotuj miejsce, w którym ma usiąść wyświetlacz. Tuż w otworze, w którym będzie osadzony wyświetlacz, znajdują się plastikowe krawędzie i gumowy (?) kołnierz po wewnętrznej stronie otworu. Wyjmij kołnierz i odłóż go na bok. Odłożymy to później, ale chcemy, aby na tym etapie nie było to w żaden sposób. Wyświetlacz ma prostokątne wytłoczenie z jednej strony, które nie pozwoli mu usiąść płasko w otworze, jeśli niektóre z tych wypukłości nie zostaną usunięte. Używając ponownie bębna do szlifowania zgrubnego na Dremel, ogol je tak bardzo, jak to możliwe. Wejdź z otworu, w którym będzie wyświetlacz pod najlepszym kątem. Po zakończeniu powinien wyglądać jak na zdjęciach. Uwaga, zdjęcia pokazują wyświetlacz w miejscu, ale jeszcze go NIE MONTUJ.

Krok 3: Przygotuj odpowiedzi na karcie Micro-SD

Ten krok jest nieco bardziej skomplikowany, niż mogłoby się wydawać. Jeśli nie chcesz tworzyć własnej listy odpowiedzi, przejdź do ostatniego akapitu tego kroku.

Intencją jest to, że możemy nadać piłce dowolną listę ciągów, które będą używane jako możliwe odpowiedzi, i zostaną one wyśrodkowane na ekranie bez żadnych przerw w środku słów. Nie chcemy wykonywać tego przetwarzania na mikrokontrolerze i chcemy mieć plik ze statycznym rozmiarem rekordu, aby móc szybko znaleźć konkretną linię.

Mimo że wyświetlacz jest okrągły, funkcjonalnie jest wirtualnym prostokątnym wyświetlaczem, na którym widoczne są tylko piksele w obrębie okręgu. Wyświetlacz może pokazywać tekst o wielu rozmiarach, ale używamy tylko najmniejszej wersji, która ma 6 x 8 pikseli. Używając tego rozmiaru, jest 315 znaków, które wyświetlacz może umieścić na ekranie (21 znaków na linię razy 15 linii), ale tylko 221 jest widocznych, a każda linia ma inną liczbę widocznych znaków. Widzisz problem?

Napisałem program w języku Java, który pobierał plik niesformatowanych odpowiedzi i konwertował je na w pełni wyśrodkowane rekordy, które można łatwo wyświetlić na okrągłym ekranie TFT. (link do pobrania pliku „FormatToPicksFileFullyCentered.java”).

Bez wchodzenia w wyjaśnienie całego kodu, ogólna idea polega na tym, że pracujemy wstecz od środka (ish) i wstawiamy spacje, aby upewnić się, że nie łamiemy słów w widocznych liniach, a następnie robimy to samo od środkowy napastnik. Na koniec wykonujemy pętlę przez wszystkie wiersze i wyśrodkujemy każdy wiersz wewnątrz pełnych 21 wierszy znaków, aby utworzyć rekord o długości dokładnie 316 bajtów (315 znaków alfanumerycznych plus znak nowego wiersza). Kod faktycznie działa za pomocą trzech czcionek, x 3, x 2 i x 1, aby zobaczyć, która jest największą czcionką, której można użyć i która nadal pasuje do tekstu. Wyśrodkowanie jest trochę przesunięte w przypadku czcionek x2 i x3, przepraszam. Uważaj na znaki, które zajmują więcej niż jeden bajt, mogą one zepsuć wynikowy plik.

Skopiuj plik „pics.txt” na kartę micro-SD.

Jeśli nie chcesz mieć kłopotów z tworzeniem własnej listy typów, zamieściłem moją listę typów, którą możesz po prostu skopiować na kartę SD i użyć. W tej chwili nie mogłem przesłać pliku.txt do instrukcji, więc oto link do miejsca, z którego można pobrać plik picks.txt.

Krok 4: Prześlij kod do Arduino Mini

Prześlij kod do Arduino Mini
Prześlij kod do Arduino Mini
Prześlij kod do Arduino Mini
Prześlij kod do Arduino Mini
Prześlij kod do Arduino Mini
Prześlij kod do Arduino Mini

Po pierwsze, jeśli nigdy wcześniej nie korzystałeś z Arduino Pro Mini, nie możesz po prostu podłączyć kabla USB i pobrać; musisz użyć płytki FTDI i podłączyć przewody do odpowiednich pinów na mini. Nie będę tu dawał tutoriala na ten temat, w sieci jest ich wiele. U mnie nie chciałem wlutować na płytkę mikrokontrolera stałego złącza, które służyłoby tylko raz do pobrania kodu, więc stworzyłem mały klips, którym można zaprogramować mini bez lutowania (patrz zdjęcia). To było zainspirowane produktami takimi jak Fiddy, ale nie mam łatwego dostępu do drukarki 3D, więc zrobiłem własną z klipsa do chipsów ziemniaczanych. Jeśli ludzie są zainteresowani, zrobię instruktaż właśnie w tym celu.

Przejdźmy do kodu. Jest kilka interesujących części tego kodu, ale w większości jest on prosty.

W funkcji setup jest przyzwoita ilość kodu, który zajmuje się uzyskaniem dobrego losowego seeda. Z mojego doświadczenia wynika, że typowa metoda korzystania z odczytu analogowego z niepodłączonego pinu nie daje wystarczająco zróżnicowanej odpowiedzi. Otrzymuję liczbę od 477 do 482. Ponieważ funkcja losowa Arduino ma jedną i tylko jedną sekwencję, a ziarno określa, od czego zacząć w tej sekwencji, tak wąski zakres ostatecznie nie zapewni wystarczającej liczby możliwych odpowiedzi. Należy pamiętać, że ten kod zasadniczo zaczyna się od początku za każdym razem, gdy tablica Wake-on-shake wyłącza i ponownie włącza zasilanie, więc kluczowa jest początkowa pozycja sekwencji określona przez ziarno. Aby w tym pomóc, zapisuję bardzo mały plik na karcie SD, aby śledzić ostatnie ziarno i dodać go do nowej wartości pochodzącej z niepodłączonego pinu.

Po wybraniu w funkcji loop i wczytaniu do tablicy znaków nie możemy po prostu wydrukować całego łańcucha. Wyświetlacz ma limit długości ciągu, który może obsłużyć w danym momencie. Z tego powodu musimy przechodzić przez każdą z piętnastu linii i wysyłać je pojedynczo do wyświetlacza.

Wymagane biblioteki zewnętrzne:

Biblioteka ST7687S

Biblioteka wyświetlania DFRobot

Krok 5: Podłącz komponenty

Podłącz komponenty
Podłącz komponenty
Podłącz komponenty
Podłącz komponenty

Czas zrobić całe lutowanie przewodów. Miałem tendencję do błądzenia po stronie nieco dłuższych przewodów, niż naprawdę potrzebowałem, ale skończyło się to dobrze.

Na załączonym schemacie wyświetlacz TFT jest reprezentowany przez złącze, a nie obrazek całego wyświetlacza (do którego nie mogłem znaleźć części Fritzing). Oznaczyłem przewody/szpilki na podstawie tego, jak są oznaczone na części. Podobnie, karta SD nie jest dokładnie tą, której użyłem, ale oznaczyłem przewody / styki dla wymienionej części.

Jest jeden element, którego na tym etapie nie zlutowałem: akumulator. Zamiast tego użyłem czteropinowego złącza z usuniętymi dwoma środkowymi pinami (drugi obrazek). To pozwoliło mi przetestować wszystkie komponenty połączone ze sobą, a następnie odłączyć baterię, podczas gdy wszystko przyczepiam do kuli.

Na koniec użyłem stałej płytki drukowanej o ćwierć wielkości, aby ułatwić zasilanie i współdzielone połączenia. Zobaczysz to na zdjęciach montażowych.

Sprawdź, czy wszystko działa

Krok 6: Dołącz elementy do piłki

Dołącz elementy do piłki
Dołącz elementy do piłki
Dołącz elementy do piłki
Dołącz elementy do piłki
Dołącz elementy do piłki
Dołącz elementy do piłki
Dołącz elementy do piłki
Dołącz elementy do piłki

Najpierw umieść wyświetlacz na miejscu i użyj trochę Sugru, aby go zabezpieczyć (pierwsze dwa obrazy). Nie zapomnij o kołnierzu, który usunąłeś wcześniej, powinieneś go mieć z powrotem na swoim miejscu przed zamocowaniem wyświetlacza na miejscu.

Następnie przykleiłem płytę prototypową do dolnej części pustej połowy piłki. Wszystkie luty trzymałem po jednej stronie płytki, więc nadal miałem połowę płytki, którą mogłem okleić. Następnie przykleiłem baterię do tej samej połowy prototypowej płyty (trzeci obraz).

Obie połówki są teraz połączone przewodami. Dowiedz się, gdzie skończy się otwór USB, gdy połączysz dwie połówki. Jeśli biała warga ma wystające kolce, pamiętaj, że musi zejść pośrodku jednego z klinów białej wargi, ponieważ będziemy zabezpieczać płytkę ładującą USB między dwoma plastikowymi krawędziami na wardze.

Za pomocą małego kawałka dwustronnej taśmy piankowej przymocuj płytkę ładującą USB. Taśma dwustronna nie powinna zakrywać całego spodu płytki ładującej, ponieważ koniec z dołączonymi przewodami będzie zwisał nad środkową krawędzią białej wargi. Tak więc taśma powinna pokrywać około trzech czwartych dolnej powierzchni deski. Najpierw umieść taśmę na spodzie planszy, a następnie wciśnij ją w wybrane miejsce. Złącze USB powinno znajdować się na krawędzi kuli, przylegając do czarnego obszaru plastiku bez wychodzenia na zewnątrz kuli. Na koniec dodaj trochę więcej Sugru na górze deski i zabezpiecz po obu stronach. To tylko dodaje dodatkowej siły, gdy kabel jest włożony do portu USB.

Włóż teraz kartę micro-SD do modułu karty SD

Jeśli chcesz, możesz przymocować pozostałe elementy do białej wargi. Po prostu schowałem pozostałe komponenty za wyświetlaczem.

Krok 7: Połącz dwie połówki z powrotem

Złóż dwie połówki razem
Złóż dwie połówki razem
Połącz dwie połówki razem
Połącz dwie połówki razem

Dokładnie sprawdź, czy włożyłeś kartę SD i czy przetestowałeś wszystkie komponenty razem.

Ok, jeśli jesteś gotowy, zrób długiego węża z kleju Sugru i poprowadź go dookoła krawędzi połowy kuli białą wargą (pierwsze zdjęcie). Klej należy nałożyć bezpośrednio na złącze, w którym schodzą się czarne i białe sekcje plastiku. Nałożenie kleju tutaj zapewnia mocne wiązanie, jednocześnie minimalizując ilość kleju, który wyciska się z pęknięcia po połączeniu dwóch połówek.

Ściśnij dwie połówki razem, upewniając się, że port USB przechodzi przez wycięty wcześniej otwór. Za pomocą zacisku meblowego zaciśnij dwie połówki na tyle mocno, aby utrzymać połówki razem, bez konieczności mocnego zaciskania. Klej Sugru stwardnieje po około 24 godzinach.

Jeśli masz trochę kleju, który wycisnął się ze złącza, możesz go zeskrobać palcem lub gładką szmatką/ręcznikiem papierowym.

Zalecana: