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, Juli
Anonim
QuizzPi, trivijalna igra Raspberry Pi sa Pythonom
QuizzPi, trivijalna igra Raspberry Pi sa Pythonom
QuizzPi, trivijalna igra Raspberry Pi sa Pythonom
QuizzPi, trivijalna igra Raspberry Pi sa Pythonom

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

Uslovi projekta:

  • Jednostavan za korištenje
  • Portable
  • Lako je nadograditi skup pitanja i odgovora
  • Tabela najboljih rezultata

Više stavki se može konfigurirati. Možete stvoriti vlastitu bazu pitanja/odgovora ili možete koristiti jedan od više servera 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 sa oline servera. 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.

Izvinjavam 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 kod kuće …

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

Trebaju vam i neki alati …

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

Idemo!

Korak 2: Dizajnirajmo cool 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 + ekran + dugmad + baterija + žice). Uzimajući u obzir dijelove opisane u prethodnom koraku, napravio sam 3D dizajn kućišta koristeći besplatni internetski 3D dizajner Tinkercad (vidi). Ako želite odštampati 3D model kućišta, možete ga preuzeti iz priložene datoteke QuizzPi kućište.stl.

U tom trenutku morao sam odlučiti hoću li model odštampati na svom 3D štampač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 da iz 3D modela dobivam planove i režem drvo.

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 postala jača. U okviru sam olovkom nacrtao obris LCD ekrana i izrezao ga. Napravim četiri rupe za vijke. Ako koristite drugi ekran, morate to izmijeniti.

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

Slučaj QuizzPi je završen …

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

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 koje je dugme pritisnuto. Dugmad su spojena na GPIO pinove. Potrebna su nam četiri IN GPIO pina i jedan Gnd GPIO pin. Koristio sam GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) i 39 (Gnd) za crveno, žuto, zeleno i plavo dugme. Ovaj ekran ima SPI interfejs. To znači da je spojen na GPIO banku, pa sam prvo u žice dugmadi stavio žice završene u kvadrat, a zatim sam spojio LCD ekran.

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

QuizzPi je montiran…

Korak 5: Baterija, dugmad, prekidač i USB konektor …

Baterija, dugmad, prekidač i USB konektor …
Baterija, dugmad, prekidač i USB konektor …
Baterija, dugmad, prekidač i USB konektor …
Baterija, dugmad, prekidač i USB konektor …
Baterija, dugmad, prekidač i USB konektor …
Baterija, dugmad, prekidač i USB konektor …

Ponovno sam upotrijebio Tinkercad za dizajniranje kopče za držanje baterije za kućište. Odštampao sam isječak svojim 3D štampačem i spojio kućište pištoljem za vruće ljepilo. U nastavku prilažem.stl datoteku modela. Ako nemate pristup 3D štampač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 presjekao 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, kada prekidač za isključivanje napajanja ne prolazi kroz prekidač, a Raspberry je isključen i kada prekidač za uključivanje napajanja prolazi kroz prekidač, a Raspberry je uključen.

Kad je pražnjenje iz banke napajanja 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. Zalemio sam dva ženska USB konektora i stavio ih 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. Dugmad imaju 2 pina, jedan pin svakog dugmeta povezuje se na zajednički kabl koji ide na uzemljeni GPIO pin, a drugi pin dugmeta povezuje se sa odgovarajućim GPIO pinom maline. Shema ožičenja prikazana je na priloženom dijagramu.

Zvučni sistem je zasnovan 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 sa 5V ili više. Na priloženim slikama možete vidjeti kako spojiti pojačalo i zvučnik. Potreban nam je muški priključak od 3,5 mm za povezivanje sa audio/video priključkom Rapberry -a. lemio sam 3 žice na utičnicu: audio, video i masu. Dijagram u prilogu prikazuje koji pin je svako. 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 povežem žice sa zvučnika na izlaze pojačala. Lakši dio je dodijeliti ozvučenje u kućištu. Možete videti 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 dugme za napajanje. Ništa se ne događa. O moj boze! Ne radi! Šta može biti pogrešno? Ima li kabla bez veze? Ne brinite, moramo instalirati sliku na SD karticu …

Mašina za kvizove napisana je u Pythonu 3, pa nam je potrebna Raspbian slika sa instaliranim Python kompajlerom. U ovom trenutku moramo uzeti u obzir vrstu ekrana koji smo instalirali. Moj ekran je SPI interfejs, a prodavac daje Raspbian sliku sa svim instaliranim upravljačkim programima za ekran. I ova verzija Raspbiana ima Python engine. Ovu sliku možete preuzeti na ovom linku.

Ako imate HDMI ili RCA ekran, možete preuzeti posljednju Raspbian sliku dostupnu na web stranici raspberrypi.org. Pažnja: potrebna vam je Rasbian verzija za računare, pa 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 sa quizz engineom.

Sljedeći korak je preuzimanje datoteka 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. Oni samo trebaju spremiti datoteke u Raspberry. Ljudi sa programerskim znanjem moći će ga izmijeniti bez ikakvog objašnjenja;)

Pitanja i odgovori su iz kolaborativne baze pitanja i odgovora 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 izmijeniti. Morate sačuvati samo neka bijela područja na ekranu s pitanjima, na ekranu s rezultatima i ekranima s visokim ocjenama jer motor za igru na njih piše.

Zvukove igre možete prilagoditi i sebi. Morate promijeniti samo.mp3 datoteke drugima koje želite. Morate sačuvati ista imena. Mnogo zvukova možete dobiti iz internetskih baza podataka, ja dobivam mine iz besplatnih zvučnih efekata.

Sada morate izmijeniti svoj Raspbian da bi se automatski pokrenuo QuizzPi. Možete pročitati ovaj članak u kojem objašnjavate kako to učiniti:

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 pitanje ovisi o vama …

Edit: video je sada ažuriran sa zvukom!

Takmičenje za mikrokontroler
Takmičenje za mikrokontroler

Drugoplasirani na takmičenju mikrokontroler

Preporučuje se: