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

Lapcade Arcade Controller: 6 βήματα (με εικόνες)
Lapcade Arcade Controller: 6 βήματα (με εικόνες)

Βίντεο: Lapcade Arcade Controller: 6 βήματα (με εικόνες)

Βίντεο: Lapcade Arcade Controller: 6 βήματα (με εικόνες)
Βίντεο: Эволюция Double Dragon 1987-2023. Всe игры серии! 2024, Νοέμβριος
Anonim
Lapcade Arcade Controller
Lapcade Arcade Controller

Δεν είμαι πολύ παίκτης. Όταν ήμουν παιδί, με ενδιέφερε περισσότερο να δω πώς λειτουργούσαν παρά να τα παίζω. Μπορώ να υπολογίσω από τη μία πλευρά πόσα παιχνίδια arcade έπαιζα τακτικά. Τούτου λεχθέντος, θα ήταν εύκολο για κάποιον να θεωρήσει περίεργο ότι θα αφιερώσω χρόνο για να φτιάξω έναν ελεγκτή arcade. Ωστόσο, είναι ένα από τα αγαπημένα μου έργα μέχρι σήμερα. Εκτός από το ότι είναι δύσκολο να σχεδιαστεί, να κωδικοποιηθεί και να κατασκευαστεί, είναι επίσης μια υπενθύμιση μιας προηγούμενης εποχής με ανθεκτικά μηχανικά κουμπιά και χειριστήρια.

Οι εποχές του Arcade έχουν περάσει, αλλά μπορείτε ακόμα να έχετε την αίσθηση ενός κλασικού arcade παιχνιδιού ακριβώς στο δικό σας σαλόνι. Λοιπόν, εδώ σας παρουσιάζω το Lapcade. Εάν είστε σαν εμένα και σας αρέσει να χτίζετε πράγματα περισσότερο από το να παίζετε, μπορεί να απολαύσετε αυτήν την κατασκευή. Εάν έχετε οποιεσδήποτε ερωτήσεις ή προτάσεις που δεν περιλαμβάνονται στην ενότητα "ιδέες για την έκδοση 2" παρακάτω, αφήστε ένα σχόλιο.

Βήμα 1: Επισκόπηση

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ
ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Τι είναι αυτό το πράγμα?

Πρώτον, σημειώστε τι δεν είναι το Lapcade:

  • Δεν είναι κονσόλα παιχνιδιών.
  • Δεν έχει παιχνίδια ούτε έχει τη δυνατότητα να φορτώνει και να παίζει παιχνίδια.
  • Δεν συνδέεται με τηλεόραση ή οθόνη.

Το Lapcade είναι πληκτρολόγιο Bluetooth. Τίποτα περισσότερο, τίποτα λιγότερο.

Το θέτω αυτό γιατί υπήρξε κάποια σύγχυση γύρω από αυτό το σημείο. Είχα πολλές ερωτήσεις σχετικά με το ποια παιχνίδια μπορούν να φορτωθούν σε αυτό και τι είδους διεπαφή βίντεο χρησιμοποιεί - δεν μπορεί και όχι! Εξαρτάται απόλυτα από τον υπολογιστή στον οποίο τον συνδέετε και, από αυτή την άποψη, ο ουρανός είναι το όριο. Εάν η συσκευή σας μπορεί να δεχτεί πληκτρολόγιο Bluetooth, τότε το Lapcade θα πρέπει να λειτουργεί μαζί του. Δεν το έχω δοκιμάσει αλλά έχω δει άλλα έργα που έχουν χρησιμοποιήσει το EZ-Key (περιγράφεται παρακάτω) συνδεδεμένο με φορητές συσκευές. Έτσι, θεωρητικά, μπορείτε να συνδέσετε αυτήν τη συσκευή σε οποιονδήποτε υπολογιστή λειτουργεί Windows, Linux, ChromeOS, MAC κ.λπ., καθώς και Raspberry Pi, Android, iOS και άλλα που υποστηρίζουν Bluetooth v2.1. Ωστόσο, ενδέχεται να απαιτείται τροποποίηση των κωδικών -κλειδιών.

Προεκδοση 1

Αρχικά, βρήκα ένα προϊόν που ονομάζεται Adafruit Bluefruit EZ -Key bluetooth HID (Συσκευή ανθρώπινης διεπαφής - σκεφτείτε το πληκτρολόγιο) που θα μου επέτρεπε να συνδέσω γνωστά κουμπιά και να στείλω πληκτρολογήσεις όπως ένα πληκτρολόγιο. Όταν δημιούργησα για πρώτη φορά ένα χειριστήριο βασισμένο στο EZ-Key, ακολούθησα μια σειρά οδηγιών για την κατασκευή ενός απλού και απλού ελεγκτή και λειτούργησε τέλεια. Χρησιμοποίησα το χειριστήριο σε ένα βαρύ ξύλινο πλαίσιο χωρίς πρόβλημα για μερικούς μήνες. Ωστόσο, περιορίζεστε σε 12 εισόδους και δεν υπάρχει τρόπος αλλαγής του κωδικού κλειδιού που μεταδίδεται από τη συσκευή χωρίς επαναπρογραμματισμό των ακίδων εισόδου EZ-Key.

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

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

Έτσι, μετά από παρότρυνση ενός φίλου μου, αποφάσισα να δημιουργήσω μια προγραμματιζόμενη έκδοση του ίδιου ελεγκτή που είχε γρήγορες αλλαγές στη λειτουργία, θα μου επέτρεπε να χρησιμοποιήσω την ίδια συσκευή για τον έλεγχο πολλαπλών εφαρμογών, θα μπορούσε επίσης να "αναποδογυρίσει" για το αριστερό χέρι χρήση και ήταν σε θήκη φορητού υπολογιστή που ήταν πολύ μικρότερη από την τρέχουσα λύση των 10 lb.

Ρθε η ώρα για αναβάθμιση.

Στόχοι Έκδοσης 1 Σχεδίαση Έργου:

  • Εύκαμπτος
  • Επαναφορτιζόμενη
  • Για Αριστερούς και Δεξιούς
  • Χωρίς κορδόνια
  • Πυγμάχος ελαφρού βάρους

Wantedθελα αυτό το νέο σχέδιο να είναι ευέλικτο. Τα χειριστήρια πρέπει να είναι μεταβλητά εν κινήσει χωρίς να χρειάζεται να επαναπρογραμματίζετε τα εξαρτήματα κάθε φορά που απαιτείται δοκιμή ή αλλαγή. Αυτό σήμαινε ότι έπρεπε να υπάρχει μια διεπαφή στον ελεγκτή για να επιλέξει "τρόπους λειτουργίας". Κάθε θέση κουμπιού και χειριστηρίου θα πρέπει να έχει διαφορετικούς κωδικούς-κλειδιά που σχετίζονται με αυτό. Τα ίδια στοιχεία ελέγχου θα πρέπει επίσης να χρησιμοποιηθούν για την επιλογή των διαφορετικών τρόπων λειτουργίας.

Το EZ-Key δεν ήταν άμεσα προγραμματιζόμενο σε πραγματικό χρόνο, οπότε η επόμενη λύση θα ήταν η χρήση ενός χειριστηρίου όπως το Arduino για τη διαχείριση της λειτουργικότητας. Το EZ-Key θα χρησιμοποιηθεί αποκλειστικά για τη μετάδοση των κωδικών-κλειδιών στον υπολογιστή μέσω Bluetooth. Επέλεξα το Arduino Pro Mini λόγω της άμεσης συμβατότητάς του με το UNO (με το οποίο είχα ήδη εμπειρία) και λόγω του συμπαγούς μεγέθους του.

Δεν ήθελα να ασχοληθώ με τις μπαταρίες με αυτό το νέο κουτί όπως έκανα με τον προκάτοχό του Lapcade, έτσι επέλεξα να χρησιμοποιήσω μια επαναφορτιζόμενη μπαταρία Lithium Polymer και έναν φορτιστή/πίνακα τροφοδοσίας. Αυτό σήμαινε ότι μπορούσα απλώς να χρησιμοποιήσω έναν τυπικό φορτιστή USB. Αυτό σήμαινε επίσης ότι δεν θα έπρεπε να ανοίγω τη θήκη κάθε φορά που οι μπαταρίες πέθαιναν. Το EZ-Key και το PowerBoost 500C έχουν και οι δύο ενδείξεις που έπρεπε να μεταφερθούν στο επάνω μέρος του ελεγκτή για κατάσταση σύζευξης και ένδειξη χαμηλής μπαταρίας. Πρόσθεσα μερικές λυχνίες LED στο σχέδιο, ώστε να μπορώ να αντικατοπτρίζω αυτούς τους εύχρηστους δείκτες κατάστασης στο χρήστη κατά τη λειτουργία.

Καθώς ωρίμασε η δοκιμή του σχεδίου μου, ανακάλυψα ότι αρκετές από τις αρχικές μου ιδέες δεν ήταν όπως τις περίμενα. Για παράδειγμα, η ένδειξη LBO στο PowerBoost δεν λειτουργεί όπως αναμένεται όταν συνδέεται με έναν μικροελεγκτή. Θα επιτρέψει στο ρεύμα να περάσει μέσω της κοινής γείωσης από την μπαταρία ενώ η συσκευή είναι "σβηστή" ή απενεργοποιημένη, η λυχνία LBO θα ανάψει και θα παραμείνει αναμμένη. Άλλοι στο φόρουμ του Adafruit είχαν επίσης αντιμετωπίσει αυτό το ζήτημα και προσέφεραν μια καλύτερη λύση στη δειγματοληψία της τάσης της μπαταρίας απευθείας σε μια αναλογική είσοδο. Μόλις η τάση πέσει σε ένα ορισμένο επίπεδο, είναι καιρός να ενημερώσετε το χρήστη ότι η μπαταρία πρόκειται να κλείσει.

Βήμα 2: Αυτό που χρειάζεστε

Λίστα ηλεκτρονικών ανταλλακτικών

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

1 Arduino Pro Mini 5V - Μου αρέσει το Pro επειδή είναι συμπαγές. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε συμβατή πλακέτα Uno pin/interrupt με τον παρεχόμενο κώδικα

1 Adafruit Bluefruit EZ -Key bluetooth HID - Όπως περιγράφηκε παραπάνω, αυτό είναι το bluetooth HID που επιτρέπει τη μετάδοση κωδικών -κλειδιών στον κεντρικό υπολογιστή.

1 MCP23017 - επέκταση θύρας εισόδου/εξόδου i2c 16 - Αυτό το τσιπ χρησιμοποιείται για την προσθήκη 16 ακόμη εισόδων στο Arduino μέσω του πρωτοκόλλου επικοινωνιών I2C

1 φορτιστής Adafruit PowerBoost 500 + - Αυτός είναι ο πίνακας ελέγχου ισχύος για την τροφοδοσία του Lapcade και τη φόρτιση του LiPo

1 μπαταρία πολυμερούς λιθίου (χρησιμοποίησα 2500mAh, αλλά μπορείτε να χρησιμοποιήσετε υψηλότερη / χαμηλότερη χωρητικότητα)

1 8 -Way Arcade Joystick - Δείτε την ενότητα "σκέψεις για την έκδοση 2" παρακάτω σχετικά με τα χειριστήρια

9 Κουμπιά Arcade Push - Ανάμικτα χρώματα και αποτυπώματα οθόνης

2 φωτιζόμενα στιγμιαία κουμπιά - Χρησιμοποίησα αυτά τα 2 κουμπιά για τα κουμπιά Κέντρο 4 και 5 και προέρχονται από το Adafruit: Κόκκινο (Κέντρο 4), Μπλε (Κέντρο 5)

1 Φωτιζόμενο κουμπί ασφάλισης Χρησιμοποίησα αυτό το κουμπί λειτουργίας από το Adafruit: Green

2 LED που χρησιμοποιούνται για αναφορά σήματος ζεύξης και χαμηλής μπαταρίας. Χρησιμοποίησα δύο μέρη RadioShack 2760270 και 2760271

1 οθόνη LCD 16 x 2

1 σακίδιο LCD I2C/SPI - Χρησιμοποιείται για επικοινωνία I2C στην οθόνη 16x2.

1 Καλώδιο επέκτασης βάσης USB - Χρησιμοποιείται για επέκταση της υποδοχής micro -b USB του PowerBoost στον τοίχο του ντουλαπιού.

1 PCB Adafruit Perma-Proto Πλήρους μεγέθους Breadboard-Δεν είναι απαραίτητο, αλλά διευκολύνει τη μόνιμη τοποθέτηση.

5 Αντίσταση 220 Ohm

7 αντιστάσεις 1K Ohm

2 Αντιστάσεις 2.2K Ohm

1 Αντίσταση 4,7K Ohm

18 #10 Συνδετήρες θηλυκού φτυάρι - Για σύνδεση με τις επαφές του κουμπιού arcade. Συνιστάται για συγκόλληση καθώς τα κουμπιά θα φθαρούν τελικά.

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

Τα ακόλουθα στοιχεία δεν απαιτούνται, αλλά θα κάνουν το θόρυβο πιο απλό και, σε περίπτωση που φρυγανίσετε ένα συστατικό, θα διευκολύνετε την αντικατάσταση:

  • Υποδοχή IC - για τσιπ 28 ιντσών 0,3"
  • Υποδοχή IC - για τσιπ 28 ακίδων 0,6"
  • Γυναικεία κεφαλίδα 0,1 "(κεφαλίδα τουλάχιστον 1 36 ακίδων)

Εξαρτήματα γραφείου:

  • 3 πάνελ σημύδας 12 x 24 1/8 ιντσών
  • 1 διαφανές ακρυλικό πάνελ 12 12 x 24 1/8 ιντσών

Αρχεία:

  • Lapcade V1.xlsx - Το υπολογιστικό φύλλο που αναφέρεται παρακάτω και έχει τις συνδέσεις κυκλώματος.
  • LapcadeV1-code.zip - Zip αρχείο που περιέχει τον κώδικα Arduino γραμμένο για αυτό το έργο.
  • Lapcade_v1.zip - Αρχείο zip που περιέχει τα σχέδια svg για το ντουλάπι.
  • LapcadeV1-Circuit_Diagram_Large.zip - Αρχείο zip που περιέχει μια έκδοση υψηλής ανάλυσης του διαγράμματος κυκλώματος ψύξης που φαίνεται παρακάτω.

Σύνδεσμοι σε περισσότερους πόρους:

  • Adafruit Bluefruit EZ-Key Documentation
  • Adafruit PowerBoost 500 + Τεκμηρίωση
  • Τεκμηρίωση σακιδίου I2C/SPI LCD
  • Τεκμηρίωση MCP23017 I2C Extender Port
  • Βιβλιοθήκη Arduino Adafruit MCP23017

Βήμα 3: Συνέλευση - Το Υπουργικό Συμβούλιο

Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο
Συνέλευση - Το Υπουργικό Συμβούλιο

Iθελα να έχω ένα κουτί πολύ ελαφρού βάρους που θα μπορούσε επίσης να χτυπήσει. Χωρίς να γίνεται πολύ εξωτικό με τα υλικά, το ελαφρύ ισούται με το λεπτό και το λεπτό συνήθως με το εύθραυστο. Ο κύριος χρήστης του Lapcade θα ήταν πιθανότατα ο μικρός μου γιος που του αρέσει να "πατάει" τα κουμπιά και να "περιηγείται" στο χειριστήριο με εξαιρετικό ενθουσιασμό. Παρόλο που είναι καλός να μην αφήνει τα πράγματα, κατάφερε να φθείρει τους βιομηχανικούς μικροδιακόπτες σε ένα χειριστήριο μέσα σε λίγους μήνες.

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

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

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

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

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

Μια τρίτη σημείωση: Δεν συμπεριέλαβα μια διακοπή για το καλώδιο φόρτισης USB στο αρχικό σχέδιο απλώς και μόνο επειδή δεν ήμουν σίγουρος πού ήθελα να το τοποθετήσω, ώστε να μην παρεμβαίνει στη χρήση. Αργότερα έκοψα τις τρύπες στην αριστερή πλευρά πολύ κοντά όπου βλέπετε τη λέξη "Lapcade" στις παρακάτω εικόνες. Η έκδοση 2 θα έχει τη θύρα φόρτισης σε άλλη θέση.:)

Βήμα 4: Συναρμολόγηση - Ηλεκτρονικά

Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά
Συναρμολόγηση - Ηλεκτρονικά

Πρώτα ας ρίξουμε μια ματιά στο διάγραμμα καλωδίωσης που φαίνεται παραπάνω.

Το πρώτο πράγμα που πρέπει να σημειωθεί εδώ είναι ότι οι ράγες ισχύος και γείωσης του breadboard. Οι ράγες με τη μπλε γραμμή είναι γειωμένες (-) και οι ράγες με την κόκκινη γραμμή ισχύος (+). Αυτό είναι τυπικό, αλλά το σημειώνω επειδή η κοινή γραμμή του χειριστηρίου (μαύρο σύρμα) συνδέεται με την τροφοδοσία και όχι με τη γείωση. Στο Fritzing χρησιμοποίησα το χρώμα του καλωδίου του χειριστηρίου και όχι το συμβατικό χρώμα και σκέφτηκα ότι μπορεί να προκαλέσει κάποια σύγχυση - οπότε καλύτερα να το βγάλω από τη μέση.

Συνδέσεις εξαρτημάτων

Αντί να προσπαθήσω να δηλώσω κάθε σύνδεση σε μεγάλη μορφή εδώ (ο αναλογικός πείρος Arduino 0 περνάει από μια αντίσταση 220 ohm στην καρφίτσα PowerBoost Bat), δημιούργησα ένα υπολογιστικό φύλλο που περιέχει όλες τις συνδέσεις από την άποψη του στοιχείου. Έτσι, στην καρτέλα Arduino του υπολογιστικού φύλλου, θα δείτε APM A0 -> 2.2K OHM -> PB Bat και στην καρτέλα PowerBoost θα δείτε PB BAT -> 2.2K OHM -> APM A0. Ανατρέξτε στην παρακάτω ενότητα πόρων για όλα τα αρχεία που σχετίζονται με αυτό το έργο.

Μια άλλη σημείωση σχετικά με το υπολογιστικό φύλλο είναι ότι ορισμένες συσκευές εμφανίζουν δύο στήλες σύνδεσης. Αυτό γίνεται για να εμφανίζονται περισσότερες από μία συνδέσεις σε μια καρφίτσα. Για παράδειγμα, κάθε μία από τις συνδέσεις του χειριστηρίου εκτός από το κοινό καλώδιο χρησιμοποιεί μια αντίσταση αναδίπλωσης για να διασφαλίσει ότι η επέκταση θύρας λαμβάνει ένα σταθερό υψηλό ή χαμηλό σήμα. Για να το δείξετε για το Joystick 2, θα δείτε δύο στήλες για τη σύνδεση, η μία είναι για το σύρμα χειριστηρίου στον πείρο MCP 21 και η άλλη για σύνδεση από τον πείρο 21 μέσω αντίστασης στη γείωση. Είμαι βέβαιος ότι υπάρχουν καλύτεροι τρόποι για να τεκμηριωθεί αυτό, αλλά φοβάμαι ότι έχετε κολλήσει με τους τρόπους μου να κάνω πράγματα σε αυτό.:)

Κάθε ένα από τα κουμπιά arcade έχει μια κοινή (com), μια κανονικά ανοιχτή (όχι) και κανονικά κλειστή (nc) επαφή. Για καθένα από αυτά τα κουμπιά, χρησιμοποιώ συνδέσεις com και nc.

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

Κώδικας
Κώδικας

Πρώτα απ 'όλα, πρέπει να δώσω πίστωση όπου πρέπει. Βασίστηκα πολύ στο ακόλουθο άρθρο για να κωδικοποιήσω το Lapcade:

learn.adafruit.com/convert-your-model-m-keyboard-to-bluetooth-with-bluefruit-ez-key-hid Ιδιαίτερες ευχαριστίες στον Benjamin Gould για ένα καλογραμμένο και τεκμηριωμένο έργο!

Έτσι, στην καρδιά αυτού του έργου βρίσκεται ένα πληκτρολόγιο. Από την άποψη του υπολογιστή, το Lapcade είναι απλά ένα πληκτρολόγιο συνδεδεμένο μέσω bluetooth, το οποίο είναι τόσο καλό στο EZ-Key. Παίρνει τα περίπλοκα πρωτόκολλα, χρονοδιαγράμματα και κωδικούς Bluetooth και τα περικλείει έτσι ώστε το μόνο που χρειάζεται να κάνω με το arduino είναι να του στείλω κωδικούς -κλειδιά. Για να το κάνω αυτό, χρησιμοποίησα τους χάρτες κώδικα στο παραπάνω έργο και τους δικούς μου πίνακες για να δημιουργήσω λειτουργικές λειτουργίες. Κάθε λειτουργία αλλάζει αυτό που κάνουν τα ίδια κουμπιά στο Lapcade και αυτό που στέλνεται στον υπολογιστή. Υπάρχουν τρεις "ενσωματωμένες" λειτουργίες και όλες οι λειτουργίες μετά από αυτές είναι λειτουργίες εφαρμογής.

Λειτουργικοί τρόποι

Τα παρακάτω συνοψίζουν τους τρόπους λειτουργίας του Lapcade:

  1. Εκκίνηση - Αυτή η λειτουργία ελέγχει τη συνδεσιμότητα με τον υπολογιστή και ορίζει μεταβλητές εκκίνησης. Εάν το κλειδί EZ δεν συνδυάζεται με υπολογιστή, τότε αλλάζει σε λειτουργία ζεύξης
  2. Σύζευξη - Σε αυτήν τη λειτουργία, το κλειδί EZ περιμένει να συζευχθεί με έναν υπολογιστή.
  3. Επιλογή λειτουργίας - Αυτή η λειτουργία επιτρέπει στον χρήστη να επιλέξει ποια λειτουργία εφαρμογής θα χρησιμοποιήσει. Σε αυτήν τη λειτουργία δεν αποστέλλονται κωδικοί -κλειδιά στον υπολογιστή. Υπάρχουν επίσης γρήγορες επιλογές λειτουργίας με βάση την προηγούμενη λειτουργία εφαρμογής. Για παράδειγμα, πατώντας τη λειτουργία και, στη συνέχεια, το κουμπί αναπαραγωγής δύο όταν βρίσκεστε στη λειτουργία Mame player 1 απλώς αλλάζει τη λειτουργία χωρίς να χρειάζεται να αναζητήσετε και να επιλέξετε το Mame Player 2 στην οθόνη.

Λειτουργίες εφαρμογής

Οι λειτουργίες εφαρμογής χρησιμοποιούνται για την αποστολή κατάλληλων κωδικών -κλειδιών στον υπολογιστή με βάση την εφαρμογή στην οποία βρίσκεται ο χρήστης. Για παράδειγμα, στη λειτουργία Kodi, το πλήκτρο δράσης 2 στέλνει "P" που είναι σε παύση. Στο Mame, το ίδιο κουμπί στέλνει το αριστερό πλήκτρο Alt. Εάν κάποιος ήθελε να χρησιμοποιήσει το χειριστήριο για να παίξει το Minecraft για τον υπολογιστή, τότε το μόνο που θα έπρεπε να γίνει είναι να προσθέσει τους κατάλληλους χάρτες πίνακα.

Κάθε εφαρμογή πρέπει να οριστεί σε 4 πίνακες δεδομένων.

  • mode - Αυτός ο πίνακας περιέχει το κείμενο που θα εμφανιστεί στην οθόνη για κάθε λειτουργία. Για να χρησιμοποιήσετε τη δεύτερη γραμμή της οθόνης, απλώς τοποθετήστε ένα ~ στον πίνακα ως διακοπή γραμμής.
  • keyModes [14] - Αυτός ο πίνακας μήτρας περιέχει τους κωδικούς -κλειδιά που αποστέλλονται στον υπολογιστή. Κάθε γραμμή 14 στοιχείων αντιπροσωπεύει μεμονωμένα κουμπιά για αντιστοιχίσεις κωδικών κλειδιών.
  • keyModifiers [14] - Αυτός ο πίνακας μήτρας περιέχει τους τροποποιητές κωδικού κλειδιού για κάθε πάτημα του πλήκτρου, όπως κρατώντας πατημένο το πλήκτρο shift.
  • quickMode [3] - Αυτός ο πίνακας μήτρας περιέχει το μοτίβο επιλογής γρήγορης λειτουργίας για την τρέχουσα λειτουργία.

Βασική λειτουργία

Όταν το σύστημα είναι ενεργοποιημένο, μεταβαίνει σε λειτουργία εκκίνησης, όπου η κατάσταση της σύνδεσης Bluetooth ελέγχεται και εμφανίζεται στον χρήστη. Το Arduino αποκτά την κατάσταση του κλειδιού EZ μετρώντας και χρονομετρώντας τους παλμούς από την ακίδα L1 του EZ-Key. Υπάρχουν τέσσερις υποκαταστάσεις για τη λειτουργία εκκίνησης:

  • Σύζευξη - Το κλειδί EZ βρίσκεται σε ενεργή λειτουργία σύζευξης και περιμένει να συνδεθεί σε μια συσκευή.
  • Συζευγμένο αλλά όχι συνδεδεμένο - Το κλειδί EZ έχει αντιστοιχιστεί στο παρελθόν, αλλά δεν είναι προς το παρόν συνδεδεμένο με τη συσκευή κεντρικού υπολογιστή.
  • Σύζευξη και σύνδεση - Το κλειδί EZ αντιστοιχίζεται και η σύνδεση έχει δημιουργηθεί με τον κεντρικό υπολογιστή. Σε αυτό το σημείο, το σύστημα θα μεταβεί στη λειτουργία επιλογής.
  • Άγνωστη κατάσταση - Το κλειδί EZ επιστρέφει έναν άγνωστο κωδικό ή υπάρχει παρεμβολή σήματος που παράγει ένα άγνωστο μοτίβο σήματος. Το σύστημα θα κρατήσει και θα ειδοποιήσει τον χρήστη. Πρέπει να γίνει επανεκκίνηση εάν συμβεί αυτό.

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

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

Στη λειτουργία επιλογής, οι ενέργειες χειριστηρίου πάνω και κάτω θα σας μεταφέρουν στις διαθέσιμες λειτουργίες εφαρμογής στην οθόνη LCD. Για να επιλέξετε μία από τις λειτουργίες, πατήστε το κουμπί εισαγωγής (κέντρο 5).

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

Γρήγορες λειτουργίες

Μόλις επιλεγεί μια Λειτουργία εφαρμογής, ορίζεται ο ορισμός της γρήγορης λειτουργίας. Με απλά λόγια, οι Γρήγορες λειτουργίες είναι οι Λειτουργίες εφαρμογής που επιλέγονται από τα τρία πρώτα κεντρικά κουμπιά (Κέντρο 1-3). Αυτά τα τρία κουμπιά αντιστοιχούν στο στοιχείο πίνακα απέναντι στη μήτρα.

Για παράδειγμα, στην τρέχουσα διαμόρφωση, όταν χρησιμοποιείτε το Mame σε λειτουργία αναπαραγωγής 1 (Λειτουργία 4 ή καθορίζεται η πέμπτη λειτουργία), στη συνέχεια πατώντας το κουμπί λειτουργίας και στη συνέχεια το κουμπί αναπαραγωγής δύο φορτώνει το στοιχείο συστοιχίας γρήγορης λειτουργίας [4] [1] (Το Arduino χρησιμοποιεί 0 index array indexing) που είναι 5. Το σύστημα στη συνέχεια μεταβαίνει στη Λειτουργία εφαρμογής 5 που είναι Mame, player 2.

Βήμα 6: Ιδέες για την έκδοση 2

Button Display - Υποθέτω ότι δεν μπορείτε να προγραμματίσετε τα πάντα, αλλά υπάρχει μια ιδέα σχεδιασμού που θα ήθελα να είχα από νωρίς για την πρώτη έκδοση - μεμονωμένα πάνελ LCD με κουμπιά. Έγινε σαφές πολύ γρήγορα μετά το χτίσιμο ότι μόνο το να γνωρίζετε σε ποια κατάσταση βρίσκεστε δεν σημαίνει ότι θυμάστε τι κάνει κάθε κουμπί - ειδικά αφού έχετε απομακρυνθεί από αυτό για μερικές ημέρες ή μήνες. Θα ήθελα πραγματικά να είχα προσθέσει κάποιου είδους μικρή οθόνη πάνω ή πάνω από κάθε κουμπί που έδειχνε ποια είναι η τρέχουσα δράση του. Αυτό είναι στην κορυφή της λίστας μου για την έκδοση 2.

4-Way vs 8-Way Joystick-Ένα άλλο πράγμα που έγινε σαφές μόλις άρχισα να χρησιμοποιώ το joystick ήταν ότι τα παλαιότερα παιχνίδια δεν προορίζονταν να χρησιμοποιούν joystick 8 κατευθύνσεων. Η περίπτωση είναι το pac-man. Από την κατασκευή αυτού του ελεγκτή, διαπίστωσα ότι υπάρχουν χειριστήρια εκεί έξω που μπορούν να αλλάξουν μηχανικά από 4 κατευθύνσεις σε 8 κατευθύνσεις. Ναι, αυτό είναι στη λίστα και αν σκοπεύετε να παίξετε κλασικά παιχνίδια arcade, απλώς μεταβείτε σε ένα που μπορεί να αλλάξει. Φυσικά, βεβαιωθείτε ότι έχετε λάβει υπόψη σας τις αλλαγές στην καλωδίωση και τον προγραμματισμό με βάση το χειριστήριο με το οποίο ολοκληρώνετε. Ακολουθούν ορισμένοι προμηθευτές κλασικών στοιχείων ελέγχου arcade:

  • https://www.ultimarc.com/controls.html
  • https://groovygamegear.com/webstore/index.php?main…

Κουμπιά "Flipper" δεξιά & αριστερά - Η έκδοση 2 θα προσθέσει σίγουρα ένα κουμπί το καθένα στην αριστερή και δεξιά πλευρά του ντουλαπιού. Μια πιθανή χρήση θα είναι για βατραχοπέδιλα.

Άλλα στοιχεία ελέγχου - Κοιτάζω τη βιωσιμότητα της προσθήκης άλλων κοινών στοιχείων ελέγχου, όπως ένα trackball ή / και ένα spinner στην επόμενη έκδοση. Δεδομένου ότι το EZ-Key είναι ικανό να μεταδίδει συντεταγμένες ποντικιού, αυτό δεν πρέπει να είναι πολύ δύσκολο.

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

Διαγωνισμός ασύρματου δικτύου
Διαγωνισμός ασύρματου δικτύου
Διαγωνισμός ασύρματου δικτύου
Διαγωνισμός ασύρματου δικτύου

Δεύτερο βραβείο στον διαγωνισμό ασύρματης σύνδεσης

Συνιστάται: