Spisu treści:

QuizzPi, gra ciekawostki Raspberry Pi z Pythonem: 7 kroków (ze zdjęciami)
QuizzPi, gra ciekawostki Raspberry Pi z Pythonem: 7 kroków (ze zdjęciami)

Wideo: QuizzPi, gra ciekawostki Raspberry Pi z Pythonem: 7 kroków (ze zdjęciami)

Wideo: QuizzPi, gra ciekawostki Raspberry Pi z Pythonem: 7 kroków (ze zdjęciami)
Wideo: PyWaw #31 - Quantum Computing & Python 2024, Lipiec
Anonim
QuizzPi, gra ciekawostek Raspberry Pi z Pythonem
QuizzPi, gra ciekawostek Raspberry Pi z Pythonem
QuizzPi, gra ciekawostek Raspberry Pi z Pythonem
QuizzPi, gra ciekawostek Raspberry Pi z Pythonem

QuizzPi to ciekawostki typu arcade. QuizzPi narodziło się, ponieważ miałem potrzebę zapewnienia mojej córce rozrywki. Ma 7 lat i już domaga się korzystania z nowych technologii, chodziło o stworzenie czegoś, co będzie zarówno zabawne, jak i edukacyjne.

Wymagania projektu:

  • Łatwy w użyciu
  • Przenośny
  • Łatwa rozbudowa zestawu pytań i odpowiedzi
  • Tabela najlepszych wyników

Wiele elementów można konfigurować. Możesz stworzyć własną bazę pytań/odpowiedzi lub skorzystać z jednego z wielu serwerów, który oferuje bazę danych, w której sam decydujesz o rodzaju pytań, trudnych,… Stworzyłem dla mojej córki bazę pytań pierwszej klasy, ale możemy zmień konfigurację, aby uzyskać ciekawostki z serwera online. Ta instruktażowa wersja otrzymuje pytania ze wspólnych pytań i odpowiedzi, Open Trivia Database. Wybrałem pytania z wiedzy ogólnej, ale możesz wybrać pytania dotyczące filmu, sportu lub religii.

Przepraszam za mój słaby angielski. Jestem Hiszpanem, ale wolałem stworzyć tę instrukcję w języku angielskim, aby mogła dotrzeć do większej liczby osób.

Chodźmy!

Krok 1: Potrzebujesz materiałów i narzędzi…

Potrzebujesz materiałów i narzędzi…
Potrzebujesz materiałów i narzędzi…

Na pewno masz większość materiałów w domu…

  • Raspberry Pi 2/3 z kartą SD 8Gb lub większą (35$)
  • Raspberry Pi 3,5 cala LCD z obudową (11$). Zobacz (jest to opcjonalne, możesz użyć dowolnego posiadanego wyświetlacza, wystarczy zmodyfikować obudowę QuizzPi)
  • Baterie. Możesz użyć powerbanku lub możesz użyć samodzielnego akumulatora 18650 (5 $). W moim przypadku użyłem jednego power banku Aukey 5000mah (12$). Widzieć
  • Cztery przyciski arkadowe. Mam je w domu (3$, 12 przycisków za 10$). Widzieć
  • Jeden włącznik/wyłącznik (0,25 $). Widzieć
  • Dwa złącza USB (0,50 $)
  • Jeden kabel USB/micro USB
  • Jeden tani głośnik (opcjonalnie) (0,25 $). Widzieć
  • Jeden wzmacniacz PAM8403 (opcjonalnie) (0,80$). Widzieć
  • Niektóre przewody do łączenia przycisków, złącza usb i włącznika/wyłącznika do pinów GPIO (1$?)
  • Cztery magnesy neodymowe lub możesz użyć czegokolwiek, aby zamknąć tylne drzwi. Widzieć
  • Sklejka. Użyłem sklejki 5mm, ale możesz użyć dowolnej, którą masz w domu (2$)

Potrzebujesz też narzędzi…

  • Narzędzia do lutowania
  • Śrubokręty
  • Pistolet na gorący klej
  • drukarka 3D (opcja)

Chodźmy!

Krok 2: Zaprojektujmy fajną obudowę QuizzPi…

Zaprojektujmy fajną obudowę QuizzPi…
Zaprojektujmy fajną obudowę QuizzPi…
Zaprojektujmy fajną obudowę QuizzPi…
Zaprojektujmy fajną obudowę QuizzPi…

Pierwszą rzeczą, której potrzebujemy, jest wiedza, ile miejsca potrzebujemy na sprzęt (Raspberry + ekran + przyciski + bateria + przewody). Mając na uwadze części opisane w poprzednim kroku wykonałem projekt 3D obudowy korzystając z darmowego internetowego projektanta 3D Tinkercad (Zobacz). Jeżeli chcesz wydrukować model 3D obudowy możesz go pobrać z załączonego pliku QuizzPi case.stl.

W tym momencie musiałem zdecydować, czy wydrukować model na mojej drukarce 3D, czy zrobić go ze sklejki. Pomyślałem, że będąc dla mojej córki, mógłbym poświęcić trochę więcej czasu na robienie go ze sklejki. Więc dostaję plany z modelu 3D i wycinam drewno.

Następnym krokiem jest klejenie części na gorąco…

Krok 3: Wykonanie obudowy ze sklejki…

Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…
Tworzenie obudowy ze sklejki…

Po wycięciu wszystkich części planów ze sklejki następnym krokiem jest ich klejenie na gorąco. W niektórych łączeniach wstawiam wzmocnienia, aby skrzynka była mocniejsza. W ramce rysuję ołówkiem kontur ekranu LCD i wycinam go. Robię cztery otwory na śruby. Jeśli używasz innego ekranu, musisz to zmodyfikować.

Tylne drzwi zamykają się dwoma magnesami przyklejonymi do drzwi i dwoma magnesami przyklejonymi do etui, dzięki czemu unikam stosowania zawiasów.

Sprawa QuizzPi jest zakończona…

Krok 4: Okablowanie pinów GPIO, montaż Raspberry+LCD…

Okablowanie pinów GPIO, montaż Raspberry+LCD…
Okablowanie pinów GPIO, montaż Raspberry+LCD…
Okablowanie pinów GPIO, montaż Raspberry+LCD…
Okablowanie pinów GPIO, montaż Raspberry+LCD…
Okablowanie pinów GPIO, montaż Raspberry+LCD…
Okablowanie pinów GPIO, montaż Raspberry+LCD…

Musimy podłączyć przyciski do Raspberry Pi, aby wiedziało, który przycisk jest wciśnięty. Przyciski są podłączone do pinów GPIO. Potrzebujemy czterech pinów IN GPIO plus jeden pin Gnd GPIO. Użyłem pinów GPIO 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) i 39 (Gnd) dla przycisków odpowiednio czerwonego, żółtego, zielonego i niebieskiego. Ten ekran ma interfejs SPI. Oznacza to, że jest podłączony do banku GPIO, więc najpierw włożyłem przewody zakończone kwadratem w piny przycisków, a następnie podłączyłem wyświetlacz LCD.

Kolejnym krokiem było zamontowanie obudowy Raspberry+LCD+ na ramce. Użyłem własnych śrub obudowy Raspberry Pi.

QuizzPi jest zamontowany…

Krok 5: Bateria, przyciski, przełącznik i złącze USB…

Bateria, przyciski, przełącznik i złącze USB…
Bateria, przyciski, przełącznik i złącze USB…
Bateria, przyciski, przełącznik i złącze USB…
Bateria, przyciski, przełącznik i złącze USB…
Bateria, przyciski, przełącznik i złącze USB…
Bateria, przyciski, przełącznik i złącze USB…

Ponownie użyłem Tinkercad, aby zaprojektować klips do mocowania power banku do obudowy. Klip wydrukowałem drukarką 3D i dołączyłem do obudowy pistoletem do klejenia na gorąco. Załączam plik.stl modelu poniżej. Jeśli nie masz dostępu do drukarki 3D, możesz dołączyć do powerbanku taśmą velcro.

Następnym krokiem jest podłączenie włącznika/wyłącznika między powerbankiem a Raspberry Pi. Wziąłem kabel USB i przeciąłem tylko przewód zasilający, następnie przylutowałem jeden koniec przewodu do jednego pinu włącznika/wyłącznika, a drugi koniec przewodu do drugiego pinu włącznika/wyłącznika. Więc kiedy przełącznik wyłączający zasilanie nie przechodzi przez przełącznik, a Raspberry jest wyłączony, a kiedy przełącznik włączania zasilania przechodzi przez przełącznik, a Raspberry jest włączony.

Kiedy power bank się rozładowuje, jest problem z wyjęciem etui, aby go naładować, więc nie chciałem go wyjmować za każdym razem, aby go naładować. Problem polegał na tym, że port ładowania banku mocy to USC typu C, a ja miałem tylko kabel banku mocy. Przylutowałem więc dwa żeńskie złącza USB i włożyłem do obudowy. Złącze wewnątrz do podłączenia kabla power banku i zewnętrzne złącze do podłączenia kabla zasilającego USB.

Umieszczenie przycisków i ich okablowanie było łatwe. Przyciski mają 2 piny, jeden pin każdego przycisku łączy się ze wspólnym kablem, który idzie do uziemionego pinu GPIO, a drugi pin przycisku łączy się z odpowiednim pinem GPIO Raspberry. Schemat połączeń pokazano na załączonym schemacie.

System dźwiękowy oparty jest na tanim wzmacniaczu dźwięku PAM8403. Jest to konieczne, ponieważ dźwięk z gniazda Raspberry Pi nie jest zbyt mocny, aby głośnik działał. Musisz go zasilić napięciem 5V lub więcej. Na załączonych obrazkach widać jak podłączyć wzmacniacz i głośnik. Potrzebujemy męskiego gniazda 3,5 mm do podłączenia do gniazda audio/wideo Rapberry. do gniazda przylutowałem 3 przewody: audio, wideo i uziemienie. Załączony schemat pokazuje, jaką pinezką są wszyscy. Następnie przylutowałem przewód do włącznika On/Off do pobierania prądu, a drugi przewód do przewodu uziemiającego z kabla powerbanku. Następnie podłączam przewody z głośnika do wyjść wzmacniacza. Najłatwiejszą częścią jest przydzielenie systemu dźwiękowego w przypadku. Możesz zobaczyć na zdjęciach.

QuizzPi jest zamontowany, na ostatnim zdjęciu nadal widać ślady ołówka na drewnie, ale czas na oprogramowanie… przejdźmy do stworzenia malutkiego silnika quizowego…

Krok 6: Obraz Rasbian i programowanie silnika quizu…

Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…
Obraz Rasbian i programowanie silnika quizu…

Naciskamy przycisk zasilania. Nic się nie dzieje. O mój Boże! To nie działa! Co może być nie tak? Jakiś kabel bez połączenia? Nie martw się, musimy zainstalować obraz na karcie SD…

Silnik quizu jest napisany w Pythonie 3, więc potrzebujemy obrazu Raspbian z zainstalowanym kompilatorem Pythona. W tym momencie musimy wziąć pod uwagę rodzaj zainstalowanego ekranu. Mój ekran to interfejs SPI, a sprzedawca podaje obraz Raspbian ze wszystkimi zainstalowanymi sterownikami ekranu. Ta wersja Raspbiana ma również silnik Pythona. Możesz pobrać ten obraz pod tym linkiem.

Jeśli masz ekran HDMI lub RCA, możesz pobrać ostatni obraz Raspbian dostępny na stronie raspberrypi.org. Uwaga: potrzebujesz wersji Desktop Rasbian, więc unikaj pobierania obrazu Lite Raspbian. Te obrazy zawierają kompilator Pythona.

Aby zainstalować obraz na karcie SD możemy użyć dowolnej aplikacji. Używam Win32diskiemagera. Następnie wkładamy kartę SD do Raspberry i wciskamy włącznik/wyłącznik. To działa! Teraz musimy stworzyć program w Pythonie z silnikiem quizz.

Następnym krokiem jest pobranie plików silnika quizu. Załączyłem kod źródłowy w pliku QuizzPi.zip. Pobierz źródło i utwórz folder w Raspberry Pi:

# mkdir /home/pi/QuizzPi

i rozpakuj pobrany plik do tego folderu.

QuizzPi.zip zawiera te pliki:

  • QuizzPi.py - zawiera kod
  • Pliki graficzne-p.webp" />
  • Pliki dźwiękowe MP3 - możesz zmienić, aby spersonalizować
  • losmejores.txt - zawiera tabelę najlepszych wyników, możesz ją usunąć, aby zainicjować tabelę
  • Instrukcje.txt

Nie podam wyczerpującego wyjaśnienia, jak zaprogramowałem kod silnika w Pythonie, ponieważ jest to zbyt trudne dla osób bez wiedzy programistycznej. Muszą tylko zapisać pliki w Raspberry. Osoby z wiedzą programistyczną będą mogły ją modyfikować bez żadnego wyjaśnienia;)

Pytania i odpowiedzi pochodzą ze wspólnej bazy danych pytań i odpowiedzi o nazwie Open Trivia Database, którą można znaleźć tutaj. Możesz zmienić kategorię i trudność pytań zmieniając linię w pliku QuizzPi.py:

#Cargo desde URLurl = 'https://opendb.com/api.php?amount=10&type=multiple'

zmiana z url uzyskanym z konfiguratora api

Projektowałem ekrany gier w Photoshopie, możesz je modyfikować. Musisz tylko zachować niektóre białe obszary na ekranie pytań, na ekranie wyników i ekranach najlepszych wyników, ponieważ silnik gry zapisuje na nich.

Możesz także spersonalizować dźwięki gry. Musisz tylko zmienić pliki.mp3 przez inne osoby, które chcesz, musisz zachować te same nazwy. Wiele dźwięków można uzyskać z internetowych baz danych, ja dostaję miny z Free Sound Effects.

Teraz musisz zmodyfikować swojego Raspbiana, aby automatycznie uruchamiał QuizzPi. Możesz przeczytać ten artykuł, w którym wyjaśnisz, jak to zrobić:

Skończyliśmy!!!

Krok 7: Demonstracja…

Image
Image

Aby zakończyć tę instrukcję, możesz zobaczyć ten film. Widać, że jest łatwy w użyciu, a trudne pytania zależą od Ciebie…

Edycja: wideo zaktualizowane teraz z dźwiękiem!

Konkurs na mikrokontrolery
Konkurs na mikrokontrolery

Drugie miejsce w konkursie mikrokontrolerów

Zalecana: