Introduction: QuizTime

Deze instructable zal u helpen om een om een quiz te maken dat samenwerkt met een website als GUI.

De quiz zit simpel in één. U heeft vier knoppen met een accelerometer. De website zal bepalen als u moet antwoorden door op de knop te drukken of door hem in een bepaalde richting te bewegen.

Daarnaast heb je nog een doos met vier knoppen. Deze worden gebruikt om te antwoorden op de quizvraag.

Opmerking:
In deze versie werken de accelerometers nog niet.

Step 1: De Benodigdheden

Om deze quiz te maken heeft u de volgende onderdelen nodig:

Step 2: De Doosjes Voor De Arcade Knoppen

We zullen beginnen met de doosjes te maken voor de arcade knoppen en de accelerometers.

Benodigdheden

  • één keer bovenkant per doosje (zie afbeeldingen)
  • één keer onderkant per doosje (zie afbeeldingen)
  • twee keer korte zijkant per doosje (zie afbleeldingen)
  • twee keer lange zijkant per doosje (zie afbeeldingen)

Ik heb deze gemaakt uit mdf. De dikte hiervan is 18 mm. Als u een andere houtsoort gebruikt zult u hierbij rekening moeten houden bij de afmetingen. Op de foto's kunt u de afmetingen vinden.

In de bovenste plank boort u acht gaten met een diameter van 4 mm. Het is aan te raden dat u deze dan nog uitboort met een verzinkboor zodat de vijzen evenwijdig of een beetje dieper zitten dan het hout. Dit zorgt voor een mooiere afwerking. Voor de knop boort u in het midden een gat van 25 mm. Dit doet u best met een klokboor. Op 6 mm van het gat boort u diagonaal 2 gaatjes van 5 mm. Dit omdat er op de knop 2 pinnetjes zitten om ervoor te zorgen dat de knop niet kan ronddraaien.

In de onderste plank boort u in het midden van iedere kant een gat van 4 mm. Opnieuw is het aan te raden om deze af te werken met een verzinkboor.

Om tijd te besparen kunt u dit het best allemaal op één plank afmeten (één maal voor de onderkant en één maal voor de bovenkant). U kunt dan de planken op elkaar leggen en deze doorboren. Zo moet u niet iedere keer alles opnieuw afmeten.

Vervolgens neemt u voor elk doosje een lange zijkant. Hierin boort u een gat met de diameter van uw utp kabel (geen rekening houden met de aansluiting van de utp kabel want deze zullen we af snijden. Meer uitleg hieromtrent volgt). Ik heb gekozen om dit in de linkse benedenhoek van mijn doosjes te doen.

Hierna kunt u de zijkanten eraan bevestigen. Dit heb ik gedaan met vijzen die een diameter hebben van 4,5 mm. Voordat u dit doet is het aan te raden om eerst nog met een boor van 3 mm in de zijkanten te boren waar de vijzen zullen komen. Met deze manier vermijdt u dat uw gaat gaat barsten. Dit is wel precisie werk. U moet precies in het midden boren van de gaten waardoor de vijzen zullen gestoken worden, anders trekt u uw planken scheef.

Voordat u de onderkant er op vijst kunt u optioneel de knoppen er al in steken. U ziet dan de volledige afwerking van de doosjes.

Step 3: Het Doosje Voor De Antwoordknoppen

We zullen nu het doosje voor de antwoordknoppen maken. Dit komt op hetzelfde neer als bij de arcade knoppen.

Benodigdheden

  • een keer bovenkant (zie afbeeldingen)
  • één keer onderkant (zie afbeeldingen)
  • twee keer korte zijkant (zie afbeeldingen)
  • twee keer lange zijkant (zie afbeeldingen)

Opnieuw heb ik deze gemaakt uit mdf, dus als u een andere houtsoort gebruikt zult u rekening moeten houden met de dikte hiervan.

U zult opnieuw in de bovenkant acht gaten boren en in de onderkant vier met een diameter van 4 mm. Het is aan te raden dat u dit weer afwerkt met een verzinkboor.

Hierna boort u in de bovenkant vier gaten voor de antwoord knoppen. Dit met een diameter van 14 mm.

Vervolgens boort u opnieuw in een lange plank die als achterkant gebruikt wordt een gat met de diameter van uw utp kabels.

U kunt nu de zijkanten eraan vijzen. Opnieuw is het aan te raden om in de zijkanten een gaatje met een diameter van 3 mm voor te boren.

Voordat u de onderkant erop vijst kunt u de knoppen er al in steken om de uiteindelijke afwerking te zien.

Step 4: Doosje Voor De Raspberry Pi

We zullen nu een doosje maken waar de we raspberry pi gaan insteken samen met de bekabeling. Door een technisch foutje en tijdstekort heb ik dit in een ander, minder mooi afgewerkt doosje moeten doen. Zoals bij de andere doosjes zal ik gewoon de afmetingen en stappen geven om het te doen zoals mijn plan was.

Benodigdheden

  • één bovenkant (zie afbeeldingen)
  • één onderkant (zie afbeeldingen)
  • twee lange zijkanten (zie afbeeldingen)
  • twee korte zijkanten (zie afbeeldingen)

Op de afbeeldingen ziet u kruisjes staan. Op die plaatsen boort u een gat van 4 mm voor de vijzen. Het is opnieuw aan te raden om deze af te werken met een een verzinkboor.

In de lange zijkant die u zult gebruiken als voorkant boort u vier gaatjes met de diameter van uw utp kabel.

Dit doosje is gemaakt zodat u de raspberry pi en het lang breadboard er na elkaar kunt inleggen. U zult er wel voor moeten zorgen dat de kant waar de ingang voor een utp kabel hebt aan de zijkant zit. Hiervoor zult u dan nog een gat moeten uitboren. Aan de kant waar de stroomvoorziening zit moet u ook een gleufje maken zodat u deze erdoor kan inpluggen. Als u een bovenfrees met een kleine kop ter beschikken heb kunt u beiden makkelijk daarmee doen. Als u dit niet heeft stel ik voor dat u met een kleine boor gaatjes naast elkaar boort zodat er nog een 2 tal millimeter hout over blijft tussen de gaatjes. Deze kunt u dan makkelijk met een houtbeitel en een hamer kapot kloppen.

Hierna boort u weer gaatjes in de zijkant waar de vijzen zullen komen van 3 mm. Hierna kunt u alles aan elkaar vijzen

Step 5: Solderen

Nu dat de doosjes af zijn gaan we alle componenten en de utp kabels solderen. Vooral de utp kabels zijn een groot werk. Voor de veiligheid zullen we rond al de verbindingen dan ook een krimpkous doen. Voor deze stap gebruiken we ook de draadbruggen. Ik stel voor dat u de kleuren gebruikt die ik gebruik. Als u een kleur niet ter beschikking hebt, gebruik dan een ander maar schrijf op welk kleur van mijn voorbeeld overeen komt de uwe. Het proces om alles aan te sluiten zal dan gemakkelijker verlopen.

De draadbruggen zullen we doorsnijden zodat we een kant hebben om te solderen en een kant die we kunnen inpluggen in een breadboard. Let zeker op dat u nog een kant aan de draad hebt die u kan inpluggen in een breadboard!

1. De arcade knoppen

Aan het knop gedeelte zelf van de arcade knop heb je een rode en een zware zijkant. Ik stel voor dat u nog eens gecontroleerd hoe de leds ingeplugd zijn en ervoor zorgt dat de negatieve kant aan de zware kant van de knop zit. Hierna soldeert u aan de positieve kant van de led een rode draadbrug en aan de negatieve een blauwe. Dit doet u door eerst een stuk er van af te snijden, de ene kant ontmantelen en dan rond het gaatje van de aansluitklem draaien. Zorg ervoor voor het doorsnijden dat u nog genoeg draad hebt om van de arcade knop naar de onderkant van uw doosje te gaan.

Aan het knop gedeelte zult u zien dat de onderste klem (deze die allen staat) de GND is. Soldeer hieraan een zwarte kabel op dezelfde manier als dat u deed bij de led. Vervolgens neemt u een bruine draad en soldeert u deze aan de onderste klem van de klemmen die samen staan (zie afbeelding voor meer duidelijkheid).

Als dit alles gedaan is neemt u uw krimpkous en snijdt u stukjes af zodat deze lang genoeg zijn om de zichtbare tin en koper te verbergen. Schuif deze stukjes over uw draden en laat ze krimpen door er met een haardroger op te blazen of door uw soldeerbout er tegen te houden (niet de soldeer pin zelf maar het dikkere gedeelte).

Dit doet u voor al uw arcade knoppen.

2. De antwoord knoppen.

Deze zijn wat simpeler dan de arcade knoppen. Neem een witte draad als GND en soldeer deze aan de ene klem van uw drukknop. Doe dit voor iedere knop.

Vervolgens zullen we iedere knop een eigen kleur van draad geven. Ik heb geel, grijs, oranje en groen gebruikt. Soldeer één van deze kleuren aan de andere klem van uw knoppen zodat iedere knop een uniek kleur heeft.

Hierna werkt u alles opnieuw af met een krimpkous.

3. UTP kabel voor de antwoord knoppen

Hiervoor neemt u een witte, gele, grijze, groene en oranje draadbrug en snijdt deze doormidden. Zo heb je nu per kleur 2 draden met een kant om te solderen en een kant om in een breadboard te pluggen.

Vervolgens neemt u uw utp kabel en snijdt u de aansluitknop er af zodat u de draadjes ziet zitten. Vervolgens meet je drie meter utp kabel uit en snijdt u dit los.

De volgende stappen moet u herhalen voor de uiteinden van de utp kabel:

Snij eerst een deel van de isolatie die al de kabels mooi samen houdt weg zodat je aan de koperen kabeltjes kan

Nu ga je vijf van deze koper draden ontmantelen. Hieraan soldeer je dan de draadbruggen (één draadbrug per koperen utp kabel). Maar let er op dat u voor het andere uiteinde hetzelfde kleur van draadbrug aan hetzelfde kleur van utp kabel soldeert. (bv. de witte draadbruggen soldeert u aan de utp draad met wit en groen)

Eens dat dit gedaan is doet u rond iedere kabel een krimpkous zodat de tin geïsoleerd is.

4. UTP kabels voor de arcade knoppen.

Bij deze zult u alle kabels van de utp kabel nodig hebben.

Eerst gaan we vier keer twee meter utp kabel afnsijden. Dan voert u de volgende stappen uit voor ieder uiteinde van de utp kabels:

Neem een paarse, zwarte, gele, groene, oranje, blauwe, rode en bruine draadbrug en snij deze doormidden zodat u twee kabels hebt per kleur met een soldeer kant en een kant om in een breadboard te steken.

Ik stel voor dat u nu de kleurencombinaties gebruikt die ik hieronder uitschrijf omtrent welke draadbrug je aan welke kleur van de utp kabels soldeert. Dit omdat we nu met 8 kabels zitten en zeker willen zijn dat ze allemaal juist gesoldeerd zijn.

  • paarse draadbrug aan wit met bruine utp kabel
  • zwarte draadbrug aan wit met oranje utp kabel
  • gele draadbrug aan wit met blauwe utp kabel
  • oranje draadbrug aan oranje utp kabel
  • blauwe draadbrug aan blauwe utp kabel
  • rode draadbrug aan wit met groene utp kabel
  • bruine draadbrug aan bruine utp kabel
  • groene draadbrug aan groene utp kabel

Werk alle tin verbindingen opnieuw we met een krimpkous

Na dit werk van veel geduld en tijd kunnen we alles aansluiten.

Step 6: Alles Aansluiten

In deze stap zullen we het volledige circuit maken dus wees hier geconcentreerd bij want we hebben veel aansluitingen te doen. Het is ook een goed idee om alle utp kabels nog eens te controleren met een multimeter om er zeker van te zijn dat ze allemaal correct gesoldeerd zijn. Neem gewoon een utp kabel, zet uw multimeter op biep stand en kijk als de draadbruggen met dezelfde kleur verbinding maken.

1. De arcade knoppen en acceleromters

Herhaal de volgende stappen voor al uw arcade knoppen.

Vijs de onderkant van uw doosje en plak hierop een klein breadboardje zo dicht mogelijk bij het gat dat u geboord hebt voor uw utp kabel (let ook op dat uw doosje nog toe kan).

Steek één van de accelerometers in het breadboard.

Steek nu de de utp kabel door het voorgeboord gat. Bij mij was het een diameter van 5 mm en lukte het alleen maar als ik de de draadbruggen één per één door het gaatje stak en deze doortrok tot de dunnere utp kabel in het gaatje zat.

Steek nu de zwarte draadbrug in één van de lijnen die overeenkomt met de zwarte lijn dat op uw breadboard geschilderd is.

Vervolgens gaat u de rode draadbrug van de led verbinden met de rode van de utp kabel in uw breadboard. Doe hetzelfde voor de bruine van de knop en de bruine van uw utp kabel.

De blauwe draadbrug van uw led mag u rechtstreeks in in de doorverbinding van de GND steken als u deze voorgestelde arcade knoppen gekocht hebt. Deze zijn namelijk al voorzien van een weerstand. De zwarte draadbrug zult u apart in uw breadboard steken en dan door middel van één van uw weerstanden verbinden met de doorverbinding van de GND

Hierna steekt u de paarse draadbrug van de utp kabel in de VCC, de gele in de SCO, de groene in de SDA, de oranje in de SCL en de blauwe in de CS van de accelerometer. U neemt dan nog een volledig intacte draadbrug om de verbinding te leggen tussen de GND die doorverbonden wordt in uw breadboard met de GND van uw accelerometer.

2. De antwoordknoppen

Vijs opnieuw de onderkant van uw doosje er af en plaats een breadboard zo dicht mogelijk bij het voorziene gat voor uw utp kabel.

Steek de utp kabel voor uw antwoord doosje door het gat.

Nu gebruikt u de witte draadbrug als GND. Steek deze van de utp kabel in de doorverbinding van de GND en verbindt de witte draadbruggen van uw knoppen ermee met eerst nog een weerstand ertussen.

Verbindt nu de kleuren van de drukknoppen met het overeenkomend kleur van de utp kabel.

Het is aan te raden dat u voor iedere knop op het doosje verft ofzo welk antwoord het is (a, b, c of d). Schrijf dan ook op een blad welke kabel kleur bij welk antwoord letter hoort.

3. Alles aansluiten op het GPIO bord

Hiervoor vijst u best de bovenkant van het doosje los.

We zullen beginnen met eerst de raspberry pi en het breadboard in het doosje te steken. Deze is gemaakt zodat ze er achter elkaar in passen. In de printplaat van de raspberry pi zijn er gaatjes die u kunt vastboren. Het breadboard kunt u opnieuw vastkleven. Plaats hierna ook het GPIO bord op het breadboard.

Voor uw eigen gemak stel ik voor dat u alles utp kabel per utp kabel aansluit en dat u dus ook slechts de utp kabel die u nodig heeft in het bakje steekt.

Het is nu ook aan te raden dat u op zijn minst op de onderkant van ieder doosje met een arcade knop schrijft welk het is (player 1, player 2...) u kunt dit er ook op verven ofzo. Ik heb ervoor geopteerd om player 1 het de arcade knp met het kleur oranje te geven, player 2 groen, player 3 blauw en player 4 rood.

Het shiftregister

We zullen eerst het shiftregister aansluiten. In een latere versie van de code zal deze gebruikt worden om de accelerometers aan te sturen. In dit component zit er aan de bovenkant een halve cirkel in één van de zijkanten. Zorg ervoor dat deze naar het GPIO bord wijst. Sluit dan de bovenste rij van links naar rechts als volgt aan:

  • Pin 1 van het shiftregister aan 3v3
  • Pin 2 aan niets
  • Pin 3 aan GPIO pin 5
  • Pin 4 aan GND
  • Pin 5 aan GPIO pin 20
  • Pin 6 aan GPIO pin 23
  • Pin 7 aan 3v3
  • Pin 8 aan niets

Antwoord bakje

Steek de utp kabel er van door één van de voorgeboorde gaten. Steek dan vervolgens:

  • De witte kabel in de GND
  • De kabel voor antwoord A (bij mij geel) in GPIO pin 21
  • De kabel voor antwoord B (bij mij groen) in GPIO pin 26
  • De kabel voor antwoord C (bij mij grijs) in GPIO pin 19
  • De kabel voor antwoord D (bij mij oranje) in GPIO pin 1

Arcade knoppen

We zullen dit doen in de volgorden van welk nummer u ze gegeven hebt. U steekt best alleen de utp kabel in als u hem nodig hebt om de verbindingen te maken. Anders zal het wat verwarrend worden met al de losse draden.

Ik zal hier eerst oplijsten wat er voor iedere utp draad van de arcade knoppen op dezelfde plaats moet aangesloten worden. Hieronder vindt u dan de pinnen specifiek voor de bakjes zelf.

  • De paarse draad aan 3V3
  • De zwarte draad aan GND
  • De gele draad aan de MISO van het GPIO bord
  • De groene draad aan de MOSI van het GPIO bord
  • De oranje draad aan de SCLK van het GPIO bord

Player 1:

  • De rode draad aan GPIO pin 27
  • De bruine draad aan GPIO pin 17
  • De blauwe draad aan de tweede pin van de bovenste rij op het shiftregister

Player 2:

  • De rode draad aan GPIO pin 25
  • De bruine draad aan GPIO pin 24
  • De blauwe draad aan de eerste pin van de onderste rij van het shiftregister

Player 3:

  • De rode draad aan GPIO pin 18
  • De bruine draad aan GPIO pin 16
  • De blauwe draad aan de tweede pin van de onderste rij van het shiftregister

Player 4:

  • De rode draad aan GPIO pin 6
  • De bruine draad aan GPIO pin 22
  • De blauwe draad aan de derde pin van de onderste rij van het shiftregister

Als u alles aangesloten hebt op het GPIO bord is het slim om deze stap nog eens volledig te overlopen om te controleren als u zeker alles juist gestoken hebt. Hierna kunt u alle doosjes weer dicht vijzen en overgaan naar de volgende stap.

Step 7: De Code En De Database

De code en een dump van de database kunt u vinden op mijn github account. Download deze en volg de volgende stappen om ze op de raspberry pi te krijgen.

Filezilla

U kunt dit programma hier downloaden. Installeer het en volg dan de volgende stappen. U kunt deze ook meevolgen in de foto's.

  • Sluit uw pi aan met een utp kabel aan uw computer en start filezilla op
  • Vul de inputvelden bovenaan in
    • Host: het mac adres van uw pi
    • Gebruikersnaam: de gebruikersnaam van uw pi
    • wachtwoord: het wachtwoord van uw gebruiker
    • poort: 22
  • Druk op snelverbinden en als alles goed gaat ziet op het linker deel van het scherm de mappenstructuur van uw pi
  • Zoek op het rechterdeel van uw scherm (die uw computer structuur is) naar de code en versleep deze naar een map op uw pi.

Installatie van Mysql op de raspberry pi

We zullen eerst Mysql installeren op uw raspberry pi.

Voor we van start gaan zorgen we er best voor dat alle updates en upgrades geïnstalleerd zijn.

sudo apt-get update && sudo apt-get upgrade

We gaan eerst van start om de MySQL server te installeren.

sudo apt-get install mysql-server

Om te kunnen connecteren met de database hebben we ook nog een client nodig. Installeer de mysql-client met de volgende instructie:

sudo apt-get install mysql-client

Tijdens de installatie zal er een paswoord gevraagd worden om in te loggen als "root" user. Deze "root" user zal de volledige controle hebben over de database.

Connecteer met de database via de de standaard "root" user.

mysql -uroot -p
Enter password:

Na "Enter password:" vult u uw eerder gekozen wachtwoord in.

We zullen nu een gebruiker aanmaken voor de database.

CREATE USER 'QuizTimeAdmin' @ 'localhost' IDENTIFIED BY 'QuizTimeAdminPass';
GRANT ALL PRIVILEGES ON *.* TO 'QuizTimeAdmin'@ 'localhost' WITH GRANT OPTION;

Vervolgens zullen we de database aanmaken.

CREATE DATABASE db_quizzen;

We zullen de MySQL connectie nu verlaten.

quit

Nu moeten we nog via Python connectie kunnen maken met de MySQL database. Daarvoor hebben we een MySQL connector nodig.

sudo apt-get install python3-mysql.connector

Pycharm

We zullen nu gebruik maken van het programma pycharm om gemakkelijk alle tabellen aan te maken op onze raspberry pi. U kunt dit programma hier downloaden. Volg dan de volgende stappen:

  • Ga volledig naar de linkerkant van uw programma, klik en sleep. Er zou een venster "database" moeten verschijnen.
  • Klik op het groene plus teken en ga naar "Data Source" klik dan op "MySQL"
  • Geef bij "Name:" het volgende in: "MySQL - @raspberryPi
  • In de tap "General" geeft u dan het volgende in:
    • Host: localhost
    • Port: 3306
    • Database: db_quizzen
    • User: QuizTimeAdmin
    • Password: QuizTimeAdmin
  • Ga dan naar de tap "SSH/SSL", vink "Use SSH tunnel" aan en geef het volgende in:
    • Proxy user: uw mac adres
    • Port: 22
    • Proxy user: de gebruikersnaam van uw rapsberry pi account
    • Auth type: Password
    • Proxy password: het wachtwoord van uw gebruiker
  • Als alles goed is verlopen is er een verbinding tot stand gebracht met uw pi. Klik op OK.

In de lijst is deze verbinding nu toegevoegd. We zullen nu de tabellen aanmaken door gebruik te maken van de dump die u op github vond.

  • Open de dump in een teksteditor zoals notepad++
    • Kopieer de sql code
    • Ga terug naar pycharm en dubbelklik op "db_quizzen". Er zou een nieuw code venster moeten openen
    • Plak hier de sql code
    • Rechtermuisklik op de console en kies voor "run console.sql"
    • Als alles goed gaat, wordt de sql uitgevoerd en zijn alle tabellen aangemaakt op de pi

Step 8: De Website

Als u de vorige stap uitgevoerd hebt bent u klaar om te quizzen.

Sluit de raspberry pi met een utp kabel aan op uw computer en surf in uw favoriete browser naar zijn web adres. Als u een wifi verbinding ingesteld hebt op uw pi kunt u ook zonder utp kabel naar het ipv4 adres surfen dat de pi toegekend kreeg. U komt dan op een website.

Hier kunt u de quiz spelen, een quiz maken, en verschillende statistieken bekijken. U vindt alle uitleg op de site zelf.

Comments

author
Swansong made it!(author)2017-06-19

Those look like fun, I love seeing this kind of thing used in classrooms :)

About This Instructable

412views

8favorites

License:

More by Lucas-Tyteca:QuizTime
Add instructable to: