- Απαιτούμενα στοιχεία
- Διάγραμμα κυκλώματος
- Κατασκευή PCB για Raspberry Pi RGB LCD HAT χρησιμοποιώντας το EasyEDA
- Υπολογισμός και παραγγελία δειγμάτων PCB στο διαδίκτυο χρησιμοποιώντας το EasyEDA
- Ρύθμιση Raspberry Pi για καπέλο LCD
- Κωδικός Python για Raspberry Pi LCD HAT
- Δοκιμές του Raspberry Pi RGB LCD HAT
Τα καπέλα Raspberry Pi είναι τα ίδια με τις ασπίδες για το Arduino, μπορούν να χωρέσουν απευθείας στην κορυφή του Raspberry Pi και δεν απαιτούν περαιτέρω συνδέσεις. Εδώ πρόκειται να δημιουργήσουμε ένα καπέλο RGB LCD για το Raspberry Pi στο PCB. Αυτό το καπέλο LCD αποτελείται από μια μονάδα LCD 16x2, πέντε διακόπτες και τρία LED NeoPixel. Εδώ χρησιμοποιούνται διακόπτες για να αλλάξετε το κείμενο στην οθόνη και τα LED NeoPixel χρησιμοποιούνται ως ενδείξεις. Αυτοί οι διακόπτες και τα Neo Pixels μπορούν να προγραμματιστούν σύμφωνα με τις απαιτήσεις όπως οι διακόπτες μπορούν να χρησιμοποιηθούν για την εμφάνιση τιμών αισθητήρα όπως η θερμοκρασία, η υγρασία κ.λπ. και τα Neo pixels μπορούν να χρησιμοποιηθούν για την εμφάνιση της κατάστασης όπως το κόκκινο για ένδειξη κάποιου σφάλματος και πράσινου κατά τη λήψη ορισμένων δεδομένων.
Εδώ θα χρησιμοποιήσουμε το ηλεκτρονικό λογισμικό EasyEDA για να σχεδιάσουμε το κύκλωμα και το PCB για αυτό το Pi HAT και το JLCPCB για να παραγγείλουμε τα PCB.
Απαιτούμενα στοιχεία
- Raspberry Pi 4
- Ενότητα οθόνης LCD 16 * 2
- LED Neo-pixel (3)
- Πυκνωτές
- Διακόπτες (5)
Διάγραμμα κυκλώματος
Το πλήρες διάγραμμα κυκλώματος για το Raspberry Pi RGB LCD HAT φαίνεται παρακάτω. Το σχηματικό σχεδιάστηκε χρησιμοποιώντας το EasyEDA. Όπως μπορείτε να δείτε, συνδέουμε μια μονάδα LCD 16x2, 3 LED NeoPixel και 5 Διακόπτες με το Raspberry Pi. Ένας σύνδεσμος χρησιμοποιείται επίσης για την ενεργοποίηση ή απενεργοποίηση των LED NeoPixel.
Κατασκευή PCB για Raspberry Pi RGB LCD HAT χρησιμοποιώντας το EasyEDA
Κατά το σχεδιασμό του PCB για Raspberry Pi RGB LCD HAT, το πιο δύσκολο μέρος ήταν να πάρει το αποτύπωμα σωστά. Εάν οι διαστάσεις πάνε στραβά, τότε τα εξαρτήματα δεν θα χωρέσουν στο PCB. Αλλά αρκετά τυχερός, το EasyEDA παρέχει ίχνη για σχεδόν όλα τα εξαρτήματα της αγοράς. Αυτό οφείλεται στην τεράστια κοινότητα χρηστών όπου οι χρήστες δημιουργούν ίχνη και το καθιστούν διαθέσιμο για το κοινό να το χρησιμοποιεί στα έργα του.
Το EasyEDA είναι ένα διαδικτυακό εργαλείο EDA που έχω χρησιμοποιήσει στο παρελθόν πολλές φορές και το βρήκα πολύ βολικό στη χρήση, καθώς διαθέτει μια καλή συλλογή αποτυπωμάτων και είναι ανοιχτού κώδικα. Αφού σχεδιάσουμε το PCB, μπορούμε να παραγγείλουμε τα δείγματα PCB με τις χαμηλού κόστους υπηρεσίες κατασκευής PCB- JLCPCB. Προσφέρουν επίσης υπηρεσίες προμήθειας συστατικών όπου διαθέτουν μεγάλο απόθεμα ηλεκτρονικών εξαρτημάτων και οι χρήστες μπορούν να παραγγείλουν τα απαιτούμενα συστατικά τους μαζί με την παραγγελία PCB.
Ενώ σχεδιάζετε τα κυκλώματα και τα PCB, μπορείτε επίσης να κάνετε το κύκλωμα σας και τα σχέδια PCB να είναι δημόσια, ώστε άλλοι χρήστες να μπορούν να τα αντιγράψουν ή να τα επεξεργαστούν και να επωφεληθούν από την εργασία σας, έχουμε επίσης κάνει αυτό το σχέδιο Pi RGB LCD Hat δημόσιο, ελέγξτε τα παρακάτω Σύνδεσμος:
- https://easyeda.com/CircuitDigest/Pi-RGB-LCD-HAT
Μπορείτε να δείτε οποιοδήποτε στρώμα (Top, Bottom, Topsilk, bottom silk κ.λπ.) του PCB επιλέγοντας το επίπεδο από το παράθυρο «Layers». Εκτός από αυτό, παρέχουν επίσης μια τρισδιάστατη εικόνα του PCB σχετικά με τον τρόπο εμφάνισης μετά την κατασκευή. Το στιγμιότυπο του άνω στρώματος και του κάτω στρώματος του LCD HAT θα μοιάζει με αυτό:
Υπολογισμός και παραγγελία δειγμάτων PCB στο διαδίκτυο χρησιμοποιώντας το EasyEDA
Αφού ολοκληρώσετε τη σχεδίαση αυτού του HI LCD PI RGB, μπορείτε να παραγγείλετε το PCB μέσω του JLCPCB.com. Για να παραγγείλετε το PCB από το JLCPCB, χρειάζεστε το Gerber File. Μπορείτε να κατεβάσετε το αρχείο Gerber από τον παρακάτω σύνδεσμο:
- Αρχείο Gerber για το καπέλο Raspberry Pi RGB LCD
Για να δημιουργήσετε τα αρχεία Gerber του PCB, απλώς κάντε κλικ στο κουμπί Δημιουργία αρχείου επεξεργασίας στη σελίδα επεξεργασίας EasyEDA και, στη συνέχεια, κατεβάστε το αρχείο Gerber από εκεί, ή κάντε κλικ στο Παραγγελία στο JLCPCB όπως φαίνεται στην παρακάτω εικόνα. Αυτό θα σας ανακατευθύνει στο JLCPCB.com, όπου μπορείτε να επιλέξετε τον αριθμό των PCB για παραγγελία, πόσα στρώματα χαλκού χρειάζεστε, πάχος PCB, βάρος χαλκού, χρώμα PCB και άλλες παραμέτρους PCB, όπως το στιγμιότυπο που φαίνεται παρακάτω:
Αφού κάνετε κλικ στο κουμπί « Παραγγελία στο JLCPCB» , θα σας μεταφέρει στον ιστότοπο JLCPCB, όπου μπορείτε να παραγγείλετε το PCB με πολύ χαμηλή τιμή, που είναι 2 $. Ο χρόνος κατασκευής τους είναι επίσης πολύ μικρότερος, δηλαδή 48 ώρες με παράδοση DHL 3-5 ημερών. Θα λάβετε τα PCB σας εντός μιας εβδομάδας από την παραγγελία.
Αφού παραγγείλετε το PCB, μπορείτε να ελέγξετε την πρόοδο παραγωγής του PCB σας με ημερομηνία και ώρα. Μπορείτε να το ελέγξετε μεταβαίνοντας στη σελίδα λογαριασμού και να κάνετε κλικ στο σύνδεσμο "Πρόοδος παραγωγής" κάτω από το PCB, όπως φαίνεται στην παρακάτω εικόνα.
Μετά από μερικές ημέρες παραγγελίας PCB, πήρα τα δείγματα PCB σε εξαιρετική συσκευασία, όπως φαίνεται στις παρακάτω εικόνες.
Αφού βεβαιωθείτε ότι τα ίχνη και τα ίχνη ήταν σωστά. Προχώρησα στη συναρμολόγηση του PCB. Η πλήρως συγκολλημένη σανίδα φαίνεται ως εξής:
Ρύθμιση Raspberry Pi για καπέλο LCD
Πριν ξεκινήσετε τον προγραμματισμό, το Raspberry Pi, ενημερώστε πρώτα το Raspberry Pi και εγκαταστήστε μερικές απαραίτητες βιβλιοθήκες. Εκτελέστε τις παρακάτω εντολές για ενημέρωση και αναβάθμιση του Raspberry Pi:
sudo apt-get ενημέρωση sudo apt-get αναβάθμιση
Τώρα εγκαταστήστε τη βιβλιοθήκη Adafruit_Blinka για LED NeoPixel. Η βιβλιοθήκη Adafruit_Blinka παρέχει την υποστήριξη CircuitPython στο Python.
sudo pip3 εγκαταστήστε adafruit-circuitpython-neopixel
Μετά από αυτό, εγκαταστήστε τη βιβλιοθήκη Adafruit_CharLCD για τη μονάδα LCD. Αυτή η βιβλιοθήκη προορίζεται για πίνακες LCD Adafruit, αλλά λειτουργεί επίσης και με άλλες πλακέτες LCD επωνυμίας.
sudo pip3 εγκαταστήστε το Adafruit-CharLCD
Κωδικός Python για Raspberry Pi LCD HAT
Εδώ παρουσιάζουμε το καπέλο RGB LCD για το Raspberry Pi χρησιμοποιώντας μερικούς διακόπτες για να δείξουμε ορισμένες συγκεκριμένες τιμές στη μονάδα LCD και τα LED RGB ως ενδείξεις. Πρέπει λοιπόν να προγραμματίσουμε το Raspberry Pi με τρόπο που όταν πατάμε ένα διακόπτη, θα πρέπει να δείχνει κάποιες τιμές αισθητήρα ή άλλες τιμές.
Ο πλήρης κώδικας python δίνεται στο τέλος της σελίδας. Εδώ εξηγούμε τον κώδικα βήμα προς βήμα.
Ξεκινήστε τον κωδικό εισάγοντας όλες τις απαιτούμενες βιβλιοθήκες.
εισαγωγή RPi.GPIO ως GPIO εισαγωγή neopixel εισαγωγή χρόνος εισαγωγής πίνακα εισαγωγής Adafruit_CharLCD ως LCD
Μετά από αυτό, ορίστε όλους τους ακροδέκτες GPIO όπου είναι συνδεδεμένοι οι LCD και άλλοι διακόπτες.
lcd_rs = 7 lcd_en = 8 lcd_d4 = 25 lcd_d5 = 24 lcd_d6 = 23 lcd_d7 = 18 lcd_backlight = 2 sw0 = 5 sw2 = 13 sw3 = 19 sw4 = 26
Τώρα, ορίστε τη λειτουργία GPIO χρησιμοποιώντας τη λειτουργία BCM. Μπορείτε επίσης να το αλλάξετε σε BOARD. Στη συνέχεια, ορίστε όλες τις ακίδες διακόπτη ως Εισόδους.
GPIO.setmode (GPIO.BCM) # Χρησιμοποιήστε τους αριθμούς BCM GPIO GPIO.setup (sw0, GPIO.IN) GPIO.setup (sw2, GPIO.IN) GPIO.setup (sw3, GPIO.IN) GPIO.setup (sw4, GPIO.ΣΕ)
Μετά από αυτό, ορίστε τον ακροδέκτη GPIO όπου συνδέονται οι LED Neo Pixel Στη συνέχεια, ορίστε τον αριθμό των LED Neo Pixel. Εδώ χρησιμοποιούνται τρία LED, μπορείτε να το αλλάξετε ανάλογα με τις ανάγκες σας.
pixel_pin = board.D21 num_pixels = 3
Τώρα μέσα στη συνάρτηση lcddisplay () , εκχωρήστε μια συγκεκριμένη εργασία σε κάθε διακόπτη. Για παράδειγμα, εδώ όταν πατηθεί ο πρώτος διακόπτης, το Raspberry Pi θα πρέπει να εμφανίζει «UP» στην οθόνη LCD και όταν πατηθεί ο δεύτερος διακόπτης, θα πρέπει να εμφανίζει «ΚΑΤΩ» στην οθόνη LCD και ούτω καθεξής για τα άλλα δύο κουμπιά.
Αντί να εκτυπώσετε κάτι σε μια οθόνη LCD, μπορείτε να χρησιμοποιήσετε αυτούς τους διακόπτες για να εκτελέσετε μια διαφορετική εργασία. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε το διακόπτη 1 για να εμφανίσετε την τιμή θερμοκρασίας, το διακόπτη2 για να εμφανίσετε τις τιμές υγρασίας και το διακόπτη 3 για να εμφανίσετε τις τιμές πίεσης κ.λπ.
def lcddisplay (): if (GPIO.input (sw0) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('UP') if (GPIO.input (sw2) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('DOWN') if (GPIO.input (sw3) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('ΑΡΙΣΤΕΡΑ') εάν (GPIO.input (sw4) == False): lcd.clear () lcd.set_cursor (0,0) lcd.message ('RIGHT')
Τώρα μέσα στον πραγματικό βρόχο, η λειτουργία pixels.fill χρησιμοποιείται για να φωτίσει τα Neo Pixels σε διαφορετικά χρώματα. Έτσι, το Pi είναι προγραμματισμένο να φωτίζει τα Neo Pixels με κόκκινο πράσινο και μπλε χρώμα για ένα δευτερόλεπτο το καθένα.
Μπορείτε επίσης να χρησιμοποιήσετε αυτά τα Neo Pixels ως δείκτες. Για παράδειγμα, μπορείτε να ανάψετε ένα Neo Pixel με κόκκινο χρώμα για να υποδείξετε ότι το Pi είναι συνδεδεμένο στην πηγή τροφοδοσίας ή μπορείτε να χρησιμοποιήσετε άλλα LED για να υποδείξετε ότι το Pi λαμβάνει ή στέλνει τα δεδομένα κ.λπ.
pixels.fill ((255, 0, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 255, 0)) pixels.show () time.sleep (1) pixels.fill ((0, 0, 255)) pixels. Εμφάνιση () time.sleep (1) rainbow_cycle (0.001)
Δοκιμές του Raspberry Pi RGB LCD HAT
Μετά τη συναρμολόγηση της οθόνης LCD και τη διασύνδεσή της με το Raspberry Pi, είμαστε όλοι έτοιμοι να χρησιμοποιήσουμε αυτό το PI RGB LCD HAT. Για αυτό, εκτελέστε τον κώδικα python χρησιμοποιώντας την παρακάτω εντολή.
python code_filename.py
Τώρα πατήστε τους διακόπτες. Όταν πατάτε το διακόπτη SW0, θα πρέπει να εκτυπώνεται «UP» στην οθόνη LCD. Για το διακόπτη SW2, θα πρέπει να εκτυπώνεται «Κάτω» και το ίδιο για τους υπόλοιπους διακόπτες.
Ακολουθεί ένα πλήρες βίντεο εργασίας μαζί με τον κώδικα Python.