Table des matières:

QuizzPi, un jeu-questionnaire Raspberry Pi avec Python : 7 étapes (avec photos)
QuizzPi, un jeu-questionnaire Raspberry Pi avec Python : 7 étapes (avec photos)

Vidéo: QuizzPi, un jeu-questionnaire Raspberry Pi avec Python : 7 étapes (avec photos)

Vidéo: QuizzPi, un jeu-questionnaire Raspberry Pi avec Python : 7 étapes (avec photos)
Vidéo: Tutoriel Raspberry Pi : 7 - Envoyer des requêtes HTTP avec le module Python Requests 2024, Novembre
Anonim
QuizzPi, un jeu-questionnaire Raspberry Pi avec Python
QuizzPi, un jeu-questionnaire Raspberry Pi avec Python
QuizzPi, un jeu-questionnaire Raspberry Pi avec Python
QuizzPi, un jeu-questionnaire Raspberry Pi avec Python

QuizzPi est un jeu-questionnaire de type arcade. QuizzPi est né parce que j'avais besoin de divertir ma fille. Elle a 7 ans et elle demande déjà l'utilisation des nouvelles technologies, l'idée était de créer quelque chose à la fois ludique et pédagogique.

Exigences du projet:

  • Facile à utiliser
  • Portable
  • Mise à niveau facile de l'ensemble de questions et réponses
  • Tableau des meilleurs scores

Plusieurs éléments sont configurables. Vous pouvez créer votre propre base de données de questions/réponses ou vous pouvez utiliser l'un des multiples serveurs qui propose une base de données, où vous décidez du type de questions, difficiles, … J'ai créé pour ma fille une base de données de questions de première année, mais nous pouvons modifiez la configuration pour obtenir des questions de trivia à partir d'un serveur oline. Cette version instructable obtient les questions d'une collaboration de questions et réponses, la base de données Open Trivia. J'ai choisi des questions de culture générale mais vous pouvez choisir des questions de cinéma, de sport ou de religion.

Je m'excuse pour mon mauvais anglais. Je suis espagnol mais j'ai préféré créer cette instructable en anglais afin qu'elle puisse atteindre plus de personnes.

Allons-y!

Étape 1: Vous avez besoin de matériel et d'outils…

Vous avez besoin de matériel et d'outils…
Vous avez besoin de matériel et d'outils…

Vous avez certainement la plupart du matériel à la maison…

  • Raspberry Pi 2/3 avec une carte SD de 8Go ou plus (35$)
  • LCD Raspberry Pi 3,5 pouces avec étui (11$). Voir (c'est facultatif, vous pouvez utiliser n'importe quel affichage que vous avez, il vous suffit de modifier le boîtier QuizzPi pour cela)
  • Piles. Vous pouvez utiliser une banque d'alimentation ou vous pouvez utiliser une batterie de bricolage 18650 (5 $). Dans mon cas, j'ai utilisé une banque d'alimentation Aukey 5000 mah (12 $). Voir
  • Quatre boutons d'arcade. J'en ai chez moi (3$, 12 boutons pour 10$). Voir
  • Un interrupteur marche/arrêt (0.25$). Voir
  • Deux connecteurs USB (0.50$)
  • Un câble USB/micro USB
  • Un haut-parleur pas cher (facultatif) (0,25$). Voir
  • Un amplificateur PAM8403 (optionnel) (0.80$). Voir
  • Quelques fils pour relier les boutons, le connecteur usb et l'interrupteur marche/arrêt aux broches GPIO (1$?)
  • Quatre aimants en néodyme ou vous pouvez utiliser n'importe quoi pour fermer la porte arrière. Voir
  • Contre-plaqué. J'ai utilisé du contreplaqué de 5 mm mais vous pouvez utiliser celui que vous avez à la maison (2$)

Il te faut aussi des outils…

  • Utilitaires de soudage
  • Tournevis
  • Pistolet à colle chaude
  • Imprimante 3D (en option)

Allons-y!

Étape 2: Concevons une coque QuizzPi sympa…

Concevons une coque QuizzPi cool…
Concevons une coque QuizzPi cool…
Concevons une coque QuizzPi cool…
Concevons une coque QuizzPi cool…

La première chose dont nous avons besoin est de savoir de combien d'espace nous avons besoin pour inclure le matériel (Raspberry + écran + boutons + batterie + fils). En prenant en compte les pièces décrites à l'étape précédente j'ai réalisé une conception 3D du boîtier à l'aide du concepteur 3D en ligne gratuit Tinkercad (Voir). Si vous souhaitez imprimer le modèle 3D du boîtier vous pouvez le télécharger à partir du fichier joint Boîtier QuizzPi.stl.

À ce moment-là, j'ai dû décider d'imprimer le modèle sur mon imprimante 3D ou de le fabriquer en contreplaqué. Je pensais qu'étant pour ma fille, je pourrais passer un peu plus de temps à le fabriquer en contreplaqué. Je récupère donc les plans du modèle 3D et coupe le bois.

La prochaine étape est le collage à chaud des pièces…

Étape 3: Fabrication du boîtier en contreplaqué…

Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…
Faire le boîtier en contreplaqué…

Une fois que j'ai coupé toutes les parties en contreplaqué des plans, l'étape suivante consiste à les coller à chaud. Dans certaines jointures, j'ai mis des renforts pour rendre la boîte plus solide. Dans la lunette je dessine au crayon le contour de l'écran LCD, et le découpe. Je fais quatre trous pour les vis. Si vous utilisez un écran différent, vous devez modifier cette chose.

La porte arrière se ferme avec deux aimants collés sur la porte et deux aimants collés sur le boîtier, j'évite donc l'utilisation de charnières.

L'affaire QuizzPi est terminée…

Étape 4: Câblage des broches GPIO, montage du Raspberry+LCD…

Câblage des broches GPIO, montage Raspberry+LCD…
Câblage des broches GPIO, montage Raspberry+LCD…
Câblage des broches GPIO, montage Raspberry+LCD…
Câblage des broches GPIO, montage Raspberry+LCD…
Câblage des broches GPIO, montage Raspberry+LCD…
Câblage des broches GPIO, montage Raspberry+LCD…

Nous devons connecter les boutons au Raspberry Pi pour qu'il sache quel bouton est enfoncé. Les boutons sont connectés aux broches GPIO. Nous avons besoin de quatre broches IN GPIO plus une broche Gnd GPIO. J'ai utilisé les broches GPIO 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) et 39 (Gnd) pour les boutons rouge, jaune, vert et bleu respectivement. Cet écran a une interface SPI. Cela signifie qu'il est connecté à la banque GPIO, donc j'ai d'abord mis des fils terminés en carré dans les broches des boutons, puis j'ai connecté l'écran LCD.

L'étape suivante consistait à monter le boîtier Raspberry + LCD + sur la lunette. J'ai utilisé les propres vis du boîtier Raspberry Pi.

Le QuizzPi est monté…

Étape 5: Batterie, boutons, interrupteur et connecteur USB…

Batterie, boutons, interrupteur et connecteur USB…
Batterie, boutons, interrupteur et connecteur USB…
Batterie, boutons, interrupteur et connecteur USB…
Batterie, boutons, interrupteur et connecteur USB…
Batterie, boutons, interrupteur et connecteur USB…
Batterie, boutons, interrupteur et connecteur USB…

J'ai à nouveau utilisé Tinkercad pour concevoir un clip pour maintenir la banque d'alimentation sur le boîtier. J'ai imprimé le clip avec mon imprimante 3D et je l'ai joint au boîtier avec un pistolet à colle chaude. Je joins le fichier.stl du modèle ci-dessous. Si vous n'avez pas accès à une imprimante 3D, vous pouvez rejoindre la banque d'alimentation avec du ruban velcro.

L'étape suivante consiste à connecter l'interrupteur marche/arrêt entre la banque d'alimentation et le Raspberry Pi. J'ai pris un câble USB et j'ai coupé uniquement le fil d'alimentation, puis j'ai soudé une extrémité de fil à une broche de l'interrupteur marche/arrêt et l'autre extrémité de fil à l'autre broche de l'interrupteur marche/arrêt. Ainsi, lorsque l'interrupteur d'alimentation ne passe pas par l'interrupteur et que Raspberry est éteint et lorsque l'interrupteur d'alimentation passe par l'interrupteur et que la framboise est allumée.

Lorsque la banque d'alimentation se décharge, il est difficile de la retirer de l'étui pour la charger, je ne voulais donc pas la retirer à chaque fois pour la charger. Le problème était que le port de charge de la banque d'alimentation est de type USC C, et je n'avais que le câble de la banque d'alimentation. J'ai donc soudé deux connecteurs USB femelles et mis dans le boîtier. Le connecteur à l'intérieur pour connecter le câble de la banque d'alimentation et le connecteur extérieur pour connecter un câble d'alimentation USB.

Placer les boutons et les câbler était facile. Les boutons ont 2 broches, une broche de chaque bouton se connecte à un câble commun qui va à une broche GPIO de masse, et l'autre broche du bouton se connecte à sa broche GPIO respective de la framboise. Le schéma de câblage est indiqué dans le schéma ci-joint.

Le système audio est basé sur PAM8403, un amplificateur de son bon marché. C'est nécessaire car le son provenant de la prise du Raspberry Pi n'est pas trop puissant pour faire fonctionner un haut-parleur. Vous devez l'alimenter avec 5v ou plus. Dans les images ci-jointes, vous pouvez voir comment câbler l'amplificateur et le haut-parleur. Nous avons besoin d'une prise jack 3,5 mm mâle pour se connecter à la prise audio/vidéo du Rapberry. J'ai soudé 3 fils au jack: audio, vidéo et masse. Le schéma ci-joint montre quelle broche est tout le monde. Ensuite, j'ai soudé un fil à l'interrupteur marche/arrêt pour prendre l'alimentation, et un autre fil au fil de terre du câble de la banque d'alimentation. Ensuite, je connecte les fils du haut-parleur aux sorties de l'amplificateur. La partie facile est d'allouer le système audio dans le boîtier. Vous pouvez voir dans les images.

QuizzPi est monté, sur la dernière photo on voit encore des traces de crayon sur le bois, mais c'est l'heure du logiciel… allons créer un petit moteur de quiz…

Étape 6: Image Rasbian et programmation du moteur de quiz…

Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…
Image Rasbian et programmation du moteur de quiz…

Nous appuyons sur le bouton d'alimentation. Rien ne se passe. Oh mon Dieu! ça ne marche pas ! Qu'est-ce qui ne va pas ? Un câble sans connexion ? Ne vous inquiétez pas, nous devons installer une image sur la carte SD…

Le moteur de quiz est écrit en Python 3, nous avons donc besoin d'une image Raspbian avec le compilateur Python installé. À ce stade, nous devons prendre en compte le type d'écran que nous avons installé. Mon écran est une interface SPI et le vendeur donne une image Raspbian avec tous les pilotes d'écran installés. Cette version de Raspbian a également un moteur Python. Vous pouvez télécharger cette image dans ce lien.

Si vous avez un écran HDMI ou RCA vous pouvez télécharger la dernière image Raspbian disponible sur le site raspberrypi.org. Attention: vous avez besoin de la version Desktop Rasbian, évitez donc de télécharger l'image Lite Raspbian. Cette image contient le compilateur Python.

Pour installer l'image sur la carte SD, nous pouvons utiliser n'importe quelle application. J'utilise Win32diskimager. Ensuite, nous insérons la carte SD dans le Raspberry et appuyons sur l'interrupteur marche/arrêt. Ça marche! Nous devons maintenant créer un programme Python avec le moteur de quizz.

L'étape suivante consiste à télécharger les fichiers du moteur de quiz. J'ai joint le code source dans le fichier QuizzPi.zip. Téléchargez la source et créez un dossier dans le Raspberry Pi:

# mkdir /home/pi/QuizzPi

et décompressez le fichier téléchargé dans ce dossier.

QuizzPi.zip contient ces fichiers:

  • QuizzPi.py - il contient le code
  • Fichiers image-p.webp" />
  • Fichiers audio MP3 - vous pouvez modifier pour personnaliser
  • losmejores.txt - il contient le tableau des scores élevés, vous pouvez le supprimer pour initialiser le tableau
  • Instructions.txt

Je ne donnerai pas une explication exhaustive de la façon dont j'ai programmé le code du moteur en Python car c'est trop difficile pour les personnes sans connaissances en programmation. Ils n'ont qu'à enregistrer les fichiers dans le Raspberry. Les personnes ayant des connaissances en programmation pourront le modifier sans aucune explication;)

Les questions et réponses proviennent d'une base de données collaborative Question&Réponses appelée Open Trivia Database, que vous pouvez trouver ici. Vous pouvez changer la catégorie et la difficulté des questions en changeant une ligne dans le fichier QuizzPi.py:

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

changeant avec l'url obtenu depuis le configurateur api

J'ai conçu les écrans de jeu dans Photoshop, vous pouvez les modifier. Vous devez seulement conserver quelques zones blanches dans l'écran des questions, dans l'écran des résultats et dans les écrans des meilleurs scores car le moteur de jeu écrit dessus.

Vous pouvez également personnaliser les sons du jeu. Vous devez seulement changer les fichiers.mp3 par d'autres que vous voulez, vous devez conserver les mêmes noms. Vous pouvez obtenir beaucoup de sons à partir de bases de données en ligne, j'obtiens les miens à partir de Free Sound Effects.

Vous devez maintenant modifier votre Raspbian pour exécuter automatiquement QuizzPi. Vous pouvez lire cet article où expliquer comment le faire:

Nous avons terminé!!!

Étape 7: Démonstration…

Image
Image

Pour terminer cette instructable, vous pouvez voir cette vidéo. Vous pouvez voir qu'il est facile à utiliser et que la difficulté des questions dépend de vous…

Edit: vidéo mise à jour maintenant avec son !

Concours de microcontrôleurs
Concours de microcontrôleurs

Finaliste du concours de microcontrôleurs

Conseillé: