İçindekiler:

QuizzPi, Python ile Raspberry Pi Trivia Oyunu: 7 Adım (Resimlerle)
QuizzPi, Python ile Raspberry Pi Trivia Oyunu: 7 Adım (Resimlerle)

Video: QuizzPi, Python ile Raspberry Pi Trivia Oyunu: 7 Adım (Resimlerle)

Video: QuizzPi, Python ile Raspberry Pi Trivia Oyunu: 7 Adım (Resimlerle)
Video: Arkadaşlarınızı Pythonla milyar tane mesaj yollayarak gıcık edin 🤙 #coding #yazılım #setup #python 2024, Temmuz
Anonim
QuizzPi, Python ile Raspberry Pi Trivia Oyunu
QuizzPi, Python ile Raspberry Pi Trivia Oyunu
QuizzPi, Python ile Raspberry Pi Trivia Oyunu
QuizzPi, Python ile Raspberry Pi Trivia Oyunu

QuizzPi, atari tipi bir trivia oyunudur. QuizzPi doğdu çünkü kızıma bir eğlence verme ihtiyacım vardı. 7 yaşında ve şimdiden yeni teknolojilerin kullanılmasını talep ediyor, fikir hem eğlenceli hem de eğitici bir şey yaratmaktı.

Projenin gereksinimleri:

  • Kullanımı kolay
  • Taşınabilir
  • Soru ve cevap setini yükseltmek kolay
  • Yüksek puanlar tablosu

Birden çok öğe yapılandırılabilir. Kendi soru/cevap veritabanınızı oluşturabilir veya soru türlerine karar verdiğiniz bir veritabanı sunan birden çok sunucudan birini kullanabilirsiniz, zor, … Kızım için birinci sınıf sorulardan oluşan bir veritabanı oluşturdum, ancak yapabiliriz bir çevrimiçi sunucudan önemsiz sorular almak için yapılandırmayı değiştirin. Bu eğitilebilir sürüm, ortak sorulardan ve yanıtlardan, Açık Bilgiler Veritabanından soruları alır. Genel bilgi soruları seçtim ama film, spor veya din sorularını seçebilirsiniz.

Zayıf İngilizcem için özür dilerim. Ben İspanyol'um ama daha fazla kişiye ulaşabilmesi için bu talimatı İngilizce olarak oluşturmayı tercih ettim.

Hadi gidelim!

Adım 1: Bazı Malzemelere ve Araçlara İhtiyacınız Var…

Bazı Malzemelere ve Araçlara İhtiyacınız Var…
Bazı Malzemelere ve Araçlara İhtiyacınız Var…

Evdeki malzemelerin çoğuna sahip olduğunuz kesin…

  • Raspberry Pi 2/3, 8Gb veya üzeri SD kartlı (35$)
  • Raspberry Pi 3.5 inç LCD kasalı (11$). Bakın (bu isteğe bağlıdır, sahip olduğunuz herhangi bir ekranı kullanabilirsiniz, bunun için yalnızca QuizzPi kasasını değiştirmeniz gerekir)
  • Piller. Bir güç bankası kullanabilir veya bir diy 18650 pil takımı (5$) kullanabilirsiniz. Benim durumumda bir Aukey 5000mah güç bankası (12$) kullandım. Görmek
  • Dört arcade düğmesi. Bunlar evde var (3$, 10$ için 12 düğme). Görmek
  • Bir adet açma/kapama düğmesi (0.25$). Görmek
  • İki USB konektörü (0,50$)
  • Bir USB/mikro USB kablosu
  • Bir ucuz hoparlör (isteğe bağlı) (0.25$). Görmek
  • Bir adet PAM8403 amplifikatör (opsiyonel) (0.80$). Görmek
  • Düğmeleri, usb konektörünü ve açma/kapama düğmesini GPIO pinlerine bağlamak için bazı teller (1$?)
  • Dört neodimyum mıknatıs ya da arka kapıyı kapatmak için her şeyi kullanabilirsin. Görmek
  • Kontrplak. Ben 5mm kontrplak kullandım ama siz evinizdeki herhangi birini kullanabilirsiniz (2$)

Sizin de bazı araçlara ihtiyacınız var…

  • Lehimleme Araçları
  • Tornavidalar
  • Sıcak yapıştırıcı tabancası
  • 3D yazıcı (isteğe bağlı)

Hadi gidelim!

2. Adım: Haydi Harika Bir QuizzPi Case Tasarlayalım…

Harika Bir QuizzPi Kılıfı Tasarlayalım…
Harika Bir QuizzPi Kılıfı Tasarlayalım…
Harika Bir QuizzPi Kılıfı Tasarlayalım…
Harika Bir QuizzPi Kılıfı Tasarlayalım…

İhtiyacımız olan ilk şey, donanıma ne kadar alana ihtiyacımız olduğunu bilmek (Raspberry + ekran + düğmeler + pil + teller). Bir önceki adımda anlatılan parçaları göz önünde bulundurarak kasanın 3 boyutlu tasarımını ücretsiz online 3 boyutlu tasarımcı Tinkercad kullanarak yaptım (Bakınız). Kasanın 3 boyutlu modelini yazdırmak isterseniz ekteki QuizzPi case dosyasından indirebilirsiniz..stl.

O anda modeli 3D yazıcımda mı basacağıma yoksa kontrplaktan mı yapacağıma karar vermem gerekiyordu. Kızım için kontrplaktan yapmak için biraz daha zaman harcayabileceğimi düşündüm. Bu yüzden planları 3B modelden alıyorum ve ahşabı kesiyorum.

Bir sonraki adım, parçaları sıcak yapıştırmak…

Adım 3: Kontrplak Kasayı Yapmak…

Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…
Kontrplak Kasa Yapımı…

Planların tüm kontrplak kısımlarını kestikten sonraki adım onları sıcak yapıştırmak. Bazı birleşimlerde kutuyu güçlendirmek için takviyeler koydum. Çerçevede LCD ekranın ana hatlarını kurşun kalemle çiziyorum ve kesiyorum. Vidalar için dört delik açıyorum. Farklı bir ekran kullanıyorsanız, bu şeyi değiştirmelisiniz.

Arka kapı, kapıya yapıştırılmış iki mıknatıs ve kasaya iki mıknatıs yapıştırılarak kapanıyor, bu yüzden menteşe kullanmaktan kaçınıyorum.

QuizzPi davası bitti…

Adım 4: GPIO Pinlerinin Kablolanması, Raspberry+LCD'nin Montajı…

GPIO Pinlerinin Kablolanması, Raspberry+LCD Montajı…
GPIO Pinlerinin Kablolanması, Raspberry+LCD Montajı…
GPIO Pinlerinin Kablolanması, Raspberry+LCD Montajı…
GPIO Pinlerinin Kablolanması, Raspberry+LCD Montajı…
GPIO Pinlerinin Kablolanması, Raspberry+LCD Montajı…
GPIO Pinlerinin Kablolanması, Raspberry+LCD Montajı…

Raspberry Pi'ye butonları bağlamamız gerekiyor ki hangi butona basıldığını anlayabilsin. Düğmeler GPIO pinlerine bağlanır. Dört IN GPIO pinine ve bir Gnd GPIO pinine ihtiyacımız var. Kırmızı, sarı, yeşil ve mavi butonlar için sırasıyla GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) ve 39 (Gnd) kullandım. Bu ekran SPI arayüzüne sahiptir. Bu GPIO bankına bağlı olduğu anlamına geliyor, bu yüzden önce kare ile biten kabloları buton pinlerine yerleştirdim ve ardından LCD ekranı bağladım.

Sonraki adım Raspberry+LCD+ kasayı çerçeveye monte etmekti. Raspberry Pi kasasının kendi vidalarını kullandım.

QuizzPi monte edildi…

Adım 5: Pil, Düğmeler, Anahtar ve USB Konektörü…

Pil, Düğmeler, Anahtar ve USB Konektörü…
Pil, Düğmeler, Anahtar ve USB Konektörü…
Pil, Düğmeler, Anahtar ve USB Konektörü…
Pil, Düğmeler, Anahtar ve USB Konektörü…
Pil, Düğmeler, Anahtar ve USB Konektörü…
Pil, Düğmeler, Anahtar ve USB Konektörü…

Güç bankasını kasaya tutturmak için bir klip tasarlamak için Tinkercad'i tekrar kullandım. Klipsi 3D yazıcımla bastırdım ve sıcak tutkal tabancasıyla kasaya katıldım. Modelin.stl dosyasını aşağıya ekliyorum. Bir 3D yazıcıya erişiminiz yoksa, güç bankasına cırt bant ile katılabilirsiniz.

Sonraki adım, güç bankası ve Raspberry Pi arasındaki açma/kapama anahtarını bağlamaktır. Bir USB kablosu aldım ve sadece güç kablosunu kestim, sonra bir kablo ucunu açma/kapama anahtarının bir pimine ve diğer kablo ucunu açma/kapama anahtarının diğer pimine lehimledim. Bu nedenle, açma kapama düğmesi anahtardan geçmediğinde ve Raspberry kapalıyken ve açma gücü açma düğmesi anahtardan geçtiğinde ve Raspberry açık olduğunda.

Güç bankası boşaldığında, şarj etmek için kutuyu çıkarmak bir sorun olduğundan, şarj etmek için her seferinde çıkarmak istemedim. Sorun, güç bankası şarj bağlantı noktasının USC C tipi olmasıydı ve bende sadece güç bankasının kablosu vardı. Bu yüzden iki dişi USB konektörünü lehimledim ve kasaya koydum. Güç bankası kablosunu bağlamak için içteki konektör ve bir USB güç kablosunu bağlamak için dış konektör.

Düğmeleri yerleştirmek ve kablolamak kolaydı. Düğmelerin 2 pimi vardır, her düğmenin bir pimi topraklanmış bir GPIO pimine giden ortak bir kabloya bağlanır ve düğmenin diğer pimi ahudududaki ilgili GPIO pimine bağlanır. Bağlantı şeması ekteki şemada gösterilmiştir.

Ses sistemi, ucuz bir ses yükseltici olan PAM8403'e dayanmaktadır. Raspberry Pi'nin jakından alınan ses, bir hoparlörün çalışması için çok güçlü olmadığı için gereklidir. 5v veya daha fazla güç vermeniz gerekir. Ekli resimlerde amplifikatör ve hoparlörün nasıl bağlanacağını görebilirsiniz. Rapberry'nin ses/görüntü jakına bağlanmak için bir erkek 3,5 mm jakına ihtiyacımız var. 3 kabloyu jaka lehimledim: ses, video ve toprak. Ekli diyagram, herkesin hangi pin olduğunu gösterir. Ardından, güç bankası kablosundan güç almak için Açma/Kapama anahtarına bir kablo ve topraklama kablosuna başka bir kablo lehimledim. Sonra hoparlörden gelen kabloları amplifikatörün çıkışlarına bağlarım. İşin kolay kısmı, ses sistemini kasaya yerleştirmektir. Görsellerde görebilirsiniz.

QuizzPi monte edildi, son fotoğrafta hala tahtada kurşun kalem izleri görebiliyoruz, ancak yazılım zamanı… hadi küçük bir test motoru oluşturmaya başlayalım…

Adım 6: Rasbian İmajı ve Test Motorunun Programlanması…

Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…
Rasbian İmajı ve Quiz Motorunun Programlanması…

Güç düğmesine basıyoruz. Hiçbir şey olmuyor. Aman Tanrım! Çalışmıyor! Ne yanlış olabilir? Bağlantısız herhangi bir kablo? Endişelenmeyin, SD karta bir imaj yüklememiz gerekiyor…

Test motoru Python 3'te yazılmıştır, bu yüzden Python derleyicisinin kurulu olduğu bir Raspbian görüntüsüne ihtiyacımız var. Bu noktada kurduğumuz ekranın türünü dikkate almamız gerekiyor. Ekranım SPI arayüzü ve satıcı, tüm ekran sürücülerinin kurulu olduğu bir Raspbian görüntüsü veriyor. Raspbian'ın bu sürümü de Python motoruna sahiptir. Bu görseli bu linkten indirebilirsiniz.

Bir HDMI veya RCA ekranınız varsa, raspberrypi.org sitesinde mevcut olan en son Raspbian görüntüsünü indirebilirsiniz. Dikkat: Desktop Rasbian sürümüne ihtiyacınız var, bu nedenle Lite Raspbian imajını indirmekten kaçının. Bu görüntüler Python derleyicisini içerir.

Görüntüyü SD karta yüklemek için herhangi bir uygulamayı kullanabiliriz. Win32diskimager kullanıyorum. Ardından SD kartı Raspberry'ye takıp açma/kapama düğmesine basıyoruz. İşe yarıyor! Şimdi quizz motoruyla bir Python programı oluşturmamız gerekiyor.

Bir sonraki adım, sınav motorunun dosyalarını indirmektir. Kaynak kodunu QuizzPi.zip dosyasına ekledim. Kaynağı indirin ve Raspberry Pi'de bir klasör oluşturun:

# mkdir /home/pi/QuizzPi

ve indirilen dosyayı bu klasöre açın.

QuizzPi.zip bu dosyaları içerir:

  • QuizzPi.py - kodu içerir
  • MP3 ses dosyaları - kişiselleştirmek için değiştirebilirsiniz
  • losmejores.txt - Yüksek Puanlar tablosunu içerir, tabloyu başlatmak için silebilirsiniz
  • Instructions.txt

Python'da motor kodunu nasıl programladığımın ayrıntılı bir açıklamasını yapmayacağım çünkü programlama bilgisi olmayan insanlar için çok zor. Yalnızca Raspberry'deki dosyaları kaydetmeleri gerekir. Programlama bilgisi olan kişiler herhangi bir açıklama yapmadan değiştirebileceklerdir;)

Sorular ve cevaplar, burada bulabileceğiniz Open Trivia Database adlı bir Soru-Cevap ortak veritabanından alınmıştır. QuizzPi.py dosyasında bir satırı değiştirerek soruların kategorisini ve zorluğunu değiştirebilirsiniz:

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

api yapılandırıcıdan alınan url ile değiştirme

Oyun ekranlarını Photoshop'ta tasarladım, değiştirebilirsiniz. Oyun motoru üzerlerine yazdığı için soru ekranında, sonuç ekranında ve yüksek puanlar ekranlarında sadece bazı beyaz alanları korumanız gerekir.

Oyunun seslerini de kişiselleştirebilirsiniz. Sadece.mp3 dosyalarını istediğiniz başkaları tarafından değiştirmeniz, aynı isimleri korumanız gerekir. Online veritabanlarından bir çok ses alabilirsiniz, ben de Free Sound Effects'ten mayın alıyorum.

Şimdi Raspbian'ınızı QuizzPi'yi otomatik olarak çalıştıracak şekilde değiştirmelisiniz. Nasıl yapılacağını açıklayan bu makaleyi okuyabilirsiniz:

Bitirdik!!!

Adım 7: Gösteri…

Image
Image

Bu talimatı bitirmek için bu videoyu görebilirsiniz. Görüyorsunuz, kullanımı kolay ve soruların zorluğu size bağlı…

Düzenleme: video şimdi sesle güncellendi!

Mikrodenetleyici Yarışması
Mikrodenetleyici Yarışması

Mikrodenetleyici Yarışmasında İkincilik

Önerilen: