Mündəricat:

Python ilə Raspberry Pi Trivia Oyunu QuizzPi: 7 Addım (Şəkillərlə)
Python ilə Raspberry Pi Trivia Oyunu QuizzPi: 7 Addım (Şəkillərlə)

Video: Python ilə Raspberry Pi Trivia Oyunu QuizzPi: 7 Addım (Şəkillərlə)

Video: Python ilə Raspberry Pi Trivia Oyunu QuizzPi: 7 Addım (Şəkillərlə)
Video: CS50 2015 – первая неделя 2024, Iyul
Anonim
QuizzPi, Python ilə Raspberry Pi Trivia Oyunu
QuizzPi, Python ilə Raspberry Pi Trivia Oyunu
QuizzPi, Python ilə Raspberry Pi Trivia Oyunu
QuizzPi, Python ilə Raspberry Pi Trivia Oyunu

QuizzPi bir arcade tipli trivia oyunudur. QuizzPi anadan olub, çünki qızıma əyləncə verməyə ehtiyacım var idi. 7 yaşındadır və artıq yeni texnologiyaların istifadəsini tələb edir, fikir həm əyləncəli, həm də təhsilli bir şey yaratmaq idi.

Layihənin tələbləri:

  • İstifadəsi asandır
  • Portativ
  • Sual və cavablar dəstini təkmilləşdirmək asandır
  • Yüksək bal cədvəli

Birdən çox element konfiqurasiya edilə bilər. Suallarınızın/cavablarınızın öz verilənlər bazasını yarada bilərsiniz və ya sualların növünə qərar verdiyiniz bir verilənlər bazası təklif edən birdən çox serverdən birini istifadə edə bilərsiniz, çətin … Qızım üçün birinci sinif suallar məlumat bazası yaratdım, amma edə bilərik bir oline serverindən xırda suallar almaq üçün konfiqurasiyanı dəyişdirin. Bu təlimatlı versiya, sualları ortaq sual və cavablardan, Açıq Trivia Veritabanından alır. Ümumi bilik suallarını seçdim, ancaq film, idman və ya din suallarını seçə bilərsiniz.

İngilis dilimi pis bildiyim üçün üzr istəyirəm. Mən ispanam, amma daha çox insana çata bilməsi üçün ingilis dilində bunu öyrətməyi üstün tutdum.

Gedək!

Addım 1: Bəzi materiallara və vasitələrə ehtiyacınız var …

Bəzi materiallara və alətlərə ehtiyacınız var …
Bəzi materiallara və alətlərə ehtiyacınız var …

Əminik ki, evinizdə çoxlu material var …

  • 8Gb və ya daha çox SD kartı olan Raspberry Pi 2/3 (35 $)
  • Çantası olan Raspberry Pi 3.5 düymlük LCD (11 dollar). Bax (bu isteğe bağlıdır, əlinizdə olan hər hansı bir ekrandan istifadə edə bilərsiniz, bunun üçün yalnız QuizzPi qutusunu dəyişdirməlisiniz)
  • Batareyalar. Güc bankından və ya DIY 18650 batareya paketindən (5 dollar) istifadə edə bilərsiniz. Mənim vəziyyətimdə bir Aukey 5000mah güc bankı (12 $) istifadə etdim. Görmək
  • Dörd arcade düyməsi. Evdə bunlar var (3 $, 10 düymədə 12 düymə). Görmək
  • Bir açma/söndürmə açarı (0,25 dollar). Görmək
  • İki USB konnektoru (0.50 $)
  • Bir USB/mikro USB kabeli
  • Bir ucuz dinamik (isteğe bağlı) (0,25 $). Görmək
  • Bir PAM8403 gücləndiricisi (isteğe bağlı) (0,80 $). Görmək
  • Düymələri bağlamaq üçün bəzi tellər, usb konnektoru və açma/söndürmə düyməsini GPIO sancaqlarına (1 $?)
  • Dörd neodim maqnit və ya arxa qapını bağlamaq üçün hər şeyi istifadə edə bilərsiniz. Görmək
  • Kontrplak. 5 mm kontrplak istifadə etdim, ancaq evdə olan hər şeyi istifadə edə bilərsiniz (2 dollar)

Bəzi vasitələrə də ehtiyacınız var …

  • Lehimləmə vasitələri
  • Vida sürücüləri
  • Hotglue silahı
  • 3D printer (isteğe bağlı)

Gedək!

Addım 2: Sərin bir QuizzPi Case hazırlayaq …

Gəlin Sərin bir QuizzPi Davası Hazırlayaq …
Gəlin Sərin bir QuizzPi Davası Hazırlayaq …
Gəlin Sərin QuizzPi Kassası Hazırlayaq …
Gəlin Sərin QuizzPi Kassası Hazırlayaq …

Ehtiyac duyduğumuz ilk şey, hardware (Raspberry + ekran + düymələr + batareya + tellər) daxil etmək üçün nə qədər yer lazım olduğunu bilməkdir. Əvvəlki addımda təsvir olunan hissələri nəzərə alaraq pulsuz onlayn 3D dizayneri Tinkercad (bax) istifadə edərək işin 3D dizaynını hazırladım. Çantanın 3D modelini çap etmək istəyirsinizsə onu əlavə edilmiş QuizzPi qutusundan yükləyə bilərsiniz..stl

O anda modeli 3D printerimə yazdırmaq və ya kontrplakdan düzəltmək qərarına gəldim. Düşünürdüm ki, qızım üçün kontrplakdan bir az daha çox vaxt keçirə bilərəm. Planları 3D modeldən alıram və odun kəsirəm.

Növbəti addım hissələri isti yapışdırmaqdır …

Addım 3: Kontrplak Kassanın Hazırlanması…

Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…
Kontrplak Çantası Hazırlanır…

Planların bütün kontrplak hissələrini kəsdikdən sonra növbəti addım onları isti yapışdırmaqdır. Bəzi birləşmələrdə qutunu daha da gücləndirmək üçün möhkəmləndiricilər qoydum. Çərçivədə qələmlə LCD ekranın konturunu çəkirəm və kəsirəm. Vintlər üçün dörd deşik düzəldirəm. Fərqli bir ekran istifadə edirsinizsə, bu şeyi dəyişdirməlisiniz.

Arxa qapı qapıya yapışdırılmış iki maqnit və iki maqnit qutusuna yapışqanla bağlanır, buna görə də menteşələrdən istifadə etməməkdən çəkinirəm.

QuizzPi işi bitdi …

Addım 4: GPIO pinlərinin naqilləri, Moruq+LCD -nin quraşdırılması…

Kabel GPIO Pins, Montajlı Moruq+LCD…
Kabel GPIO Pins, Montajlı Moruq+LCD…
Kabel GPIO Pins, Montajlı Moruq+LCD…
Kabel GPIO Pins, Montajlı Moruq+LCD…
Kabel GPIO Pins, Raspberry+LCD Montajı…
Kabel GPIO Pins, Raspberry+LCD Montajı…

Hansı düymənin vurulduğunu bilmək üçün düymələri Raspberry Pi -yə bağlamalıyıq. Düymələr GPIO pinlərinə bağlanır. Dörd IN GPIO sancağına və bir Gnd GPIO pininə ehtiyacımız var. Qırmızı, sarı, yaşıl və mavi düymələr üçün GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) və 39 (Gnd) istifadə etdim. Bu ekranda SPI interfeysi var. Bu o deməkdir ki, GPIO bankına bağlıdır, buna görə əvvəlcə düymələr pinlərində kvadratla bitmiş tellər qoydum və sonra LCD ekranı bağladım.

Növbəti addım, Raspberry+LCD+korpusunu çərçivəyə quraşdırmaq idi. Raspberry Pi qutusunun öz vintlərindən istifadə etdim.

QuizzPi quraşdırılmışdır …

Addım 5: Batareya, Düymələr, Açar və USB Bağlayıcı…

Batareya, düymələr, keçid və USB konnektoru…
Batareya, düymələr, keçid və USB konnektoru…
Batareya, düymələr, keçid və USB konnektoru…
Batareya, düymələr, keçid və USB konnektoru…
Batareya, düymələr, keçid və USB konnektoru…
Batareya, düymələr, keçid və USB konnektoru…

Yenidən Tinkercad -dan istifadə edərək güc bankını kassaya yerləşdirmək üçün bir klip hazırladım. Klipi 3D printerimlə çap etdim və qutuya isti yapışqan tapança ilə qoşuldum. Aşağıdakı modelin.stl faylını əlavə edirəm. 3D printerə çıxışınız yoxdursa, velcro tape ilə güc bankına qoşula bilərsiniz.

Növbəti addım, güc bankı ilə Raspberry Pi arasındakı açma/söndürmə düyməsini bağlamaqdır. Bir USB kabeli götürdüm və yalnız elektrik telini kəsdim, sonra bir tel ucunu açma/söndürmə düyməsinin bir pininə, digər tel ucunu isə açma/söndürmə açarının digər pininə lehimlədim. Belə ki, söndürmə gücü swtichdən keçmədikdə və Raspberry söndürüldükdə və açar swtichdən keçəndə və Moruq açıq olduqda.

Güc bankının boşalması, onu doldurmaq üçün qutudan çıxarmaq problem olduqda, hər dəfə şarj etmək üçün çıxarmaq istəmirdim. Problem, güc bankının şarj portu USC tipli C idi və yalnız güc bankının kabelinə sahib idim. Beləliklə, iki qadın USB konnektorunu lehimləyib qutuya qoydum. Güc bankı kabelini bağlamaq üçün içəridəki bağlayıcı və USB konnektoru bağlamaq üçün xarici bağlayıcı.

Düymələri yerləşdirmək və kabel çəkmək asan idi. Düymələrdə 2 sancaq var, hər düymənin bir pimi yerdəki GPIO pininə gedən ümumi bir kabelə, digər düymə isə moruğun müvafiq GPIO pininə bağlanır. Bağlama diaqramı əlavə edilmiş diaqramda göstərilmişdir.

Səs sistemi ucuz bir səs gücləndiricisi olan PAM8403 -ə əsaslanır. Raspberry Pi yuvasından gələn səs dinamikin işləməsi üçün çox güclü olmadığı üçün lazımdır. 5v və ya daha çox gücə ehtiyacınız var. Əlavə edilmiş şəkillərdə gücləndiricinin və dinamikin necə tel bağlayacağını görə bilərsiniz. Rapberry -nin audio/video girişinə qoşulmaq üçün 3,5 mm -lik kişi yuvasına ehtiyacımız var. 3 telləri yuvaya lehimlədim: audio, video və torpaq. Əlavə edilmiş diaqram, hər kəsin pininin nə olduğunu göstərir. Daha sonra enerjini götürmək üçün Açma/Kapama açarına bir tel, güc bankının kabelindən torpaq telinə başqa bir tel lehim etdim. Sonra telləri dinamikdən gücləndiricinin çıxışlarına bağlayıram. Asan hissəsi səs sistemini vəziyyətə ayırmaqdır. Şəkillərdə görə bilərsiniz.

QuizzPi quraşdırılmışdır, son fotoşəkildə hələ də taxtada qələm izlərini görə bilərik, amma proqram vaxtıdır … kiçik bir viktorina mühərriki yaratmağa gedək …

Addım 6: Rasbian Image və Viktorina Mühərrikinin Proqramlaşdırılması…

Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…
Rasbian Şəkil və Viktorina Mühərrikinin Proqramlaşdırılması…

Güc düyməsini basırıq. Heç nə olmur. Aman Tanrım! Bu işləmir! Nə səhv ola bilər? Əlaqəsiz kabel varmı? Narahat olmayın, SD karta bir şəkil quraşdırmalıyıq …

Viktorina mühərriki Python 3 -də yazılmışdır, buna görə Python kompilyatoru quraşdırılmış Raspbian görüntüsünə ehtiyacımız var. Bu nöqtədə quraşdırdığımız ekranın növünü nəzərə almalıyıq. Ekranım SPI interfeysidir və satıcı bütün ekran sürücülərinin quraşdırıldığı bir Raspbian görüntüsü verir. Bu Raspbian versiyasında Python mühərriki də var. Bu şəkli bu linkdən yükləyə bilərsiniz.

Bir HDMI və ya RCA ekranınız varsa, raspberrypi.org saytında mövcud olan son Raspbian görüntüsünü yükləyə bilərsiniz. Diqqət: Masaüstü Rasbian versiyasına ehtiyacınız var, buna görə Lite Raspbian şəklini yükləməkdən çəkinin. Bu görüntülərdə Python tərtibçisi var.

Şəkili SD karta yükləmək üçün hər hansı bir tətbiqdən istifadə edə bilərik. Win32diskimager istifadə edirəm. Sonra SD kartı Raspberry -yə daxil edirik və açma/söndürmə düyməsini basırıq. İşləyir! İndi quizz mühərriki ilə bir Python proqramı yaratmalıyıq.

Növbəti addım viktorina motorunun fayllarını yükləməkdir. Mənbə kodunu QuizzPi.zip faylına əlavə etdim. Mənbəni yükləyin və Raspberry Pi -də bir qovluq yaradın:

# mkdir/home/pi/QuizzPi

və bu qovluğa yüklənmiş faylı açın.

QuizzPi.zip bu faylları ehtiva edir:

  • QuizzPi.py - kodu ehtiva edir
  • MP3 səs faylları - fərdiləşdirmək üçün dəyişə bilərsiniz
  • losmejores.txt - Yüksək Hesablar cədvəlini ehtiva edir, cədvəli işə salmaq üçün silə bilərsiniz
  • Təlimatlar.txt

Pythonda mühərrik kodunu necə proqramlaşdırdığım haqqında tam bir açıqlama verməyəcəyəm, çünki proqramlaşdırma bilgisi olmayan insanlar üçün çətindir. Yalnız Moruqdakı faylları saxlamalıdırlar. Proqramlaşdırma biliyi olan insanlar heç bir izahat vermədən dəyişdirə biləcəklər;)

Suallar və cavablar, burada tapa biləcəyiniz Open Trivia Database adlı Sual və Cavablar birgə məlumat bazasından alınmışdır. QuizzPi.py faylında bir sətri dəyişdirərək sualların kateqoriyasını və çətinliyini dəyişə bilərsiniz:

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

opentdb.com/api_config.php api konfiquratorundan əldə edilən url ilə dəyişmək

Oyun ekranlarını Photoshop -da hazırladım, onları dəyişdirə bilərsiniz. Sual ekranında, nəticələr ekranında və yüksək ekranlarda bəzi ağ sahələri qorumalısınız, çünki oyun mühərriki onların üzərində yazır.

Oyunun səslərini də fərdiləşdirə bilərsiniz. Yalnız istədiyiniz.mp3 fayllarını dəyişdirməlisiniz, eyni adları qorumalısınız. Onlayn verilənlər bazalarından çoxlu səslər əldə edə bilərsiniz, mən isə Pulsuz Səs Efektlərindən minalar alıram.

İndi QuizzPi -ni avtomatik olaraq işə salmaq üçün Raspbian -ı dəyişdirməlisiniz. Bunu necə edəcəyinizi izah edən bu məqaləni oxuya bilərsiniz:

Bitirdik !!!

Addım 7: Nümayiş…

Image
Image

Bu təlimatı başa çatdırmaq üçün bu videoya baxa bilərsiniz. İstifadəsinin asan olduğunu və sualların çətinliyinin sizdən asılı olduğunu görə bilərsiniz …

Redaktə edin: video indi səslə yeniləndi!

Mikrokontroller Müsabiqəsi
Mikrokontroller Müsabiqəsi

Mikro nəzarətçi yarışmasında ikinci yer

Tövsiyə: