- Απαιτήσεις λογισμικού και υλικού:
- Έννοια πίσω από:
- Διάγραμμα κυκλώματος:
- Πρόγραμμα Arduino:
- Εργαζόμενος:
Όλα ξεκίνησαν με ένα μικρό παιχνίδι από τους σκοτεινούς χρόνους που ονομάζεται «Μάριο», από τη στιγμή που είμαι ένας μικροσκοπικός τύπος που πηδούσε στις πάπιες για να σώσει την πριγκίπισσα μου μέχρι να γίνει ένας αρσενικός όμορφος Πρίγκιπας περιαγωγή στην Περσία (Πρίγκιπας της Περσίας) που πολεμά ενάντια στο σκοτάδι για να σώσω τον κόσμο μου πίσω ήμουν μεγάλος θαυμαστής που παίζω βιντεοπαιχνίδια και μεγάλωσα παίζοντας τα. Αλλά βαριούνται μερικές φορές και νιώθω λιγότερο εμπλεκόμενος σε αυτό. Σήμερα, οι προηγμένες κονσόλες παιχνιδιών επιτρέπουν εικονικό παιχνίδι και μας βοηθά να αισθανόμαστε το παιχνίδι πολύ καλύτερα από ένα πληκτρολόγιο ή ποντίκι.
Ως ενθουσιώδης του Arduino κουράστηκα να παίζω το διάσημο παιχνίδι που ονομάζεται "Angry Birds" χρησιμοποιώντας πληκτρολόγιο και ποντίκι και αποφάσισα να φτιάξω το δικό μου Game Controller χρησιμοποιώντας έναν αισθητήρα Flex και ένα ποτενσιόμετρο. Όταν τραβιέται ο αισθητήρας flex, το πουλί στον καταπέλτη θα τραβηχτεί και μπορείτε να χρησιμοποιήσετε το ποτενσιόμετρο για να ορίσετε την κατεύθυνση προς την οποία πρέπει να ξεκινήσει. Στη συνέχεια, όταν απελευθερώσετε τον αισθητήρα flex, το πουλί θα ξεκινήσει. Μου άρεσε πολύ να το κάνω, οπότε αν θέλετε να δημιουργήσετε κάτι παρόμοιο, τότε αυτό το σεμινάριο θα είναι χρήσιμο. Αυτό το σεμινάριο θα είναι επίσης χρήσιμο στον έλεγχο του δρομέα ποντικιού χρησιμοποιώντας ποτενσιόμετρο.
Απαιτήσεις λογισμικού και υλικού:
Λογισμικό:
- Arduino IDE
- Επεξεργασία IDE
- Παιχνίδι Angry Birds στον υπολογιστή
Σκεύη, εξαρτήματα:
- Arduino (Οποιαδήποτε έκδοση)
- Ποτενσιόμετρο
- Αισθητήρας Flex
- Αντίσταση 47K ohm
- Σύνδεση καλωδίων
- Ψωμί
Έννοια πίσω από:
Ο πίνακας Arduino διαβάζει τις τιμές από το ποτενσιόμετρο και το Flex Senor και τις μεταδίδει στο φορητό υπολογιστή / υπολογιστή μέσω θύρας COM USB μέσω της κανονικής λειτουργίας Serial.write () . Στη συνέχεια, διαβάσαμε αυτές τις πληροφορίες χρησιμοποιώντας την Επεξεργασία και ελέγχουμε τον κέρσορα του ποντικιού χρησιμοποιώντας την κλάση Ρομπότ στην Java, η οποία υποστηρίζεται από την επεξεργασία IDE. Έχουμε προγραμματίσει το IDE επεξεργασίας με τέτοιο τρόπο ώστε όταν τραβηχτεί ο αισθητήρας Flex να γίνει κλικ του ποντικιού και με βάση το πόσο τραβιέται ο δείκτης του ποντικιού θα κινείται προς την κατεύθυνση Χ. Στη συνέχεια, με βάση την τιμή από το ποτενσιόμετρο, θα μετακινήσουμε τον κέρσορα του ποντικιού στην κατεύθυνση Υ, με αυτόν τον τρόπο μπορούμε να ορίσουμε την κατεύθυνση στην οποία πρέπει να εκτοξευθεί το πουλί.
Διάγραμμα κυκλώματος:
Το κύκλωμα για την αναπαραγωγή του Angry Bird χρησιμοποιώντας Flex Sensor και Potentiometer είναι εύκολο.
Έχουμε απλώς συνδέσει ένα ποτενσιόμετρο και έναν αισθητήρα flex με τις αναλογικές εισόδους (A0, A1) του Arduino. Η έξοδος του αισθητήρα Flex τραβιέται επίσης χρησιμοποιώντας μια αντίσταση pull down 47K.
Μπορείτε να το συνδέσετε απευθείας στο breadboard ή να τα κολλήσετε σε έναν πίνακα Perf και να το συναρμολογήσετε σε γάντια ή κάτι για να το κάνετε πιο δημιουργικό. Απλώς χρησιμοποίησα ένα breadboard για να κάνω τις συνδέσεις μου όπως φαίνεται παρακάτω:
Πρόγραμμα Arduino:
Ο πλήρης κωδικός Arduino δίνεται στο τέλος του σεμιναρίου. Λίγες σημαντικές γραμμές εξηγούνται παρακάτω.
Αρχικοποιούμε το πρόγραμμα ώστε να λειτουργεί με ρυθμό baud 9600 και αρχίζουμε να διαβάζουμε τις τιμές από τον αισθητήρα Flex και το Ποτενσιόμετρο. Όπως γνωρίζουμε , η λειτουργία serial.write () μπορεί να στείλει μόνο ένα byte δεδομένων κάθε φορά. Δεδομένου ότι ένα byte είναι 8 bits και 2 ^ 8 = 256. Θα μπορέσουμε να στείλουμε τιμές από 0 έως 256. Επομένως, πρέπει να συμπιέσουμε τις τιμές της εξόδου αισθητήρα Flex και της εξόδου ποτενσιόμετρου σε 0 έως 256.
Για να το κάνουμε αυτό χρησιμοποιούμε τη συνάρτηση map () στο Arduino. Όλες οι τιμές από τον αισθητήρα flex μετατρέπονται από 5 σε 100, οπότε όταν λυγίζουμε τον αισθητήρα θα αυξάνεται από 5 και όταν θα κυκλοφορήσει θα επιστρέψει στο 5. Για να αναφέρουμε τα κλικ του ποντικιού χρησιμοποιούνται οι τιμές 1 και 0. Όταν αποστέλλεται 1, το ποντίκι πιέζεται και όταν το 0 αποστέλλεται, το ποντίκι απελευθερώνεται
εάν (FlexValue> = 65 && FlexValue <= 120) // ο ευέλικτος αισθητήρας μου κυμαίνεται από 65 έως 120, μπορεί να είναι διαφορετικός {FlexValue = map (FlexValue, 120,65,0,100); // με βάση την κάμψη μετατρέψτε σε 0 έως 100 εάν (FlexValue> = 5) // 1 και 0 χρησιμοποιούνται για κλικ του ποντικιού, οπότε ξεκινήστε από το 5 {Mclick = true; Serial.write (1); // 1 αποστέλλεται για να κάνετε αριστερό κλικ στο ποντίκι Serial.write (FlexValue). // Η τιμή Flex είναι η απόσταση μετακίνησης του ποντικιού προς την κατεύθυνση X} αλλιώς {Mclick = false; Serial.write (0);}}
Παρομοίως, οι τιμές από το ποτενσιόμετρο μετατρέπονται από 101 σε 200 τραγουδούν τη συνάρτηση map () και αποστέλλονται στη θύρα Laptops COM μήνυση της λειτουργίας Serial.write () όπως φαίνεται παρακάτω.
εάν (potValue <= 200) {potValue = χάρτης (potValue, 0,200,101,201); // Με βάση με τη σειρά του μετατρέψτε σε 101 σε 201 Serial.write (potValue); // Η τιμή ποτ είναι η απόσταση για να μετακινήσετε το ποντίκι στην κατεύθυνση Y}
Το υπόλοιπο του προγράμματος εξηγείται χρησιμοποιώντας τα σχόλια.
Κωδικός επεξεργασίας:
Η επεξεργασία είναι μια εφαρμογή ανάπτυξης ανοιχτού κώδικα και μπορεί εύκολα να μεταφορτωθεί και να χρησιμοποιηθεί για την ανάπτυξη ενδιαφέρων έργων χρησιμοποιώντας το Arduino ή άλλους μικροελεγκτές. Έχουμε ήδη κάνει λίγα έργα χρησιμοποιώντας την Επεξεργασία και μπορείτε να τα ελέγξετε κάνοντας κλικ στους παρακάτω συνδέσμους.
- DIY FM Radio χρησιμοποιώντας επεξεργασία
- Έλεγχος εικονικής πραγματικότητας / χειρονομίας χρησιμοποιώντας το Arduino
- Ιδιωτική αίθουσα συνομιλίας χρησιμοποιώντας το Arduino.
- Σύστημα ραντάρ Arduino χρησιμοποιώντας Επεξεργασία APP και αισθητήρα υπερήχων
- Ανίχνευση και παρακολούθηση προσώπου σε πραγματικό χρόνο χρησιμοποιώντας το Arduino
- Ταχύμετρο DIY χρησιμοποιώντας Arduino και Processing
- Παιχνίδι Ping Pong χρησιμοποιώντας το Επιταχυνσιόμετρο Arduino
- Biped Robot χρησιμοποιώντας το Arduino
- DIY Arduino Camera Thermal Imaging
Σε αυτό το έργο χρησιμοποιήσαμε το IDE επεξεργασίας για να διαβάσουμε τις τιμές θύρας COM και να ελέγξουμε το δείκτη του ποντικιού με βάση τις τιμές που λαμβάνονται μέσω της θύρας COM. Ο πλήρης Κώδικας επεξεργασίας για αυτό το χειριστήριο Angry Bird παιχνίδι μπορείτε να το κατεβάσετε από τον παρακάτω σύνδεσμο:
- Επεξεργασία κώδικα για αυτό το Angry Bird Game Controller (κάντε δεξί κλικ και «Αποθήκευση συνδέσμου ως»)
Το πρόγραμμα Arduino βρίσκεται στο τέλος αυτού του σεμιναρίου. Ο κωδικός επεξεργασίας τροποποιήθηκε για να ταιριάζει για τον σκοπό μας από τον κωδικό που δόθηκε από τον yoggy στη σελίδα του GitHub.
Τα δεδομένα που προέρχονται από τη θύρα COM πρέπει να διαβάζονται με τον ίδιο ρυθμό baud με τον οποίο εστάλη από το Arduino. Ελέγξτε επίσης ποια θύρα COM είναι συνδεδεμένη το Arduino χρησιμοποιώντας τη διαχείριση συσκευών. Το Arduino μου συνδέθηκε με το COM3 και ήταν το 0ο λιμάνι στον υπολογιστή μου και ο ρυθμός baud στο Arduino ήταν 9600, οπότε ο κώδικας έχει ως εξής
port = new Serial (αυτό, Serial.list (), 9600);
Μόλις αρχίσουμε να διαβάζουμε τις τιμές, το διακρίνουμε αναγνωρίζοντάς το με βάση την αξία του σχετικά με τον τρόπο αποστολής από το Arduino. Οι τιμές αντιστοιχίζονται ξανά από 0 έως 100, έτσι ώστε να μπορούμε να ελέγξουμε το ποντίκι με βάση αυτήν την τιμή.
εάν (port.available ()> 0) {data = port.read (); println (δεδομένα); // Διαβάστε τα δεδομένα από τη θύρα COM και αποθηκεύστε τα σε δεδομένα} εάν (δεδομένα> = 101 && δεδομένα <= 201) // Εάν η τιμή εάν από 101 έως 201 τότε πρέπει να είναι από το Ποτενσιόμετρο {Turn = int (χάρτης (δεδομένα, 101,201,0,100)); // Χρησιμοποιήστε αυτήν την τιμή για να γυρίσετε το catapullt} if (data> = 5 && data <= 100) // Εάν η τιμή εάν από 5 έως 100 τότε πρέπει να είναι από το Flex Sensor {Pull = int (χάρτης (δεδομένα, 5.100, 0,100));} // Χρησιμοποιήστε αυτήν την τιμή για να τραβήξετε τον καταπέλτη εάν (data == 1) κάντε κλικ = true // Χρησιμοποιήστε αυτήν την τιμή για να πατήσετε το κουμπί του ποντικιού εάν (data == 0) click = false; // Χρησιμοποιήστε αυτήν την τιμή για να απελευθερώσετε το κουμπί του ποντικιού
Μόλις κατηγοριοποιήσουμε τα δεδομένα, μπορούμε στη συνέχεια να ελέγξουμε το ποντίκι χρησιμοποιώντας το Robot Java Class στο Processing. Η εντολή robot.mouseMove (crntX-Pull, crntY + Turn); μπορεί να χρησιμοποιηθεί για να μετακινήσετε το ποντίκι σε οποιαδήποτε επιθυμητή θέση και τις γραμμές robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); και robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); μπορεί να χρησιμοποιηθεί για να πατήσετε ή να αφήσετε το κουμπί του ποντικιού αντίστοιχα.
if (click == false) // όταν το Flex Sesnor δεν τραβηχτεί {crntX = (int) p.getX (); crntY = (int) p.getY (); εάν (Pull> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Απελευθερώστε το κουμπί του ποντικιού} εάν (κάντε κλικ == true) // όταν τραβήξετε το Flex Sesnor {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Πατήστε το κουμπί του ποντικιού robot.mouseMove (crntX-Pull, crntY + Turn); // Μετακινήστε το ποντίκι με βάση την τιμή Flex και POT}}
Το IDE επεξεργασίας κατά την εκκίνηση θα εμφανίσει επίσης ένα μικρό πλαίσιο διαλόγου στο οποίο μπορείτε να βρείτε τις τιμές Pull, Turn και status του Mouse Click όπως φαίνεται παρακάτω
Αυτή η λεπτομέρεια μπορεί να χρησιμοποιηθεί για τον εντοπισμό σφαλμάτων του Προγράμματος ή τη διόρθωση τυχόν απαιτούμενων δεδομένων.
Εργαζόμενος:
Για να λειτουργήσει αυτό το έργο Angry Bird χρησιμοποιώντας τον παρεχόμενο κωδικό, συναρμολογήστε το υλικό σας σύμφωνα με το διάγραμμα κυκλώματος και ανεβάστε τον δεδομένο κωδικό Arduino. Στη συνέχεια, σημειώστε σε ποια θύρα COM είναι συνδεδεμένο το Arduino και πραγματοποιήστε τις απαραίτητες αλλαγές στον κώδικα επεξεργασίας και ξεκινήστε το σκίτσο επεξεργασίας.
Τώρα, απλώς ξεκινήστε το παιχνίδι θυμωμένων πτηνών και τοποθετήστε τον κέρσορα κοντά στον καταπέλτη και τραβήξτε τον αισθητήρα κάμψης για να τραβήξετε το πουλί και ρυθμίστε την κατεύθυνση χρησιμοποιώντας το ποτενσιόμετρο. Μόλις ρυθμιστεί η κατεύθυνση, απελευθερώστε τον αισθητήρα Flex
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Εσύ το πουλί θα πεταχτεί στον αέρα και το BOOMM !! Στα γουρούνια. Η πλήρης εργασία βρίσκεται στο παρακάτω βίντεο.
Ελπίζω να απολαύσατε το έργο και να καταφέρατε να δημιουργήσετε κάτι παρόμοιο. Εάν έχετε αμφιβολίες, μπορείτε να επικοινωνήσετε μαζί μου στην ενότητα σχολίων ή να δημοσιεύσετε την ερώτησή σας στο φόρουμ για τεχνικές ερωτήσεις.
Τώρα, ήρθε η ώρα να συντρίψετε αυτά τα κουμπαρά και να πάρετε πίσω τα αυγά πουλιών μας !!!!