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

Test Bare Arduino, με λογισμικό παιχνιδιών με χωρητική είσοδο & LED: 4 βήματα
Test Bare Arduino, με λογισμικό παιχνιδιών με χωρητική είσοδο & LED: 4 βήματα

Βίντεο: Test Bare Arduino, με λογισμικό παιχνιδιών με χωρητική είσοδο & LED: 4 βήματα

Βίντεο: Test Bare Arduino, με λογισμικό παιχνιδιών με χωρητική είσοδο & LED: 4 βήματα
Βίντεο: Arduino: Basics- Bare Minimum 2024, Νοέμβριος
Anonim
Δοκιμή Bare Arduino, με λογισμικό παιχνιδιών χρησιμοποιώντας χωρητική είσοδο & LED
Δοκιμή Bare Arduino, με λογισμικό παιχνιδιών χρησιμοποιώντας χωρητική είσοδο & LED
Δοκιμή Bare Arduino, με λογισμικό παιχνιδιών χρησιμοποιώντας χωρητική είσοδο & LED
Δοκιμή Bare Arduino, με λογισμικό παιχνιδιών χρησιμοποιώντας χωρητική είσοδο & LED

Διαδραστικό παιχνίδι "Push-It" με γυμνό πίνακα Arduino, χωρίς εξωτερικά μέρη ή καλωδίωση (χρησιμοποιεί χωρητική είσοδο "αφής"). Εμφανίζεται παραπάνω, δείχνει ότι λειτουργεί σε δύο διαφορετικούς πίνακες.

Push-Έχει δύο σκοπούς.

  1. Για γρήγορη επίδειξη/επαλήθευση ότι ο πίνακας Arduino λειτουργεί και ότι έχετε ρυθμίσει σωστά τη λήψη ενός νέου σκίτσου κώδικα σε αυτό. Θα μπορείτε να δείτε ότι εκτελεί είσοδο και έξοδο (έννοια ψηφιακού επιπέδου εισόδου, έξοδος στο ενσωματωμένο LED). αποθηκεύστε και ανακτήστε μια τιμή από τη μη πτητική μνήμη EEPROM. Όλα χωρίς να συνδέσετε καλώδια ή συσκευές.
  2. Παρέχετε ένα διασκεδαστικό και προκλητικό παιχνίδι αλληλεπιδρώντας με έναν πίνακα Arduino.

Αυτό το διδακτικό υποθέτει ότι έχετε ήδη εγκαταστήσει ένα Arduino IDE και είστε τουλάχιστον ελάχιστα εξοικειωμένοι με τη χρήση του. Αν όχι, σας παραπέμπω σε αυτούς τους συνδέσμους:

Ξεκινώντας με το Arduino

Προσθήκη υποστήριξης Digispark (με bootloader) στο υπάρχον Arduino 1.6.x IDE

Push-It θα λειτουργήσει με τους περισσότερους πίνακες Arduino, π.χ. έναν πίνακα Nano, Uno ή DigiSpark Attiny85. Το έχω δοκιμάσει με Nano 3.1 και DigiSpark. Στο κείμενο, όταν αναφέρομαι σε ονόματα/αριθμούς ακίδων, θα χρησιμοποιηθούν στον πίνακα Nano (σε αντίθεση με το DigiSpark).

Βήμα 1: Έχοντας τα πράγματα που θα χρειαστείτε

Αυτό είναι απλά οποιοδήποτε Arduino ή συγκρίσιμος πίνακας.

Εάν δεν έχετε ήδη ένα, σας προτείνω να ξεκινήσετε με ένα DigiSpark Pro (~ 12 $) ή ένα Nano 3.0 από το eBay για ~ 3 $ (αλλά θα έχετε επιπλέον μία ή δύο εβδομάδες για να περιμένετε να έρθει από την Κίνα και θα χρειαστεί να εγκαταστήσετε ένα πρόγραμμα οδήγησης USB CH340). Το DigiSpark 10 10 $ (μη Pro) είναι πολύ κατάλληλο για αυτό το «βιντεοπαιχνίδι» παιχνιδιού (αυτή η απογυμνωμένη μονάδα, με μόνο 6 I/O, είναι λίγο πιο περίπλοκη για μεταφόρτωση)

Σύνδεσμοι για το υλικό που χρησιμοποιείται εδώ:

Nano V3.0 Atmega328P στο eBay

Digispark USB Development Board

Βήμα 2: Λήψη και λήψη του κώδικα

Λήψη και λήψη του κώδικα
Λήψη και λήψη του κώδικα

Αντιγράψτε τον παρακάτω κώδικα σε ένα αρχείο σκίτσου arduino (π.χ.…/Push_It/Push_It.ino) Προσπάθησα να το σχολιάσω αρκετά καλά. Ελπίζω να βρίσκετε τον κώδικα εύκολα κατανοητό. Η λογική για τον καθορισμό του χρόνου αύξησης, μείωσης και πότε όχι είναι κάπως περίπλοκη, αλλά αυτό το τμήμα είναι επίσης εξειδικευμένος κώδικας και δεν έχει γενική χρησιμότητα. Για περισσότερες λεπτομέρειες σχετικά με τη δημιουργία ενός νέου "σκίτσου" (έργο κώδικα) που θα χρησιμοποιηθεί με το Arduino IDE δείτε:

Δημιουργία νέου σκίτσου Arduino

Κατεβάστε το σκίτσο 'Push_It' στον μικροελεγκτή μας σύμφωνα με τις οδηγίες του Arduino IDE για την πλακέτα σας.

Βήμα 3: Παίζοντας

Παιχνίδι
Παιχνίδι

Ο στόχος του παιχνιδιού είναι να αναβοσβήνει το LED (επί του σκάφους) όσο το δυνατόν περισσότερο σε ένα σύνολο αναλαμπών που στη συνέχεια επαναλαμβάνεται

Παίζοντας το παιχνίδι:

Το Push-It ξεκινά με ένα μόνο φλας, το οποίο στη συνέχεια θα επαναληφθεί. Εάν αγγίξετε το δάχτυλό σας κοντά στον πείρο εισόδου ενώ είναι αναμμένο το LED, ο επόμενος κύκλος θα αναβοσβήσει δύο φορές.

Κάθε φορά που πατάτε το ψευδο κουμπί κατά την πρώτη αναλαμπή ενός συνόλου αναλαμπών, θα προστίθεται ένα άλλο φλας σε αυτό το σετ. Γενικά δεν έχει σημασία πότε σηκώνετε/αφαιρείτε το δάχτυλό σας.

Αλλά αν "σπρώξετε" πριν ή μετά το πρώτο φλας, ο αριθμός των αναλαμπών σε ένα σετ θα μειωθεί.

Εάν δεν κάνετε τίποτα περισσότερο, ο αριθμός των αναλαμπών σε ένα σύνολο διατηρείται. Επιπλέον, όταν η καταμέτρηση παραμένει αμετάβλητη για έναν πλήρη κύκλο, ο αριθμός μέτρησης αποθηκεύεται στη μνήμη EEPROM.

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

Μόλις φτάσετε τη μονάδα σας σε υψηλό αριθμό φλας, μπορείτε να το πάρετε (ή να το στείλετε με ταχυδρομείο, για το οποίο είναι καλό το DigiSpark) σε έναν φίλο, όπου, όταν το συνδέσετε, θα δείτε πόσο υψηλό αριθμό φλας έχετε αυξήσει τη δική σας προς το. Το βρήκα πολύ δύσκολο να το πάρω μέχρι και πάνω από 8. Με ένα πραγματικό κουμπί που επισυνάπτεται κατάφερα να το πάρω μέχρι και πάνω από δώδεκα. Για να επιστρέψετε σε χαμηλότερο αριθμό, μπορείτε να το πιέσετε επανειλημμένα οποιαδήποτε στιγμή πριν ή μετά το πρώτο φλας. Επίσης, αν μεταβείτε με ακρίβεια τον πείρο εισόδου στη γείωση κατά την ενεργοποίηση, ο αριθμός θα επανέλθει στο 1.

Σημειώστε ότι ο αρχικός πίνακας DigiSpark έχει καθυστέρηση 10 δευτερολέπτων μετά την ενεργοποίηση πριν από τον οποίο θα αρχίσει να εκτελεί τον κώδικα "Push-It" και να παίζει το παιχνίδι. Χρησιμοποιεί αυτόν τον χρόνο για να προσπαθήσει να μιλήσει μέσω των ακίδων USB για να λάβει μια πιθανή νέα ενημέρωση κώδικα λήψης.

Εάν ο πίνακας Arduino που χρησιμοποιείτε έχει LED TX USB, αυτό το LED θα έχει ένα γρήγορο μικροσκοπικό φλας όταν έχετε "πατήσει το κουμπί" αποτελεσματικά. Θα αναβοσβήνει πιο σημαντικό αυτό το LED όταν η τιμή μέτρησης στο EEPROM ενημερωθεί με μια νέα τιμή. Αυτή η ανατροφοδότηση μπορεί να σας βοηθήσει πολύ στο να μάθετε πότε ή να διασφαλίσετε ότι έχετε ενεργοποιήσει αποτελεσματικά ένα συμβάν «πατημένου κουμπιού». Σως χρειαστεί να βεβαιωθείτε ότι δεν αγγίζετε τη γείωση του κυκλώματος (όπως το μέταλλο γύρω από μια υποδοχή micro-USB), έτσι ώστε το σχήμα σας να προκαλεί πράγματι θόρυβο στον ανοιχτό πείρο εισόδου. Θα υπάρξουν πρόσθετες και κάπως απρόβλεπτες προκλήσεις λόγω του ότι ο πείρος εισόδου επιπλέει (δεν τραβιέται προς τα πάνω ή προς τα κάτω από ένα αγώγιμο/αντιστατικό φορτίο) και ο μεταβλητός θόρυβος σήματος που διαπερνά το δάχτυλό σας.

Ένα τετραγωνικό κύμα 250Hz εξάγεται σε έναν πείρο δίπλα στον πείρο εισόδου, ο οποίος βελτιώνει σημαντικά τη βεβαιότητα ενός σήματος εισόδου με έγχυση όταν το δάχτυλό σας καλύπτει και τις δύο ακίδες.

Βρήκα ότι η απάντηση της πλακέτας DigiSpark ήταν αρκετά σταθερά προβλέψιμη με ένα μικρό πάτημα των δακτύλων στη γωνία του πίνακα όπου βρίσκονται οι D3-D5.

Όταν παίζω το "Push-It" μου αρέσει να το κάνω με την πλακέτα συνδεδεμένη με μια μπαταρία USB 5v για φορητές μπαταρίες (δείτε φωτογραφίες). Αυτά μπορούν γενικά να βρεθούν φθηνά σε κάδους δίπλα σε αυτούς των προσαρμογέων USB AC και 12v. στα περισσότερα οποιοδήποτε πολυκατάστημα τμήμα ηλεκτρονικών.

Βήμα 4: Προαιρετικά πειράματα με εξωτερικά εξαρτήματα

Προαιρετικά πειράματα με εξωτερικά εξαρτήματα
Προαιρετικά πειράματα με εξωτερικά εξαρτήματα

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

Με ένα ηχείο, από τη μία πλευρά στη γείωση, αν αγγίξετε το άλλο καλώδιο στο D4, θα ακούσετε τον ήχο ενός τετραγωνικού κύματος 250 Hz. Στο D3 υπάρχει ένα τετραγωνικό κύμα 500Hz. Εάν συνδέσετε το ηχείο μεταξύ D3 και D4 θα ακούσετε ένα σύνθετο από τα δύο σήματα.

Η σύνδεση ενός LED αντί για ηχείο όπως παραπάνω είναι πολύ ενδιαφέρουσα. Δεν χρειάζεται να ανησυχείτε για την τάση, τα επίπεδα ρεύματος, τις αντιστάσεις ή ακόμα και την πολικότητα (χειρότερη περίπτωση δεν ανάβει, απλώς γυρίστε το). Δοκιμάστε, πρώτα απ 'όλα, με το αρνητικό (κάθοδο) καλώδιο συνδεδεμένο στη γείωση και το άλλο είτε στο D3 είτε στο D4. Το LED θα ανάψει «μισό», λόγω των τετραγωνικών κυμάτων. Επιπλέον, δεν απαιτείται αντίσταση καθώς η έξοδος των Μονάδων MicroController είναι τρέχουσα περιορισμένη. Έκανα τρέχουσες μετρήσεις με αποτέλεσμα 15ma και 20ma για τα Attiny85 και Atmega328 MCU αντίστοιχα. Αυτά τα επίπεδα είναι περίπου το ήμισυ της τρέχουσας περιορισμένης τιμής για αυτά τα μέρη λόγω της φύσης του κύκλου λειτουργίας 50% των σημάτων τετραγωνικού κύματος οδήγησης. Οι ενδείξεις του μετρητή είναι στην πραγματικότητα ένας μέσος όρος του ρεύματος μέσω του δοκιμασμένου κυκλώματος.

Είναι ενδιαφέρον ότι αν γεφυρώσετε μεταξύ D3 & D4 με τη λυχνία LED (δείτε την εικόνα πάνω και αριστερά) θα φωτίζει με κάθε τρόπο και περίπου ½ τη φωτεινότητα όπως έκανε με τη μία πλευρά συνδεδεμένη με το έδαφος. Σας προσκαλώ να αναλογιστείτε το γιατί.

Συνιστάται: