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

Arduino Dice για επιτραπέζια παιχνίδια: 4 βήματα
Arduino Dice για επιτραπέζια παιχνίδια: 4 βήματα

Βίντεο: Arduino Dice για επιτραπέζια παιχνίδια: 4 βήματα

Βίντεο: Arduino Dice για επιτραπέζια παιχνίδια: 4 βήματα
Βίντεο: CS50 2015 - Week 10 2024, Ιούλιος
Anonim

Από RoboCircuits_comΑκολουθήστε περισσότερα από τον συγγραφέα:

Ηλεκτρονικά Ζάρια με UTSOURCE
Ηλεκτρονικά Ζάρια με UTSOURCE
Ηλεκτρονικά Ζάρια με UTSOURCE
Ηλεκτρονικά Ζάρια με UTSOURCE
Διακόπτης στάθμης νερού χρησιμοποιώντας D882
Διακόπτης στάθμης νερού χρησιμοποιώντας D882
Διακόπτης στάθμης νερού χρησιμοποιώντας D882
Διακόπτης στάθμης νερού χρησιμοποιώντας D882
Ρολόι πραγματικού χρόνου περιβάλλοντος
Ρολόι πραγματικού χρόνου περιβάλλοντος
Ρολόι πραγματικού χρόνου περιβάλλοντος
Ρολόι πραγματικού χρόνου περιβάλλοντος

Σχετικά με: YouTuber, Drone Manufaturer Περισσότερα για το RoboCircuits_com »

Μπορεί να έχετε χρησιμοποιήσει αυτά τα ζάρια ενώ παίζετε LUDO και άλλα επιτραπέζια παιχνίδια. Αλλά ως λάτρης των ηλεκτρονικών πρέπει να αλλάξω αυτήν την τάση.

Έτσι αποφάσισα να φτιάξω ένα ηλεκτρονικό Ζάρι. Χρησιμοποίησα το Arduino για τον σκοπό μου.

Βήμα 1: DIY Arduino

Αυτό το arduino είναι κατασκευασμένο από εμένα χρησιμοποιώντας έναν μικροελεγκτή atmega 328p. Το PCB για αυτό παραγγέλλεται από το "jlcpcb.com" επειδή παρέχει τα καλύτερα σε τάξη pcbs για χαμηλές τιμές. Στη συνέχεια, κόλλησα όλα τα μέρη και τελικά πήρα αυτό το χαριτωμένο Arduino UNO.

Όλα τα σχήματα και τα αρχεία δίνονται στο άρθρο του Webiste μου -

Βήμα 2: Κατασκευή του έργου

εντάξει!!!!

αρκετά για το Arduino. Τώρα ας κάνουμε το έργο. Για τυχαίες τιμές χρησιμοποίησα τυχαία συνάρτηση στο arduino ide για να λαμβάνω τιμές από 1 έως 6 κάθε φορά που πατάω το κουμπί. Δείτε λοιπόν αυτό το πλήρες βίντεο για να μάθετε πώς γίνεται αυτό το έργο.

Βήμα 3: Κωδικός

/* Αυτός ο κωδικός έχει σχεδιαστεί από την RoboCircuits

Εγγραφείτε με στο youtube https://youtube.com/robocircuits ή επισκεφτείτε το robocircuits.com Πρέπει πάντα να συμπεριλαμβάνουμε τη βιβλιοθήκη*/

#include "LedControl.h"

/* Τώρα χρειαζόμαστε ένα LedControl για να συνεργαστούμε. ***** Αυτοί οι αριθμοί καρφιτσών πιθανότατα δεν θα λειτουργήσουν με το υλικό σας */

LedControl lc = LedControl (12, 11, 10, 1);

/ * πάντα περιμένουμε λίγο μεταξύ ενημερώσεων της οθόνης */ ανυπόγραφης μεγάλης καθυστέρησης = 500; byte six [8] = {B00000000, B11011011, B11011011, B00000000, B00000000, B11011011, B11011011, B00000000}; byte πέντε [8] = {B00000000, B01100110, B01100110, B00011000, B00011000, B01100110, B01100110, B00000000}; byte Four [8] = {B00000000, B01100110, B01100110, B00000000, B00000000, B01100110, B01100110, B00000000}; byte three [8] = {B11000000, B11000000, B00000000, B00011000, B00011000, B00000000, B00000011, B00000011}; byte two [8] = {B00000000, B00000000, B00000000, B01100110, B01100110, B00000000, B00000000, B00000000}; byte one [8] = {B00000000, B00000000, B00000000, B00011000, B00011000, B00000000, B00000000, B00000000};

void setup () { / * Το MAX72XX βρίσκεται σε κατάσταση εξοικονόμησης ενέργειας κατά την εκκίνηση, πρέπει να πραγματοποιήσουμε μια κλήση αφύπνισης * / lc.shutdown (0, false). / * Ρυθμίστε τη φωτεινότητα σε μεσαίες τιμές */ lc.setIntensity (0, 8). / * και καθαρίστε την οθόνη */ lc.clearDisplay (0). }

/* Αυτή η μέθοδος θα εμφανίσει τους χαρακτήρες (χρειάζεστε τουλάχιστον 7x7 led για να δείτε ολόκληρους τους χαρακτήρες)* /void one1 () { /* εδώ είναι τα δεδομένα για τους χαρακτήρες* / /* τώρα εμφανίστε τους έναν έναν με ένα μικρό καθυστέρηση */ lc.setRow (0, 0, ένα [0]); lc.setRow (0, 1, ένα [1]); lc.setRow (0, 2, ένα [2]); lc.setRow (0, 3, ένα [3]); lc.setRow (0, 4, ένα [4]); lc.setRow (0, 5, ένα [5]); lc.setRow (0, 6, ένα [6]); lc.setRow (0, 7, ένα [7]); καθυστέρηση (καθυστέρηση) } void two2 () { / * εδώ είναι τα δεδομένα για τους χαρακτήρες * / / * τώρα εμφανίστε τους έναν έναν με μικρή καθυστέρηση * / lc.setRow (0, 0, δύο [0]); lc.setRow (0, 1, δύο [1]); lc.setRow (0, 2, δύο [2]); lc.setRow (0, 3, δύο [3]); lc.setRow (0, 4, δύο [4]); lc.setRow (0, 5, δύο [5]); lc.setRow (0, 6, δύο [6]); lc.setRow (0, 7, δύο [7]); καθυστέρηση (καθυστέρηση) } void three3 () { / * εδώ είναι τα δεδομένα για τους χαρακτήρες * / / * τώρα εμφανίστε τα ένα προς ένα με μικρή καθυστέρηση * / lc.setRow (0, 0, τρία [0]); lc.setRow (0, 1, τρία [1]); lc.setRow (0, 2, τρία [2]); lc.setRow (0, 3, τρία [3]); lc.setRow (0, 4, τρία [4]); lc.setRow (0, 5, τρία [5]); lc.setRow (0, 6, τρία [6]); lc.setRow (0, 7, τρία [7]); καθυστέρηση (καθυστέρηση) } void Four4 () { / * εδώ είναι τα δεδομένα για τους χαρακτήρες * / / * τώρα εμφανίστε τα τέσσερα με τέσσερα με μικρή καθυστέρηση * / lc.setRow (0, 0, τέσσερα [0]); lc.setRow (0, 1, τέσσερα [1]); lc.setRow (0, 2, τέσσερα [2]); lc.setRow (0, 3, τέσσερα [3]); lc.setRow (0, 4, τέσσερα [4]); lc.setRow (0, 5, τέσσερα [5]); lc.setRow (0, 6, τέσσερα [6]); lc.setRow (0, 7, τέσσερα [7]); καθυστέρηση (καθυστέρηση) } void five5 () { / * εδώ είναι τα δεδομένα για τους χαρακτήρες * / / * τώρα εμφανίστε τους πέντε προς πέντε με μικρή καθυστέρηση * / lc.setRow (0, 0, πέντε [0]); lc.setRow (0, 1, πέντε [1]); lc.setRow (0, 2, πέντε [2]); lc.setRow (0, 3, πέντε [3]); lc.setRow (0, 4, πέντε [4]); lc.setRow (0, 5, πέντε [5]); lc.setRow (0, 6, πέντε [6]); lc.setRow (0, 7, πέντε [7]);

καθυστέρηση (καθυστέρηση) } void six6 () { / * εδώ είναι τα δεδομένα για τους χαρακτήρες * / / * τώρα εμφανίστε τους έξι επί έξι με μικρή καθυστέρηση * / lc.setRow (0, 0, έξι [0]); lc.setRow (0, 1, έξι [1]); lc.setRow (0, 2, έξι [2]); lc.setRow (0, 3, έξι [3]); lc.setRow (0, 4, έξι [4]); lc.setRow (0, 5, έξι [5]); lc.setRow (0, 6, έξι [6]); lc.setRow (0, 7, έξι [7]); καθυστέρηση (καθυστέρηση) }

void loop () {int x; εάν (analogRead (A4) == 1000) {x = τυχαίο (1, 6); } switch (x) {case 1: one1 (); Διακοπή; περίπτωση 2: two2 (); Διακοπή; περίπτωση 3: three3 (); Διακοπή; θήκη 4: Four4 (); Διακοπή; θήκη 5: πέντε5 (); Διακοπή; θήκη 6: six6 (); Διακοπή;} }

Βήμα 4: Κάντε Like Share

Εγγραφείτε στο YouTube -

Μας αρέσει στο Facebook -

Επισκεφθείτε -

Συνιστάται: