Indholdsfortegnelse:

QuizzPi, et Raspberry Pi Trivia -spil med Python: 7 trin (med billeder)
QuizzPi, et Raspberry Pi Trivia -spil med Python: 7 trin (med billeder)

Video: QuizzPi, et Raspberry Pi Trivia -spil med Python: 7 trin (med billeder)

Video: QuizzPi, et Raspberry Pi Trivia -spil med Python: 7 trin (med billeder)
Video: CS50 2014 - Week 7 2024, Juli
Anonim
QuizzPi, et Raspberry Pi Trivia -spil med Python
QuizzPi, et Raspberry Pi Trivia -spil med Python
QuizzPi, et Raspberry Pi Trivia -spil med Python
QuizzPi, et Raspberry Pi Trivia -spil med Python

QuizzPi er et trivia -spil af arkadetype. QuizzPi blev født, fordi jeg havde behov for at give min datter en underholdning. Hun er 7 år, og hun kræver allerede brug af nye teknologier, tanken var at skabe noget, der var både sjovt og lærerigt.

Krav til projektet:

  • Let at bruge
  • Transportabel
  • Let at opgradere sæt spørgsmål og svar
  • Høj score tabel

Flere elementer er konfigurerbare. Du kan oprette din egen database med spørgsmål/svar, eller du kan bruge en af de mange servere, der tilbyder en database, hvor du bestemmer typen af spørgsmål, svært, … Jeg har oprettet en database med spørgsmål fra første klasse til min datter, men vi kan ændre konfiguration for at få trivia -spørgsmål fra en oline -server. Denne instruerbare version får spørgsmålene fra et samarbejdsspørgsmål og svar, Open Trivia Database. Jeg har valgt spørgsmål om generel viden, men du kan vælge spørgsmål om film, sport eller religion.

Jeg beklager mit dårlige engelsk. Jeg er spansk, men jeg har foretrukket at oprette dette instruerbart på engelsk, så det kan nå ud til flere mennesker.

Lad os gå!

Trin 1: Du har brug for nogle materialer og værktøjer …

Du har brug for nogle materialer og værktøjer …
Du har brug for nogle materialer og værktøjer …

Du har helt sikkert det meste af materialet derhjemme …

  • Raspberry Pi 2/3 med et 8 GB eller mere SD -kort (35 $)
  • Raspberry Pi 3,5 tommer LCD med etui (11 $). Se (dette er valgfrit, du kan bruge enhver skærm, du har, du behøver kun at ændre QuizzPi -sagen til det)
  • Batterier. Du kan bruge en powerbank, eller du kan bruge en diy 18650 batteripakke (5 $). I mit tilfælde brugte jeg en Aukey 5000mah powerbank (12 $). Se
  • Fire arkadeknapper. Jeg har disse derhjemme (3 $, 12 knapper til 10 $). Se
  • En tænd/sluk -kontakt (0,25 $). Se
  • To USB -stik (0,50 $)
  • Et USB/mikro USB -kabel
  • En billig højttaler (ekstraudstyr) (0,25 $). Se
  • Én PAM8403 forstærker (ekstraudstyr) (0,80 $). Se
  • Nogle ledninger til at forbinde knapper, usb -stik og tænd/sluk -kontakt til GPIO -ben (1 $?)
  • Fire neodymmagneter eller du kan bruge hvad som helst til at få bagdøren lukket. Se
  • Krydsfiner. Jeg brugte 5 mm krydsfiner, men du kan bruge alt det, du har derhjemme (2 $)

Du har også brug for nogle værktøjer …

  • Loddeværktøjer
  • Skruetrækkere
  • Varmlimpistol
  • 3D -printer (valgfri)

Lad os gå!

Trin 2: Lad os designe en cool QuizzPi -sag …

Lad os designe en cool QuizzPi -sag …
Lad os designe en cool QuizzPi -sag …
Lad os designe en cool QuizzPi -sag …
Lad os designe en cool QuizzPi -sag …

Det første, vi har brug for, er at vide, hvor meget plads vi har brug for at inkludere hardware (Hindbær + skærm + knapper + batteri + ledninger). Under hensyntagen til delene beskrevet i det foregående trin lavede jeg et 3D -design af sagen ved hjælp af den gratis online 3D -designer Tinkercad (se). Hvis du vil udskrive 3D -modellen af sagen, kan du downloade den fra den vedhæftede fil QuizzPi -sag.stl.

I det øjeblik måtte jeg beslutte, om jeg skulle printe modellen på min 3D -printer eller lave den af krydsfiner. Jeg tænkte, at for min datter kunne jeg bruge lidt mere tid på at lave det af krydsfiner. Så jeg får planerne fra 3D -modellen og klipper træet.

Næste trin er varmlimning af delene …

Trin 3: Fremstilling af krydsfinerhuset …

Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …
Fremstilling af krydsfinerhuset …

Når jeg havde klippet alle krydsfiner dele af planerne, er næste trin varmlimning. I nogle samlinger satte jeg forstærkninger for at gøre boksen stærkere. I rammen tegner jeg med blyanten omridset af LCD -skærmen og klipper det ud. Jeg laver fire huller til skruerne. Hvis du bruger en anden skærm, skal du ændre denne ting.

Bagdøren lukkes med to magneter limet til døren og to magneter limes på sagen, så jeg undgår brug af hængsler.

QuizzPi -sagen er færdig …

Trin 4: Tilslutning af GPIO -ben, montering af hindbær+LCD …

Kabelføring af GPIO -ben, montering af hindbær+LCD …
Kabelføring af GPIO -ben, montering af hindbær+LCD …
Kabelføring af GPIO -ben, montering af hindbær+LCD …
Kabelføring af GPIO -ben, montering af hindbær+LCD …
Kabelføring af GPIO -ben, montering af hindbær+LCD …
Kabelføring af GPIO -ben, montering af hindbær+LCD …

Vi skal forbinde knapperne til Raspberry Pi, så den kan vide, hvilken knap der trykkes på. Knapper er forbundet til GPIO -ben. Vi har brug for fire IN GPIO -pins plus en Gnd GPIO -pin. Jeg brugte GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) og 39 (Gnd) til henholdsvis røde, gule, grønne og blå knapper. Denne skærm har SPI -interface. Det betyder, at den er forbundet til GPIO bank, så først satte jeg ledninger, der endte med firkantede knapper, og derefter sluttede jeg LCD -skærmen til.

Næste trin var at montere Raspberry+LCD+etuiet på rammen. Jeg brugte Raspberry Pi -sagens egne skruer.

QuizzPi er monteret…

Trin 5: Batteri, knapper, switch og USB -stik …

Batteri, knapper, switch og USB -stik …
Batteri, knapper, switch og USB -stik …
Batteri, knapper, switch og USB -stik …
Batteri, knapper, switch og USB -stik …
Batteri, knapper, switch og USB -stik …
Batteri, knapper, switch og USB -stik …

Jeg brugte Tinkercad igen til at designe et klip til at holde powerbanken til sagen. Jeg printede klippet med min 3D -printer og slutter mig til sagen med en varm limpistol. Jeg vedhæfter.stl -filen af modellen herunder. Hvis du ikke har adgang til en 3D -printer, kan du slutte dig til powerbanken med velcrobånd.

Næste trin er at tilslutte tænd/sluk -kontakten mellem powerbanken og Raspberry Pi. Jeg tog et USB -kabel, og jeg klippede kun strømkablet, derefter lodde jeg den ene lednings ende til den ene pin på tænd/sluk -kontakten og den anden lednings ende til den anden pin på tænd/sluk -kontakten. Så når kontakten til slukket strøm ikke går igennem switich og Raspberry er slukket, og når kontakten til strøm går gennem swtich og Raspberry er tændt.

Når powerbank -afladninger er et problem at tage det ud af sagen for at oplade det, så jeg ville ikke tage det ud hver gang for at oplade. Problemet var, at powerbankens opladningsport er USC type C, og jeg havde kun kablet til powerbanken. Så jeg lodde to hun -USB -stik og satte i etuiet. Stikket indeni for at tilslutte powerbank -kablet og det udvendige stik til at tilslutte et USB -strømkabel.

Det var let at placere knapperne og tilslutte dem. Knapperne har 2 ben, en stift af hver knap tilsluttes et fælles kabel, der går til en jordet GPIO -stift, og den anden stift af knappen forbinder den tilhørende GPIO -pin på hindbæret. Ledningsdiagrammet er vist i vedlagte diagram.

