Πίνακας περιεχομένων:

QuizzPi, ένα Raspberry Pi Trivia παιχνίδι με Python: 7 βήματα (με εικόνες)
QuizzPi, ένα Raspberry Pi Trivia παιχνίδι με Python: 7 βήματα (με εικόνες)

Βίντεο: QuizzPi, ένα Raspberry Pi Trivia παιχνίδι με Python: 7 βήματα (με εικόνες)

Βίντεο: QuizzPi, ένα Raspberry Pi Trivia παιχνίδι με Python: 7 βήματα (με εικόνες)
Βίντεο: CS50 2015 – 10-я неделя 2024, Ιούλιος
Anonim
QuizzPi, ένα Raspberry Pi Trivia Game With Python
QuizzPi, ένα Raspberry Pi Trivia Game With Python
QuizzPi, ένα Raspberry Pi Trivia Game With Python
QuizzPi, ένα Raspberry Pi Trivia Game With Python

Το QuizzPi είναι ένα παιχνίδι trivia τύπου arcade. Το QuizzPi γεννήθηκε επειδή είχα την ανάγκη να δώσω διασκέδαση στην κόρη μου. Είναι 7 ετών και απαιτεί ήδη τη χρήση νέων τεχνολογιών, η ιδέα ήταν να δημιουργηθεί κάτι που να είναι διασκεδαστικό και εκπαιδευτικό.

Απαιτήσεις του έργου:

  • Εύχρηστος
  • Φορητός
  • Εύκολη αναβάθμιση του συνόλου των ερωτήσεων και απαντήσεων
  • Πίνακας υψηλών βαθμολογιών

Πολλά στοιχεία είναι διαμορφώσιμα. Μπορείτε να δημιουργήσετε τη δική σας βάση δεδομένων με ερωτήσεις/απαντήσεις ή μπορείτε να χρησιμοποιήσετε έναν από τους πολλούς διακομιστές που προσφέρει μια βάση δεδομένων, όπου μπορείτε να επιλέξετε τον τύπο των ερωτήσεων, δύσκολο… Δημιούργησα για την κόρη μου μια βάση δεδομένων με ερωτήσεις πρώτης τάξης, αλλά μπορούμε αλλάξτε τη διαμόρφωση για να λαμβάνετε ερωτήσεις trivia από έναν διακομιστή oline. Αυτή η διδακτική έκδοση λάβετε τις ερωτήσεις από συνεργατικές ερωτήσεις και απαντήσεις, την Open Trivia Database. Έχω επιλέξει ερωτήσεις γενικής γνώσης αλλά μπορείτε να επιλέξετε ταινίες, αθλητικές ή θρησκευτικές ερωτήσεις.

Ζητώ συγγνώμη για τα κακά μου αγγλικά. Είμαι Ισπανός αλλά έχω προτιμήσει να δημιουργήσω αυτό το διδακτικό στα αγγλικά, ώστε να μπορεί να φτάσει σε περισσότερους ανθρώπους.

Πάμε!

Βήμα 1: Χρειάζεστε κάποια υλικά και εργαλεία…

Χρειάζεστε υλικά και εργαλεία…
Χρειάζεστε υλικά και εργαλεία…

Έχετε το μεγαλύτερο μέρος του υλικού στο σπίτι σίγουρα…

  • Raspberry Pi 2/3 με κάρτα SD 8 GB ή παραπάνω (35 $)
  • Raspberry Pi LCD 3.5 ιντσών με θήκη (11 $). Δείτε (αυτό είναι προαιρετικό, μπορείτε να χρησιμοποιήσετε οποιαδήποτε οθόνη έχετε, χρειάζεται μόνο να τροποποιήσετε τη θήκη QuizzPi για αυτό)
  • Μπαταρίες. Μπορείτε να χρησιμοποιήσετε ένα power bank ή μπορείτε να χρησιμοποιήσετε μια μπαταρία DIY 18650 (5 $). Στην περίπτωσή μου χρησιμοποίησα ένα power bank Aukey 5000mah (12 $). Βλέπω
  • Τέσσερα κουμπιά arcade. Έχω αυτά στο σπίτι (3 $, 12 κουμπιά για 10 $). Βλέπω
  • Ένας διακόπτης on/off (0,25 $). Βλέπω
  • Δύο υποδοχές USB (0,50 $)
  • Ένα καλώδιο USB/micro USB
  • Ένα φθηνό ηχείο (προαιρετικό) (0,25 $). Βλέπω
  • Ένας ενισχυτής PAM8403 (προαιρετικός) (0,80 $). Βλέπω
  • Ορισμένα καλώδια για σύνδεση κουμπιών, σύνδεσμος usb και διακόπτης ενεργοποίησης/απενεργοποίησης σε καρφίτσες GPIO (1 $;)
  • Τέσσερις μαγνήτες νεοδυμίου ή μπορείτε να χρησιμοποιήσετε οτιδήποτε για να κλείσετε την πίσω πόρτα. Βλέπω
  • Κόντρα πλακέ. Χρησιμοποίησα κόντρα πλακέ 5mm αλλά μπορείτε να χρησιμοποιήσετε ό, τι έχετε στο σπίτι (2 $)

Χρειάζεστε και κάποια εργαλεία…

  • Βοηθητικά προγράμματα συγκόλλησης
  • Βιδωτοί οδηγοί
  • Όπλο Hotglue
  • Τρισδιάστατος εκτυπωτής (προαιρετικός)

Πάμε!

Βήμα 2: Ας σχεδιάσουμε μια δροσερή θήκη QuizzPi…

Ας σχεδιάσουμε μια όμορφη θήκη QuizzPi…
Ας σχεδιάσουμε μια όμορφη θήκη QuizzPi…
Ας σχεδιάσουμε μια όμορφη θήκη QuizzPi…
Ας σχεδιάσουμε μια όμορφη θήκη QuizzPi…

Το πρώτο πράγμα που χρειαζόμαστε είναι να γνωρίζουμε πόσοι χώροι χρειαζόμαστε για να συμπεριλάβουμε υλικό (Raspberry + οθόνη + κουμπιά + μπαταρία + καλώδια). Λαμβάνοντας υπόψη τα μέρη που περιγράφονται στο προηγούμενο βήμα, έκανα έναν τρισδιάστατο σχεδιασμό της θήκης χρησιμοποιώντας τον δωρεάν διαδικτυακό σχεδιαστή 3D Tinkercad (Βλέπε). Εάν θέλετε να εκτυπώσετε το μοντέλο 3D της θήκης, μπορείτε να το κατεβάσετε από το συνημμένο αρχείο θήκη QuizzPi.stl

Εκείνη τη στιγμή έπρεπε να αποφασίσω αν θα εκτυπώσω το μοντέλο στον τρισδιάστατο εκτυπωτή μου ή θα το φτιάξω από κόντρα πλακέ. Νόμιζα ότι όντας για την κόρη μου θα μπορούσα να ξοδέψω λίγο περισσότερο χρόνο για να το φτιάξω από κόντρα πλακέ. Έτσι παίρνω τα σχέδια από το τρισδιάστατο μοντέλο και κόβω το ξύλο.

Το επόμενο βήμα είναι να κολλήσετε θερμά τα μέρη…

Βήμα 3: Φτιάχνοντας τη θήκη από κόντρα πλακέ…

Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…
Φτιάχνοντας τη θήκη από κόντρα πλακέ…

Μόλις έκοψα όλα τα μέρη κόντρα πλακέ των σχεδίων, το επόμενο βήμα είναι να τα κολλήσω θερμά. Σε ορισμένες ενώσεις έβαλα ενισχύσεις για να γίνει το κουτί πιο δυνατό. Στο πλαίσιο, σχεδιάζω με το μολύβι το περίγραμμα της οθόνης LCD και το κόβω. Κάνω τέσσερις τρύπες για τις βίδες. Εάν χρησιμοποιείτε διαφορετική οθόνη, πρέπει να τροποποιήσετε αυτό το στοιχείο.

Η πίσω πόρτα κλείνει με δύο μαγνήτες κολλημένους στην πόρτα και δύο μαγνήτες κόλλα στη θήκη, έτσι αποφεύγω τη χρήση μεντεσέδων.

Η θήκη QuizzPi ολοκληρώθηκε…

Βήμα 4: Καλωδίωση καρφιτσών GPIO, τοποθέτηση Raspberry+LCD…

Καλωδίωση καρφίτσες GPIO, τοποθέτηση Raspberry+LCD…
Καλωδίωση καρφίτσες GPIO, τοποθέτηση Raspberry+LCD…
Καλωδίωση καρφίτσες GPIO, τοποθέτηση Raspberry+LCD…
Καλωδίωση καρφίτσες GPIO, τοποθέτηση Raspberry+LCD…
Καλωδίωση καρφίτσες GPIO, τοποθέτηση Raspberry+LCD…
Καλωδίωση καρφίτσες GPIO, τοποθέτηση Raspberry+LCD…

Πρέπει να συνδέσουμε τα κουμπιά στο Raspberry Pi, ώστε να μπορεί να γνωρίζει ποιο κουμπί πατάει. Τα κουμπιά συνδέονται με καρφίτσες GPIO. Χρειαζόμαστε τέσσερις ακίδες IN GPIO συν έναν ακροδέκτη Gnd GPIO. Χρησιμοποίησα GPIO pin 31 (GPIO6), 33 (GPIO13), 35 (GPIO19), 37 (GPIO26) και 39 (Gnd) για κόκκινα, κίτρινα, πράσινα και μπλε κουμπιά αντίστοιχα. Αυτή η οθόνη έχει διασύνδεση SPI. Αυτό σημαίνει ότι είναι συνδεδεμένο με την τράπεζα GPIO, οπότε πρώτα έβαλα σύρματα που τελείωσαν σε τετράγωνο στις καρφίτσες των κουμπιών και μετά ένωσα την οθόνη LCD.

Το επόμενο βήμα ήταν η τοποθέτηση της θήκης Raspberry+LCD+στο πλαίσιο. Χρησιμοποίησα τις βίδες της θήκης Raspberry Pi.

Το QuizzPi είναι τοποθετημένο…

Βήμα 5: Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…

Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…
Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…
Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…
Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…
Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…
Μπαταρία, κουμπιά, διακόπτης και συνδετήρας USB…

Χρησιμοποίησα ξανά το Tinkercad για να σχεδιάσω ένα κλιπ για να κρατάει το power bank στη θήκη. Τύπωσα το κλιπ με τον τρισδιάστατο εκτυπωτή μου και ένωσα τη θήκη με πιστόλι θερμής κόλλας. Επισυνάπτω το αρχείο.stl του μοντέλου παρακάτω. Εάν δεν έχετε πρόσβαση σε τρισδιάστατο εκτυπωτή, μπορείτε να συμμετάσχετε στο power bank με ταινία Velcro.

Το επόμενο βήμα είναι να συνδέσετε τον διακόπτη on/off μεταξύ της τράπεζας ισχύος και του Raspberry Pi. Πήρα ένα καλώδιο USB και έκοψα μόνο το καλώδιο τροφοδοσίας, έπειτα κόλλησα το ένα άκρο του καλωδίου στη μία ακίδα του διακόπτη ενεργοποίησης/απενεργοποίησης και το άλλο άκρο του σύρματος στην άλλη ακίδα του διακόπτη on/off. Έτσι, όταν ο διακόπτης απενεργοποίησης δεν περνάει από το swtich και το Raspberry είναι απενεργοποιημένο και όταν ο διακόπτης ενεργοποίησης περνάει από το swtich και το Raspberry είναι ενεργοποιημένο.

Όταν οι εκφορτίσεις της τράπεζας τροφοδοσίας είναι πρόβλημα να το βγάλετε από τη θήκη για να το φορτίσετε, οπότε δεν ήθελα να το βγάζω κάθε φορά για φόρτιση. Το πρόβλημα ήταν ότι η θύρα φόρτισης του power bank είναι τύπου USC C, και είχα μόνο το καλώδιο του power bank. Έτσι κόλλησα δύο θηλυκές υποδοχές USB και έβαλα τη θήκη. Ο συνδετήρας στο εσωτερικό για τη σύνδεση του καλωδίου τροφοδοσίας και ο εξωτερικός σύνδεσμος για τη σύνδεση καλωδίου τροφοδοσίας USB.

Η τοποθέτηση των κουμπιών και η καλωδίωση τους ήταν εύκολη. Τα κουμπιά έχουν 2 ακίδες, μία ακίδα κάθε κουμπιού συνδέεται με ένα κοινό καλώδιο που πηγαίνει σε μια γείωση καρφίτσα GPIO και η άλλη καρφίτσα του κουμπιού συνδέεται με την αντίστοιχη καρφίτσα GPIO του βατόμουρου. Το διάγραμμα καλωδίωσης φαίνεται στο συνημμένο διάγραμμα.

Το ηχοσύστημα βασίζεται στο PAM8403, έναν φθηνό ενισχυτή ήχου. Είναι απαραίτητο επειδή ο ήχος που προέρχεται από την υποδοχή του Raspberry Pi δεν είναι πολύ ισχυρός για να κάνει το ηχείο να λειτουργεί. Πρέπει να το τροφοδοτήσετε με 5v ή περισσότερο. Στις συνημμένες εικόνες μπορείτε να δείτε πώς να συνδέσετε τον ενισχυτή και το ηχείο. Χρειαζόμαστε μια αρσενική υποδοχή 3,5 mm για να συνδεθούμε στην υποδοχή ήχου/βίντεο του Rapberry. κόλλησα 3 καλώδια στην υποδοχή: ήχο, βίντεο και γείωση. Το συνημμένο διάγραμμα δείχνει ποια είναι η καρφίτσα του καθενός. Στη συνέχεια, κόλλησα ένα καλώδιο στον διακόπτη On/Off για λήψη ισχύος και ένα άλλο καλώδιο στο καλώδιο γείωσης από το καλώδιο της τράπεζας ισχύος. Στη συνέχεια, συνδέω τα καλώδια από το ηχείο στις εξόδους του ενισχυτή. Το εύκολο μέρος είναι η κατανομή του ηχοσυστήματος στην θήκη. Μπορείτε να δείτε στις εικόνες.

Το QuizzPi είναι τοποθετημένο, στην τελευταία φωτογραφία μπορούμε ακόμα να δούμε σημάδια μολυβιών στο ξύλο, αλλά είναι ώρα λογισμικού… πάμε να δημιουργήσουμε μια μικροσκοπική μηχανή κουίζ…

Βήμα 6: Rasbian Image and Programming the Quiz Engine…

Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…
Rasbian Image and Programming the Quiz Engine…

Πατάμε το κουμπί λειτουργίας. Δεν συμβαίνει τίποτα. Ω Θεέ μου! Δεν δουλεύει! Τι μπορεί να φταίει; Υπάρχει καλώδιο χωρίς σύνδεση; Μην ανησυχείτε, πρέπει να εγκαταστήσουμε μια εικόνα στην κάρτα SD…

Ο κινητήρας κουίζ είναι γραμμένος σε Python 3, οπότε χρειαζόμαστε μια εικόνα Raspbian με εγκατεστημένο τον μεταγλωττιστή Python. Σε αυτό το σημείο πρέπει να λάβουμε υπόψη τον τύπο οθόνης που έχουμε εγκαταστήσει. Η οθόνη μου είναι διασύνδεση SPI και ο πωλητής δίνει μια εικόνα Raspbian με όλα τα προγράμματα οδήγησης οθόνης εγκατεστημένα. Αυτή η έκδοση του Raspbian διαθέτει επίσης κινητήρα Python. Μπορείτε να κατεβάσετε αυτήν την εικόνα σε αυτόν τον σύνδεσμο.

Εάν διαθέτετε οθόνη HDMI ή RCA, μπορείτε να κατεβάσετε την τελευταία εικόνα Raspbian διαθέσιμη στον ιστότοπο raspberrypi.org. Προσοχή: χρειάζεστε την έκδοση Desktop Rasbian, οπότε αποφύγετε να κάνετε λήψη εικόνας Lite Raspbian. Αυτές οι εικόνες περιέχουν μεταγλωττιστή Python.

Για να εγκαταστήσουμε την εικόνα στην κάρτα SD μπορούμε να χρησιμοποιήσουμε οποιαδήποτε εφαρμογή. Χρησιμοποιώ Win32diskimager. Στη συνέχεια, εισάγουμε την κάρτα SD στο Raspberry και πατάμε το διακόπτη on/off. Δουλεύει! Τώρα πρέπει να δημιουργήσουμε ένα πρόγραμμα Python με τη μηχανή κουίζ.

Το επόμενο βήμα είναι να κατεβάσετε τα αρχεία της μηχανής κουίζ. Έχω επισυνάψει τον πηγαίο κώδικα στο αρχείο QuizzPi.zip. Κατεβάστε την πηγή και δημιουργήστε ένα φάκελο στο Raspberry Pi:

# mkdir/home/pi/QuizzPi

και αποσυμπιέστε το αρχείο που έχετε κατεβάσει σε αυτόν το φάκελο.

Το QuizzPi.zip περιέχει αυτά τα αρχεία:

  • QuizzPi.py - περιέχει τον κώδικα
  • Αρχεία εικόνας-p.webp" />
  • Αρχεία ήχου MP3 - μπορείτε να τα αλλάξετε για να τα εξατομικεύσετε
  • losmejores.txt - περιέχει πίνακα High Scores, μπορείτε να τον διαγράψετε για να προετοιμάσετε τον πίνακα
  • Instructions.txt

Δεν θα δώσω μια εξαντλητική εξήγηση για το πώς έχω προγραμματίσει τον κώδικα του κινητήρα στην Python επειδή είναι πολύ δύσκολο για άτομα χωρίς γνώσεις προγραμματισμού. Χρειάζεται μόνο να αποθηκεύσουν τα αρχεία στο Raspberry. Τα άτομα με γνώση προγραμματισμού θα μπορούν να το τροποποιήσουν χωρίς καμία εξήγηση.)

Οι ερωτήσεις και οι απαντήσεις προέρχονται από μια συνεργατική βάση δεδομένων ερωτήσεων & απαντήσεων που ονομάζεται Open Trivia Database, μπορείτε να βρείτε εδώ. Μπορείτε να αλλάξετε την κατηγορία και τις δύσκολες ερωτήσεις που αλλάζουν μια γραμμή στο αρχείο QuizzPi.py:

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

αλλαγή με το url που λαμβάνεται από το διαμορφωτή api

Σχεδίασα τις οθόνες παιχνιδιών στο Photoshop, μπορείτε να τις τροποποιήσετε. Απλώς πρέπει να διατηρήσετε ορισμένες λευκές περιοχές στην οθόνη ερωτήσεων, στην οθόνη αποτελεσμάτων και στις οθόνες υψηλών βαθμολογιών, επειδή η μηχανή παιχνιδιού γράφει σε αυτές.

Μπορείτε επίσης να προσαρμόσετε τους ήχους του παιχνιδιού. Πρέπει μόνο να αλλάξετε τα αρχεία.mp3 από άλλους που θέλετε, πρέπει να διατηρήσετε τα ίδια ονόματα. Μπορείτε να λάβετε πολλούς ήχους από διαδικτυακές βάσεις δεδομένων, παίρνω νάρκες από το Free Sound Effects.

Τώρα πρέπει να τροποποιήσετε το Raspbian για να εκτελέσετε αυτόματα το QuizzPi. Μπορείτε να διαβάσετε αυτό το άρθρο όπου εξηγείτε πώς να το κάνετε:

Τελειώσαμε !!!

Βήμα 7: Επίδειξη…

Image
Image

Για να ολοκληρώσετε αυτό το διδακτικό μπορείτε να δείτε αυτό το βίντεο. Μπορείτε να δείτε ότι είναι εύκολο στη χρήση και το δύσκολο των ερωτήσεων εξαρτάται από εσάς…

Επεξεργασία: Το βίντεο ενημερώθηκε τώρα με ήχο!

Διαγωνισμός μικροελεγκτών
Διαγωνισμός μικροελεγκτών

Επόμενος στο Διαγωνισμό Μικροελεγκτών

Συνιστάται: