Innholdsfortegnelse:

QuizzPi, et Raspberry Pi Trivia -spill med Python: 7 trinn (med bilder)
QuizzPi, et Raspberry Pi Trivia -spill med Python: 7 trinn (med bilder)

Video: QuizzPi, et Raspberry Pi Trivia -spill med Python: 7 trinn (med bilder)

Video: QuizzPi, et Raspberry Pi Trivia -spill med Python: 7 trinn (med bilder)
Video: CS50 2014 - Week 7 2024, November
Anonim
QuizzPi, et Raspberry Pi Trivia -spill med Python
QuizzPi, et Raspberry Pi Trivia -spill med Python
QuizzPi, et Raspberry Pi Trivia -spill med Python
QuizzPi, et Raspberry Pi Trivia -spill med Python

QuizzPi er et trivia -spill av arkadetype. QuizzPi ble født fordi jeg hadde behov for å gi datteren min underholdning. Hun er 7 år gammel og hun krever allerede bruk av nye teknologier, tanken var å lage noe som var både morsomt og lærerikt.

Krav til prosjektet:

  • Lett å bruke
  • Bærbar
  • Enkelt å oppgradere settet med spørsmål og svar
  • Høy score tabell

Flere elementer er konfigurerbare. Du kan lage din egen database med spørsmål/svar, eller du kan bruke en av de mange serverne som tilbyr en database, der du bestemmer hvilken type spørsmål, vanskelig, … Jeg opprettet en database med spørsmål fra første klasse for datteren min, men vi kan endre konfigurasjon for å få trivia -spørsmål fra en online -server. Denne instruerbare versjonen får spørsmålene fra et samarbeidsspørsmål og svar, Open Trivia Database. Jeg har valgt spørsmål om generell kunnskap, men du kan velge spørsmål om film, sport eller religion.

Jeg beklager min dårlige engelsk. Jeg er spansk, men jeg har foretrukket å lage dette instruerbart på engelsk, slik at det kan nå ut til flere.

La oss gå!

Trinn 1: Du trenger noen materialer og verktøy …

Du trenger noen materialer og verktøy …
Du trenger noen materialer og verktøy …

Du har sikkert det meste av materiell hjemme …

  • Raspberry Pi 2/3 med et 8 GB eller mer SD -kort (35 $)
  • Raspberry Pi 3,5 -tommers LCD med etui (11 $). Se (dette er valgfritt, du kan bruke hvilken som helst skjerm du har, du trenger bare å endre QuizzPi -saken for det)
  • Batterier. Du kan bruke en strømbank, eller du kan bruke en DIY 18650 batteripakke (5 $). I mitt tilfelle brukte jeg en Aukey 5000mah powerbank (12 $). Se
  • Fire arkadeknapper. Jeg har disse hjemme (3 $, 12 knapper for 10 $). Se
  • En av/på -bryter (0,25 $). Se
  • To USB -kontakt (0,50 $)
  • En USB/mikro USB -kabel
  • En billig høyttaler (valgfritt) (0,25 $). Se
  • En PAM8403 forsterker (valgfritt) (0,80 $). Se
  • Noen ledninger for å koble knapper, usb -kontakt og av/på -bryter til GPIO -pinner (1 $?)
  • Fire neodymmagneter eller du kan bruke hva som helst for å få bakdøren lukket. Se
  • Kryssfiner. Jeg brukte 5 mm kryssfiner, men du kan bruke alt du har hjemme (2 $)

Du trenger også noen verktøy …

  • Loddeverktøy
  • Skrutrekkere
  • Varmlimpistol
  • 3D -skriver (valgfritt)

La oss gå!

Trinn 2: La oss designe en kul QuizzPi -sak …

La oss designe en kul QuizzPi -sak …
La oss designe en kul QuizzPi -sak …
La oss designe en kul QuizzPi -sak …
La oss designe en kul QuizzPi -sak …

Det første vi trenger er å vite hvor mye plass vi trenger for å inkludere maskinvare (bringebær + skjerm + knapper + batteri + ledninger). Med tanke på delene beskrevet i forrige trinn laget jeg en 3D -design av saken ved hjelp av gratis 3D -designer Tinkercad (se). Hvis du vil skrive ut 3D -modellen av saken, kan du laste den ned fra den vedlagte filen QuizzPi -saken.stl.

I det øyeblikket måtte jeg bestemme meg for om jeg skulle skrive ut modellen på 3D -skriveren eller lage den av kryssfiner. Jeg trodde at for min datter kunne jeg bruke litt mer tid på å lage den av kryssfiner. Så jeg får planene fra 3D -modellen og klipper veden.

Neste trinn er varmliming av delene …

Trinn 3: Lag kryssfinerhuset …

Lagde et kryssfinerhus …
Lagde et kryssfinerhus …
Lagde et kryssfinerhus …
Lagde et kryssfinerhus …
Lagde et kryssfinerhus …
Lagde et kryssfinerhus …
Lagde et kryssfinerhus …
Lagde et kryssfinerhus …

Når jeg hadde kuttet alle deler av kryssfiner i planene, er neste trinn varmliming. I noen ledd legger jeg forsterkninger for å gjøre boksen sterkere. I rammen tegner jeg med blyanten omrisset av LCD -skjermen, og klipper det ut. Jeg lager fire hull til skruene. Hvis du bruker en annen skjerm, må du endre denne tingen.

Bakdøren lukkes med to magneter limt på døren og to magneter limes på saken, så jeg unngår bruk av hengsler.

QuizzPi -saken er ferdig …

Trinn 4: Kabling av GPIO -pinner, montering av bringebær+LCD …

Kabling av GPIO -pinner, montering av bringebær+LCD …
Kabling av GPIO -pinner, montering av bringebær+LCD …
Kabling av GPIO -pinner, montering av bringebær+LCD …
Kabling av GPIO -pinner, montering av bringebær+LCD …
Kabling av GPIO -pinner, montering av bringebær+LCD …
Kabling av GPIO -pinner, montering av bringebær+LCD …

Vi må koble knappene til Raspberry Pi, slik at den kan vite hvilken knapp som trykkes. Knappene er koblet til GPIO -pinner. Vi trenger fire IN GPIO -pinner pluss en Gnd GPIO -pinne. Jeg brukte GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) og 39 (Gnd) for henholdsvis røde, gule, grønne og blå knapper. Denne skjermen har SPI -grensesnitt. Dette betyr at den er koblet til GPIO bank, så først satte jeg ledninger som endte med firkant i knapper og deretter koblet jeg til LCD -skjermen.

Neste trinn var å montere Raspberry+LCD+etui på rammen. Jeg brukte Raspberry Pi -sakens egne skruer.

QuizzPi er montert …

Trinn 5: Batteri, knapper, bryter og USB -kontakt …

Batteri, knapper, bryter og USB -kontakt …
Batteri, knapper, bryter og USB -kontakt …
Batteri, knapper, bryter og USB -kontakt …
Batteri, knapper, bryter og USB -kontakt …
Batteri, knapper, bryter og USB -kontakt …
Batteri, knapper, bryter og USB -kontakt …

Jeg brukte Tinkercad igjen til å designe et klipp for å holde strømbanken til saken. Jeg skrev ut klippet med 3D -skriveren min og ble med på etuiet med varm limpistol. Jeg legger ved.stl -filen til modellen nedenfor. Hvis du ikke har tilgang til en 3D -skriver, kan du koble til strømbanken med borrelåsbånd.

Neste trinn er å koble av/på -bryteren mellom strømbanken og Raspberry Pi. Jeg tok en USB -kabel og jeg kuttet bare strømledningen, deretter loddet jeg den ene ledningen til en pinne på av/på -bryteren og den andre ledningsenden til den andre pinnen på av/på -bryteren. Så når bryteren slås av, går ikke strømbryteren og bringebæret er slått av, og når strømmen slås på, går strømbryteren og bringebæret er på.

Når utladninger fra powerbank er et problem å ta ut saken for å lade den, så jeg ville ikke ta den ut hver gang for å lade. Problemet var at strømbankens ladeport er USC type C, og jeg hadde bare kabelen til strømbanken. Så jeg loddet to kvinnelige USB -kontakter og satte i saken. Kontakten inni for å koble til strømbankkabelen, og den ytre kontakten for å koble til en USB -strømkabel.

Det var enkelt å plassere knappene og koble dem til. Knappene har 2 pinner, en pinne på hver knapp kobles til en vanlig kabel som går til en jordet GPIO -pinne, og den andre pinnen på knappen kobles til den respektive GPIO -pinnen på bringebæret. Koblingsskjemaet er vist i vedlagte diagram.

Lydsystemet er basert på PAM8403, en billig lydforsterker. Det er nødvendig fordi lyden fra Raspberry Pi -kontakten ikke er for kraftig til å få en høyttaler til å fungere. Du må slå den på med 5v eller mer. På bildene vedlagt kan du se hvordan du kobler forsterkeren og høyttaleren. Vi trenger en 3,5 mm hankontakt for å koble til Rapberrys lyd-/videokontakt. Jeg loddet 3 ledninger til kontakten: lyd, video og bakken. Diagrammet vedlagt viser hvilken nål alle er. Deretter loddet jeg en ledning til På/Av -bryteren for å ta strøm fra, og en annen ledning til jordledningen fra strømbankkabelen. Deretter kobler jeg ledningene fra høyttaleren til utgangene til forsterkeren. Den enkle delen er å tildele lydsystemet i saken. Du kan se på bildene.

QuizzPi er montert, på det siste bildet kan vi fremdeles se blyantmerker på treet, men det er tid for programvare … la oss gå for å lage en liten quizmotor …

Trinn 6: Rasbian image og programmering av Quiz Engine …

Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …
Rasbian image og programmering av Quiz Engine …

Vi trykker på strømknappen. Ingenting skjer. Herregud! Det fungerer ikke! Hva kan være galt? Noen kabel uten tilkobling? Ikke bekymre deg, vi må installere et bilde på SD -kortet …

Quizmotoren er skrevet i Python 3, så vi trenger et Raspbian -bilde med Python -kompilatoren installert. På dette tidspunktet må vi ta hensyn til hvilken type skjerm vi har installert. Skjermen min er SPI -grensesnitt, og selgeren gir et Raspbian -bilde med alle skjermdriverne installert. Denne versjonen av Raspbian har også Python -motor. Du kan laste ned dette bildet i denne lenken.

Hvis du har en HDMI- eller RCA -skjerm, kan du laste ned det siste Raspbian -bildet som er tilgjengelig på raspberrypi.org -nettstedet. Oppmerksomhet: du trenger Rasbian -versjon på skrivebordet, så unngå å laste ned Lite Raspbian -bilde. Disse bildene inneholder Python -kompilator.

For å installere bildet på SD -kortet kan vi bruke hvilken som helst applikasjon. Jeg bruker Win32diskimager. Deretter setter vi inn SD -kortet i bringebæret og trykker på/av -bryteren. Det fungerer! Nå må vi lage et Python -program med quiz -motoren.

Neste trinn er å laste ned filene til quizmotoren. Jeg har lagt ved kildekoden i filen QuizzPi.zip. Last ned kilden og lag en mappe i Raspberry Pi:

# mkdir/home/pi/QuizzPi

og pakk ut filen som er lastet ned til denne mappen.

QuizzPi.zip inneholder disse filene:

  • QuizzPi.py - den inneholder koden
  • MP3 -lydfiler - du kan endre den for å tilpasse den
  • losmejores.txt - den inneholder High Scores -tabell, du kan slette den for å initialisere tabellen
  • Instructions.txt

Jeg vil ikke gi en uttømmende forklaring på hvordan jeg har programmert motorkoden i Python fordi det er for vanskelig for folk uten programmeringskunnskap. De trenger bare å lagre filene i bringebæret. Folk med programmeringskunnskap vil kunne endre det uten noen forklaring;)

Spørsmål og svar er fra en samarbeidsdatabase med spørsmål og svar kalt Open Trivia Database, du finner her. Du kan endre kategorien og vanskelig for spørsmålene ved å endre en linje i filen QuizzPi.py:

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

endres med url hentet fra api -konfiguratoren

Jeg designet spillskjermene i Photoshop, du kan endre dem. Du må bare bevare noen hvite områder i spørreskjermen, i resultatskjermbildet og høye score -skjermene fordi spillmotoren skriver på dem.

Du kan også tilpasse lydene av spillet. Du må bare endre.mp3 -filene av andre du vil ha, du må beholde de samme navnene. Du kan få mange lyder fra online databaser, jeg får miner fra gratis lydeffekter.

Nå må du endre Raspbian for å kjøre QuizzPi automatisk. Du kan lese denne artikkelen der du forklarer hvordan du gjør det:

Vi er ferdige !!!

Trinn 7: Demonstrasjon …

Image
Image

For å fullføre denne instruksen kan du se denne videoen. Du kan se at det er enkelt å bruke, og det vanskelige av spørsmålene avhenger av deg …

Edit: videoen er nå oppdatert med lyd!

Mikrokontrollerkonkurranse
Mikrokontrollerkonkurranse

Andreplass i mikrokontrollerkonkurransen

Anbefalt: