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

Arduino Video Game Controller: 4 Βήματα
Arduino Video Game Controller: 4 Βήματα

Βίντεο: Arduino Video Game Controller: 4 Βήματα

Βίντεο: Arduino Video Game Controller: 4 Βήματα
Βίντεο: #12 Цифровое чтение/запись VTScada Modbus | ПЛК Outseal Arduino #VTScada #Modbus #ПЛК #ArduinoPLC 2024, Νοέμβριος
Anonim
Ελεγκτής βιντεοπαιχνιδιών Arduino
Ελεγκτής βιντεοπαιχνιδιών Arduino

Έχετε ένα κιτ Arduino, αλλά δεν έχετε ιδέα τι να κάνετε με αυτό; Perhapsσως όχι, αλλά σε αυτό το Instructable θα σας δείξω βήμα προς βήμα πώς να δημιουργήσετε, να κωδικοποιήσετε και να ενσωματώσετε το Arduino στο έργο σας. Προς το παρόν, αυτός ο οδηγός δοκιμάζεται μόνο με το Clickteam Fusion Developer 2.5, αλλά τα βήματα κατασκευής και κώδικα Arduino μπορούν να χρησιμοποιηθούν καθολικά. Αυτός ο οδηγός ενδέχεται να ενημερωθεί για το Unreal και την Unity στο μέλλον.

Βήμα 1: Λίστα αγορών

  • Arduino Uno ή παρόμοιο
  • Καλώδιο USB
  • (400 πόντοι) Breadboard ή 1 x perf/strip board
  • Συμβατά καλώδια με Arduino.
  • Διάφοροι αισθητήρες. Χρησιμοποίησα τα ακόλουθα στο παράδειγμα έργου μου:
  • Πάνελ βάσης Ποτενσιόμετρο 10K breadboard φιλικό
  • Φωτοαντίσταση
  • Αντίσταση ευαίσθητη σε δύναμη

Βήμα 2: Συνδέσεις

Συνδέσεις
Συνδέσεις

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

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

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

// Αυτά ρυθμίζονται στην αρχή και δεν αλλάζουν όταν εκτελείται το πρόγραμμα. Όπως και το ANALOG IN που χρησιμοποιεί η καρφίτσα.

const int potPin = A0; const int fsrAnalogPin = 5; const int photocellPin = 2; // Μεταβλητές: // ΑΙΣΘΗΤΗΡΑΣ ΦΩΤΟΣ: // Μεταβλητή ποσότητας φωτός: int photocellReading; // ΠΟΤΕΝΤΙΟΜΕΤΡΟ // Τιμή int τιμή Ποτενσιόμετρου; // ΑΙΣΘΗΤΗΡΑΣ ΠΙΕΣΗΣ // Αυτή είναι η ακατέργαστη μεταβλητή δεδομένων από τον αισθητήρα πίεσης. int fsrReading; // Χαρτογραφημένη έκδοση της μεταβλητής fsrReading μεταβλητή int; void setup () {// βάλτε τον κωδικό εγκατάστασης εδώ, για να εκτελεστεί μία φορά: pinMode (potPin, INPUT); Serial.begin (9600); } void loop () {// ΑΙΣΘΗΤΗΡΑΣ ΠΙΕΣΗΣ // Εδώ χρησιμοποιούμε το καθορισμένο fsrAnalogPin για την ανάγνωση δεδομένων από αυτήν την καρφίτσα. fsrReading = analogRead (fsrAnalogPin); // Τιμή χάρτη 0-1023 έως 0-255. πίεση = χάρτης (fsrReading, 0, 1023, 0, 255); // Ελέγξτε εάν η πίεση είναι κάτω ή πάνω από μια ορισμένη ποσότητα εκτύπωσης ενός από τα δύο. Αυτή η τυπωμένη μεταβλητή χρησιμοποιείται αργότερα στη μηχανή του παιχνιδιού. if (πίεση 70) {Serial.print ("6"); } // POTENTIOMETER value = analogRead (potPin); // Διαβάστε και αποθηκεύστε αναλογική τιμή από τιμή ποτενσιόμετρου = χάρτης (τιμή, 0, 1023, 0, 360). // Τιμή χάρτη 0-1023 έως 0-360 // Εδώ χωρίζουμε το 360 σε έξι διαφορετικά τμήματα. // Μπορείτε να αλλάξετε το ποσό των τμημάτων σε υψηλότερο ποσό. Κάθε τμήμα θα είχε τότε μικρότερο εύρος. Για παράδειγμα, 8 τμήματα θα έχουν εύρος 45 το καθένα. (360 /ποσότητα τμημάτων) // Εάν η τρέχουσα τιμή πέσει σε ένα τμήμα, θα εκτυπώσει το όνομα αυτού του τμήματος. if (τιμή 60 και τιμή 120 και τιμή 180 και τιμή 240 και τιμή 300 και τιμή <375) Serial.print ("Έξι"). // ΑΙΣΘΗΤΗΡΑΣ ΦΩΤΙΣΜΟΥ // Εδώ για άλλη μια φορά διαβάζουμε και ορίζουμε μια μεταβλητή, στην περίπτωση αυτή photocellReading. photocellReading = analogRead (photocellPin); // Ελέγχουμε την ποσότητα φωτός, με σκοτεινή και πολύ σκοτεινή εκτύπωση a 3 και κανονικές τιμές φωτισμού εκτύπωσης 4. if (photocellReading <10) {Serial.println (" - 3"); } else if (photocellReading <200) {Serial.println (" - 3 -"); } else if (photocellReading <500) {Serial.println (" - 4 -"); } // Οι αριθμοί στο Serial: // Ο πρώτος αριθμός είναι ο αισθητήρας πίεσης, το 5 δεν πιέζεται και το 6 πιέζεται. // Μετά από αυτό, σε ποιο τμήμα είναι επί του παρόντος το Ποτενσιόμετρο. // Και ο τελευταίος αριθμός είναι είτε 3 = σκοτεινός είτε 4 = ανοιχτός.

Βήμα 4: Στη μηχανή παιχνιδιών: Κάντε κλικ στην ομάδα 2.5

Στο Extension Manager βρείτε Serial Object και εγκαταστήστε το.

Τοποθετήστε το Serial Object, έναν μετρητή και μια συμβολοσειρά στο πλαίσιο σας. (Δεξί κλικ στο πλαίσιο - εισαγωγή αντικειμένου)

Στο πρόγραμμα επεξεργασίας συμβάντων δημιουργήστε ένα συμβάν: Εάν τα δεδομένα περιμένουν: Ορίστε αλλοιώσιμη συμβολοσειρά σε GetData ("Serial Object")

Αυτό θα ορίσει τη συμβολοσειρά σε όλα τα δεδομένα που αποστέλλονται από το Arduino, η συμβολοσειρά θα πρέπει τώρα να μοιάζει με την Serial Monitor.

Δημιουργία άλλου συμβάντος Πάντα: Ορισμός μετρητή σε: Εύρεση (συμβολοσειρά $ ("Χορδή"), "4", 0)

Αυτό το παράδειγμα θα προσπαθήσει να βρει το 4 που ισούται με το φως όπως φαίνεται στον κώδικα Arduino.

Αν βρει το 4 θα θέσει τον μετρητή στο 4, αν δεν βρει το 4 ο μετρητής θα είναι -1.

Τώρα μπορείτε να προσθέσετε ένα νέο συμβάν για να κάνετε κάτι με αυτό το αποτέλεσμα:

Αν μετρητής = -1: Εδώ μπορείτε να βάλετε τι πρέπει να συμβαίνει εάν είναι ψευδές, όπως το να έχετε σβήσει μια κινούμενη εικόνα μιας λάμπας.

Αν μετρητής = -1: Αυτό σημαίνει ότι έχει βρει τη μεταβλητή και ο μετρητής έχει οριστεί σε όποια και αν είναι αυτή η μεταβλητή (εφόσον δεν είναι -1), εδώ θα μπορούσατε να το κάνετε έτσι ώστε η κίνηση της λάμπας να ενεργοποιηθεί.

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

Συνιστάται: