Πίνακας περιεχομένων:
- Βήμα 1: Υλικά για να ξεκινήσετε
- Βήμα 2: Δοκιμή εξαρτημάτων
- Βήμα 3: Συγκόλληση του πίνακα ενδείξεων
- Βήμα 4: Δοκιμάστε τον πίνακα ενδείξεων
- Βήμα 5: Ενσωμάτωση του πίνακα ενδείξεων με την επιφάνεια αφής
- Βήμα 6: Κάντε το έξυπνο
- Βήμα 7: Ζωγραφική και συναρμολόγηση
- Βήμα 8: Απομακρυσμένη δοκιμή με VNC και τελικό κώδικα
- Βήμα 9: Διαχείριση καλωδίων και τελική συναρμολόγηση
- Βήμα 10: Μερικές εικόνες του δείκτη
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Γεια σου! Αυτό είναι το πρώτο μου εκπαιδευτικό. Πάντα ήθελα να φτιάξω τα πράγματα από την αρχή μόνο για να δω πώς λειτουργεί και σε ποιον δεν αρέσουν τα πράγματα DIY (Do it yourself) όταν μπορείτε να τροποποιήσετε κάτι σύμφωνα με τις ανάγκες σας σωστά; Όσο ενδιαφέρον κι αν ακούγεται ένα DIY, χρειάζεται λίγη προσπάθεια για να πραγματοποιηθεί. Η αναζήτηση στον ιστότοπο Instructables είναι ένας πολύ καλός τρόπος για να ξεκινήσετε τις φιλοδοξίες σας DIY και έτσι ξεκίνησα να χτίζω κάποια από τα έργα μου νωρίτερα, αλλά ποτέ δεν πίστευα ότι θα έφτιαχνα ένα.
Ακριβώς όπως μου ήρθε η ευκαιρία, έχω φτιάξει έναν δείκτη ποδηλάτου με μινιμαλιστικό σχεδιασμό και δυνατότητα αφής. Γνωρίζω ότι υπάρχουν πολλές οδηγίες ή διαδικτυακές πηγές για μια ένδειξη ποδηλάτου, αλλά τα περισσότερα από αυτά είτε πήραν λίγο περισσότερο χώρο είτε δεν ήταν αρκετά έξυπνα για να τα τροποποιήσουν με συγκεκριμένο τρόπο. Αν ψάχνετε για έναν δείκτη που είναι αρκετά έξυπνος για να καλύψει τις ανάγκες σας και σας δίνει την ευκαιρία να τις τροποποιήσετε σύμφωνα με τις ανάγκες σας, τότε αυτό το Instructable είναι για εσάς!
Γιατί Δείκτης ποδηλάτου;
Λατρεύω το ποδήλατο στην πόλη! Κάνω τον κύκλο μου και πηγαίνω μια βόλτα είτε το πρωί είτε το βράδυ. Μερικές φορές, τη νύχτα, είναι δύσκολο να οδηγήσετε, καθώς η κίνηση πίσω σας δεν θα μπορεί να σας προσέξει και αυτό είναι ένα επικίνδυνο σημάδι. Αυτός είναι ο λόγος για τον οποίο ήθελα να φτιάξω ένα Δείκτη μόνος μου με όλα τα υλικά που είχα μαζί μου στο σπίτι και επίσης Φαίνεται υπέροχο στο ποδήλατο καθώς οδηγείτε στην πόλη ανάβοντας τους δείκτες!
Κάνοντας ένα έργο χωρίς να χρειάζεται να αντιμετωπίσετε κανένα πρόβλημα, δεν συμβαίνει! Αλλά θα σας πω όλα τα λάθη που έκανα, ενώ το έχτιζα, ως "Handy Tip" για να μην προσπαθήσετε να τα κάνετε. Το βίντεο του YouTube περιέχει μια απεικόνιση του τρόπου κατασκευής του έργου, μικρά κινούμενα σχέδια για να μεταδώσει πώς λειτουργούν τα πράγματα και πώς φαίνεται ο δείκτης στο δρόμο! Οι περισσότερες περίπλοκες πληροφορίες δίνονται σε αυτό το Εγχειρίδιο. Καθώς προχωράτε, θα επισημαίνω τα τμήματα του βίντεό μου στο youtube ως "Timeline:" σε κάθε βήμα για να δείτε πώς λειτουργούν τα πράγματα πρακτικά. Μπορείτε να λάβετε περισσότερες πληροφορίες κάνοντας κλικ στους παρεχόμενους συνδέσμους που έχουν επισημανθεί.
Χαρακτηριστικά αυτού του έργου:
- Ένδειξη στροφής δεξιά
- Ένδειξη αριστερής στροφής
- Ένδειξη νυχτερινής όρασης
- Ενεργοποίηση αφής
Βήμα 1: Υλικά για να ξεκινήσετε
- Αντίσταση (330 ohms και 120 ohm): 330 ohm και 120 ohm
- Raspberry Pi 3: RPi 3
- Breadboard: Breadboard
- Jumper Wires (Male-Male, Male-Female, Female-Female): Jumper Wires
- Σύρματα πολλαπλών καλωδίων: Σύρματα πολλών κλώνων
- Capacitive Touch Sensor (TTP223) - (2): Link
- RGB LED (κοινός τύπος καθόδου) - (13): RGB κοινή καθόδου LED
- Κανονικά LED - (2): LED
- Υλικά συγκόλλησης: Σετ συγκόλλησης
- Πίνακες Perf: Perf Board
- Powerbank: Powerbank
- 1 micro Farad Ηλεκτρολυτικός πυκνωτής: Ηλεκτρολυτικός πυκνωτής
- LDR (Αντίσταση εξαρτώμενη από το φως): LDR
- Δεσμοί καλωδίων: Δεσμοί καλωδίων
- Καλώδιο Concealer: Καλώδιο Concealer
- Ακρυλικό χρώμα και βούρτσες (προαιρετικά): Χρώμα και βούρτσες
- Δύο κουτιά αποθήκευσης για συναρμολόγηση. (1 μεγάλο και 1 μεσαίου μεγέθους)
Διατηρείτε πάντα επιπλέον ποσότητα ως προς αυτό που αναφέρθηκε παραπάνω. Έχω συνδέσει τα εξαρτήματα στο Amazon και μερικά καλύτερα κιτ αγοράς για υλικά συγκόλλησης!
Χρονοδιάγραμμα: Συλλογή υλικών
Βήμα 2: Δοκιμή εξαρτημάτων
Ας δοκιμάσουμε τα στοιχεία σας! Αυτό είναι πραγματικά χρήσιμο για να διαχωρίσετε τα εξαρτήματα που είναι κατεστραμμένα ή λειτουργούν περίεργα για κάποιο λόγο και επίσης αυτή η φάση σάς επιτρέπει να αποκτήσετε την αρχική πρακτική εμπειρία με τα εξαρτήματα και να μάθετε λίγο πριν προχωρήσετε στην κατασκευή ολόκληρου του έργου.
Δοκιμή για τον τύπο LED RGB
Υπάρχουν δύο τύποι LED RGB που βρίσκουμε στην αγορά. Ο κοινός τύπος καθόδου και ο κοινός τύπος ανόδου.
Αυτή είναι μια εύχρηστη συμβουλή (αν και μεγαλύτερη) επειδή ένωσα τις λυχνίες LED όπως φαίνεται από αυτό το βίντεο εδώ και η λυχνία LED δεν άναψε όπως αναμενόταν ακόμη και μετά από διασταυρωμένο έλεγχο του κυκλώματος αρκετές φορές. Τότε συνειδητοποίησα ότι υπάρχουν δύο τύποι αυτού του LED και περνώντας από το φύλλο δεδομένων τελικά πήρα μια λύση! Το πρόβλημα με το κύκλωμά μου ήταν ότι ο κοινός πείρος καθόδου ήταν συνδεδεμένος στα 3.3V όπως αναφέρθηκε και είχα διατηρήσει με καρφίτσα GPIO στο HIGH, οπότε τόσο ο κοινός πείρος καθόδου όσο και οι άλλοι 3 ακροδέκτες είχαν το ίδιο δυναμικό.
Λύση: Συνδέω τον κοινό πείρο καθόδου στο έδαφος και το LED ανάβει! Ο λόγος που δεν άλλαξα τον κωδικό μου για να διατηρήσω τις καρφίτσες GPIO ΧΑΜΗΛΕΣ γιατί θα χρησιμοποιήσουμε περισσότερες λυχνίες LED αργότερα και το RPi μας δίνει μόνο δύο ακίδες στα 3,3 V που τις χρειαζόμαστε και για άλλους σκοπούς!
Πώς να δοκιμάσετε τον τύπο;
Διατηρήστε το πολύμετρο σε λειτουργία συνέχειας. Αγγίξτε το μακρύτερο καλώδιο με το κόκκινο άκρο του πολύμετρου και με τη μαύρη άκρη, πατήστε οποιοδήποτε από τα άλλα καλώδια. Εάν η λυχνία LED ανάβει εκτελώντας το παραπάνω βήμα, είναι μια κοινή άνοδος RGB LED. Εάν όχι, αντιστρέψτε την άκρη του πολύμετρου τώρα. Αγγίξτε το μακρύτερο καλώδιο με μαύρο άκρο και κόκκινο άκρο με οποιοδήποτε άλλο καλώδιο. Τώρα θα ανάψει δείχνοντας ότι το LED είναι ένα LED κοινής καθόδου RGB.
Χρήσιμη συμβουλή: Έχω χρησιμοποιήσει τον τύπο Common Cathode σε αυτό το έργο. Προσπαθήστε να πάρετε αυτούς τους τύπους μόνο, αλλά ακόμα κι αν ο άλλος τύπος είναι διαθέσιμος, μην ανησυχείτε. Οι συνδέσεις κυκλώματος παραμένουν οι ίδιες, η μόνη διαφορά πρέπει να γίνει στον κώδικα που θα δώσω ως σχόλιο δίπλα στην πραγματική γραμμή κώδικα όπου πρέπει να αλλάξετε. Να πάρει μια ανάσα.
Χρονοδιάγραμμα: Δοκιμή RGB
Αναφορά: Πώς να δοκιμάσετε το RGB
Το LED RGB ανάβει
Για να το κάνετε αυτό, ελέγξτε το διάγραμμα σύνδεσης που δίνεται στις παραπάνω εικόνες και συνδεθείτε σύμφωνα με τις καρφίτσες μέσω ενός πίνακα ψωμιού (για να το κρατήσετε ασφαλές για αρχή).
ΚΟΚΚΙΝΟ: Καρφίτσα 11 (αντίσταση 330 ohm)
ΠΡΑΣΙΝΟ: Καρφίτσα 13 (αντίσταση 120 ohm)
ΜΠΛΕ: Καρφίτσα 15 (αντίσταση 120 ohm)
Οι τιμές των αντιστάσεων ποικίλλουν λόγω των μεταβαλλόμενων τάσεων προς τα εμπρός των αγωγών.
Αφού τα συνδέσετε σωστά, κωδικοποιήστε το RPi στο ενσωματωμένο python IDE.
εισαγωγή RPi. GPIO ως GPIO
#Οι αριθμοί καρφιτσών αντιστοιχούν στον ακριβή αριθμό στο RPi GPIO Red_pin = 11 Green_pin = 13 Blue_pin = 15 #Συνδέστε την κοινή καρφίτσα καθόδου στο Pin 6 def turnOn (pin): GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO. OUT) GPIO.output (pin, GPIO. HIGH) #GPIO.output (pin, GPIO. LOW) for common anode type def turnOff (pin): GPIO.setmode (GPIO. BOARD) GPIO.setup (pin, GPIO OUT) GPIO.output (pin, GPIO. LOW) #GPIO.output (pin, GPIO. HIGH) def redOn (): turnOn (Red_pin) def redOff (): turnOff (Red_pin) def greenOn (): turnOn (Green_pin) def greenOff (): turnOff (Green_pin) def blueOn (): turnOn (Blue_pin) def blueOff (): turnOff (Blue_pin) δοκιμάστε: ενώ True: cmd = input ("Πληκτρολογήστε την εντολή σας:") εάν cmd == "κόκκινο ": #type εντολές εισαγωγής όπως αναφέρονται ακριβώς μέσα" "redOn () elif cmd ==" red off ": redOff () elif cmd ==" green on ": greenOn () elif cmd ==" green off ": greenOff () elif cmd == "blue on": blueOn () elif cmd == "blue off": blueOff () else: print ("Not a valid command") εκτός KeyboardInterrupt: GPIO.cleanup ()
Αναφέρθηκα σε αυτό το Instructable, ελέγξτε το για λεπτομερή περιγραφή και τον κωδικό!
Χρησιμοποιώντας τον ίδιο κωδικό παραπάνω, μπορείτε να ελέγξετε για πολλαπλά LED μαζί συνδέοντάς τα παράλληλα στο ψωμί και βγάζοντας το ενιαίο σημείο από οποιαδήποτε από τις ακίδες που είναι συνδεδεμένες μεταξύ τους. Χρησιμοποιήστε διαφορετικές τιμές αντίστασης για κάθε ακίδα για να ελέγξετε τη φωτεινότητα των LED σας
Χρήσιμη συμβουλή: Βεβαιωθείτε ότι έχετε συνδέσει τον ίδιο παράλληλο τύπου καρφίτσας. Δηλαδή, ο κόκκινος πείρος του ενός LED συνδέεται μόνο με τον κόκκινο πείρο του άλλου LED.
Χρονοδιάγραμμα: Κάντε τα να λάμπουν!
Δοκιμή TouchPad
Η σύνδεση κυκλώματος είναι όπως φαίνεται εδώ (Χρονολόγιο). Συνδέστε τα όπως φαίνεται και δοκιμάστε τις επιφάνειες αφής σας χρησιμοποιώντας τον ακόλουθο κώδικα.
Κώδικας:
εισαγωγή RPi. GPIO ως GPIO
από ώρα εισαγωγή ύπνου GPIO.setmode (IO. BOARD) touchpad1 = 11 #pin 11 touchpad2 = 13 #pin 13 GPIO.setup (touchpad1, GPIO. IN) GPIO.setup (touchpad2, GPIO. IN) #Μπορούμε να συσπειρώσουμε και τα δύο οι παραπάνω δηλώσεις μαζί ως # GPIO.setup ([touchpad1, touchpad2], GPIO. IN) δοκιμάστε: ενώ True: if (GPIO.input (touchpad1) == True): print ("Touchpad 1 touchged") sleep (2) elif (GPIO.input (touchpad2) == True): εκτύπωση ("Touchpad 2 touch") sleep (2) else: print ("Not Touched") εκτός KeyboardIntrupt: GPIO.cleanup () #CTRL-C για έξοδο
Δοκιμή LED
Ανατρέξτε σε αυτό το φοβερό οδηγό για τη δοκιμή των LED σας!
Μόλις δοκιμάσετε όλα τα παραπάνω στοιχεία, είστε έτοιμοι να δημιουργήσετε τη μεγαλύτερη έκδοση του.
Βήμα 3: Συγκόλληση του πίνακα ενδείξεων
Αν είστε νέοι στη συγκόλληση, δείτε αυτό το σεμινάριο για να μάθετε μερικά βασικά του εδώ (Πώς να κολλήσετε). Εάν είστε επαγγελματίας στη συγκόλληση, αφήστε μας να ξεκινήσουμε!
Ο πίνακας ενδείξεων
Μπορείτε να βρείτε την εικονογράφηση του τρόπου συγκόλλησής τους στον πίνακα τέχνης στις παραπάνω εικόνες.
Χρησιμοποιούμε 13 LED RGB για τον πίνακα. Διαχωρίστε τα σε τρία τμήματα: αριστερά, δεξιά και κέντρο για συγκόλληση ανάλογα.
Σημαντικό: Χώρος μεταξύ των LED
Έχω αφήσει 3 σειρές μεταξύ των LED. Όπως φαίνεται στη δεύτερη εικόνα. Αυτό είναι σημαντικό για το πάνελ LED να φαίνεται και να αισθάνεται καλά. Δεν θέλουμε τα LED πολύ μακριά για να αυξήσουν το χώρο ή πολύ κοντά για να μην μπορούμε να διακρίνουμε το φως από πολύ μακριά.
Χρήσιμη συμβουλή: Ξεκινήστε συγκολλώντας πρώτα όλες τις κοινές καρφίτσες Common Cathode
Χρήσιμη συμβουλή: Χρησιμοποιήστε σύρματα πολλαπλών καλωδίων για να συνδέσετε τα LED μεταξύ τους καθώς είναι λιγότερο στιβαρά και λυγίζουν εύκολα. Μπορείτε να χρησιμοποιήσετε τους επιπλέον πείρους αποκοπής από τα LED για να συνδέσετε μικρότερες αποστάσεις
Δεξιά ενότητα: (5 LED)
- Συνδέστε όλες τις κόκκινες καρφίτσες μαζί
- Συνδέστε όλες τις πράσινες καρφίτσες μαζί
- Συνδέστε όλες τις κοινές καρφίτσες κοινής καθόδου
Αριστερό τμήμα: (5 LED)
- Συνδέστε όλες τις κόκκινες καρφίτσες μαζί
- Συνδέστε όλες τις πράσινες καρφίτσες μαζί
- Συνδέστε όλες τις κοινές καρφίτσες κοινής καθόδου
Κεντρικό τμήμα: (3 LED)
Χρήσιμη συμβουλή: Αυτή η ενότητα απαιτεί αρκετή προσοχή. Μην κολλήσετε όλες τις καρφίτσες μαζί όπως κάναμε στα δύο παραπάνω τμήματα!
- Συνδέστε όλες τις κόκκινες καρφίτσες μαζί
- Συνδέστε μόνο τα επάνω και κάτω LED, την πράσινη καρφίτσα.
- Συνδέστε όλες τις κοινές καρφίτσες κοινής καθόδου
Καλώδια
Χρειαζόμαστε μακρύτερα καλώδια για να συνδέσουμε τον πίνακα στον πίνακα GPIO.
Χρήσιμη συμβουλή:
- Χρησιμοποιήστε μονόκλωνα καλώδια! Είναι αρκετά ανθεκτικά για να αντέχουν σε μηχανικές καταπονήσεις που ασκούνται σε αυτό!
- Διατηρήστε τα καλώδια λίγο περισσότερο από το πραγματικό μήκος που απαιτείται μεταξύ του πίνακα και του RPi (αυτό είναι πολύ βολικό κατά τη διαχείριση των καλωδίων αργότερα! (Χρονολόγιο: Μετρήσεις)
- Μονώστε μετά από συγκόλληση! Πολύ σημαντικό
Χρησιμοποιήστε ένα καλώδιο βραχυκυκλωτήρα και ένα μονόκλωνο σύρμα για συγκόλληση. Το ένα άκρο του βραχυκυκλωτήρα πρέπει να είναι θηλυκός σύνδεσμος. Κολλήστε τα όπως φαίνεται εδώ (Χρονολόγιο)
Κωδικοποιήστε τα καλώδια ως κόκκινο, πράσινο και μαύρο. που αντιστοιχεί σε κόκκινη καρφίτσα, πράσινη καρφίτσα και κοινή καρφίτσα καθόδου αντίστοιχα.
Απαιτούμε 3 μαύρα σύρματα, 3 κόκκινα σύρματα και 3 πράσινα σύρματα.
Μόλις τα καλώδια είναι έτοιμα. Συγκολλήστε τα καλώδια στις ενδεικτικές λυχνίες LED.
Χρήσιμες συμβουλές:
- Βεβαιωθείτε ότι τα LED είναι συγκολλημένα σύμφωνα με τις συνδέσεις που δίνονται.
- Βεβαιωθείτε ότι έχετε κολλήσει τις σωστές τιμές αντίστασης στη θέση τους. Εάν αλλάξουν οι τιμές, θα επηρεάσει τη φωτεινότητα των LED
- Ένας τρόπος για να βεβαιωθείτε ότι όλα τα LED σας λειτουργούν είναι χρησιμοποιώντας το πολύμετρο μετρητή που αναφέρεται στο Βήμα 2. Αυτό είναι πολύ βολικό καθώς θα γνωρίζετε εάν υπάρχει βραχυκύκλωμα, τα LED δεν θα ανάψουν.
- Μην αφαιρείτε τα άκρα των καλωδίων περισσότερο από όσο απαιτείται. Αυτό θα είναι δύσκολο να διατηρηθούν στη θέση τους και επίσης υψηλότερος κίνδυνος βραχυκυκλώματος.
- Χρησιμοποιήστε σύρμα πολλών κλώνων για σύνδεση μεταξύ LED.
- Χρησιμοποιήστε μονόκλωνο σύρμα για τη σύνδεση των τμημάτων στο RPi.
Βήμα 4: Δοκιμάστε τον πίνακα ενδείξεων
Δόξα! Εάν έχετε κολλήσει σωστά τον πίνακα. Ας προχωρήσουμε στην κωδικοποίηση του Δείκτη τώρα!
Όπως προαναφέρθηκε, θα υποδείξουμε μια δεξιά στροφή, αριστερή στροφή και ενεργοποίηση/απενεργοποίηση της νυχτερινής όψης.
Ανατρέξτε στη σύνδεση του κυκλώματος στο βήμα 3.
Συνδέστε τα καλώδια του πίνακα όπως αναφέρεται παρακάτω:
- Κόκκινο Δεξί - Καρφίτσα 7
- Πράσινη δεξιά - καρφίτσα 11
- Common Cathode Right - Pin 6 (GND)
- Κόκκινο αριστερά - καρφίτσα 13
- Πράσινο αριστερά - καρφίτσα 15
- Common Cathode Left - Pin 9 (GND)
- Κέντρο Κόκκινο - Καρφίτσα 16
- Κέντρο πράσινου (πάνω και κάτω) - Καρφίτσα 18
- Center Common Cathode - Pin 14 (GND)
Κωδικός δοκιμής:
εισαγωγή RPi. GPIO ως GPIO
από ώρα εισαγωγή ύπνου #Σύνδεση σύμφωνα με τους παρακάτω αριθμούς pin Red_right = 7 Green_right = 11 Red_left = 13 Green_left = 15 Red_center = 16 Green_top_bottom = 18 GPIO.setmode (GPIO. BOARD) def right_turn (): print ("Turning Right") blink (Green_right, Green_top_bottom, 0) def left_turn (): print ("Turning Left") blink (Green_left, Green_top_bottom, 0) def blink (pin1, pin2, pin3): if (pin3 == 0): GPIO.setup ([pin1, pin2], GPIO. OUT) για x στην περιοχή (10): GPIO.output ([pin1, pin2], GPIO. HIGH) sleep (0.5) GPIO.output ([pin1, pin2], GPIO. LOW) sleep (0,5) άλλο: GPIO.setup ([pin1, pin2, pin3], GPIO. OUT) για x στην περιοχή (10): GPIO.output ([pin1, pin2, pin3], GPIO. HIGH) sleep (0,5) GPIO.output ([pin1, pin2, pin3], GPIO. LOW) sleep (0.5) def night_sight (): print ("Night Sight ON") blink (Red_left, Red_right, Red_center) try: while True: cmd = input (" Δοκιμάστε το LED για: ") εάν cmd ==" δεξιά στροφή ": right_turn () elif cmd ==" αριστερή στροφή ": left_turn () elif cmd ==" night night ": night_sight () else: print (" Invalid Command ") εκτός από τον Κε yboardIntruptrupt: GPIO.cleanup ()
Εάν το πάνελ σας διαγράψει όλες τις δοκιμαστικές φάσεις όπως στον κώδικα, Μπράβο! Ετοιμαστείτε για το επόμενο βήμα
Εάν ο πίνακας δεν ανάβει, βεβαιωθείτε ότι έχετε ακολουθήσει όλα τα βήματα σωστά και έχετε εξετάσει τις εύχρηστες συμβουλές πριν. Εάν το πρόβλημα εξακολουθεί να υπάρχει, μπορείτε να σχολιάσετε παρακάτω, θα είμαι έτοιμος να σας βοηθήσω.
Χρονολόγιο: Δοκιμή ΕΝΑ (Ελέγξτε το βίντεο για το πρωτότυπο που λειτουργεί)
Βήμα 5: Ενσωμάτωση του πίνακα ενδείξεων με την επιφάνεια αφής
Συνδέοντας το με το RPi
Κάντε τις συνδέσεις όπως φαίνεται στην παραπάνω εικόνα.
Δεξιός πίνακας
Επιφάνεια αφής:
- Καρφίτσα GND - Καρφίτσα 34
- Καρφίτσα VCC - Καρφίτσα 1
- SIG pin - Pin 29
LED:
Κωδικός ανόδου (+) - Καρφίτσα 33
Αριστερός πίνακας
Επιφάνεια αφής:
- Καρφίτσα GND - Καρφίτσα 30
- Καρφίτσα VCC - Καρφίτσα 17
- SIG pin - Pin 31
LED:
Κωδικός ανόδου (+) - Καρφίτσα 35
Common GND: Pin 39 (Και για την κάθοδο των LED) - Συγκολλήσεις κοινού εδάφους (Χρονολόγιο)
Κωδικός δοκιμής:
εισαγωγή RPi. GPIO ως GPIO
από την ώρα εισαγωγή ύπνου right_led, left_led], GPIO. OUT) GPIO.setup (right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (κανάλι): GPT (right_led, GPIO. HIGH) global ενεργοποιήθηκε ενεργοποιήθηκε = 1 εκτύπωση ("Turning Right") αναβοσβήνει (Green_right, Green_top_bottom) def left_turn (channel): GPIO.output (left_led, GPIO. HIGH) global ενεργοποιήθηκε ενεργοποιήθηκε = 1 εκτύπωση ("Turning Αριστερά ") αναβοσβήνει (Green_left, Green_top_bottom) GPIO.add_event_detect (right_touch, GPIO. FALLING, callback = right_turn, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO. FALLING, callback = αριστερό pin2): GPIO.setup ([pin1, pin2], GPIO. OUT) για x στην περιοχή (10): GPIO.output ([pin1, pin2], GPIO. HIGH) sleep (0.5) GPIO.outpu t ([pin1, pin2], GPIO. LOW) sleep (0.5) GPIO.output ([right_led, left_led], GPIO. LOW) global ενεργοποιήθηκε ενεργοποιημένη = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left].output ([Red_center, Red_left, Red_right], GPIO. LOW) sleep (0.27) else: print ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) try: night_sight () εκτός KeyboardIntruptrupt: GPIO.cleanup ()
Αγγίξτε την επιφάνεια αφής για να δείτε το φως να λάμπει
Χρονοδιάγραμμα (χωρίς ένδειξη LED): Δοκιμή δύο
Χρονοδιάγραμμα (με ενδεικτική λυχνία LED): Δοκιμή 3
Επεξήγηση κώδικα: Θέλουμε η νυχτερινή όραση να λειτουργεί συνεχώς και όταν αγγίζουμε την επιφάνεια αφής θα πρέπει να σταματήσει και να εκτελέσει τη λειτουργία της επιφάνειας αφής. Για να το κάνουμε αυτό ταυτόχρονα χρησιμοποιούμε κάτι γνωστό ως "Διακόπτει" στον python. Αυτό μας επιτρέπει να τρέξουμε τον κανονικό μας κώδικα που είναι το νυχτερινό θέαμα και επίσης ενεργοποιεί ένα συμβάν όταν ανιχνεύεται ένα άγγιγμα. Χρησιμοποιούμε ενεργοποιημένη μεταβλητή ως σημαία για να σταματήσουμε τη νυχτερινή όραση.
Για περισσότερες πληροφορίες σχετικά με τις διακοπές, ελέγξτε αυτόν τον σύνδεσμο.
Συγκολλήστε το πάνελ
Τώρα ας κολλήσουμε τα πάνελ αφής που θα πάνε στο τιμόνι του ποδηλάτου. Ανατρέξτε στις συνδέσεις όπως δίνονται στην παραπάνω εικόνα.
Τώρα που δοκιμάσατε το LED και την επιφάνεια αφής, είστε έτοιμοι. Εάν δεν έχετε δοκιμάσει ήδη, ανατρέξτε σε αυτό το βήμα και στα προηγούμενα βήματα.
Τοποθετήστε την επιφάνεια αφής κοντά στο τιμόνι, όπως φαίνεται στο βίντεο. Δηλαδή, για τη δεξιά επιφάνεια αφής η επιφάνεια αφής βρίσκεται στα δεξιά και αριστερά στα αριστερά της. Ομοίως, για την αριστερή επιφάνεια αφής, το led είναι στα δεξιά και το touchpad στα αριστερά που διευκολύνει τον αντίχειρα να φτάσει.
ΥΓ: Δεν έχω συγκολλήσει το touchpad στον πίνακα perf επειδή επρόκειτο να το ξαναχρησιμοποιήσω. Ως εκ τούτου, το έβαλα στο πάνελ με ταινία διπλής όψης.
Συνδέστε τον πίνακα στο RPi χρησιμοποιώντας μακρύτερα καλώδια
Βήμα 6: Κάντε το έξυπνο
Ναί! Τώρα που έχουμε όλα τα βασικά στοιχεία του Δείκτη σε λειτουργία. Ας κάνουμε ένα βήμα παραπέρα για να το κάνουμε έξυπνο.
Εδώ το έξυπνο ορίζει την εξοικονόμηση ενέργειας και στην μπαταρία. Όπως ίσως έχετε παρατηρήσει, η νυχτερινή όραση είναι πάντα ενεργοποιημένη και μερικές φορές αυτό μπορεί να μην απαιτείται σε μια φωτεινή ηλιόλουστη μέρα. Για να ξεπεράσουμε αυτό το πρόβλημα, ας ενσωματώσουμε ένα LDR (Light Dependent Resistor) για να μας δώσουμε τα δεδομένα της έντασης του φωτός τα οποία μπορούμε να συλλέξουμε και να επεξεργαζόμαστε ανάλογα τον δείκτη μας.
Δοκιμή του LDR
Αναφέρθηκα σε αυτόν τον ιστότοπο για τον έλεγχο του LDR για τον έλεγχο της έντασης του φωτός και της τιμής που επιστρέφει.
Ανατρέξτε στον ιστότοπο που έχει επισημανθεί παραπάνω για το κύκλωμα και τον δείγμα κώδικα για τη λειτουργία του LDR.
Ενσωμάτωση του LDR στον κωδικό μας
Συγκολλήστε το LDR στο δεξιό πλαίσιο της επιφάνειας αφής, όπως φαίνεται στο παραπάνω διάγραμμα σύνδεσης.
Αφού συγκολλήσετε τις καρφίτσες στο σωστό μέρος, ήρθε η ώρα για το τελευταίο κομμάτι της κωδικοποίησης. Ο τελικός κωδικός!
- Συνδέστε το κοινό σημείο του Cathode (-) του πυκνωτή και του LDR στο Pin 36 στο RPi
- Η άνοδος του πυκνωτή συνδέεται με το σημείο Common Ground που αναφέρεται στο βήμα 5
Τελικός Κώδικας:
εισαγωγή RPi. GPIO ως GPIO
από το χρόνο εισαγωγής ύπνου setup ([right_led, left_led], GPIO. OUT) GPIO.setup (right_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) GPIO.setup (left_touch, GPIO. IN, pull_up_down = GPIO. PUD_UP) def right_turn (κανάλι) GPIO.output (right_led, GPIO. HIGH) global ενεργοποιήθηκε ενεργοποιήθηκε = 1 εκτύπωση ("Turning Right") αναβοσβήνει (Green_right, Green_top_bottom) def left_turn (channel): GPIO.output (left_led, GPIO. HIGH) global ενεργοποιήθηκε = 1 εκτύπωση ("Στροφή αριστερά") αναβοσβήνει (Green_left, Green_top_bottom) GPIO.add_event_detect (right_touch, GPIO. FALLING, callback = right_turn, bouncetime = 500) GPIO.add_event_detect (left_touch, GPIO = f, (ldr): count = 0 #Έξοδος στην καρφίτσα για GPIO.setup (ldr, GPIO. OUT) GPIO.output (ldr, GPIO. LOW) sleep (0.1) #Chang e το pin πίσω στην είσοδο GPIO.setup (ldr, GPIO. IN) #Count μέχρι ο πείρος να ανέβει ψηλά ενώ (GPIO.input (ldr) == GPIO. LOW): count += 1 count count def blink (pin1, pin2): GPIO.setup ([pin1, pin2], GPIO. OUT) για x στην περιοχή (10): GPIO.output ([pin1, pin2], GPIO. HIGH) sleep (0.5) GPIO.output ([pin1, pin2], GPIO. LOW) sleep (0.5) GPIO.output ([right_led, left_led], GPIO. LOW) global ενεργοποιήθηκε ενεργοποιήθηκε = 0 def night_sight (): while (True): GPIO.setup ([Red_center, Red_left, Red_right], GPIO. OUT) καθολική ενεργοποίηση εάν (light_sensing (ldr)> 7800): if (triggered == 0): print ("Night Sight ON") GPIO.output ([Red_center, Red_left, Red_right], GPIO. HIGH) sleep (0,27) GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) sleep (0,27) else: print ("Night Sight OFF") GPIO.output ([Red_center, Red_left, Red_right], GPIO. LOW) try: night_sight () εκτός από το πληκτρολόγιο Διακοπή: GPIO.cleanup ()
Βοϊλα! Και ο δείκτης είναι έτοιμος να κυλήσει.
Χρήσιμη συμβουλή: Πριν από τη συναρμολόγηση του RPi και άλλων εξαρτημάτων στον κύκλο, βεβαιωθείτε ότι έχετε δοκιμάσει σωστά αυτό το πρόγραμμα! Εκτελέστε το μερικές φορές για να διορθώσετε τυχόν σφάλματα.
Βήμα 7: Ζωγραφική και συναρμολόγηση
Απαιτούμενα υλικά:
- Εργαλεία κοπής/ απογύμνωσης καλωδίων
- Ένα μεγάλο κουτί αποθήκευσης για να χωρέσει στο Raspberry Pi
- Ένα μικρό κουτί αποθήκευσης που ταιριάζει στον πίνακα ενδείξεων
- Χρώμα
- Πινέλα
Ξεκινήστε βάφοντας τον πίνακα ενδείξεων και τα πάνελ αφής με μαύρο χρώμα. Χρησιμοποίησα Ακρυλικά Χρώματα εδώ μπορείτε να τα χρησιμοποιήσετε της επιλογής σας τα οποία συνδυάζονται καλά με τον πίνακα perf. Χρησιμοποιήστε μαύρο φόντο για να κάνετε τον πίνακα LED ζωντανό και πιο ξεχωριστό. Κάντε τις τρύπες χρησιμοποιώντας θερμαινόμενο κατσαβίδι ή χρησιμοποιώντας οποιοδήποτε μεταλλικό αντικείμενο για να λιώσει το πλαστικό.
Σημείωση: Να είστε προσεκτικοί όταν κάνετε τρύπες.
Χρονοδιάγραμμα: Βαφή
Χρήσιμη συμβουλή: Χρησιμοποίησα πλαστικά κουτιά και το χρώμα ξεκολλάει εύκολα. Βεβαιωθείτε ότι χρησιμοποιείτε χρώματα καλής ποιότητας
Μόλις βάψετε το Δείκτη και τα πάνελ, στεγνώστε τα στον ήλιο και ετοιμαστείτε για συναρμολόγηση.
Έχω κόψει επιπλέον άκρες του πίνακα perf στον πίνακα ενδείξεων και στον μπροστινό πίνακα για εξοικονόμηση χώρου.
Ελέγξτε το βίντεο για συναρμολόγηση!
Χρονοδιάγραμμα: Εκδικητές! Συγκεντρώνουν. (Συναρμολόγηση του πίνακα ενδείξεων και του RPi με κουτιά)
Όπως φαίνεται στο βίντεο, βάλτε τα καλώδια ανάλογα κάνοντας τρεις τρύπες στο μεγαλύτερο κουτί. Ένα για καλώδιο τροφοδοσίας RPi, ένα για πίνακες αφής και ένα για τον πίνακα ενδείξεων. Απαιτείται μόνο μία τρύπα για το μικρότερο κουτί.
Χρήσιμη συμβουλή: Ελέγξτε για τη μόνωση των καλωδίων και ελέγξτε εάν τα καλώδια είναι συγκολλημένα σωστά πριν τα συνδέσετε στο κουτί.
Βήμα 8: Απομακρυσμένη δοκιμή με VNC και τελικό κώδικα
Μια τελευταία δοκιμή πριν ο δείκτης είναι πλήρως έτοιμος. Συνδέστε το RPi σας στο VNC Viewer και εκτελέστε το πρόγραμμα.
Χρησιμοποιώ πάντα έναν διακομιστή VNC για να τρέχω το πρόγραμμα και να εντοπίζω σφάλματα στο πρόγραμμα. Με αυτόν τον τρόπο μπορώ να τοποθετήσω το RPi απευθείας στο σημείο όπου θέλω να δοκιμάσω χωρίς να συνδέσω την οθόνη εξωτερικά.
Ελέγξτε αυτήν τη σελίδα για να συνδέσετε το RPi στον διακομιστή VNC. (Διακομιστής VNC)
Μόλις συνδέσετε το RPi στον διακομιστή VNC. Μπορείτε να εκτελέσετε τον κώδικα στην εικονική επιφάνεια εργασίας και να εντοπίσετε σφάλματα.
Χρονολόγιο: Εκτέλεση κατά την εκκίνηση
Χρήσιμη συμβουλή: Μόλις συνδέσετε το Raspberry Pi στην εικονική επιφάνεια εργασίας, θα συνδεθείτε με τη διεύθυνση IP του RPi. Αλλά αν λάβετε ένα σφάλμα που δηλώνει ότι το RPi αρνήθηκε τη σύνδεση, αυτό οφείλεται στην αλλαγή της διεύθυνσης IP στο RPI. Αυτό μπορεί να συμβεί όταν κάνετε επανεκκίνηση του δρομολογητή σας ή ενός σημείου πρόσβασης WiFi και, στη συνέχεια, προσπαθήσετε να συνδεθείτε με την παλιά διεύθυνση. Ο δρομολογητής εκχωρεί μια νέα IP κάθε φορά που την κάνετε επανεκκίνηση. Αλλά αν θυμάστε την παλιά διεύθυνση IP του RPi, αυξήστε το τελευταίο ψηφίο κατά 1 και συνδεθείτε. Παράδειγμα: Εάν η παλιά διεύθυνση IP είναι 190.148.1.100, τότε συνδεθείτε χρησιμοποιώντας 190.148.1.101
Αφού ελέγξετε αν λειτουργεί σωστά, ήρθε η ώρα για την τελική συναρμολόγηση.
Πάντα δεν μπορούμε να έχουμε μια εικονική επιφάνεια εργασίας για την παρακολούθηση ή την εκτέλεση του σεναρίου python. Ας το κάνουμε λοιπόν κατά την εκκίνηση.
Θέλουμε το πρόγραμμά μας να τρέξει μόλις ξεκινήσει το RPi. Ελέγξτε αυτόν τον ιστότοπο για περισσότερες λεπτομέρειες σχετικά με αυτό!
Εάν το RPi είναι στη ρύθμιση Αυτόματης σύνδεσης, συνεχίστε.
Εκτελέστε τις ακόλουθες εντολές στο τερματικό του RPi
sudo nano /etc /προφίλ
Μετακινηθείτε προς τα κάτω και προσθέστε την ακόλουθη γραμμή:
sudo python file_path &
Το file_path εδώ αναφέρεται στη διαδρομή του αρχείου python όπου είναι αποθηκευμένος ο τελικός σας κώδικας.
Σημείωση: Το Ampersand (&) στο τέλος του αρχείου πρέπει να προστεθεί έτσι ώστε το πρόγραμμά σας να τρέχει παράλληλα με την εκκίνηση του συστήματος. Επειδή το πρόγραμμά μας περιέχει έναν ατελείωτο βρόχο, αυτό το βήμα είναι υποχρεωτικό, έτσι ώστε ακόμη και αν το πρόγραμμα δεν εκτελείται όπως αναμένεται, μπορούμε να χρησιμοποιήσουμε την επιφάνεια εργασίας RPi για να αλλάξουμε τις ρυθμίσεις.
Μετά από αυτό πατήστε CTRL-X και στη συνέχεια YPress Enter δύο φορές και θα επιστρέψετε στο τερματικό εντολών.
Επανεκκινήστε το Pi
Τώρα ο κωδικός θα πρέπει να τρέχει κατά την εκκίνηση
Βήμα 9: Διαχείριση καλωδίων και τελική συναρμολόγηση
Συγχαρητήρια! για την ολοκλήρωση αυτού του έργου. Του έδωσα τη λέξη Minimal όπως είδατε χρησιμοποιήσαμε λιγότερα LED για να δείξουμε όλες τις απαραίτητες ενδείξεις και επίσης με προσαρμοσμένα χρώματα. Μη διστάσετε να χρησιμοποιήσετε διαφορετικά χρώματα για τα LED σας, όπως το κίτρινο για τις στροφές ή οποιοδήποτε άλλο.
Εάν έχετε κάνει αυτό το έργο, κάντε κλικ στο "Το έφτιαξα" και μοιραστείτε την εμπειρία σας. Μοιραστείτε τις σκέψεις σας καθώς και τυχόν προτάσεις ή σχόλια για αυτό το έργο. Θα ήθελα πολύ να το ακούσω!
Διαχείριση καλωδίων
Ναί! Όπως ίσως έχετε παρατηρήσει, υπάρχουν τόσα πολλά καλώδια που μπαίνουν μέσα και γύρω από τους κύκλους και η διαχείρισή τους είναι ταραχώδης. Χρησιμοποίησα ετικέτες καλωδίων, ταινίες μόνωσης και περίβλημα καλωδίου για να κρύψω τα καλώδια και επίσης τα έβαψα μαύρα όπως είδατε την εικόνα.
Χρήσιμη συμβουλή: Επειδή έχετε αφήσει επιπλέον ίντσες στα καλώδια σας από ό, τι απαιτείται, είναι χρήσιμο τώρα να τα διαχειρίζεστε σωστά χωρίς να τα αγχώνετε! Εάν ένα από τα LED σας ανάψει και τα άλλα δεν ανάβουν ακόμη και αν έχετε κάνει τα πάντα σωστά, το πρόβλημα είναι τα Jumper Wires που συνδέονται με το RPi, θα υπάρξει χαλαρή επαφή. Εάν αυτό επιμείνει, χρησιμοποιήστε ένα καλώδιο άλματος αρσενικό προς θηλυκό για να επεκτείνετε το καλώδιο και να το συνδέσετε. Χρησιμοποιήστε συνδέσμους καλωδίων για να διατηρήσετε τα καλώδια στη θέση τους, έτσι ώστε να μην κινούνται.
Τώρα ο δείκτης είναι έτοιμος για μια βόλτα! Απόλαυσέ το
Υ. Γ.: Σε ένα ακόμη διδάσκοντα θα ήθελα πολύ να μειώσω τον αριθμό των καλωδίων στο κύκλωμα και να καταλήξω σε ένα καλύτερο σχέδιο. Αν το κάνω θα μοιραστώ ένα Instructable σε αυτό!
Βήμα 10: Μερικές εικόνες του δείκτη
Σας ευχαριστούμε που διαβάσατε αυτό το Instructable. Ελπίζω να το απολαύσατε όσο και εγώ το έφτιαξα
Χρονολόγιο: Τελικός έλεγχοςΣτο παραπάνω τμήμα, μπορείτε να δείτε ότι μόλις σκοτεινιάσει το δωμάτιο, η "Νυχτερινή όραση" ενεργοποιείται και καθώς φωτίζεται, απενεργοποιείται αμέσως!
Χρονολόγιο: Έτοιμο για προβολή Όλα τα εύσημα στην ποδηλασία των αδερφών μου για το βίντεο!