Lydsystemet er baseret i PAM8403, en billig lydforstærker. Det er nødvendigt, fordi lyden fra stikket til Raspberry Pi ikke er for kraftig til at få en højttaler til at fungere. Du skal forsyne den med 5v eller mere. På de vedhæftede billeder kan du se, hvordan du forstærker forstærkeren og højttaleren. Vi har brug for et hanstik på 3,5 mm for at oprette forbindelse til Rapberrys lyd-/videostik. Jeg lodde 3 ledninger til stikket: lyd, video og jord. Diagrammet vedhæftet viser hvilken nål alle er. Derefter lodde jeg en ledning til tænd/sluk -kontakten for at tage strøm fra, og en anden ledning til jordledningen fra powerbank -kablet. Derefter forbinder jeg ledningerne fra højttaleren til forstærkerens udgange. Den lette del er at allokere lydsystemet i sagen. Du kan se på billederne.

QuizzPi er monteret, på det sidste foto kan vi stadig se blyantmærker på træet, men det er software tid … lad os gå til at oprette en lille quiz -motor …

Trin 6: Rasbian image og programmering af Quiz Engine …

Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …
Rasbian image og programmering af Quiz Engine …

Vi trykker på tænd / sluk -knappen. Intet sker. Åh gud! Det virker ikke! Hvad kan være galt? Noget kabel uden tilslutning? Bare rolig, vi skal installere et billede på SD -kortet …

Quizmotoren er skrevet i Python 3, så vi har brug for et Raspbian -billede med Python -kompilatoren installeret. På dette tidspunkt skal vi tage højde for den type skærm, vi har installeret. Min skærm er SPI -interface, og sælger giver et Raspbian -billede med alle skærmdrivere installeret. Denne version af Raspbian har også Python -motor. Du kan downloade dette billede i dette link.

Hvis du har en HDMI- eller RCA -skærm, kan du downloade det sidste Raspbian -billede, der findes på raspberrypi.org -webstedet. OBS: du har brug for Desktop Rasbian -version, så undgå at downloade Lite Raspbian -billede. Dette billede indeholder Python -kompilator.

For at installere billedet på SD -kortet kan vi bruge enhver applikation. Jeg bruger Win32diskimager. Derefter indsætter vi SD -kortet i hindbæret og skubber tænd/sluk -knappen. Det virker! Nu skal vi oprette et Python -program med quizmotoren.

Næste trin er at downloade filerne i quizmotoren. Jeg har vedhæftet kildekoden i filen QuizzPi.zip. Download kilden, og opret en mappe i Raspberry Pi:

# mkdir/home/pi/QuizzPi

og pak filen ud, der er downloadet til denne mappe.

QuizzPi.zip indeholder disse filer:

  • QuizzPi.py - den indeholder koden
  • MP3 -lydfiler - du kan ændre for at tilpasse dem
  • losmejores.txt - den indeholder High Scores -tabel, du kan slette den for at initialisere tabellen
  • Instructions.txt

Jeg vil ikke give en udtømmende forklaring på, hvordan jeg har programmeret motorkoden i Python, fordi det er for svært for folk uden programmeringskendskab. De behøver kun at gemme filerne i hindbæret. Personer med programmeringskendskab vil kunne ændre det uden nogen forklaring;)

Spørgsmål og svar er fra en samarbejdende database med spørgsmål og svar kaldet Open Trivia Database, du kan finde her. Du kan ændre kategorien og vanskeligt for spørgsmålene ved at ændre en linje i filen QuizzPi.py:

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

ændres med url hentet fra api -konfiguratoren

Jeg har designet spilskærmene i Photoshop, du kan ændre dem. Du skal kun bevare nogle hvide områder i spørgsmålskærmen, i resultatskærmen og highscores -skærmene, fordi spilmotoren skriver på dem.

Du kan også tilpasse lydene fra spillet. Du skal kun ændre.mp3 -filer af andre, du ønsker, du skal bevare de samme navne. Du kan få mange lyde fra online databaser, jeg får miner fra gratis lydeffekter.

Nu skal du ændre din Raspbian for automatisk at køre QuizzPi. Du kan læse denne artikel, hvor du forklarer, hvordan du gør det:

Vi er færdige !!!

Trin 7: Demonstration …

Image
Image

For at afslutte dette instruerbare kan du se denne video. Du kan se, at det er let at bruge, og det svære ved spørgsmålene afhænger af dig …

Edit: video opdateret nu med lyd!

Microcontroller konkurrence
Microcontroller konkurrence

Nummer to i Microcontroller -konkurrencen

Anbefalede: