Turinys:

„QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“: 7 žingsniai (su nuotraukomis)
„QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“: 7 žingsniai (su nuotraukomis)

Video: „QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“: 7 žingsniai (su nuotraukomis)

Video: „QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“: 7 žingsniai (su nuotraukomis)
Video: QuizzPi, a Raspberry Pi trivia game 2024, Liepa
Anonim
„QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“
„QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“
„QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“
„QuizzPi“, „Raspberry Pi“smulkmenų žaidimas su „Python“

„QuizzPi“yra arkadinis smulkmenų žaidimas. „QuizzPi“gimė, nes man reikėjo savo dukrai suteikti pramogų. Jai yra 7 metai ir ji jau reikalauja naudoti naujas technologijas, idėja buvo sukurti tai, kas būtų smagu ir mokoma.

Projekto reikalavimai:

  • Paprasta naudoti
  • Nešiojamas
  • Lengva atnaujinti klausimų ir atsakymų rinkinį
  • Aukštų balų lentelė

Konfigūruojami keli elementai. Galite sukurti savo klausimų/atsakymų duomenų bazę arba naudoti vieną iš kelių serverių, kuriuose yra duomenų bazė, kurioje galite nuspręsti, kokio tipo klausimai yra sudėtingi,… Aš sukūriau savo dukrai pirmos klasės klausimų duomenų bazę, bet mes galime pakeiskite konfigūraciją, kad gautumėte smulkmenų iš oline serverio. Ši pamokoma versija gauna klausimus iš bendrų klausimų ir atsakymų - atviros smulkmenų duomenų bazės. Turiu pasirinkti bendrųjų žinių klausimus, bet jūs galite pasirinkti filmų, sporto ar religijos klausimus.

Atsiprašau už prastą anglų kalbą. Esu ispanas, bet norėjau sukurti šį nurodymą anglų kalba, kad jis pasiektų daugiau žmonių.

Eime!

1 žingsnis: jums reikia tam tikrų medžiagų ir įrankių …

Jums reikia tam tikrų medžiagų ir įrankių…
Jums reikia tam tikrų medžiagų ir įrankių…

Didžiąją dalį medžiagos tikrai turite namuose …

  • „Raspberry Pi 2/3“su 8 GB ar daugiau SD kortele (35 USD)
  • „Raspberry Pi“3,5 colio skystųjų kristalų ekranas su dėklu (11 USD). Žiūrėkite (tai neprivaloma, galite naudoti bet kurį turimą ekraną, jums tereikia pakeisti „QuizzPi“dėklą)
  • Baterijos. Galite naudoti maitinimo banką arba „pasidaryk pats“18650 akumuliatorių (5 USD). Mano atveju naudojau vieną „Aukey 5000mah“maitinimo banką (12 USD). Pamatyti
  • Keturi pasažo mygtukai. Turiu juos namuose (3 USD, 12 mygtukų už 10 USD). Pamatyti
  • Vienas įjungimo/išjungimo jungiklis (0,25 USD). Pamatyti
  • Dvi USB jungtys (0,50 USD)
  • Vienas USB/mikro USB kabelis
  • Vienas pigus garsiakalbis (neprivaloma) (0,25 USD). Pamatyti
  • Vienas PAM8403 stiprintuvas (neprivaloma) (0,80 USD). Pamatyti
  • Kai kurie laidai, skirti susieti mygtukus, USB jungtį ir įjungimo/išjungimo jungiklį prie GPIO kaiščių (1 USD?)
  • Keturi neodimio magnetai arba galite naudoti bet ką, kad uždarytumėte galines duris. Pamatyti
  • Fanera. Aš naudojau 5 mm fanerą, bet jūs galite naudoti bet ką, ką turite namuose (2 USD)

Jums taip pat reikia tam tikrų įrankių…

  • Litavimo priemonės
  • Sraigtiniai varžtai
  • Karštų klijų pistoletas
  • 3D spausdintuvas (neprivaloma)

Eime!

2 žingsnis: suprojektuokime „QuizzPi“dėklą …

Sukurkime šaunų „QuizzPi“dėklą…
Sukurkime šaunų „QuizzPi“dėklą…
Sukurkime šaunų „QuizzPi“dėklą…
Sukurkime šaunų „QuizzPi“dėklą…

Pirmas dalykas, kurio mums reikia, yra žinoti, kiek vietos mums reikia aparatinei įrangai (avietė + ekranas + mygtukai + baterija + laidai). Atsižvelgdamas į ankstesniame žingsnyje aprašytas dalis, sukūriau 3D korpuso dizainą naudodamas nemokamą internetinį 3D dizainerį Tinkercad (žr.). Jei norite atspausdinti 3D korpuso modelį, galite jį atsisiųsti iš pridėto failo „QuizzPi“dėklo.stl.

Tą akimirką turėjau nuspręsti, ar spausdinti modelį savo 3D spausdintuve, ar padaryti jį iš faneros. Maniau, kad būdama dukrai galiu skirti šiek tiek daugiau laiko gamindama ją iš faneros. Taigi aš gaunu planus iš 3D modelio ir pjaustau medieną.

Kitas žingsnis yra karšto dalių klijavimas …

3 žingsnis: faneros dėklo gaminimas …

Gaminant faneros dėklą…
Gaminant faneros dėklą…
Gaminant faneros dėklą…
Gaminant faneros dėklą…
Gaminant faneros dėklą…
Gaminant faneros dėklą…
Gaminant faneros dėklą…
Gaminant faneros dėklą…

Nupjovęs visas plano faneros dalis, kitas žingsnis yra karšto klijavimo. Kai kuriuose sujungimuose įdėjau sutvirtinimų, kad dėžutė būtų tvirtesnė. Prie rėmelio pieštuku nupiešiu LCD ekrano kontūrą ir iškirpiu. Aš darau keturias skyles varžtams. Jei naudojate kitą ekraną, turite tai pakeisti.

Galinės durys užsidaro dviem magnetais, priklijuotais prie durų, ir dviem magnetais, priklijuotais prie korpuso, todėl vengiu naudoti vyriai.

„QuizzPi“byla baigta …

4 žingsnis: GPIO kaiščių prijungimas, „Raspberry+LCD“montavimas …

GPIO kaiščių laidų prijungimas, „Raspberry+LCD“montavimas…
GPIO kaiščių laidų prijungimas, „Raspberry+LCD“montavimas…
GPIO kaiščių laidų prijungimas, „Raspberry+LCD“montavimas…
GPIO kaiščių laidų prijungimas, „Raspberry+LCD“montavimas…
Laidų GPIO kaiščiai, „Raspberry+LCD“montavimas…
Laidų GPIO kaiščiai, „Raspberry+LCD“montavimas…

Turime prijungti mygtukus prie „Raspberry Pi“, kad jis žinotų, koks mygtukas yra paspaudžiamas. Mygtukai yra prijungti prie GPIO kaiščių. Mums reikia keturių IN GPIO kaiščių ir vieno Gnd GPIO kaiščio. Aš naudoju GPIO kaištį 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) ir 39 (Gnd) atitinkamai raudoniems, geltoniems, žaliems ir mėlyniems mygtukams. Šis ekranas turi SPI sąsają. Tai reiškia, kad jis yra prijungtas prie GPIO banko, todėl pirmiausia aš įkišau laidus, kurie baigėsi kvadratu į mygtukų kaiščius, o tada prijungiau LCD ekraną.

Kitas žingsnis buvo sumontuoti „Raspberry+LCD+“dėklą ant rėmo. Aš naudoju paties „Raspberry Pi“dėklo varžtus.

„QuizzPi“yra sumontuotas…

5 veiksmas: baterija, mygtukai, jungiklis ir USB jungtis …

Baterija, mygtukai, jungiklis ir USB jungtis …
Baterija, mygtukai, jungiklis ir USB jungtis …
Baterija, mygtukai, jungiklis ir USB jungtis…
Baterija, mygtukai, jungiklis ir USB jungtis…
Baterija, mygtukai, jungiklis ir USB jungtis…
Baterija, mygtukai, jungiklis ir USB jungtis…

Aš vėl panaudojau „Tinkercad“, norėdamas sukurti klipą, kad laikytų maitinimo banką prie korpuso. Aš atspausdinau klipą savo 3D spausdintuvu ir prisijungiau prie dėklo karšto klijų pistoletu. Pridedu žemiau esančio modelio.stl failą. Jei neturite prieigos prie 3D spausdintuvo, galite prisijungti prie maitinimo banko su velcro juosta.

Kitas žingsnis yra prijungti įjungimo/išjungimo jungiklį tarp maitinimo banko ir „Raspberry Pi“. Aš paėmiau USB kabelį ir nukirpau tik maitinimo laidą, tada vieną laido galą lituodavau prie vieno įjungimo/išjungimo jungiklio kaiščio, o kitą laido galą - prie kito įjungimo/išjungimo jungiklio kaiščio. Taigi, kai išjungimo maitinimas neįeina per „Swtich“ir „Raspberry“yra išjungtas, o įjungus maitinimą - per „Swtich“ir „Raspberry“yra įjungtas.

Kai „Power Bank“išsikrovimas yra problema išimti jį iš dėklo ir įkrauti, todėl nenorėjau jo išimti kiekvieną kartą, kad įkrautumėte. Problema buvo ta, kad maitinimo banko įkrovimo prievadas yra C tipo USC, o aš turėjau tik maitinimo banko kabelį. Taigi lituodavau dvi moteriškas USB jungtis ir įdėjau į dėklą. Vidinė jungtis, skirta prijungti maitinimo bloko kabelį, ir išorinė jungtis, skirta prijungti USB maitinimo kabelį.

Įdėti mygtukus ir prijungti juos buvo paprasta. Mygtukai turi 2 kaiščius, vienas kiekvieno mygtuko kaištis jungiamas prie bendro kabelio, kuris eina į įžemintą GPIO kaištį, o kitas mygtuko kaištis prijungiamas prie atitinkamo aviečių GPIO kaiščio. Prijungimo schema parodyta pridedamoje schemoje.

Garso sistema pagrįsta pigiu garso stiprintuvu PAM8403. Tai būtina, nes garsas, gaunamas iš „Raspberry Pi“lizdo, nėra per stiprus, kad garsiakalbis veiktų. Jį reikia maitinti 5v ar daugiau. Pridedamuose paveikslėliuose galite pamatyti, kaip prijungti stiprintuvą ir garsiakalbį. Mums reikia 3,5 mm lizdo, kad galėtume prisijungti prie „Rapberry“garso/vaizdo lizdo. prie lizdo litavau 3 laidus: garso, vaizdo ir įžeminimo. Pridedama schema rodo, koks kaištis yra kiekvienas. Tada aš prijungiau laidą prie įjungimo/išjungimo jungiklio, kad gautumėte maitinimą, ir kitą laidą prie įžeminimo laido iš maitinimo banko kabelio. Tada aš prijungiu laidus iš garsiakalbio prie stiprintuvo išėjimų. Lengva dalis yra garso sistemos paskirstymas dėkle. Galite pamatyti paveikslėliuose.

„QuizzPi“yra sumontuotas, paskutinėje nuotraukoje vis dar matome pieštuko žymes ant medžio, tačiau atėjo programinės įrangos laikas … eikime kurti mažą viktorinos variklį …

6 veiksmas: „Rasbian“vaizdas ir „Quiz Engine“programavimas …

Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …
Rasbietiškas vaizdas ir viktorinos variklio programavimas …

Paspaudžiame maitinimo mygtuką. Nieko neįvyksta. O Dieve! Tai neveikia! Kas gali būti negerai? Bet koks kabelis be jungties? Nesijaudinkite, turime įdiegti vaizdą į SD kortelę …

Viktorinos variklis yra parašytas „Python 3“, todėl mums reikia „Raspbian“vaizdo su įdiegtu „Python“kompiliatoriumi. Šiuo metu turime atsižvelgti į įdiegto ekrano tipą. Mano ekranas yra SPI sąsaja, o pardavėjas pateikia Raspbian vaizdą su visomis įdiegtomis ekrano tvarkyklėmis. Ši „Raspbian“versija taip pat turi „Python“variklį. Šią nuotrauką galite atsisiųsti iš šios nuorodos.

Jei turite HDMI arba RCA ekraną, galite atsisiųsti paskutinį Raspbian vaizdą, pasiekiamą raspberrypi.org svetainėje. Dėmesio: jums reikia „Desktop Rasbian“versijos, todėl venkite atsisiųsti „Lite Raspbian“vaizdo. Šiose nuotraukose yra „Python“kompiliatorius.

Norėdami įdiegti vaizdą į SD kortelę, galime naudoti bet kokią programą. Aš naudoju Win32diskimager. Tada įdedame SD kortelę į Raspberry ir paspaudžiame įjungimo/išjungimo jungiklį. Tai veikia! Dabar turime sukurti „Python“programą su „quizz“varikliu.

Kitas žingsnis - atsisiųsti viktorinos variklio failus. Pridėjau šaltinio kodą prie failo „QuizzPi.zip“. Atsisiųskite šaltinį ir sukurkite aplanką „Raspberry Pi“:

# mkdir/home/pi/QuizzPi

ir išpakuokite į šį aplanką atsisiųstą failą.

„QuizzPi.zip“yra šie failai:

  • QuizzPi.py - jame yra kodas
  • MP3 garso failai - galite pakeisti, kad suasmenintumėte
  • losmejores.txt - joje yra aukštų rezultatų lentelė, galite ją ištrinti, kad inicijuotumėte lentelę
  • Instrukcijos.txt

Aš nepateiksiu išsamaus paaiškinimo, kaip užprogramavau variklio kodą „Python“, nes žmonėms, neturintiems programavimo žinių, tai sunku. Jiems tereikia išsaugoti failus „Raspberry“. Žmonės, turintys programavimo žinių, galės juos keisti be jokio paaiškinimo;)

Klausimai ir atsakymai yra iš klausimų ir atsakymų duomenų bazės, pavadintos „Open Trivia Database“, kurią rasite čia. Galite pakeisti kategoriją ir sudėtingus klausimus, pakeisdami eilutę faile QuizzPi.py:

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

keitimas naudojant URL, gautą iš API konfigūravimo priemonės

Aš sukūriau žaidimų ekranus „Photoshop“, galite juos keisti. Jums tereikia išsaugoti kai kurias baltas sritis klausimų ekrane, rezultatų ekrane ir aukštų rezultatų ekranuose, nes žaidimo variklis rašo ant jų.

Taip pat galite pritaikyti žaidimo garsus. Jums tereikia pakeisti.mp3 failus kitais, kuriuos norite, ir išsaugoti tuos pačius pavadinimus. Jūs galite gauti daug garsų iš internetinių duomenų bazių, aš gaunu minų iš nemokamų garso efektų.

Dabar turite pakeisti „Raspbian“, kad automatiškai paleistumėte „QuizzPi“. Galite perskaityti šį straipsnį, kuriame paaiškinta, kaip tai padaryti:

Mes baigėme !!!

7 žingsnis: demonstracija …

Image
Image

Norėdami užbaigti šią instrukciją, galite pamatyti šį vaizdo įrašą. Matote, kad juo lengva naudotis, o klausimų sudėtingumas priklauso nuo jūsų …

Redaguoti: vaizdo įrašas dabar atnaujintas garsu!

Mikrovaldiklių konkursas
Mikrovaldiklių konkursas

Antroji vieta mikrovaldiklių konkurse

Rekomenduojamas: