Sadržaj:

QuizzPi, trivijalna igra Raspberry Pi s Pythonom: 7 koraka (sa slikama)
QuizzPi, trivijalna igra Raspberry Pi s Pythonom: 7 koraka (sa slikama)

Video: QuizzPi, trivijalna igra Raspberry Pi s Pythonom: 7 koraka (sa slikama)

Video: QuizzPi, trivijalna igra Raspberry Pi s Pythonom: 7 koraka (sa slikama)
Video: Python ile Neler Yapılabilir? (💯 EN İYİ PROGRAMLAMA DİLİ🐍🕹 ) 2024, Srpanj
Anonim
QuizzPi, trivijalna igra Raspberry Pi s Pythonom
QuizzPi, trivijalna igra Raspberry Pi s Pythonom
QuizzPi, trivijalna igra Raspberry Pi s Pythonom
QuizzPi, trivijalna igra Raspberry Pi s Pythonom

QuizzPi je trivijalna igra arkadnog tipa. QuizzPi je rođen jer sam imao potrebu svojoj kćeri priuštiti zabavu. Ima 7 godina i već zahtijeva korištenje novih tehnologija, ideja je bila stvoriti nešto zabavno i poučno.

Zahtjevi projekta:

  • Jednostavan za korištenje
  • Prijenosni
  • Lako je nadograditi skup pitanja i odgovora
  • Tablica najboljih rezultata

Mogu se konfigurirati više stavki. Možete stvoriti vlastitu bazu pitanja/odgovora ili možete upotrijebiti jedan od više poslužitelja koji nudi bazu podataka, gdje odlučujete o vrsti pitanja, teškim, … Kreirao sam za svoju kćer bazu pitanja s prvim razredom, ali možemo promijenite konfiguraciju da biste primali trivijalna pitanja od oline poslužitelja. Ova poučna verzija preuzima pitanja iz kolaborativnih pitanja i odgovora, Open Trivia Database. Ja sam odabrao pitanja općeg znanja, ali vi možete odabrati filmska, sportska ili vjerska pitanja.

Ispričavam se na lošem engleskom. Ja sam Španjolac, ali radije sam stvorio ovo uputstvo na engleskom kako bi moglo doći do više ljudi.

Idemo!

Korak 1: Trebate neke materijale i alate …

Trebate neke materijale i alate …
Trebate neke materijale i alate …

Sigurno imate većinu materijala doma …

  • Raspberry Pi 2/3 s 8 GB ili više SD kartice (35 USD)
  • Raspberry Pi 3,5 -inčni LCD s kućištem (11 USD). Pogledajte (ovo nije obavezno, možete koristiti bilo koji zaslon koji imate, samo morate za njega izmijeniti kućište QuizzPi)
  • Baterije. Možete upotrijebiti banku napajanja ili bateriju 18650 (5 USD). U mom slučaju koristio sam jednu bateriju napajanja Aukey 5000mah (12 USD). Vidjeti
  • Četiri arkadna gumba. Imam ih doma (3 USD, 12 gumba za 10 USD). Vidjeti
  • Jedan prekidač za uključivanje/isključivanje (0,25 USD). Vidjeti
  • Dva USB priključka (0,50 USD)
  • Jedan USB/mikro USB kabel
  • Jedan jeftini zvučnik (opcionalno) (0,25 USD). Vidjeti
  • Jedno PAM8403 pojačalo (opcionalno) (0,80 USD). Vidjeti
  • Neke žice za povezivanje gumba, USB priključak i prekidač za uključivanje/isključivanje prebacuju se na GPIO pinove (1 USD?)
  • Četiri neodimijska magneta ili možete upotrijebiti bilo koju stvar da zatvorite stražnja vrata. Vidjeti
  • Šperploča. Koristio sam šperploču od 5 mm, ali možete koristiti bilo koju koju imate kod kuće (2 USD)

Trebate i neke alate …

  • Uslužni programi za lemljenje
  • Odvijači
  • Pištolj za vruće ljepilo
  • 3D pisač (izborno)

Idemo!

Korak 2: Dizajnirajmo zgodnu QuizzPi futrolu …

Dizajnirajmo cool QuizzPi futrolu …
Dizajnirajmo cool QuizzPi futrolu …
Dizajnirajmo cool QuizzPi futrolu …
Dizajnirajmo cool QuizzPi futrolu …

Prvo što trebamo je znati koliko nam je prostora potrebno za uključivanje hardvera (malina + zaslon + gumbi + baterija + žice). Uzimajući u obzir dijelove opisane u prethodnom koraku, napravio sam 3D dizajn kućišta koristeći besplatni mrežni 3D dizajner Tinkercad (vidi). Ako želite ispisati 3D model kućišta, možete ga preuzeti iz priložene datoteke QuizzPi kućište.stl.

U tom sam trenutku morao odlučiti hoću li model ispisati na svom 3D pisaču ili ga napraviti od šperploče. Mislio sam da bih za svoju kćer mogao provesti malo više vremena izrađujući je od šperploče. Tako dobivam planove iz 3D modela i režem drva.

Sljedeći korak je vruće lijepljenje dijelova …

Korak 3: Izrada kućišta od šperploče …

Izrada kućišta od šperploče …
Izrada kućišta od šperploče …
Izrada kućišta od šperploče …
Izrada kućišta od šperploče …
Izrada kućišta od šperploče …
Izrada kućišta od šperploče …
Izrada kućišta od šperploče …
Izrada kućišta od šperploče …

Nakon što sam izrezao sve dijelove planova od šperploče, sljedeći korak je njihovo vruće lijepljenje. U nekim spojevima stavljao sam pojačanja kako bi kutija bila jača. U okviru sam olovkom nacrtao obris LCD zaslona i izrezao ga. Napravim četiri rupe za vijke. Ako koristite drugi zaslon, morate to promijeniti.

Stražnja vrata zatvaraju se s dva magneta zalijepljena za vrata i dva magneta zalijepljena za kućište, pa izbjegavam korištenje šarki.

Slučaj QuizzPi je završen …

Korak 4: Ožičenje GPIO pinova, montaža Raspberry+LCD …

Ožičenje GPIO pinova, montaža Raspberry+LCD …
Ožičenje GPIO pinova, montaža Raspberry+LCD …
Ožičenje GPIO pinova, montaža Raspberry+LCD …
Ožičenje GPIO pinova, montaža Raspberry+LCD …
Ožičenje GPIO pinova, montaža Raspberry+LCD …
Ožičenje GPIO pinova, montaža Raspberry+LCD …

Moramo spojiti gumbe na Raspberry Pi kako bi mogao znati koji je gumb pritisnut. Gumbi su spojeni na GPIO pinove. Trebamo četiri IN GPIO pina plus jedan Gnd GPIO pin. Koristio sam GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) i 39 (Gnd) za crvenu, žutu, zelenu i plavu tipku. Ovaj zaslon ima SPI sučelje. To znači da je spojen na GPIO banku, pa sam prvo u žice gumba stavio žice završene u kvadrat, a zatim sam spojio LCD zaslon.

Sljedeći korak bio je postavljanje Raspberry+LCD+kućišta na okvir. Koristio sam vlastite vijke kućišta Raspberry Pi.

QuizzPi je montiran …

Korak 5: Baterija, gumbi, prekidač i USB priključak …

Baterija, gumbi, prekidač i USB priključak …
Baterija, gumbi, prekidač i USB priključak …
Baterija, gumbi, prekidač i USB priključak …
Baterija, gumbi, prekidač i USB priključak …
Baterija, gumbi, prekidač i USB priključak …
Baterija, gumbi, prekidač i USB priključak …

Ponovno sam upotrijebio Tinkercad za dizajniranje isječka za držanje power bank -a na kućištu. Ispisao sam isječak svojim 3D pisačem i spojio kućište pištoljem za vruće ljepilo. U nastavku prilažem.stl datoteku modela. Ako nemate pristup 3D pisaču, možete se pridružiti banci napajanja pomoću čičak trake.

Sljedeći korak je povezivanje prekidača za uključivanje/isključivanje između banke napajanja i Raspberry Pi. Uzeo sam USB kabel i prerezao sam samo žicu za napajanje, pa sam jedan kraj žice lemio na jedan pin prekidača za uključivanje/isključivanje, a drugi kraj žice na drugi pin prekidača za uključivanje/isključivanje. Dakle, kad prekidač za isključivanje napajanja ne prolazi kroz prekidač, a Raspberry je isključen, a kada prekidač za uključivanje i isključivanje prolazi kroz prekidač, a Raspberry je uključen.

Kad je pražnjenje baterije problem izvaditi kućište radi punjenja, pa ga nisam htio izvaditi svaki put radi punjenja. Problem je bio u priključku za punjenje banke napajanja koji je USC tip C, a ja sam imao samo kabel napajanja. Tako sam lemio dva ženska USB konektora i stavio u kućište. Unutrašnji konektor za spajanje kabela napajanja, a vanjski konektor za spajanje USB kabela za napajanje.

Postavljanje gumba i njihovo ožičenje bilo je jednostavno. Gumbi imaju 2 pina, jedan pin svake tipke povezuje se na zajednički kabel koji ide na uzemljeni GPIO pin, a drugi pin na gumbu spaja se na odgovarajući GPIO pin maline. Shema ožičenja prikazana je na priloženom dijagramu.

Zvučni sustav temelji se na PAM8403, jeftinom pojačalu zvuka. To je potrebno jer zvuk koji dolazi iz priključka Raspberry Pi nije previše moćan da bi zvučnik radio. Morate ga napajati s 5V ili više. Na priloženim slikama možete vidjeti kako spojiti pojačalo i zvučnik. Za spajanje na audio/video priključnicu Rapberry -a potreban nam je muški priključak od 3,5 mm. lemio sam 3 žice na utičnicu: audio, video i masu. Dijagram u prilogu prikazuje koji je pin za svakoga. Zatim sam lemio žicu na prekidaču za uključivanje/isključivanje radi preuzimanja napajanja, a drugu žicu na žicu za uzemljenje s kabela napajanja. Zatim spojim žice sa zvučnika na izlaze pojačala. Lakši dio je dodijeliti ozvučenje u kućištu. Možete vidjeti na slikama.

QuizzPi je montiran, na posljednjoj fotografiji još uvijek možemo vidjeti tragove olovke na drvetu, ali vrijeme je za softver … idemo stvoriti maleni kviz …

Korak 6: Rasbian slika i programiranje kviza …

Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine …
Rasbian Image and Programming the Quiz Engine …
Rasbian Image and Programming the Quiz Engine …
Rasbian Image and Programming the Quiz Engine …
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…

Pritisnemo gumb za uključivanje. Ništa se ne događa. O moj Bože! Ne radi! Što može biti pogrešno? Ima li kabela bez veze? Ne brinite, moramo instalirati sliku na SD karticu …

Motor za kvizove napisan je u Pythonu 3, pa nam je potrebna Raspbian slika s instaliranim prevoditeljem Python. U ovom trenutku moramo uzeti u obzir vrstu ekrana koji smo instalirali. Moj zaslon je SPI sučelje, a prodavatelj daje Raspbian sliku sa svim instaliranim upravljačkim programima za zaslon. Ova verzija Raspbiana također ima Python engine. Ovu sliku možete preuzeti na ovoj poveznici.

Ako imate HDMI ili RCA zaslon, možete preuzeti posljednju Raspbian sliku dostupnu na web stranici raspberrypi.org. Pažnja: potrebna vam je stolna rasbian verzija, stoga izbjegavajte preuzimanje Lite Raspbian slike. Ove slike sadrže Python kompajler.

Za instaliranje slike na SD karticu možemo koristiti bilo koju aplikaciju. Koristim Win32diskimager. Zatim umetnemo SD karticu u Raspberry i pritisnemo prekidač za uključivanje/isključivanje. Radi! Sada moramo stvoriti Python program s quizz strojem.

Sljedeći korak je preuzimanje datoteka pokretača kviza. Priložio sam izvorni kod u datoteci QuizzPi.zip. Preuzmite izvor i stvorite mapu u Raspberry Pi:

# mkdir/home/pi/QuizzPi

i raspakirajte datoteku preuzetu u ovu mapu.

QuizzPi.zip sadrži ove datoteke:

  • QuizzPi.py - sadrži kôd
  • MP3 zvučne datoteke - možete ih promijeniti kako biste ih prilagodili
  • losmejores.txt - sadrži tablicu visokih ocjena, možete je izbrisati za inicijalizaciju tablice
  • Instructions.txt

Neću davati iscrpno objašnjenje kako sam programirao kod motora u Pythonu jer je ljudima bez znanja programiranja teško. Trebaju samo spremiti datoteke u malinu. Ljudi s poznavanjem programiranja moći će ga mijenjati bez ikakvog objašnjenja;)

Pitanja i odgovori su iz kolaborativne baze pitanja Pitanja i odgovori pod nazivom Open Trivia Database, koju možete pronaći ovdje. Kategoriju i teška pitanja možete promijeniti ako promijenite redak u datoteci QuizzPi.py:

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

mijenja se pomoću URL -a dobivenog iz api konfiguratora

Dizajnirao sam zaslone igara u Photoshopu, možete ih mijenjati. Morate sačuvati samo neka bijela područja na ekranu s pitanjima, na zaslonu s rezultatima i zaslonima s visokim ocjenama jer motor za igre na njih piše.

Također možete prilagoditi zvukove igre. Morate promijeniti.mp3 datoteke samo od drugih osoba, morate sačuvati iste nazive. Mnogo zvukova možete dobiti iz internetskih baza podataka, ja dobivam mine iz besplatnih zvučnih efekata.

Sada morate izmijeniti svoj Raspbian kako bi se automatski pokrenuo QuizzPi. Ovaj članak u kojem možete objasniti kako to učiniti možete pročitati:

Završili smo !!!

Korak 7: Demonstracija …

Image
Image

Za dovršetak ovog uputstva možete pogledati ovaj video. Vidite da je jednostavan za korištenje, a teškoća pitanja ovise o vama …

Edit: video je sada ažuriran sa zvukom!

Natjecanje za mikrokontroler
Natjecanje za mikrokontroler

Drugoplasirani na natjecanju za mikrokontroler

Preporučeni: