Inhoudsopgave:

QuizzPi, een Raspberry Pi Trivia-spel met Python - Ajarnpa
QuizzPi, een Raspberry Pi Trivia-spel met Python - Ajarnpa

Video: QuizzPi, een Raspberry Pi Trivia-spel met Python - Ajarnpa

Video: QuizzPi, een Raspberry Pi Trivia-spel met Python - Ajarnpa
Video: How Imaginary Numbers Were Invented 2024, Juli-
Anonim
QuizzPi, een Raspberry Pi Trivia-spel met Python
QuizzPi, een Raspberry Pi Trivia-spel met Python
QuizzPi, een Raspberry Pi Trivia-spel met Python
QuizzPi, een Raspberry Pi Trivia-spel met Python

QuizzPi is een arcade-achtig trivia-spel. QuizzPi is geboren omdat ik de behoefte had om mijn dochter amusement te geven. Ze is 7 jaar oud en ze eist nu al het gebruik van nieuwe technologieën, het idee was om iets te creëren dat zowel leuk als leerzaam was.

Vereisten van het project:

  • Makkelijk te gebruiken
  • draagbaar
  • Eenvoudig de set vragen en antwoorden upgraden
  • Tabel met hoge scores

Meerdere items zijn configureerbaar. U kunt uw eigen database met vragen/antwoorden maken of u kunt een van de meerdere servers gebruiken die een database biedt, waar u het type vragen bepaalt, moeilijk, … Ik heb voor mijn dochter een database gemaakt met eerstegraads vragen, maar we kunnen verander de configuratie om trivia-vragen van een oline-server te krijgen. Deze instructable versie krijgt de vragen van een gezamenlijke vragen en antwoorden, de Open Trivia Database. Ik heb algemene kennisvragen gekozen, maar je kunt film-, sport- of religievragen kiezen.

Mijn excuses voor mijn slechte Engels. Ik ben Spaans, maar ik heb er de voorkeur aan gegeven om dit instructable in het Engels te maken, zodat het meer mensen kan bereiken.

Laten we gaan!

Stap 1: Je hebt wat materialen en gereedschappen nodig…

Je hebt wat materialen en gereedschappen nodig…
Je hebt wat materialen en gereedschappen nodig…

Het meeste materiaal heb je zeker in huis…

  • Raspberry Pi 2/3 met een SD-kaart van 8Gb of meer (35$)
  • Raspberry Pi 3,5-inch LCD-scherm met behuizing (11 $). Zie (dit is optioneel, je kunt elk scherm gebruiken dat je hebt, je hoeft er alleen de QuizzPi-case voor aan te passen)
  • Batterijen. U kunt een powerbank gebruiken of u kunt een diy 18650-batterijpakket (5 $) gebruiken. In mijn geval gebruikte ik een Aukey 5000mah powerbank (12$). Zien
  • Vier arcade-knoppen. Ik heb deze thuis (3$, 12 buttons voor 10$). Zien
  • Eén aan/uit-schakelaar (0,25 $). Zien
  • Twee USB-connectoren (0,50 $)
  • Eén USB/micro-USB-kabel
  • Een goedkope luidspreker (optioneel) (0,25 $). Zien
  • Eén PAM8403-versterker (optioneel) (0,80 $). Zien
  • Sommige draden om knoppen, usb-connector en aan / uit-schakelaar te koppelen aan GPIO-pinnen (1 $?)
  • Vier neodymium-magneten of je kunt wat dan ook gebruiken om de achterdeur dicht te krijgen. Zien
  • Multiplex. Ik heb multiplex van 5 mm gebruikt, maar je kunt alles gebruiken dat je thuis hebt (2 $)

Je hebt ook wat gereedschap nodig…

  • Soldeerhulpprogramma's
  • Schroevendraaiers
  • Heet lijmpistool
  • 3D-printer (optioneel)

Laten we gaan!

Stap 2: Laten we een coole QuizzPi-hoes ontwerpen …

Laten we een coole QuizzPi-hoes ontwerpen…
Laten we een coole QuizzPi-hoes ontwerpen…
Laten we een coole QuizzPi-hoes ontwerpen…
Laten we een coole QuizzPi-hoes ontwerpen…

Het eerste wat we nodig hebben is om te weten hoeveel ruimte we nodig hebben om hardware op te nemen (Raspberry + scherm + knoppen + batterij + draden). Rekening houdend met de onderdelen die in de vorige stap zijn beschreven, heb ik een 3D-ontwerp van de koffer gemaakt met behulp van de gratis online 3D-ontwerper Tinkercad (zie). Als u het 3D-model van de koffer wilt afdrukken, kunt u deze downloaden van het bijgevoegde QuizzPi-bestand.stl.

Op dat moment moest ik beslissen of ik het model op mijn 3D-printer wilde printen of van multiplex wilde maken. Ik dacht dat ik voor mijn dochter wat meer tijd kon besteden aan het maken van multiplex. Dus ik haal de plannen uit het 3D-model en zaag het hout.

De volgende stap is het heet verlijmen van de onderdelen…

Stap 3: Het maken van de triplexbehuizing …

De triplexbehuizing maken …
De triplexbehuizing maken …
De triplexbehuizing maken …
De triplexbehuizing maken …
De multiplex behuizing maken…
De multiplex behuizing maken…
De multiplex behuizing maken…
De multiplex behuizing maken…

Nadat ik alle triplexdelen van de plannen had gesneden, is de volgende stap ze heet te lijmen. In sommige joins heb ik versterkingen aangebracht om de box sterker te maken. In de bezel teken ik met het potlood de omtrek van het LCD-scherm, en knip deze uit. Ik maak vier gaten voor de schroeven. Als u een ander scherm gebruikt, moet u dit aanpassen.

Achterdeur sluit met twee magneten aan de deur gelijmd en twee magneten aan de behuizing, dus ik vermijd het gebruik van scharnieren.

De QuizzPi-koffer is klaar…

Stap 4: GPIO-pinnen bedraden, Raspberry+LCD monteren…

GPIO-pinnen bedraden, Raspberry+LCD monteren…
GPIO-pinnen bedraden, Raspberry+LCD monteren…
GPIO-pinnen bedraden, Raspberry+LCD monteren…
GPIO-pinnen bedraden, Raspberry+LCD monteren…
GPIO-pinnen bedraden, Raspberry+LCD monteren…
GPIO-pinnen bedraden, Raspberry+LCD monteren…

We moeten de knoppen verbinden met de Raspberry Pi, zodat deze kan weten op welke knop wordt gedrukt. Knoppen zijn verbonden met GPIO-pinnen. We hebben vier IN GPIO-pinnen nodig plus één Gnd GPIO-pin. Ik gebruikte GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) en 39 (Gnd) voor respectievelijk rode, gele, groene en blauwe knoppen. Dit scherm heeft een SPI-interface. Dit betekent dat het is aangesloten op de GPIO-bank, dus eerst heb ik draden die vierkant zijn geëindigd in de pinnen van de knoppen en vervolgens heb ik het LCD-scherm aangesloten.

De volgende stap was om de Raspberry+LCD+case op de ring te monteren. Ik heb de eigen schroeven van de Raspberry Pi gebruikt.

De QuizzPi is gemonteerd…

Stap 5: Batterij, knoppen, schakelaar en USB-connector …

Batterij, knoppen, schakelaar en USB-connector…
Batterij, knoppen, schakelaar en USB-connector…
Batterij, knoppen, schakelaar en USB-connector…
Batterij, knoppen, schakelaar en USB-connector…
Batterij, knoppen, schakelaar en USB-connector…
Batterij, knoppen, schakelaar en USB-connector…

Ik heb Tinkercad opnieuw gebruikt om een clip te ontwerpen om de powerbank aan de behuizing te houden. Ik heb de clip met mijn 3D-printer afgedrukt en met een heet lijmpistool aan de behuizing bevestigd. Ik voeg het.stl-bestand van het onderstaande model toe. Als je geen toegang hebt tot een 3D-printer, kun je de powerbank aansluiten met klittenband.

De volgende stap is het aansluiten van de aan/uit-schakelaar tussen de powerbank en de Raspberry Pi. Ik nam een USB-kabel en knipte alleen de stroomdraad door, daarna soldeerde ik het ene uiteinde van de draad aan een pin van de aan/uit-schakelaar en het andere uiteinde van de draad aan de andere pin van de aan/uit-schakelaar. Dus wanneer de inschakelstroom niet door de schakelaar gaat en de Raspberry uit staat en wanneer de inschakelstroom door de schakelaar gaat en de Raspberry aan staat.

Wanneer de powerbank leeg raakt, is het een probleem om hem uit de hoes te halen om hem op te laden, dus ik wilde hem niet elke keer verwijderen om op te laden. Het probleem was dat de oplaadpoort van de powerbank USC type C is, en ik had alleen de kabel van de powerbank. Dus ik heb twee vrouwelijke USB-connectoren gesoldeerd en in de behuizing gestopt. De connector aan de binnenkant om de powerbank-kabel aan te sluiten en de externe connector om een USB-stroomkabel aan te sluiten.

De knoppen plaatsen en bedraden was eenvoudig. De knoppen hebben 2 pinnen, een pin van elke knop wordt aangesloten op een gemeenschappelijke kabel die naar een GPIO-pin op de grond gaat, en de andere pin van de knop wordt aangesloten op de respectieve GPIO-pin van de framboos. Het bedradingsschema is weergegeven in het bijgevoegde schema.

Het geluidssysteem is gebaseerd op PAM8403, een goedkope geluidsversterker. Het is nodig omdat het geluid dat uit de aansluiting van de Raspberry Pi komt niet te krachtig is om een luidspreker te laten werken. Je moet het van stroom voorzien met 5v of meer. In de bijgevoegde afbeeldingen kunt u zien hoe u de versterker en de luidspreker moet aansluiten. We hebben een mannelijke 3,5 mm-aansluiting nodig om verbinding te maken met de audio/video-aansluiting van de Rapberry. ik heb 3 draden aan de aansluiting gesoldeerd: audio, video en aarde. Het bijgevoegde diagram laat zien welke pin iedereen is. Daarna heb ik een draad gesoldeerd aan de aan/uit-schakelaar om stroom van te nemen, en een andere draad aan de aardedraad van de powerbank-kabel. Vervolgens sluit ik de draden van de speaker aan op de uitgangen van de versterker. Het makkelijke is om het geluidssysteem in de koffer te plaatsen. U kunt zien in de afbeeldingen.

QuizzPi is gemonteerd, op de laatste foto kunnen we nog steeds potloodstrepen op het hout zien, maar het is tijd voor de software… laten we een kleine quiz-engine maken…

Stap 6: Rasbian-afbeelding en de quiz-engine programmeren …

Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …
Rasbian-afbeelding en de quiz-engine programmeren …

We drukken op de aan/uit-knop. Niks gebeurt. O mijn God! Het werkt niet! Wat kan er mis zijn? Elke kabel zonder verbinding? Maak je geen zorgen, we moeten een afbeelding op de SD-kaart installeren…

De quiz-engine is geschreven in Python 3, dus we hebben een Raspbian-afbeelding nodig waarop de Python-compiler is geïnstalleerd. Op dit punt moeten we rekening houden met het type scherm dat we hebben geïnstalleerd. Mijn scherm is een SPI-interface en de verkoper geeft een Raspbian-afbeelding met alle schermstuurprogramma's geïnstalleerd. Deze versie van Raspbian heeft ook een Python-engine. U kunt deze afbeelding downloaden via deze link.

Als je een HDMI- of RCA-scherm hebt, kun je de laatste Raspbian-afbeelding downloaden die beschikbaar is op de site raspberrypi.org. Let op: je hebt een Desktop Rasbian-versie nodig, dus vermijd het downloaden van de Lite Raspbian-afbeelding. Deze afbeeldingen bevatten Python-compiler.

Om de afbeelding op de SD-kaart te installeren, kunnen we elke applicatie gebruiken. Ik gebruik Win32diskimager. Vervolgens plaatsen we de SD-kaart in de Raspberry en drukken op de aan/uit-schakelaar. Het werkt! Nu moeten we een Python-programma maken met de quizz-engine.

De volgende stap is het downloaden van de bestanden van de quiz-engine. Ik heb de broncode bijgevoegd in het bestand QuizzPi.zip. Download de source en maak een map aan in de Raspberry Pi:

# mkdir /home/pi/QuizzPi

en pak het gedownloade bestand uit in deze map.

QuizzPi.zip bevat deze bestanden:

  • QuizzPi.py - het bevat de code
  • PNG-afbeeldingsbestanden - het bevat een grafische interface, u kunt ze wijzigen om ze te personaliseren
  • MP3-geluidsbestanden - u kunt wijzigen om te personaliseren
  • losmejores.txt - het bevat de High Scores-tabel, u kunt deze verwijderen om de tabel te initialiseren
  • Instructies.txt

Ik zal geen uitputtende uitleg geven over hoe ik de motorcode in Python heb geprogrammeerd omdat het te moeilijk is voor mensen zonder programmeerkennis. Ze hoeven alleen de bestanden in de Raspberry op te slaan. Mensen met programmeerkennis kunnen het zonder enige uitleg aanpassen;)

Vragen en antwoorden zijn afkomstig uit een samenwerkingsdatabase van Question&Answers genaamd Open Trivia Database, die u hier kunt vinden. U kunt de categorie en moeilijkheidsgraad van de vragen wijzigen door een regel in het bestand QuizzPi.py te wijzigen:

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

veranderen met de url verkregen uit de api-configurator

Ik heb de spelschermen ontworpen in Photoshop, je kunt ze aanpassen. Je hoeft alleen wat witte gebieden in het vragenscherm, in het resultatenscherm en de hogescoresschermen te behouden, omdat de game-engine erop schrijft.

Je kunt ook de geluiden van het spel personaliseren. U hoeft alleen de.mp3-bestanden te wijzigen door anderen die u wilt, u moet dezelfde namen behouden. Je kunt veel geluiden uit online databases halen, ik krijg mijnen van Free Sound Effects.

Nu moet je je Raspbian aanpassen om QuizzPi automatisch uit te voeren. U kunt dit artikel lezen waar u uitlegt hoe u dit moet doen:

Wij zijn klaar!!!

Stap 7: Demonstratie…

Image
Image

Om deze instructable af te maken, kun je deze video bekijken. U kunt zien dat het gemakkelijk te gebruiken is en de moeilijkheid van de vragen hangt van u af …

Edit: video nu bijgewerkt met geluid!

Microcontroller-wedstrijd
Microcontroller-wedstrijd

Tweede plaats in de Microcontroller-wedstrijd

Aanbevolen: