Kazalo:
- 1. korak: Potrebujete nekaj materialov in orodij …
- 2. korak: Oblikujmo kul ovitek QuizzPi …
- 3. korak: izdelava ohišja iz vezanega lesa …
- 4. korak: Ožičenje zatičev GPIO, namestitev Raspberry+LCD …
- 5. korak: Baterija, gumbi, stikalo in priključek USB …
- 6. korak: slika Rasbian in programiranje kviznega mehanizma …
- 7. korak: demonstracija …
Video: QuizzPi, malenkostna igra Raspberry Pi s Pythonom: 7 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-31 10:24
QuizzPi je arkadna igra malenkosti. QuizzPi se je rodil, ker sem imel svojo hčerko zabavo. Stara je 7 let in že zahteva uporabo novih tehnologij, ideja je bila ustvariti nekaj, kar bi bilo zabavno in poučno.
Zahteve projekta:
- Enostaven za uporabo
- Prenosni
- Niz vprašanj in odgovorov je enostavno nadgraditi
- Tabela visokih ocen
Več elementov je mogoče konfigurirati. Ustvarite lahko svojo bazo vprašanj/odgovorov ali uporabite enega od več strežnikov, ki ponujajo bazo podatkov, kjer se odločite za vrsto vprašanj, težkih, … Za svojo hčerko sem ustvaril zbirko vprašanj prvega razreda, vendar lahko spremenite konfiguracijo, da dobite malenkostna vprašanja od oline strežnika. Ta poučna različica dobiva vprašanja iz skupnih vprašanj in odgovorov, zbirke podatkov Open Trivia. Jaz sem izbral vprašanja splošnega znanja, vi pa lahko izberete filmska, športna ali verska vprašanja.
Opravičujem se za slabo angleščino. Sem Španec, vendar sem raje ustvaril to navodilo v angleščini, da bo doseglo več ljudi.
Pojdimo!
1. korak: Potrebujete nekaj materialov in orodij …
Večino materiala imate zagotovo doma …
- Raspberry Pi 2/3 z 8 GB ali več SD kartico (35 USD)
- Raspberry Pi 3,5 -palčni LCD z ohišjem (11 USD). Glej (to je neobvezno, lahko uporabite kateri koli zaslon, ki ga imate, le spremeniti morate ohišje QuizzPi)
- Baterije. Uporabite lahko napajalno enoto ali pa baterijo 18650, narejeno z lastnimi rokami (5 USD). V mojem primeru sem uporabil eno baterijo moči Aukey 5000mah (12 USD). Glej
- Štirje arkadni gumbi. Te imam doma (3 $, 12 gumbov za 10 $). Glej
- Eno stikalo za vklop/izklop (0,25 USD). Glej
- Dva priključka USB (0,50 USD)
- En kabel USB/mikro USB
- En poceni zvočnik (neobvezno) (0,25 USD). Glej
- En ojačevalnik PAM8403 (izbirno) (0,80 USD). Glej
- Nekatere žice za povezavo gumbov, USB priključek in stikalo za vklop/izklop na zatiče GPIO (1 USD?)
- Štiri neodimske magnete ali pa uporabite katero koli stvar, da zaprete zadnja vrata. Glej
-
Vezan les. Uporabil sem 5 mm vezane plošče, lahko pa uporabite katero koli doma (2 USD)
Potrebujete tudi nekaj orodij …
- Spajkalni pripomočki
- Vijačni vijaki
- Pištola za vroče lepilo
- 3D tiskalnik (neobvezno)
Pojdimo!
2. korak: Oblikujmo kul ovitek QuizzPi …
Najprej moramo vedeti, koliko prostora potrebujemo za strojno opremo (malina + zaslon + gumbi + baterija + žice). Ob upoštevanju delov, opisanih v prejšnjem koraku, sem z brezplačnim spletnim oblikovalcem 3D Tinkercad (glej) izdelal 3D zasnovo ohišja. Če želite natisniti 3D model ohišja, ga lahko prenesete iz priložene datoteke QuizzPi.stl.
Takrat sem se moral odločiti, ali bom model natisnil na svoj 3D tiskalnik ali pa ga naredil iz vezanega lesa. Mislil sem, da bi za svojo hčerko lahko porabil malo več časa za izdelavo iz vezanega lesa. Tako dobim načrte iz 3D modela in posečem les.
Naslednji korak je vroče lepljenje delov …
3. korak: izdelava ohišja iz vezanega lesa …
Ko sem izrezal vse dele vezanega lesa v načrtih, je naslednji korak njihovo vroče lepljenje. V nekaterih spojih sem dal okrepitve, da je škatla močnejša. V okvirju s svinčnikom narišem obris LCD zaslona in ga izrežem. Za vijake naredim štiri luknje. Če uporabljate drug zaslon, morate to stvar spremeniti.
Zadnja vrata se zaprejo z dvema magnetoma, prilepljenima na vrata, in dvema magnetoma, ki sta prilepljena na ohišje, zato se izogibam uporabi tečajev.
Primer QuizzPi je končan …
4. korak: Ožičenje zatičev GPIO, namestitev Raspberry+LCD …
Gumbe moramo povezati z Raspberry Pi, da lahko ve, kateri gumb je pritisnjen. Gumbi so povezani z zatiči GPIO. Potrebujemo štiri nožice IN GPIO in en pin Gnd GPIO. Uporabil sem GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) in 39 (Gnd) za rdeče, rumene, zelene in modre gumbe. Ta zaslon ima vmesnik SPI. To pomeni, da je povezan z banko GPIO, zato sem najprej pritrdil žice, ki so se končale v kvadrat, v zatiče gumbov, nato pa sem priključil LCD zaslon.
Naslednji korak je bil namestitev ohišja Raspberry+LCD+na okvir. Uporabil sem lastne vijake za ohišje Raspberry Pi.
QuizzPi je nameščen…
5. korak: Baterija, gumbi, stikalo in priključek USB …
Ponovno sem uporabil Tinkercad za oblikovanje sponke, ki je držala power bank na ohišju. Natisnila sem posnetek s svojim 3D tiskalnikom in se s pištolo za vroče lepilo pridružila ohišju. Spodaj prilagam datoteko.stl modela. Če nimate dostopa do 3D tiskalnika, se lahko banki moči pridružite z velcro trakom.
Naslednji korak je priključitev stikala za vklop/izklop med banko napajanja in Raspberry Pi. Vzel sem kabel USB in prerezal samo napajalni kabel, nato sem en konec žice spajkal na en zatič stikala za vklop/izklop, drugi konec žice pa na drugi zatič stikala za vklop/izklop. Torej, ko stikalo pri izklopu napajanja ne gre skozi stikalo in je malina izklopljena, in ko stikalo pri vklopu gre skozi stikalo in je malina vklopljena.
Kadar je izpraznitev napajalnika težavna, ga vzemite iz ohišja, da ga napolnite, zato ga nisem hotel vzeti vsakič za polnjenje. Težava je bila v tem, da je priključek za polnjenje akumulatorja za napajanje USC tipa C, jaz pa sem imel samo kabel napajalnika. Tako sem spajkal dva ženska USB konektorja in dal v ohišje. Notranji priključek za priključitev kabla napajalnega kabla in zunanji priključek za priključitev napajalnega kabla USB.
Gumbe in njihovo ožičenje je bilo enostavno postaviti. Gumbi imajo 2 zatiča, vsak zatič vsakega gumba se poveže s skupnim kablom, ki gre na ozemljitveni pin GPIO, drugi zatič gumba pa se poveže z ustreznim piniom GPIO maline. Shema ožičenja je prikazana na priloženem diagramu.
Zvočni sistem temelji na PAM8403, poceni ojačevalniku zvoka. To je potrebno, ker zvok iz vtičnice Raspberry Pi ni preveč močan, da bi zvočnik deloval. Napajati ga morate s 5V ali več. Na priloženih slikah lahko vidite, kako priključite ojačevalnik in zvočnik. Za priključitev na avdio/video priključek Rapberry potrebujemo moški 3,5 mm vtič. spajal sem 3 žice v vtičnico: avdio, video in ozemljitev. Priloženi diagram prikazuje, kateri pin je vsak. Nato sem spajal žico na stikalo za vklop/izklop, da vzamem napajanje, in drugo žico na ozemljitveno žico iz kabla napajalnega kabla. Nato priključim žice iz zvočnika na izhode ojačevalnika. Enostaven del je dodelitev zvočnega sistema v ohišju. Vidite lahko na slikah.
QuizzPi je nameščen, na zadnji fotografiji še vedno vidimo oznake svinčnika na lesu, vendar je čas za programsko opremo … pojdimo ustvariti majhen kviz …
6. korak: slika Rasbian in programiranje kviznega mehanizma …
Pritisnemo gumb za vklop. Se ne zgodi nič. O moj bog! Ne deluje! Kaj je lahko narobe? Je kakšen kabel brez povezave? Ne skrbite, sliko moramo namestiti na kartico SD …
Motor kviza je napisan v Pythonu 3, zato potrebujemo sliko Raspbian z nameščenim prevajalnikom Python. Na tej točki moramo upoštevati vrsto zaslona, ki smo ga namestili. Moj zaslon je vmesnik SPI, prodajalec pa poda sliko Raspbian z nameščenimi vsemi gonilniki zaslona. Tudi ta različica Raspbiana ima motor Python. To sliko lahko prenesete na tej povezavi.
Če imate zaslon HDMI ali RCA, lahko prenesete zadnjo sliko Raspbian, ki je na voljo na spletnem mestu raspberrypi.org. Pozor: potrebujete namizno Rasbian različico, zato ne prenašajte Lite Raspbian slike. Te slike vsebujejo prevajalnik Python.
Za namestitev slike na kartico SD lahko uporabimo katero koli aplikacijo. Uporabljam Win32diskimager. Nato vstavimo kartico SD v malino in pritisnemo stikalo za vklop/izklop. Deluje! Zdaj moramo ustvariti program Python z motorjem kviza.
Naslednji korak je prenos datotek kviza. V datoteko QuizzPi.zip sem priložil izvorno kodo. Prenesite vir in ustvarite mapo v Raspberry Pi:
# mkdir/home/pi/QuizzPi
in razpakirajte datoteko, preneseno v to mapo.
QuizzPi.zip vsebuje te datoteke:
- QuizzPi.py - vsebuje kodo
- Slikovne datoteke-p.webp" />
- Zvočne datoteke MP3 - spremenite jih lahko po meri
- losmejores.txt - vsebuje tabelo z najvišjimi rezultati, ki jo lahko izbrišete za inicializacijo tabele
- Navodila.txt
Ne bom dal izčrpne razlage, kako sem programiral kodo motorja v Pythonu, ker je težko za ljudi brez znanja programiranja. Datoteke morajo shraniti le v malino. Ljudje s programskim znanjem ga bodo lahko spremenili brez kakršne koli razlage;)
Vprašanja in odgovori so iz zbirke podatkov Vprašanja in odgovori, imenovane Open Trivia Database, ki jo najdete tukaj. Kategorija in težavna vprašanja lahko spremenite v vrstici v datoteki QuizzPi.py:
#Cargo desde URLurl = 'https://opentdb.com/api.php?amount=10&type=multiple'
spreminjanje z URL -jem, pridobljenim iz konfiguratorja api
Zaslone iger sem oblikoval v Photoshopu, lahko jih spremenite. Ohraniti morate le nekaj belih območij na zaslonu z vprašanji, na zaslonu z rezultati in na zaslonih z visokimi ocenami, ker igralni stroj nanje piše.
Zvoke igre lahko prilagodite tudi sebi. Datoteke.mp3 morate spremeniti samo z drugimi, ohraniti morate ista imena. Veliko zvokov lahko dobite iz spletnih baz podatkov, jaz dobim mine iz brezplačnih zvočnih učinkov.
Zdaj morate spremeniti svoj Raspbian, da se samodejno zažene QuizzPi. Ta članek si lahko preberete, kjer razložite, kako to storiti:
Končali smo !!!
7. korak: demonstracija …
Za dokončanje tega navodila si lahko ogledate ta video. Vidite, da je enostaven za uporabo in da je težko vprašanje odvisno od vas …
Uredi: videoposnetek je zdaj posodobljen z zvokom!
Drugouvrščeni na natečaju za mikrokrmilnik
Priporočena:
Sinhronizacija map s Pythonom: 5 korakov
Sinhronizacija map s Pythonom: Ta navodila vam bodo pokazala, kako hraniti dve mapi (in vse mape v njih) v sinhronizaciji, tako da je ena neposredna kopija druge. Idealen za varnostno kopiranje dela lokalno, na strežnik v oblaku/omrežje ali pogon USB. Nobenih izkušenj s programiranjem ni
Kako zmetati kocko s Pythonom: 9 korakov
Kako zmetati kocko z uporabo Pythona: Naslednja navodila vas bodo vodila, kako ustvariti modul Python za "zvijanje" kocke. Ta modul bo ustvaril naključna števila iz teh računalniških kock. Zagotovil bom funkcije, potrebne za izdelavo modula, in opisal kot
Vizualizirajte svoje dobičke in izgube v bitcoinih z Arduinom in Pythonom: 6 korakov
Vizualizirajte svoje dobičke in izgube v bitcoinih z Arduinom in Pythonom: osnovna ideja Osebno sem vlagatelj kripto valut. Imam pa tudi veliko dela. Zato ne morem slediti ceni bitcoina 10 -krat na minuto. Vseeno pa me zanima, ali zaslužim ali izgubljam denar. Tako je
Začnite s Pythonom: 7 korakov (s slikami)
Začnite s programom Python: Programiranje je super! Ustvarjalno, zabavno in daje vašim možganom miselno vadbo. Mnogi od nas se želijo naučiti o programiranju, vendar se prepričamo, da tega ne moremo. Mogoče ima preveč matematike, morda prestrašen žargon, ki ga premetavajo
Arduino programiranje s Pythonom: 8 korakov
Arduino programiranje s Pythonom: V tem članku bomo Arduino nadzirali z GUI pythonom. delo s pythonom je zelo enostavno. Vsak korak bom podrobno delil od začetka