Πίνακας περιεχομένων:
- Βήμα 1: Λήψη των ανταλλακτικών
- Βήμα 2: Τροποποιήσεις διακόπτη πλήκτρων
- Βήμα 3: Τρισδιάστατη εκτύπωση
- Βήμα 4: Συγκεντρώστε ό, τι έχετε μέχρι τώρα
- Βήμα 5: Ρύθμιση του OLED
- Βήμα 6: Συγκόλληση
- Βήμα 7: Εισαγωγή στον προγραμματισμό
- Βήμα 8: Προγραμματισμός των διακοπτών
- Βήμα 9: Προγραμματισμός του OLED
- Βήμα 10: Προγραμματισμός των LED
- Βήμα 11: Συναρμολόγηση
- Βήμα 12: Οι δικές σας βελτιώσεις
Βίντεο: Προσαρμοσμένο μηχανικό πληκτρολόγιο μακροεντολών: 12 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:37
Σε αυτό το Instructable θα σας καθοδηγήσω στα βασικά για τη δημιουργία του δικού σας macropad 6 κλειδιών, που ελέγχεται από ένα Arduino. Θα σας ενημερώσω για το τι χρειάζεστε, πώς να το συναρμολογήσετε, πώς να το προγραμματίσετε και πώς να το βελτιώσετε ή να το κάνετε δικό σας.
Μετά από πολλή έρευνα, δεν μπόρεσα να βρω έναν εξαιρετικό οδηγό για το πώς να φτιάξω ένα πληκτρολόγιο μακροεντολής ή ένα χειροκίνητο ενσύρματο πληκτρολόγιο γενικά. Έτσι αποφάσισα να το κάνω μόνος μου, με τον απλούστερο δυνατό τρόπο, χωρίς διόδους, αντιστάσεις ή οτιδήποτε άλλο. Wantedθελα επίσης να έχω ένα μοναδικό αρθρωτό πληκτρολόγιο, όπου θα μπορούσα να πιάσω όλα τα μέρη που χρειαζόμουν, αυτό είναι το πρώτο από πολλά άλλα μέρη. Η έμπνευση αυτής της ενότητας ήταν από τα πλήκτρα βέλους σε ένα πληκτρολόγιο, τη δυνατότητα να το χωρέσετε στην τσέπη σας και να το πάρετε οπουδήποτε εάν χρειάζεστε μερικά επιπλέον κουμπιά εν κινήσει.
Λόγω του πώς δημιουργήθηκε αυτό το πληκτρολόγιο, σας συνιστώ να διαβάσετε όλο το Instructable πριν λάβετε οποιεσδήποτε αποφάσεις αγοράς.
Προσπάθησα επίσης να κάνω το Instructable με μια λογική σειρά, αλλά δεν δημιουργώ λογικά, οπότε ίσως είναι καλύτερο να παραλείψω με τη σειρά των βημάτων ανάλογα με τον τρόπο κατασκευής.
Βήμα 1: Λήψη των ανταλλακτικών
Το μακρύτερο βήμα είναι εδώ, αγοράζοντας τα ανταλλακτικά και περιμένοντας να αποσταλούν. Οι σύνδεσμοι Amazon θα είναι καναδικοί Amazon. Τα μέρη που θα χρειαστείτε είναι:
-
Διακόπτες μηχανικού κλειδιού
- Επιλέγω τους διακόπτες Gateron με διαυγείς κορυφές από εδώ (Οι καθαρές κορυφές διευκολύνουν το επόμενο βήμα, οι πιο συνηθισμένοι τύποι διακοπτών καλύπτονται επίσης εκεί)
-
Άλλα μέρη για αγορά μπορείτε να βρείτε εδώ στην ενότητα των αγαπημένων σας διακόπτη
Σας συνιστώ επίσης να κάνετε κάποια έρευνα εδώ σχετικά με το τι διακόπτη θα θέλατε εδώ στην ενότητα "Αισθήματα"
-
Μηχανικά κλειδιά
-
Βεβαιωθείτε ότι είναι συμβατά με το διακόπτη που επιλέγετε!
Επίσης, βεβαιωθείτε ότι είναι συμβατά με το φωτισμό, ώστε να μπορείτε να αλλάξετε χρώμα
- Μπορείτε να βρείτε τους προμηθευτές εδώ στην ενότητα "Κλειδιά καινοτομίας (τυπική κατασκευή)", εκτός εάν θέλετε ένα πλήρες σετ Keycap
-
-
Λωρίδες LED με δυνατότητα διευθυνσιοδότησης (Προαιρετικό, αλλά συνιστάται ιδιαίτερα)
-
Αγόρασα κάτι παρόμοιο με αυτά από την Amazon
- Βεβαιωθείτε ότι τα LED είναι WS2812B LED, μπορούν να δεχτούν χαμηλότερη τάση.
- Θα μπορούσατε επίσης να αγοράσετε κανονικά LED 3 χιλιοστών του αγαπημένου σας χρώματος για χρήση, αλλά θα χρειάζεστε αντιστάσεις
-
-
Ένας μικροελεγκτής συμβατός με HID (χρησιμοποίησα Pro Micro)
-
Τα αγόρασα από την Amazon για την καλύτερη προσφορά
Μπορείτε να αγοράσετε άλλους μικροελεγκτές, αλλά βεβαιωθείτε ότι είναι συμβατοί με Arduino και HID (συσκευή εισόδου ανθρώπου)
-
-
Οθόνη OLED 128x32 I2C
Το αγόρασα από την Amazon
-
Πρόσβαση σε τρισδιάστατο εκτυπωτή
- Δοκιμάστε με τοπικές βιβλιοθήκες ή σχολεία γύρω σας και δείτε αν έχουν τρισδιάστατο εκτυπωτή
- Προσωπικά δεν έχω χρησιμοποιήσει ποτέ μια διαδικτυακή υπηρεσία, αλλά μπορείτε να τις χρησιμοποιήσετε και εσείς (κάτι σαν αυτό)
- Thin Wire
-
Απαιτούνται γενικά εργαλεία
- Συγκολλητικό σίδερο και συγκολλητικό
- Πένσα στο πλάι
- Μικρά αρχεία (κάπως προαιρετικά)
- Gun Glue and Glue Hot Glue
- Κατσαβίδι και βίδες της επιλογής σας
Βήμα 2: Τροποποιήσεις διακόπτη πλήκτρων
Ξεκινήστε να αποσυναρμολογείτε τους διακόπτες που αγοράσατε. Το κάνουμε αυτό για να επιτρέψουμε στο φως να λάμψει καλύτερα για να φτάσει στα κλειδιά μας. Εάν έχετε επιλέξει πλήκτρα κλειδιού που δεν υποστηρίζουν RGB, παραλείψτε αυτό το βήμα.
Πάρτε 2 μικρές σφήνες (χρησιμοποίησα 2 κομμάτια κατσαβιδιού) και σπρώξτε κάτω από τις γλωττίδες στο πλάι του διακόπτη. Στη συνέχεια, βάλτε κάτι ανάμεσα στο επάνω και το κάτω μέρος, ώστε να μην κλείσει. Συνεχίστε να πιέζετε τις γλωττίδες της άλλης πλευράς, οπότε καμία καρτέλα δεν πρέπει να κρατά το επάνω μέρος. Μετά από αυτό, τελειώστε και ανοίξτε το πάνω μέρος του διακόπτη. Συνήθως υπάρχουν τέσσερα μέρη, το επάνω και το κάτω μέρος του περιβλήματος, το ελατήριο και το στέλεχος (συρόμενο τμήμα του διακόπτη που συγκρατεί το καπάκι).
Ξεκινήστε να κόβετε μικρά μικρά κομμάτια από το κάτω μέρος της θήκης για να περάσει περισσότερο φως. Κόψτε πρώτα τη γλωττίδα που συγκρατεί το διακόπτη στην πλάκα. Στη συνέχεια, κόψτε λίγο από την αρχική διέλευση LED, (το τμήμα με τις 4 οπές, αυτές είναι για τα πόδια των LED). Κόψτε αργά αυτήν την καρτέλα στο εσωτερικό για να κατεβείτε στο κάτω μέρος. Στη συνέχεια, συνεχίστε να κόβετε μέχρι το κυλινδρικό κέντρο του διακόπτη που συγκρατεί το ελατήριο. Δεν χρειάζεται να προχωρήσουμε περισσότερο από αυτό. Μετά από αυτό, διευρύνετε λίγο την τρύπα, κόβοντας αργά και τις δύο πλευρές με τα προσχηματισμένα στηρίγματα. Ένα άλλο προαιρετικό βήμα είναι να το κατεβάσετε, να το κάνετε πιο ωραίο και λιγότερο οδοντωτό. Βεβαιωθείτε ότι υπάρχουν ελάχιστα έως καθόλου πλαστικά κομμάτια στο εσωτερικό του περιβλήματος, καθώς δεν θέλετε να κολλήσει ο διακόπτης. Φροντίστε να κάνετε αυτές τις περικοπές αργά και μικρά, καθώς έχω σπάσει μερικές θήκες από το πλάτος των πλευρικών κοπτών που εξαναγκάζουν τη θήκη.
Εάν το πάνω μισό του διακόπτη σας δεν είναι επίσης καθαρό, προσπαθήστε να το τροποποιήσετε για να επιτρέψει στο φως να διαπεράσει. Δοκιμάστε σιγά σιγά χωρίς να σπάσετε τον διακόπτη, γιατί δεν θέλετε να πέσει το στέλεχος. Μια πιθανή λύση μπορεί να είναι να κόψετε το κομμάτι του πλαστικού που θα συγκρατούσε ένα κανονικό LED και να αφήσετε το πλαστικό που κρατά το στέλεχος κλειστό και να το κατεβάσετε μόνο.
Βήμα 3: Τρισδιάστατη εκτύπωση
Θα χρειαστεί να κατεβάσετε ένα από τα αρχεία zip παρακάτω και να τα εκτυπώσετε σε 3D. Θα υπάρχουν διαφορετικές εκδόσεις ανάλογα με το τι θέλετε. Θα υπάρχει ένας φάκελος με όλα τα κανονικά αρχεία stl (KeybArrowSTLFiles) και ένας με τα αρχεία εφευρέτη Autodesk (KeybArrowSourceFiles), έτσι ώστε να μπορείτε να τροποποιήσετε τα αρχεία και να τα αλλάξετε στις δικές σας ανάγκες. Τα αρχεία είναι ελαφρώς διαφορετικά από αυτά που εκτύπωσα, αυτό συνέβη επειδή υπήρχαν κάποια ελαττώματα στο σχεδιασμό και ένιωσα ότι μπορούσα να τα βελτιώσω. Παράδειγμα θα ήταν τα πλαϊνά της θήκης, τα δικά μου ήταν λίγο πολύ ψηλά, ώστε τα καπάκια να μην σπρώχνουν μέχρι κάτω, τα νέα αρχεία θα πρέπει να το διορθώσουν.
Ο σχεδιασμός τους ήταν αρκετά περίπλοκος, με πάνω από 30+ βήματα. Το μόνο που θα πω είναι ότι εάν θέλετε να σχεδιάσετε μια θήκη για διαφορετικό μέγεθος, θα πρέπει να βεβαιωθείτε ότι έχετε εμπειρία με κάπως περίπλοκα τρισδιάστατα σχέδια. Δεν είναι πραγματικά για άτομα που έχουν αρχίσει να σχεδιάζουν 3D.
Λάβετε υπόψη ότι και τα δύο αρχεία περιβλήματος είναι υπό γωνία 3 μοιρών και πρέπει να τα τοποθετήσετε σε γωνία στο κρεβάτι
Βήμα 4: Συγκεντρώστε ό, τι έχετε μέχρι τώρα
Τώρα που έχουμε όλα τα μέρη μας και έχουμε τα τρισδιάστατα τυπωμένα μέρη, ήρθε η ώρα να το συναρμολογήσουμε λίγο!
Τοποθετήστε και τους 6 διακόπτες στο πιάτο και κολλήστε τους στη θέση τους. Πρέπει να τα κολλήσουμε γιατί κόβουμε τις γλωττίδες που το συγκρατούν στη θέση τους. Προτείνω να περιμένετε να βάλετε το OLED γιατί δεν θέλετε να είναι λοξό.
Στη συνέχεια, κόψτε 6 LED και τοποθετήστε τα στην πλάκα LED. Τα τετράγωνα στην πλάκα θα σας βοηθήσουν να ευθυγραμμίσετε τα LED. Οι τετράγωνες λυχνίες LED θα ταιριάζουν σε αυτές, ώστε να μπορείτε να εκτυπώσετε τρισδιάστατα ένα άλλο για να ευθυγραμμίσετε ή απλώς να το τοποθετήσετε από την πίσω πλευρά. Βεβαιωθείτε ότι τα βέλη δείχνουν τις άλλες λυχνίες LED, καθώς το DO θα κολληθεί στο DI. Χρησιμοποιήστε αυτά τα τετράγωνα για να κολλήσετε στα LED με ζεστή κόλλα και κρατήστε τα στη θέση τους και περιμένετε να κρατήσει η κόλλα.
Χρησιμοποίησα ένα πρωτότυπο πιάτο για τους διακόπτες για να συγκρατούν τα LED (στις εικόνες) επειδή δεν μου αρέσει να σπαταλάω νήματα και αποφάσισα να το ξαναχρησιμοποιήσω. Το νέο αρχείο δεν θα επηρεάσει τίποτα, απλώς απλοποιήστε την ευθυγράμμιση.
Βήμα 5: Ρύθμιση του OLED
Σας συνιστώ να χρησιμοποιήσετε αυτό το Instructable για μια λεπτομερή βόλτα. Έκαναν πολύ καλή δουλειά εξηγώντας το.
Θα χρειαστεί να κάνετε λήψη και εισαγωγή αυτής της βιβλιοθήκης και αυτής της βιβλιοθήκης για να λειτουργήσει ο κώδικας.
Πρώτα συνδέστε το. Καλώδιο VCC σε VCC και GND σε GND. Στη συνέχεια, συνδέστε τις καρφίτσες SDA και SCL. Οι καρφίτσες SDA και SCL μπορεί να διαφέρουν από κάθε Arduino, αλλά στο pro micro, το SDA είναι συνδεδεμένο έως τον ακροδέκτη 2 και το SCL είναι συνδεδεμένο με τον ακροδέκτη 3. Αναζητήστε ένα pinout του μικροελεγκτή σας εάν δεν είστε βέβαιοι για το τι καρφίτσες SDA και SCL είναι ενσύρματα σε.
Επόμενο είναι να εμφανιστεί και να δημιουργηθούν εικόνες. Παρακάτω θα υπάρχουν αρχεία σχετικά με τον τρόπο λειτουργίας του. Το πρώτο βήμα είναι να χρησιμοποιήσετε τον κωδικό ScreenScan (αρχικά παρέχεται από το Arduino εδώ). Ανεβάστε τον κώδικα στο Pro Micro και ανοίξτε το Serial reader (κάτω από την καρτέλα εργαλεία στο επάνω μέρος). Θα σας διαβάσει πίσω και τη διεύθυνση του OLED. Εάν η διεύθυνσή σας είναι 0x3C, τότε δεν χρειάζεται να αλλάξετε τίποτα. Εάν δεν είναι, τότε πρέπει να μεταβείτε και να αλλάξετε τη διεύθυνση στον κωδικό ssd1306_128x32_i2c και τον τελικό κωδικό (που ονομάζεται ArrowKeypad) έτσι ώστε να λειτουργεί σωστά.
Τώρα δοκιμάστε το παράδειγμα κώδικα που συμπεριλήφθηκε στη βιβλιοθήκη Adafruit ssd1306 που είναι για τον κώδικα 128x32 i2c (που ονομάζεται ssd1306_128x32_i2c)
Μετά από αυτό, κρατήστε το Arduino ενεργοποιημένο και προσπαθήστε να ευθυγραμμίσετε το OLED στην πλάκα διακοπτών, στη συνέχεια απενεργοποιήστε το και προσπαθήστε να το κολλήσετε στη θέση του. Πιθανότατα δεν θα πάρετε αυτήν την πρώτη προσπάθεια, αλλά συνεχίστε να προσαρμόζεστε για να την ευθυγραμμίσετε, έτσι ώστε να μην έχει γωνία όταν ολοκληρωθεί. Προτείνω να κολλήσετε λίγο τη μία πλευρά και να ελέγξετε πριν κολλήσετε την άλλη πλευρά για να βεβαιωθείτε ότι δεν είναι κεκλιμένη.
Κάντε λήψη του κώδικα τώρα και χρησιμοποιήστε τα άλλα αρχεία κώδικα στο Βήμα 8 αργότερα σε αυτό το Instructable
Βήμα 6: Συγκόλληση
Ένα αρχείο Fritzing θα είναι διαθέσιμο παρακάτω. Αυτό θα σας επιτρέψει να αλληλεπιδράσετε με το κύκλωμα και αν αφήσετε κλικ και κρατήσετε πατημένο, μπορείτε να δείτε ποια καλώδια είναι όλα συνδεδεμένα (επισημασμένα με κίτρινες κουκκίδες) αρχεία που πρέπει να εισαχθούν στο Fritzing πριν ανοίξετε το αρχείο θα είναι κάτω (για το Pro Micro και LED).
Βεβαιωθείτε ότι οι καρφίτσες με την ένδειξη "MOSI, MISO ή SCLK" δεν χρησιμοποιούνται, αλλιώς θα προκαλέσει δυσλειτουργίες στο OLED
Αφού κόψετε τα 6 LED σε μονές λωρίδες και τα κολλήσετε στην πλάκα. Τοποθετήστε το συγκολλητικό σίδερο στα μαξιλάρια χαλκού και προσθέστε κόλλα σε κάθε ένα από τα μαξιλάρια. Κόψτε μικρά κομμάτια σύρματος και απογυμνώστε το μισό, στρίψτε το, στη συνέχεια αφαιρέστε το άλλο μισό και στρίψτε το σύρμα. Το σύρμα θα πρέπει να συγκρατείται με πένσα ή κάποια χέρια βοηθείας συγκόλλησης, ενώ το κρατάτε στη θέση του από τη συγκόλληση. Προσθέστε περισσότερη συγκόλληση για να το κρατήσετε εκεί όμορφα. Συγκολλήστε όλα τα LED της σειράς μαζί. Κόψτε ένα σύρμα και κολλήστε το στο τέλος του LED στην πρώτη σειρά, με την ετικέτα "DO" ή "D-" και συνδέστε το με το πρώτο LED στη δεύτερη σειρά με την ετικέτα "DI" ή "D+ '. Μπορείτε να το κάνετε αυτό και με το 5v και το GND, αλλά είναι ευκολότερο εάν τα πρώτα LED 5v και GND σε κάθε σειρά είναι συνδεδεμένα μεταξύ τους. Συνδέστε το καλώδιο 5v στο VCC, το pin pin σε οποιοδήποτε ψηφιακό pin (ο κωδικός έχει οριστεί ως 10) και το GND σε ένα GND στο Arduino.
Για να μπορέσει το Arduino να αναγνωρίσει μια είσοδο, οι διακόπτες πρέπει να συνδέσουν τη γείωση με μια καρφίτσα δεδομένων. Έτσι, μπορείτε να κολλήσετε ένα καλώδιο για να συνδέσετε και τους 6 διακόπτες στη γείωση. Συγκολλήστε ένα καλώδιο σε κάθε διακόπτη και, αν είναι δυνατόν, προσπαθήστε να αλλάξετε τα χρώματα του σύρματος για να παρακολουθείτε τι διακόπτης είναι τι καλώδιο. Τροφοδοτήστε τα καλώδια μέσω της πλάκας LED και συνδέστε τα σε μια καρφίτσα δεδομένων στο Arduino (χρησιμοποίησα τις καρφίτσες δεδομένων 5-9 για αυτό)
Οι δύο διακόπτες στο πλάι έχουν διαφορετικές λειτουργίες, ο ένας είναι ένας διακόπτης επαναφοράς για προγραμματισμό, ενώ ο άλλος είναι ένας διακόπτης λειτουργιών, ο οποίος θα αλλάζει μεταξύ των επιπέδων του Πληκτρολογίου για να αλλάζει γρήγορα τις λειτουργίες των κουμπιών. Ο επάνω διακόπτης, είναι ενσύρματος για επαναφορά (RST) και GND, όταν είναι συνδεδεμένος, προκαλεί την επαναφορά. Ο κάτω διακόπτης είναι συνδεδεμένος με τον πείρο 18, ο οποίος φέρει την ένδειξη A0 στο Pro Micro. Δώστε λίγο χαλάρωση στα καλώδια του διακόπτη, καθώς πρέπει ακόμα να γλιστρήσετε στις πλάκες και πολύ λίγο σύρμα δεν θα επιτρέψει την πλάκες για να μπουν στην κορυφή.
Βήμα 7: Εισαγωγή στον προγραμματισμό
Πριν θέλετε να κλείσετε τη θήκη, θέλετε να τη δοκιμάσετε και να βεβαιωθείτε ότι λειτουργεί. Μπορείτε να μεταβείτε στο βήμα 11 για να το συναρμολογήσετε τώρα. Απλώς διαπιστώνω ότι η δοκιμή εκ των προτέρων βοηθά στη μείωση του αριθμού των φορών που το ανοίγετε και το κλείνετε. Παρόλο που δεν θα έπρεπε να το επηρεάσει πολύ, χρησιμοποίησα την έκδοση 1.8.3 του Arduino IDE, οπότε αν έχετε προβλήματα, δοκιμάστε να χρησιμοποιήσετε αυτήν την έκδοση. Ο κωδικός βρίσκεται στο Βήμα 5, είναι ένα αρχείο zip που θα χρειαστεί να εξαγάγετε και να ανεβάσετε μέσω του Arduino.
Θα υπάρχουν πολλά κομμάτια κώδικα παρακάτω. Ένας θα είναι ο τελικός κωδικός, δύο θα είναι ο έλεγχος του OLED (Ένας για δοκιμή, ένας για την εύρεση της διεύθυνσης) και ένας για τη δοκιμή του RGB. Χρησιμοποιήστε τον τελικό κωδικό για να δοκιμάσετε τους διακόπτες.
Αν θέλετε να σχεδιάσετε τον δικό σας κώδικα, το διδάσκω στα επόμενα 3 βήματα, αλλά είναι εντάξει αν θέλετε να χρησιμοποιήσετε τον κώδικά μου ή να τον πάρετε και να τον τροποποιήσετε.
Μερικά βασικά για τον προγραμματισμό αυτού
- Στην καρτέλα "Εργαλεία", στη συνέχεια στην καρτέλα "Πίνακας", ορίστε το σε Arduino Leonardo (Εκτός αν έχετε μικροελεγκτή διαφορετικό από το Pro Micro)
- Χρησιμοποιήστε το διακόπτη επαναφοράς κάθε φορά που ανεβάζετε κώδικα στο Pro Micro. Έχω διαπιστώσει ότι από τη στιγμή που η γραμμή μεταγλώττισης είναι πλήρης και εξακολουθεί να ανεβαίνει, είναι μια καλή στιγμή για να ενεργοποιήσετε και να απενεργοποιήσετε το διακόπτη στο πρόγραμμα. (Εάν δεν το κάνετε αυτό, η αποστολή θα αποτύχει να μεταφορτωθεί.)
-
Όλες οι βιβλιοθήκες που χρησιμοποιούνται πρέπει να εγκατασταθούν και να εισαχθούν
Για εισαγωγή, μεταβείτε στην καρτέλα εργαλεία και κάντε κλικ στην επιλογή Συμπερίληψη βιβλιοθήκης. (Σημειώστε επίσης, τα παραδείγματα κώδικα στην ιστοσελίδα πρέπει να έχουν το όνομα της βιβλιοθήκης, δεν θα μπορούσα να τα εισαγάγω στην ενότητα παραδείγματος κώδικα στα επόμενα βήματα)
-
Οι βιβλιοθήκες LED και OLED θα αρχικοποιηθούν ως αντικείμενα, μπορείτε να τα ονομάσετε όπως και αν είναι, αλλά για λόγους επίδειξης θα τα ονομάσω "λωρίδα" και "εμφάνιση"
Καλέστε συναρτήσεις από ένα αντικείμενο πληκτρολογώντας το όνομα του αντικειμένου, βάζοντας μια περίοδο και, στη συνέχεια, πληκτρολογώντας τη συνάρτηση που θέλετε να χρησιμοποιήσετε
Στη συνέχεια δοκιμάστε τα LED, ανεβάστε τον κωδικό και βεβαιωθείτε ότι όλα λειτουργούν. Εάν κανένα δεν λειτουργεί, σας λείπει μια καρφίτσα που πηγαίνει σε αυτά, ελέγξτε τη συγκόλληση του πρώτου LED.
Τέλος, χρησιμοποιήστε τον τελικό κωδικό για να δοκιμάσετε τους διακόπτες σας. Αυτό θα πρέπει να είναι το πιο εύκολο να γίνει. Σημειώστε ότι τώρα, μετά τη μεταφόρτωση κάποιου κώδικα HID, θα πρέπει να επαναφέρετε το Arduino κάθε φορά που ανεβάζετε κώδικα σε αυτό. Απλώς επαναφέρετε το μέχρι τη μέση της μεταφόρτωσης και θα πρέπει να λειτουργήσει.
Βήμα 8: Προγραμματισμός των διακοπτών
Από όλο τον προγραμματισμό, οι διακόπτες είναι οι λιγότερο περίπλοκοι. Για να αναγνωριστεί ως πληκτρολόγιο, το μόνο που χρειάζεται να χρησιμοποιήσετε είναι η βιβλιοθήκη πληκτρολογίου Arduino και δηλώσεις υπό όρους. Βεβαιωθείτε ότι στην καρτέλα Εργαλεία, ο πίνακας έχει οριστεί σε Arduino Leonardo εάν χρησιμοποιείτε Pro Micro όπως εγώ.
Πριν ξεκινήσουμε με τις δηλώσεις υπό όρους, πρέπει να ρυθμίσουμε τις ακίδες. Χρειαζόμαστε αυτό μόνο για να τρέξει μία φορά, οπότε βάλτε το στο κενό. Ξεκινήστε με pinMode (PinNum, INPUT_PULLUP). Αυτό λέει στο Arduino ότι το PinNum περιμένει μια είσοδο και ότι προσθέτει μια αντίσταση έλξης (έτσι ώστε να μην χρειάζεται να συνδέσουμε κανένα στο υλικό)
Η εισαγωγή εισόδου έχει 2 καταστάσεις, LOW και HIGH. Το Arduino θα διαβάζει LOW σε μια καρφίτσα όταν είναι συνδεδεμένο στο Ground (GND) και θα διαβάζει HIGH όταν είναι αποσυνδεδεμένο. Για να βρούμε τι διαβάζει η καρφίτσα, χρησιμοποιούμε το digitalRead (PinNum).
Ξεκινώντας από τα βασικά, χρησιμοποιούμε προτάσεις υπό όρους για να βρούμε αν πατήθηκε το πλήκτρο. Θέλουμε αυτό να τρέχει ξανά και ξανά, έτσι θέλουμε να βάλουμε τον κενό βρόχο. Εάν το κλειδί καταχωρήθηκε ως "LOW", τότε θέλουμε να πατηθεί το κλειδί και να απελευθερωθεί όταν η είσοδος είναι "HIGH". Για να το κάνουμε αυτό, κωδικοποιούμε εάν (digitalRead (PinNum) == LOW) {[Κωδικός όταν πατηθεί το κουμπί]} και κωδικός εάν (digitalRead (PinNum) == HIGH) {[Κωδικός για την απελευθέρωση του κουμπιού] }
Για τον κωδικό του πληκτρολογίου, εισαγάγετε τη βιβλιοθήκη πληκτρολογίου. Βάλτε ένα keyboard.begin (); στο κενό setup. Στη συνέχεια, μέσα στις δηλώσεις υπό όρους, χρησιμοποιούμε το keyboard.press ([κλειδί]). και πληκτρολόγιο. κυκλοφορία ([κλειδί]); ή keyboard.releaseAll (); εάν είχατε πατήσει πολλά πλήκτρα. Θα μπορούσατε επίσης να χρησιμοποιήσετε το keyboard.print ([String]); και keyboard.println ([String]) για εκτύπωση συμβολοσειρών, όπως ένας κωδικός πρόσβασης. το println και το println είναι παρόμοια, αλλά το println προσθέτει απλά ένα ENTER, έτσι μεταβαίνει αυτόματα στην επόμενη γραμμή.
Βήμα 9: Προγραμματισμός του OLED
Ξεκινώντας με τον προγραμματισμό του OLED, θα χρειαστεί να έχετε βασικό κωδικό εγκατάστασης. Αυτό βασικά λέει στον υπολογιστή πού βρίσκεται το OLED σας, το μέγεθος του και τον τρόπο προγραμματισμού του. Μόλις έχετε τον κωδικό εγκατάστασης για το OLED, υποθέτοντας ότι εμφανίζετε μόνο κείμενο, θα πρέπει να είναι αρκετά απλό στον προγραμματισμό. Πρώτα συμπεριλάβετε τις βιβλιοθήκες Wire και SSD1306.
Ορίστε το OLED_RESET ως 4 και συμπεριλάβετε τη βιβλιοθήκη SSD1306 στον κωδικό σας. Τοποθετήστε την οθόνη Adafruit_SSD1306 (OLED_RESET). στον κωδικό σας για να ξεκινήσετε τη χρήση της βιβλιοθήκης Adafruit SSD1306.
Ξεκινήστε με το Serial.begin (9600). στη συνέχεια, display.begin (SSD1306_SWITCHCAPVCC, 0x3C); για την προετοιμασία της οθόνης i2C με τη διεύθυνση 0x3C (εκτός αν άλλαξε στο βήμα 5). Βάλτε και τα δύο αυτά σε άκυρη ρύθμιση επειδή πρέπει να εκτελεστούν μόνο μία φορά.
Πριν προγραμματίσετε την οθόνη, πρέπει να βεβαιωθείτε ότι χρησιμοποιείτε το display.clearDisplay. Εάν δεν κάνετε αυτό που εισάγεται θα επικαλύπτεται και ανάλογα με το τι έχει αλλάξει, δεν θα είναι ευανάγνωστο. Θέλετε επίσης να ορίσετε την προέλευση, οπότε χρησιμοποιήστε το display.setCursor (0, 0); για να το ρυθμίσετε σε ένα σημείο στην οθόνη σας, βάλτε (0, 0) για να το επαναφέρετε στην αρχή. Για να ορίσετε το μέγεθος του κειμένου, χρησιμοποιήστε το display.setTextSize (1). Δεν θα πήγαινα πολύ μεγαλύτερο από 1, είναι πολύ μεγαλύτερο από το αναμενόμενο.
Παρόλο που η οθόνη μας είναι μονόχρωμη, πρέπει να ορίσουμε το χρώμα του κειμένου, οπότε το προγραμματίζουμε όπως το display.setTextColor (ΛΕΥΚΟ).
Τώρα που έχετε εισαγάγει τη βιβλιοθήκη σας και το αντικείμενο εμφάνισης, μπορείτε να αρχίσετε να την προγραμματίζετε. Για να προσθέσετε κείμενο, χρησιμοποιήστε display.print (); και display.println (); για εκτύπωση συμβολοσειρών. Και πάλι, η εκτύπωση δεν προσθέτει επιστροφή ενώ το println επιστρέφει αυτόματα στην επόμενη γραμμή όταν εκτυπωθεί ξανά κάτι.
Πριν λάβετε οτιδήποτε για προβολή, πρέπει να ενημερώσετε το OLED και να το πείτε να ενημερωθεί, χρησιμοποιείτε display.display (); χωρίς παραμέτρους και θα ενημερωθεί.
Ο κώδικας θα πρέπει να μοιάζει κάπως έτσι τώρα:
// Κώδικας που δημιουργήθηκε από τον Foster Phillips
#include Adafruit_SSD1306.h #include Wire.h #define OLED_RESET 4 Adafruit_SSD1306 display (OLED_RESET)? void setup () {pinMode (SWITCH, INPUT_PULLUP); Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); καθυστέρηση (2000). display.clearDisplay (); display.setTextSize (1); display.setTextColor (ΛΕΥΚΟ); } void loop () {display.display (); καθυστέρηση (2000). display.clearDisplay (); display.setTextSize (1); display.setCursor (0, 0); display.println ("Hello World!"); display.println ("Hello Instructables!"); }
Αυτό το Instructable και αυτός ο σύνδεσμος Github είναι και οι δύο πολύ καλές αναφορές για την αντιμετώπιση προβλημάτων και μάθετε περισσότερα σχετικά με τον προγραμματισμό της οθόνης αντίστοιχα.
Βήμα 10: Προγραμματισμός των LED
Τα LED είναι επίσης αρκετά απλά. Θα χρησιμοποιήσουμε τη βιβλιοθήκη Adafruit Neopixel. Προσωπικά, η βιβλιοθήκη NeoPixel είναι πολύ παρόμοια με τον προγραμματισμό στην Επεξεργασία, αν έχετε προγραμματίσει ποτέ σε αυτό.
Υπάρχει πρώτα ο κωδικός ρύθμισης, η διεύθυνση της βιβλιοθήκης που χρησιμοποιούμε και η ρύθμιση ενός πίνακα που λέει βασικά πόσες λυχνίες LED υπάρχουν στην καρφίτσα, τι είναι η καρφίτσα για τα δεδομένα και πώς προγραμματίζεται. Αυτό γίνεται με ένα παράδειγμα όπως το Adafruit_NeoPixel strip = Adafruit_NeoPixel (6, 10, NEO_GRB + NEO_KHZ800). Αυτό εξηγεί ότι υπάρχουν 6 LED, η καρφίτσα είναι ο αριθμός καρφίτσας 10 και χρησιμοποιεί τις ταινίες διευθύνσεων τύπου NEO_GRB + NEO_KZH800. Συνήθως το τελευταίο επιχείρημα δεν χρειάζεται να αγγίξει, οι λωρίδες LED που χρησιμοποίησα δεν χρειάστηκε να αλλάξουν.
Μετά από αυτό χρειάζεστε το strip.begin (); λειτουργία που δείχνει ότι είστε έτοιμοι να αρχίσετε να τα χρησιμοποιείτε. Τίποτα δεν χρειάζεται να υπάρχει στις αγκύλες.
Μόλις το έχετε, μπορείτε να καλέσετε διαφορετικές λειτουργίες με τη λωρίδα. [Λειτουργία]
Ένα που θα πρέπει να γνωρίζετε είναι το strip.setPixelColour. Αυτό έχει 4 λειτουργίες στις αγκύλες. Έχετε το LED στη «συστοιχία» των LED (θυμηθείτε, οι πίνακες ξεκινούν από το 0) και τις αντίστοιχες τιμές Κόκκινο, Πράσινο και Μπλε από 0-255. Αυτό θα σας επιτρέψει να αναμίξετε τις επιθυμητές τιμές Κόκκινο Πράσινο και Μπλε για να πάρετε ένα χρώμα που θέλετε. Ο κώδικας πρέπει να μοιάζει με: strip.setPixelColour (0, 0, 255, 255). αν ήθελες κυανό χρώμα στο πρώτο LED.
Η λυχνία LED πρέπει επίσης να σταλεί αυτά τα δεδομένα, πράγμα που είναι το strip.show (). κάνει. Θα ενημερώσει τα pixel αφού αλλάξετε κάτι με αυτά. Τίποτα δεν χρειάζεται να μπει στις αγκύλες.
Ο κώδικας πρέπει να μοιάζει με:
// Κώδικας που δημιουργήθηκε από τον Foster Phillips
#include Adafruit_NeoPixel.h #define PIN 10 #define Num 6 Adafruit_NeoPixel strip = Adafruit_NeoPixel (Num, PIN, NEO_GRB + NEO_KHZ800); void setup () {strip.begin (); strip.show (); } void loop () {strip.setPixelColor (0, 255, 0, 0); strip.setPixelColor (1, 255, 0, 0); strip.setPixelColor (2, 255, 0, 0); strip.setPixelColor (4, 255, 0, 0); strip.setPixelColor (3, 0, 0, 255); strip.setPixelColor (5, 0, 0, 255); strip.show (); }
Περισσότερες πληροφορίες μπορείτε να βρείτε εδώ.
Βήμα 11: Συναρμολόγηση
Αυτό είναι ίσως το πιο εύκολο βήμα και το πιο δροσερό.
Ξεκινήστε τοποθετώντας και σύροντας το Pro Micro στο κλείσιμο της θήκης. Κολλήστε το στη θέση του με κάποια ζεστή κόλλα.
Η θήκη/κλείσιμο σχεδιάστηκε έτσι ώστε να μπορείτε να τοποθετήσετε την πλάκα του διακόπτη και την πλάκα LED. Απλώς σύρετέ την και ανάλογα με τον τρόπο που την εκτυπώσατε, ίσως χρειαστεί να αρχειοθετήσετε ή να κόψετε το εσωτερικό των διαφανειών για να αφαιρέσετε πλαστικό που προεξέχει.
Μετά από αυτό, πάρτε τις βίδες σας και απλώς μπλοκάρετε τις και κάντε τις δικές σας τρύπες. Δεν είχα συγκεκριμένα σπειρώματα βιδών όταν σχεδίασα τα αρχεία, οπότε έκανα μια τρύπα περίπου στο μέγεθος μιας βίδας και την βίδωσα στον εαυτό μου. Η θέρμανση με έναν αναπτήρα θα σας βοηθήσει να το σχηματίσετε στη βίδα που χρειάζεστε και συνήθως ενισχύει τα στρώματα. Βεβαιωθείτε ότι δεν πιέζετε πολύ τις βίδες, αλλιώς μπορείτε να απογυμνώσετε το κεφάλι. Χρησιμοποίησα βίδες κλειδιού Allen για να μειώσω αυτόν τον κίνδυνο.
Στη συνέχεια, απλώς σπρώξτε τις τάπες των πλήκτρων στα πλήκτρα. Τότε έχει σχεδόν γίνει! Η έκδοση του πλήκτρου βέλους Macropad ολοκληρώθηκε!
Βήμα 12: Οι δικές σας βελτιώσεις
Τώρα που ξέρετε πώς να φτιάξετε την έκδοση μου, μπορείτε να φτιάξετε τη δική σας! Τα πληκτρολόγια μπορεί αναμφισβήτητα να αφορούν την έκφραση του εαυτού σας, οπότε το να έχετε το σχέδιο κάποιου άλλου δεν είναι διασκεδαστικό, εκτός αν το τροποποιήσετε για να σας ταιριάζει! Υπάρχουν πολλές βελτιώσεις που μπορείτε να κάνετε! Ακολουθούν μερικές βελτιώσεις που θα ήθελα να προσθέσω ή να σκεφτώ!
- Πρόγραμμα Tetris και άλλα απλά παιχνίδια
- Φτιάξτε το bluetooth
- Αφήστε το να διαβάσει δεδομένα από προβολές διαφανειών και εμφανίστε το ένα στο OLED (Εμφάνιση του αριθμού διαφάνειας και του ονόματος της διαφάνειας)
-
Φτιάξτε ένα πληκτρολόγιο πλήρους μεγέθους ή μεγαλύτερο macropad χρησιμοποιώντας αυτές τις τεχνικές
Θα πρέπει να μάθετε πώς να δημιουργείτε έναν πίνακα μεταγωγής για αυτό
- Προγραμματίστε περισσότερες επιλογές χρωμάτων
- Μακροεντολές προγράμματος για παιχνίδια, επεξεργασία βίντεο κ.λπ.
- Χρησιμοποιήστε τα αρχεία προέλευσης Autodesk Inventor για να δημιουργήσετε τη δική σας υπόθεση ή να το τροποποιήσετε ώστε να είναι μοναδικά δικό σας!
- Προσθέστε μια πλακέτα ήχου για να είναι διπλή ως συσκευή αναπαραγωγής μουσικής
Διασκεδάστε φτιάχνοντας! Μη διστάσετε να προσθέσετε συμβουλές ή ζητήστε μου να σας διευκρινίσω!
Αν θέλετε να δείτε την πρόοδο των άλλων τμημάτων, σκεφτείτε να δείτε το Instagram μου. Ευχαριστώ που διαβάσατε το Instructable μου!
Επόμενος στο Διαγωνισμό Μικροελεγκτών
Συνιστάται:
Φακός μακροεντολής Diy με AF (διαφορετικός από όλους τους άλλους φακούς DIY μακροεντολών): 4 βήματα (με εικόνες)
Φακός Diy Macro With AF (Διαφορετικός από όλους τους άλλους φακούς DIY Macro): Έχω δει πολλούς ανθρώπους να φτιάχνουν φακούς μακροεντολής με τυπικό κιτ φακού (Συνήθως 18-55mm). Τα περισσότερα από αυτά είναι ένας φακός που κολλάει στην κάμερα προς τα πίσω ή αφαιρείται το μπροστινό στοιχείο. Υπάρχουν μειονεκτήματα και για τις δύο αυτές επιλογές. Για την τοποθέτηση του φακού
Μηχανικό πληκτρολόγιο Arduino: 5 βήματα (με εικόνες)
Μηχανικό πληκτρολόγιο Arduino: Χρειαζόμουν ένα μαξιλαράκι για ένα άλλο έργο, οπότε αποφάσισα να φτιάξω ένα πληκτρολόγιο με εξαρτήματα που είχα στο σπίτι
Μηχανικό πληκτρολόγιο Cherry Pi Split: 45 βήματα (με εικόνες)
Μηχανικό πληκτρολόγιο Split Cherry Pi: Χρησιμοποιώ πληκτρολόγιο Microsoft Natural Elite για χρόνια. Και μετά από σχεδόν 20 χρόνια πιστής υπηρεσίας, βρίσκεται στο τέλος της διάρκειας ζωής του. Κατά την αναζήτησή μου για αντικαταστάτη, κοίταξα επίσης διάφορα μηχανικά πληκτρολόγια. Και επειδή τακτικά κάνω DIY
Μηχανικό πληκτρολόγιο ErgoDox: 11 βήματα (με εικόνες)
Μηχανικό πληκτρολόγιο ErgoDox: Το πληκτρολόγιο ErgoDox είναι ένα χωριστό, μηχανικό και προγραμματιζόμενο πληκτρολόγιο. Είναι πλήρως ανοιχτού κώδικα, οπότε το μόνο που χρειάζεστε για να το αγοράσετε είναι να αγοράσετε τα εξαρτήματα και να αφιερώσετε χρόνο. Δουλεύω ως μηχανικός λογισμικού και πάντα ψάχνω τρόπους για να βελτιώσω την παραγωγικότητά μου
Γρήγορο και βρώμικο πληκτρολόγιο Das (κενό πληκτρολόγιο): 3 βήματα
Πληκτρολόγιο Quick and Dirty (Blank Keyboard): Ένα πληκτρολόγιο Das είναι το όνομα του πιο δημοφιλούς πληκτρολογίου χωρίς επιγραφές στα πλήκτρα (κενό πληκτρολόγιο). Το πληκτρολόγιο Das πωλείται για 89,95 $. Αυτό το διδακτικό θα σας καθοδηγήσει αν και να το φτιάξετε μόνοι σας με οποιοδήποτε παλιό πληκτρολόγιο έχετε