Mundarija:

QuizzPi, Python bilan Raspberry Pi trivia o'yini: 7 qadam (rasmlar bilan)
QuizzPi, Python bilan Raspberry Pi trivia o'yini: 7 qadam (rasmlar bilan)

Video: QuizzPi, Python bilan Raspberry Pi trivia o'yini: 7 qadam (rasmlar bilan)

Video: QuizzPi, Python bilan Raspberry Pi trivia o'yini: 7 qadam (rasmlar bilan)
Video: The Raspberry Pi Platform and Python Programming for the Raspberry Pi, week (1-4) All Quiz Answers. 2024, Dekabr
Anonim
QuizzPi, Python bilan Raspberry Pi trivia o'yini
QuizzPi, Python bilan Raspberry Pi trivia o'yini
QuizzPi, Python bilan Raspberry Pi trivia o'yini
QuizzPi, Python bilan Raspberry Pi trivia o'yini

QuizzPi - arja tipidagi trivia o'yini. QuizzPi tug'ilgan, chunki men qizimga o'yin -kulgi berishim kerak edi. U 7 yoshda va u allaqachon yangi texnologiyalardan foydalanishni talab qilmoqda, g'oya ham qiziqarli, ham ta'lim beradigan narsalarni yaratish edi.

Loyihaga qo'yiladigan talablar:

  • Foydalanish oson
  • Portativ
  • Savol va javoblar to'plamini yangilash oson
  • Yuqori ballar jadvali

Bir nechta elementni sozlash mumkin. Siz o'zingizning savollaringiz/javoblaringiz ma'lumotlar bazasini yaratishingiz mumkin yoki siz ma'lumotlar bazasini taklif qiladigan bir nechta serverlardan birini ishlatishingiz mumkin, u erda siz savollar turini hal qilasiz, qiyin … Men qizim uchun birinchi sinf savollar bazasini yaratdim, lekin biz qila olamiz. oline serveridan arzimas savollarni olish uchun konfiguratsiyani o'zgartiring. Bu ko'rsatmali versiya savollarni hamkorlikdagi savol va javoblardan, "Ochiq ma'lumotlar" ma'lumotlar bazasidan oladi. Men umumiy bilim savollarini tanladim, lekin siz kino, sport yoki din savollarini tanlashingiz mumkin.

Men ingliz tilining yomonligi uchun uzr so'rayman. Men ispanman, lekin men buni ingliz tilida yaratishni afzal ko'rdim, shunda u ko'proq odamlarga ta'sir qilishi mumkin.

Qani ketdik!

1 -qadam: Sizga ba'zi materiallar va vositalar kerak bo'ladi …

Sizga ba'zi materiallar va vositalar kerak bo'ladi …
Sizga ba'zi materiallar va vositalar kerak bo'ladi …

Ishonchingiz komilki, sizda ko'p materiallar bor …

  • Raspberry Pi 2/3, 8 Gb yoki undan ko'p SD -karta (35 $)
  • Raspberry Pi 3,5 dyuymli displeyli qutisi (11 dollar). Qarang (bu ixtiyoriy, siz har qanday displeydan foydalanishingiz mumkin, buning uchun faqat QuizzPi korpusini o'zgartirish kerak)
  • Batareyalar. Siz quvvat bankidan foydalanishingiz mumkin yoki DIY 18650 batareya to'plamidan (5 $) foydalanishingiz mumkin. Mening holatimda men bitta Aukey 5000mah quvvat bankidan (12 $) foydalandim. Qarang
  • To'rt arja tugmasi. Menda bu uylar bor (3 $, 12 tugmachasi 10 $). Qarang
  • Bitta yoqish/o'chirish tugmasi (0,25 dollar). Qarang
  • Ikkita USB ulagichi (0,50 $)
  • Bitta USB/micro USB kabeli
  • Bitta arzon dinamik (ixtiyoriy) (0,25 $). Qarang
  • Bitta PAM8403 kuchaytirgichi (ixtiyoriy) (0,80 $). Qarang
  • Tugmalarni ulash uchun ba'zi simlar, USB ulagichi va yoqish/o'chirish GPIO pinlariga ulanadi (1 $?)
  • To'rt neodim magnit yoki siz orqa eshikni yopish uchun har qanday narsadan foydalanishingiz mumkin. Qarang
  • Kontrplak. Men 5 mm kontrplakdan foydalanardim, lekin siz uyingizda xohlaganingizdan foydalanishingiz mumkin (2 dollar)

Sizga ham ba'zi vositalar kerak bo'ladi …

  • Lehimlash vositalari
  • Tornavidalar
  • Issiq yopishtiruvchi qurol
  • 3D printer (ixtiyoriy)

Qani ketdik!

2 -qadam: Keling, ajoyib QuizzPi sumkasini yarataylik …

Keling, ajoyib QuizzPi sumkasini ishlab chiqaylik …
Keling, ajoyib QuizzPi sumkasini ishlab chiqaylik …
Keling, ajoyib QuizzPi sumkasini ishlab chiqaylik …
Keling, ajoyib QuizzPi sumkasini ishlab chiqaylik …

Bizga kerak bo'lgan birinchi narsa - qo'shimcha qurilmalar (Raspberry + ekran + tugmachalari + batareya + simlar) uchun qancha joy kerakligini bilish. Oldingi bosqichda tasvirlangan qismlarni inobatga olgan holda, men Tinkercad -ning bepul 3D dizayneri yordamida korpusning 3D dizaynini yaratdim..stl

O'sha paytda men modelni 3D printerimda chop etishim kerakmi yoki uni kontrplakdan yasashim kerak edi. Men qizim uchun kontrplakdan yasash uchun biroz ko'proq vaqt sarflashim mumkin deb o'yladim. Shunday qilib, men 3D modelidan rejalar olaman va yog'ochni kesaman.

Keyingi qadam-qismlarni issiq yopishtirish …

3 -qadam: Kontrplak qutisini yasash …

Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…
Kontrplak qutisi tayyorlanmoqda…

Men kontrplakning barcha qismlarini kesib bo'lgach, keyingi qadam-ularni issiq yopishtirish. Ba'zi birlashmalarda men qutini kuchliroq qilish uchun armatura qo'ydim. Paneli men qalam bilan LCD displey konturini chizaman va kesib tashlayman. Men vintlar uchun to'rtta teshik qilaman. Agar siz boshqa ekranni ishlatsangiz, uni o'zgartirishingiz kerak.

Orqa eshik eshikka yopishtirilgan ikkita magnit va korpusga ikkita magnit bilan yopiladi, shuning uchun men menteşalarni ishlatishdan qochaman.

QuizzPi ishi tugadi …

4 -qadam: GPIO pinlarini ulash, Raspberry+LCD -ni o'rnatish …

GPIO pinlarini ulash, Raspberry+LCD o'rnatish …
GPIO pinlarini ulash, Raspberry+LCD o'rnatish …
GPIO pinlarini ulash, Raspberry+LCD o'rnatish …
GPIO pinlarini ulash, Raspberry+LCD o'rnatish …
GPIO pinlarini ulash, Raspberry+LCD o'rnatish …
GPIO pinlarini ulash, Raspberry+LCD o'rnatish …

Biz tugmachalarni Raspberry Pi -ga ulashimiz kerak, shunda u qaysi tugma bosilganligini biladi. Tugmalar GPIO pinlariga ulangan. Bizga to'rtta IN GPIO pin va bitta Gnd GPIO pin kerak. Men qizil, sariq, yashil va ko'k tugmalar uchun GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) va 39 (Gnd) pinlaridan foydalanardim. Bu ekran SPI interfeysiga ega. Bu shuni anglatadiki, u GPIO bankiga ulangan, shuning uchun birinchi navbatda tugmachalarga to'rtburchaklar bilan o'ralgan simlarni qo'ydim, so'ngra LCD displeyni uladim.

Keyingi qadam, Raspberry+LCD+korpusini ramkaga o'rnatish edi. Men Raspberry Pi korpusining o'z vintlarini ishlatardim.

QuizzPi o'rnatilgan …

5 -qadam: Batareya, tugmalar, kalit va USB ulagichi …

Batareya, tugmalar, kalit va USB ulagichi …
Batareya, tugmalar, kalit va USB ulagichi …
Batareya, tugmalar, kalit va USB ulagichi …
Batareya, tugmalar, kalit va USB ulagichi …
Batareya, tugmalar, kalit va USB ulagichi …
Batareya, tugmalar, kalit va USB ulagichi …

Quvvat bankini korpusga mahkamlash uchun klip yaratish uchun men yana Tinkercad -dan foydalandim. Men klipni 3D printerim bilan chop etdim va qutiga issiq yopishtiruvchi to'pponcha bilan qo'shildim. Quyidagi modelning.stl faylini biriktiraman. Agar 3D printerdan foydalanish imkoni bo'lmasa, siz velosiped tasmasi bilan quvvat bankiga qo'shilishingiz mumkin.

Keyingi qadam, quvvat banki va Raspberry Pi o'rtasidagi yoqish/o'chirish tugmachasini ulash. Men USB kabelini oldim va faqat quvvat simini kesib tashladim, keyin men bir sim uchini yoqish/o'chirish tugmachasining bir piniga, ikkinchisini esa boshqa o'chirish/o'chirish tugmasiga lehimladim. Qachonki, quvvat o'chirilgan bo'lsa, u shpichdan o'tmaydi va Raspberry o'chiriladi va quvvat tugmasi swtichdan o'tadi va Raspberry yoqiladi.

Quvvat banki zaryadsizlansa, uni zaryad qilish uchun sumkani chiqarib olish muammodir, shuning uchun men uni har doim zaryad qilish uchun olishni xohlamadim. Muammo shundaki, quvvat bankining zaryadlash porti USC tipidagi C edi va menda faqat quvvat bankining kabeli bor edi. Shunday qilib, men ikkita ayol USB ulagichini lehimladim va qutiga qo'ydim. Quvvat banki kabelini ulash uchun ichidagi ulagich va USB quvvat kabelini ulash uchun tashqi ulagich.

Tugmachalarni joylashtirish va ularni ulash oson edi. Tugmalarda 2 ta pim bor, har bir tugmachaning bitta pimi umumiy GPIO piniga, boshqa tugma esa malinaning tegishli GPIO piniga ulanadi. Ulanish sxemasi biriktirilgan diagrammada ko'rsatilgan.

Ovoz tizimi PAM8403 ga asoslangan, arzon ovoz kuchaytirgich. Bu kerak, chunki Raspberry Pi jakidan keladigan ovoz karnayni ishlashi uchun unchalik kuchli emas. Siz uni 5V yoki undan yuqori quvvat bilan ulashingiz kerak. Qo'shilgan rasmlarda siz kuchaytirgich va karnayni qanday ulash kerakligini ko'rishingiz mumkin. Rapberry audio/video raz'emiga ulanish uchun bizga erkak 3,5 mm raz'em kerak. Men uyaga 3 ta simni lehimladim: audio, video va er. Qo'shilgan diagrammada har kim qanday pin ekanligini ko'rsatadi. Keyin men quvvatni olish uchun "O'chirish/O'chirish" tugmachasiga, ikkinchisini esa elektr simining simidan er simiga lehimladim. Keyin simlarni karnaydan kuchaytirgichning chiqishlariga ulayman. Ovozli tizimni ajratish oson. Rasmlarda ko'rishingiz mumkin.

QuizzPi o'rnatilgan, oxirgi rasmda biz hali ham yog'ochda qalam izlarini ko'rishimiz mumkin, lekin dasturiy ta'minot vaqti keldi … kichik viktorina dvigatelini yaratishga o'tamiz …

6 -qadam: Rasbian tasviri va viktorina dvigatelini dasturlash …

Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …
Rasbian tasviri va viktorina dvigatelini dasturlash …

Biz quvvat tugmasini bosamiz. Hech narsa bo'lmaydi. Yo Xudo! Bu ishlamaydi! Nima noto'g'ri bo'lishi mumkin? Ulanishsiz kabel bormi? Xavotir olmang, biz rasmni SD -kartaga o'rnatishimiz kerak …

Viktorina dvigateli Python 3 da yozilgan, shuning uchun bizga Python kompilyatori o'rnatilgan Raspbian tasviri kerak. Bu erda biz o'rnatgan ekran turini hisobga olishimiz kerak. Mening ekranim SPI interfeysi va sotuvchi barcha ekran drayverlari o'rnatilgan Raspbian tasvirini beradi. Raspbian -ning bu versiyasida Python dvigateli ham bor. Siz ushbu havoladagi rasmni yuklab olishingiz mumkin.

Agar sizda HDMI yoki RCA ekrani bo'lsa, raspberrypi.org saytida mavjud bo'lgan oxirgi Raspbian tasvirini yuklab olishingiz mumkin. Diqqat: sizga Rasbian Desktop versiyasi kerak, shuning uchun Lite Raspbian tasvirini yuklab olishdan saqlaning. Bu rasmlar Python kompilyatorini o'z ichiga oladi.

Rasmni SD -kartaga o'rnatish uchun biz har qanday ilovadan foydalanishimiz mumkin. Men Win32diskimager -dan foydalanaman. Keyin biz SD -kartani Raspberry -ga joylashtiramiz va yoqish/o'chirish tugmachasini bosamiz. Ishlamoqda! Endi biz viktorina dvigateli bilan Python dasturini yaratishimiz kerak.

Keyingi qadam - viktorina dvigatelining fayllarini yuklab olish. Men QuizzPi.zip fayliga manba kodini biriktirdim. Manbani yuklab oling va Raspberry Pi -da papka yarating:

# mkdir/home/pi/QuizzPi

va bu papkaga yuklangan faylni oching.

QuizzPi.zip quyidagi fayllarni o'z ichiga oladi:

  • QuizzPi.py - bu kodni o'z ichiga oladi
  • MP3 ovozli fayllar - siz shaxsiylashtirish uchun o'zgartirishingiz mumkin
  • losmejores.txt - u yuqori ballar jadvalini o'z ichiga oladi, jadvalni ishga tushirish uchun uni o'chirib tashlashingiz mumkin
  • Instructions.txt

Men Pythonda dvigatel kodini qanday dasturlaganim haqida to'liq tushuntirish bermayman, chunki dasturlash bilimisiz odamlar uchun bu juda qiyin. Ular faqat Raspberry -dagi fayllarni saqlashlari kerak. Dasturlash bilimiga ega odamlar uni hech qanday tushuntirishsiz o'zgartirishi mumkin;)

Savol va javoblar "Trivia" ma'lumotlar bazasi deb nomlangan "Savol -javob" ma'lumotlar bazasidan olingan, bu erda topishingiz mumkin. QuizzPi.py faylidagi qatorni o'zgartiradigan savollarning toifasini va murakkabini o'zgartirishingiz mumkin:

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

opentdb.com/api_config.php api konfiguratoridan olingan url bilan o'zgartirish.

Men Photoshop -da o'yin ekranlarini yaratdim, siz ularni o'zgartirishingiz mumkin. Siz savollar ekranida, natijalar ekranida va yuqori ball ekranlarida ba'zi oq joylarni saqlashingiz kerak, chunki o'yin dvigateli ularga yozadi.

Siz ham o'yin tovushlarini shaxsiylashtirishingiz mumkin. Siz xohlagan boshqa.mp3 fayllarini o'zgartirishingiz kerak, bir xil nomlarni saqlashingiz kerak. Siz Internetdagi ma'lumotlar bazasidan juda ko'p tovushlarni olishingiz mumkin, men esa Free Sound Effects -dan minalar olaman.

Endi siz QuizzPi -ni avtomatik ishga tushirish uchun Raspbian -ni o'zgartirishingiz kerak. Siz buni qanday qilishni tushuntirib beradigan maqolani o'qishingiz mumkin:

Biz tugatdik !!!

7 -qadam: Namoyish…

Image
Image

Bu ko'rsatmalarni tugatish uchun siz ushbu videoni ko'rishingiz mumkin. Ko'ryapsizmi, ulardan foydalanish oson va savollarning murakkabligi sizga bog'liq …

Tartibga solish: video endi ovoz bilan yangilandi!

Mikrokontroller tanlovi
Mikrokontroller tanlovi

Mikrokontroller tanlovida ikkinchi o'rinni egalladi

Tavsiya: