Cuprins:

QuizzPi, un joc Raspberry Pi Trivia cu Python: 7 pași (cu imagini)
QuizzPi, un joc Raspberry Pi Trivia cu Python: 7 pași (cu imagini)

Video: QuizzPi, un joc Raspberry Pi Trivia cu Python: 7 pași (cu imagini)

Video: QuizzPi, un joc Raspberry Pi Trivia cu Python: 7 pași (cu imagini)
Video: doubling the drop every time the PC survives #shorts 2024, Noiembrie
Anonim
QuizzPi, un joc Raspberry Pi Trivia cu Python
QuizzPi, un joc Raspberry Pi Trivia cu Python
QuizzPi, un joc Raspberry Pi Trivia cu Python
QuizzPi, un joc Raspberry Pi Trivia cu Python

QuizzPi este un joc trivia de tip arcade. QuizzPi s-a născut pentru că am avut nevoie să-i ofer fiicei mele un divertisment. Are 7 ani și solicită deja utilizarea noilor tehnologii, ideea a fost să creăm ceva care să fie atât distractiv, cât și educativ.

Cerințe ale proiectului:

  • Ușor de folosit
  • Portabil
  • Ușor de actualizat setul de întrebări și răspunsuri
  • Tabel cu scoruri mari

Elementele multiple sunt configurabile. Puteți crea propria bază de date cu întrebări / răspunsuri sau puteți utiliza unul dintre serverele multiple care oferă o bază de date, unde decideți tipul de întrebări, dificil, … Am creat pentru fiica mea o bază de date cu întrebări de gradul I, dar putem modificați configurația pentru a primi întrebări de la un server oline. Această versiune instructivă obține întrebările dintr-o întrebare și răspunsuri colaborative, baza de date Open Trivia. Am ales întrebări de cunoștințe generale, dar puteți alege întrebări despre film, sport sau religie.

Îmi cer scuze pentru biata mea engleză. Sunt spaniol, dar am preferat să creez acest instructiv în engleză, astfel încât să poată ajunge la mai mulți oameni.

Să mergem!

Pasul 1: Aveți nevoie de câteva materiale și instrumente …

Aveți nevoie de câteva materiale și instrumente …
Aveți nevoie de câteva materiale și instrumente …

Cu siguranță aveți cea mai mare parte a materialului acasă …

  • Raspberry Pi 2/3 cu un card SD de 8 GB sau mai mult (35 $)
  • Raspberry Pi LCD de 3,5 inch cu carcasă (11 $). Vedeți (acest lucru este opțional, puteți utiliza orice ecran pe care îl aveți, trebuie doar să modificați carcasa QuizzPi pentru acesta)
  • Baterii. Puteți utiliza o bancă de energie sau puteți utiliza un acumulator 18650 diy (5 $). În cazul meu am folosit o bancă de putere Aukey 5000mah (12 $). Vedea
  • Patru butoane arcade. Eu le am acasă (3 $, 12 butoane pentru 10 $). Vedea
  • Un comutator de pornire / oprire (0,25 $). Vedea
  • Două conector USB (0,50 $)
  • Un cablu USB / micro USB
  • Un difuzor ieftin (opțional) (0,25 $). Vedea
  • Un amplificator PAM8403 (opțional) (0,80 $). Vedea
  • Unele fire pentru a lega butoanele, conectorul USB și comutatorul de pornire / oprire la pinii GPIO (1 $?)
  • Patru magneți de neodim sau puteți folosi orice lucru pentru a închide ușa din spate. Vedea
  • Placaj. Am folosit placaj de 5 mm, dar puteți folosi orice aveți acasă (2 $)

Ai nevoie și de câteva instrumente …

  • Utilități de lipit
  • Șurubelniți
  • Pistolul de adeziv
  • Imprimantă 3D (opțional)

Să mergem!

Pasul 2: Să proiectăm un caz QuizzPi cool …

Să proiectăm un caz QuizzPi cool …
Să proiectăm un caz QuizzPi cool …
Să proiectăm un caz QuizzPi cool …
Să proiectăm un caz QuizzPi cool …

Primul lucru de care avem nevoie este să știm cât spațiu trebuie să includem hardware (Raspberry + ecran + butoane + baterie + fire). Luând în considerare părțile descrise în pasul anterior, am realizat un design 3D al carcasei folosind designerul 3D online gratuit Tinkercad (Vezi). Dacă doriți să imprimați modelul 3D al carcasei, îl puteți descărca din fișierul atașat Carcasa QuizzPi..stl.

În acel moment a trebuit să decid dacă să tipăresc modelul pe imprimanta mea 3D sau să îl fac din placaj. Am crezut că, pentru fiica mea, aș putea petrece puțin mai mult timp făcându-l din placaj. Așa că primesc planurile din modelul 3D și tai lemnul.

Următorul pas este lipirea la cald a pieselor …

Pasul 3: Realizarea carcasei de placaj …

Realizarea carcasei de placaj …
Realizarea carcasei de placaj …
Realizarea carcasei de placaj …
Realizarea carcasei de placaj …
Realizarea carcasei de placaj …
Realizarea carcasei de placaj …
Realizarea carcasei de placaj …
Realizarea carcasei de placaj …

Odată ce am tăiat toate părțile din placaj ale planurilor, următorul pas este să le lipesc la cald. În unele îmbinări am pus întăriri pentru a face cutia mai puternică. Pe ramă desenez cu creionul conturul ecranului LCD și îl decupez. Fac patru găuri pentru șuruburi. Dacă utilizați un ecran diferit, trebuie să modificați acest lucru.

Ușa din spate se închide cu doi magneți lipiți de ușă și doi magneți lipiți carcasa, așa că evit utilizarea balamalelor.

Cazul QuizzPi este terminat …

Pasul 4: Cablarea pinilor GPIO, montarea Raspberry + LCD …

Cablare pini GPIO, montare zmeură + LCD …
Cablare pini GPIO, montare zmeură + LCD …
Cablare pini GPIO, montare zmeură + LCD …
Cablare pini GPIO, montare zmeură + LCD …
Cablare pini GPIO, montare zmeură + LCD …
Cablare pini GPIO, montare zmeură + LCD …

Trebuie să conectăm butoanele la Raspberry Pi, astfel încât să poată ști ce buton este apăsat. Butoanele sunt conectate la pinii GPIO. Avem nevoie de patru pini IN GPIO plus un pini GPIO Gnd. Am folosit pinul GPIO 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) și 39 (Gnd) pentru butoanele roșii, galbene, verzi și, respectiv, albastre. Acest ecran are interfață SPI. Acest lucru înseamnă că este conectat la banca GPIO, așa că am pus mai întâi fire terminate în pătrat în butoane și apoi am conectat ecranul LCD.

Următorul pas a fost montarea carcasei Raspberry + LCD + pe cadru. Am folosit propriile șuruburi ale carcasei Raspberry Pi.

QuizzPi este montat …

Pasul 5: baterie, butoane, comutator și conector USB …

Baterie, butoane, comutator și conector USB …
Baterie, butoane, comutator și conector USB …
Baterie, butoane, comutator și conector USB …
Baterie, butoane, comutator și conector USB …
Baterie, butoane, comutator și conector USB …
Baterie, butoane, comutator și conector USB …

Am folosit din nou Tinkercad pentru a proiecta un clip care să țină banca de putere la carcasă. Am imprimat clipul cu imprimanta mea 3D și m-am alăturat carcasei cu pistol cu adeziv fierbinte. Atașez fișierul.stl al modelului de mai jos. Dacă nu aveți acces la o imprimantă 3D, vă puteți alătura băncii de energie cu bandă velcro.

Următorul pas este să conectați comutatorul de pornire / oprire între banca de alimentare și Raspberry Pi. Am luat un cablu USB și am tăiat doar firul de alimentare, apoi am lipit un capăt al firului la un pin al comutatorului de pornire / oprire și celălalt capăt al firului la celălalt pin al comutatorului de pornire / oprire. Deci, atunci când comutatorul oprit nu trece prin swtich și Raspberry este oprit și când comutatorul pornit trece prin swtich și Raspberry este pornit.

Când descărcările de la banca de energie electrică sunt o problemă, scoateți-o în carcasă, așa că nu am vrut să o scot de fiecare dată pentru a încărca. Problema a fost că portul de încărcare al băncii de alimentare este USC tip C și am avut doar cablul băncii de alimentare. Așa că am lipit doi conectori USB de sex feminin și am pus carcasa. Conectorul din interior pentru a conecta cablul băncii de alimentare și conectorul exterior pentru a conecta un cablu de alimentare USB.

Așezarea butoanelor și conectarea acestora a fost ușoară. Butoanele au 2 pini, un pin din fiecare buton se conectează la un cablu comun care merge la un pin GPIO la sol, iar celălalt pin al butonului se conectează la pinul GPIO respectiv al zmeurii. Schema de cablare este prezentată în schema atașată.

Sistemul de sunet are la bază PAM8403, un amplificator de sunet ieftin. Este necesar, deoarece sunetul obținut de la mufa Raspberry Pi nu este prea puternic pentru a face ca difuzorul să funcționeze. Trebuie să-l alimentați cu 5v sau mai mult. În imaginile atașate puteți vedea cum să conectați amplificatorul și difuzorul. Avem nevoie de o mufă masculină de 3,5 mm pentru a ne conecta la mufa audio / video a Rapberry. Am lipit 3 fire la mufă: audio, video și la sol. Diagrama atașată arată care este pinul tuturor. Apoi am lipit un fir la comutatorul Pornit / Oprit pentru preluarea alimentării și un alt fir la firul de masă de la cablul băncii de alimentare. Apoi conectez firele de la difuzor la ieșirile amplificatorului. Partea ușoară este alocarea sistemului de sunet în caz. Puteți vedea în imagini.

QuizzPi este montat, în ultima fotografie putem vedea încă semne de creion pe lemn, dar este timpul software-ului … hai să creăm un mic motor de testare …

Pasul 6: Imagine Rasbian și programarea motorului de testare …

Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …
Imagine Rasbian și programarea motorului de testare …

Apăsăm butonul de alimentare. Nimic nu se intampla. Oh, Doamne! Nu merge! Ce poate fi greșit? Orice cablu fără conexiune? Nu vă faceți griji, trebuie să instalăm o imagine pe cardul SD …

Motorul de testare este scris în Python 3, deci avem nevoie de o imagine Raspbian cu compilatorul Python instalat. În acest moment trebuie să ținem cont de tipul de ecran pe care l-am instalat. Ecranul meu este o interfață SPI, iar vânzătorul oferă o imagine Raspbian cu toate driverele de ecran instalate. Această versiune a Raspbian are și motor Python. Puteți descărca această imagine în acest link.

Dacă aveți un ecran HDMI sau RCA, puteți descărca ultima imagine Raspbian disponibilă pe site-ul raspberrypi.org. Atenție: aveți nevoie de versiunea Desktop Rasbian, deci evitați să descărcați imaginea Lite Raspbian. Aceste imagini conțin un compilator Python.

Pentru a instala imaginea pe cardul SD putem folosi orice aplicație. Folosesc Win32diskimager. Apoi, introducem cardul SD în Raspberry și apăsăm comutatorul de pornire / oprire. Functioneaza! Acum trebuie să creăm un program Python cu motorul de testare.

Următorul pas este să descărcați fișierele motorului de testare. Am atașat codul sursă în fișierul QuizzPi.zip. Descărcați sursa și creați un folder în Raspberry Pi:

# mkdir / home / pi / QuizzPi

și dezarhivați fișierul descărcat în acest folder.

QuizzPi.zip conține aceste fișiere:

  • QuizzPi.py - conține codul
  • Fișiere imagine-p.webp" />
  • Fișiere audio MP3 - puteți modifica pentru a personaliza
  • losmejores.txt - conține tabelul Scoruri mari, îl puteți șterge pentru a inițializa tabelul
  • Instrucțiuni.txt

Nu voi da o explicație exhaustivă a modului în care am programat codul motorului în Python, deoarece este greu pentru oamenii fără cunoștințe de programare. Ei trebuie doar să salveze fișierele în Raspberry. Persoanele cu cunoștințe de programare îl vor putea modifica fără nicio explicație;)

Întrebările și răspunsurile provin dintr-o bază de date colaborativă Întrebări și răspunsuri numită Open Trivia Database, pe care o puteți găsi aici. Puteți schimba categoria și dificultatea întrebărilor schimbând o linie în fișierul QuizzPi.py:

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

schimbarea cu adresa URL obținută de la configuratorul api

Am proiectat ecranele jocului în Photoshop, le puteți modifica. Trebuie doar să păstrați unele zone albe în ecranul de întrebări, în ecranul de rezultate și în ecranele cu scoruri mari, deoarece motorul jocului scrie pe ele.

Puteți personaliza și sunetele jocului. Trebuie doar să schimbați fișierele.mp3 cu alte persoane pe care le doriți, trebuie să păstrați aceleași nume. Puteți obține o mulțime de sunete din bazele de date online, eu primesc mine de la Free Sound Effects.

Acum trebuie să vă modificați Raspbian pentru a rula automat QuizzPi. Puteți citi acest articol în care explicați cum să faceți acest lucru:

Noi am terminat!!!

Pasul 7: demonstrație …

Image
Image

Pentru a finaliza acest instructable puteți vedea acest videoclip. Puteți vedea că este ușor de utilizat și dificilul întrebărilor depinde de dvs. …

Editare: videoclip actualizat acum cu sunet!

Concurs de microcontroler
Concurs de microcontroler

Locul doi în concursul de microcontroler

Recomandat: