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

Γραφικά σε οθόνη SSD1306 I2C OLED 128x64 με κύκλωμα Python Using Itsybitsy M4 Express: 13 βήματα (με εικόνες)
Γραφικά σε οθόνη SSD1306 I2C OLED 128x64 με κύκλωμα Python Using Itsybitsy M4 Express: 13 βήματα (με εικόνες)

Βίντεο: Γραφικά σε οθόνη SSD1306 I2C OLED 128x64 με κύκλωμα Python Using Itsybitsy M4 Express: 13 βήματα (με εικόνες)

Βίντεο: Γραφικά σε οθόνη SSD1306 I2C OLED 128x64 με κύκλωμα Python Using Itsybitsy M4 Express: 13 βήματα (με εικόνες)
Βίντεο: 1.54 Inch OLED Display Module 128x64 SPI IIC Interface White And Blue Font 2024, Ιούλιος
Anonim
Γραφικά σε οθόνη SSD1306 I2C OLED 128x64 με κύκλωμα Python χρησιμοποιώντας ένα Itsybitsy M4 Express
Γραφικά σε οθόνη SSD1306 I2C OLED 128x64 με κύκλωμα Python χρησιμοποιώντας ένα Itsybitsy M4 Express

Η οθόνη SSD1306 OLED είναι μια μικρή (0,96 ), φθηνή, ευρέως διαθέσιμη, I2C, μονόχρωμη γραφική οθόνη με 128x64 pixel, η οποία διασυνδέεται εύκολα (μόνο 4 καλώδια) σε πλακέτες ανάπτυξης μικροεπεξεργαστών όπως Raspberry Pi, Arduino ή Adafruit Itsybitsy M4 Express, CircuitPlayground Express ή άλλες συσκευές CircuitPython. Μπορείτε να κατεβάσετε προγράμματα οδήγησης από το διαδίκτυο.

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

Τα βασικά προγράμματα οδήγησης συσκευών επιτρέπουν στους χρήστες να:

  • Διαγράψτε την οθόνη σε μαύρο ή άσπρο. συμπληρωμένο (γ)
  • Γράψτε μια συμβολοσειρά κειμένου στην οθόνη σε μια καθορισμένη (x, y) θέση oled.text ("Κείμενο", x, y, c)
  • Σχεδιάστε μια τελεία σε μια καθορισμένη (x, y) oled. Pixel (x, y, c)
  • Φορτώστε ένα αρχείο εικόνας στην οθόνη. (Δεν χρησιμοποιείται σε αυτό το έργο)
  • Ενημέρωση της οθόνης oled.show ()

Αυτό το Instructable θα δείξει, με απλές διαδικασίες, πώς να σχεδιάζετε, διαδραστικά:

  • γραμμές
  • κύκλους
  • κοίλα κουτιά
  • στερεά μπλοκ
  • προκαθορισμένους χαρακτήρες

Θα χρησιμοποιήσω ένα Adafruit Itsybitsy M4 Express για να δείξω τις μεθόδους, αλλά ο κώδικας, σε Python, μπορεί εύκολα να μεταφερθεί σε άλλα συστήματα ανάπτυξης.

Επέλεξα το Itsybitsy M4 για αυτήν την επίδειξη επειδή είναι φθηνό, ισχυρό, εύκολο στον προγραμματισμό, περιλαμβάνει αναλογική και ψηφιακή είσοδο/έξοδο, έχει άφθονη μνήμη, εντοπίζει εύκολα έγγραφα και βοηθά φόρουμ στο Διαδίκτυο, είναι πολύ εύκολο να δημιουργηθεί αρχικά και υποστηρίζει το CircuitPython, μια έκδοση της Python ιδανική για όσους είναι νέοι στην κωδικοποίηση.

Μόλις ρυθμίσετε το Itsybitsy και το SSD1306, αυτό είναι ένα πολύ απλό κέικ. Δεν υπάρχει πληκτρολόγηση, μπορείτε να κατεβάσετε όλα τα αρχεία.

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

Βήμα 1: Τι χρειαζόμαστε για αυτό το έργο

Τι χρειαζόμαστε για αυτό το έργο
Τι χρειαζόμαστε για αυτό το έργο

Σκεύη, εξαρτήματα:

  • SSD1306 I2C μονο οθόνη 128x64 pixel
  • Itsybitsy M4 Express
  • καλώδιο microUSB σε USB - για προγραμματισμό της πλακέτας
  • Breadboard
  • 1 ποτενσιόμετρο 10K Ohm
  • Διακόπτης 1 κουμπιού
  • καλώδιο σύνδεσης - διάφορα χρώματα μπορούν να βοηθήσουν
  • Υπολογιστής (για να γράψετε τον κώδικα και να τον ανεβάσετε) - ένας πολύ παλιός φορητός υπολογιστής θα κάνει.

Λογισμικό:

Mu editor - για εγγραφή κώδικα και μεταφόρτωση του σεναρίου στο Itsybitsy

Η ρύθμιση του Itsybitsy εξηγείται εδώ:

Η τελευταία έκδοση του CircuitPython:

Βιβλιοθήκες CircuitPython:

Mu Editor:

Βήμα 2: Το κύκλωμα

Το Κύκλωμα
Το Κύκλωμα

Αυτό είναι ένα πολύ απλό κύκλωμα για ρύθμιση. Η επόμενη σελίδα απεικονίζει το τελειωμένο ψωμί με χρωματιστά σύρματα για να κάνει τα πράγματα εύκολα.

Βήμα 3: Έκδοση Breadboard of the Circuit

Breadboard Version of the Circuit
Breadboard Version of the Circuit

Υπάρχουν ράγες τροφοδοσίας στο πάνω και στο κάτω μέρος του breadboard. Με κόκκινο σύρμα ενώστε τις ράγες +ve μαζί. Με μαύρο σύρμα ενώστε τις ράγες -ve μαζί.

Συνδέστε τον πείρο 3V του Itsybitsy στο κάτω +ve ράγα - κόκκινο σύρμα. (Στήλη 12)

Συνδέστε τον πείρο G (GND) του Itsybitsy στην κορυφαία σιδηροτροχιά - μαύρο σύρμα. (Στήλη 12)

Στις στήλες 33 και 34, συνδέστε τις ακίδες SSD1306 VCC και GND στις κορυφαίες ράγες τροφοδοσίας.

Με ένα ροζ σύρμα συνδέστε τις ακίδες SCL μαζί.

Με ένα γκρι σύρμα συνδέστε τις καρφίτσες SDA μαζί.

Με κόκκινα και μαύρα σύρματα συνδέστε τους εξωτερικούς πείρους του ποτενσιόμετρου στις άνω ράγες ισχύος και με πράσινο σύρμα συνδέστε τον κεντρικό πείρο (υαλοκαθαριστήρα) στο Α5 στο Itsybitsy.

Συνδέστε τη μία πλευρά του διακόπτη κουμπιού με ένα μοβ σύρμα στον πείρο 2 και με ένα μαύρο σύρμα συνδέστε την άλλη πλευρά σε μια ράγα GND.

Βήμα 4: Φόρτωση της γραμματοσειράς

Φόρτωση της γραμματοσειράς
Φόρτωση της γραμματοσειράς

Κατεβάστε το αρχείο γραμματοσειράς και σύρετέ το στη μονάδα CIRCUITPY. (Αυτό είναι το Itsybitsy.)

Κάντε διπλό κλικ στο φάκελο lib και δείτε τη λίστα των προγραμμάτων οδήγησης που έχετε ήδη φορτώσει.

Βήμα 5: Προσθήκη επιπλέον προγραμμάτων οδήγησης

Προσθήκη επιπλέον προγραμμάτων οδήγησης
Προσθήκη επιπλέον προγραμμάτων οδήγησης

Θα χρειαστείτε τα ακόλουθα στο φάκελο lib:

  • simpleio.mpy
  • adafruit_bus_device
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

Εάν λείπουν, σύρετέ τα στο φάκελο από την πιο πρόσφατη διαθέσιμη έκδοση.

Είστε τώρα έτοιμοι για λήψη του σεναρίου.

Μόλις φορτωθεί στο πρόγραμμα επεξεργασίας Mu, μπορείτε να το αποθηκεύσετε στο Itsybitsy με το όνομα main.py.

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

Οι παρακάτω σελίδες δίνουν περισσότερες πληροφορίες σχετικά με τον τρόπο λειτουργίας του προγράμματος.

Βήμα 6: Ρυθμίστε τις συσκευές

Ρυθμίστε τις συσκευές
Ρυθμίστε τις συσκευές

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

Βήμα 7: Ορίστε χαρακτήρες και σχεδιάστε οριζόντιες και κάθετες γραμμές

Καθορίστε χαρακτήρες και σχεδιάστε οριζόντιες και κάθετες γραμμές
Καθορίστε χαρακτήρες και σχεδιάστε οριζόντιες και κάθετες γραμμές
Καθορίστε χαρακτήρες και σχεδιάστε οριζόντιες και κάθετες γραμμές
Καθορίστε χαρακτήρες και σχεδιάστε οριζόντιες και κάθετες γραμμές

Αυτή η ενότητα ρυθμίζει τους προκαθορισμένους χαρακτήρες. Έχουν πλάτος 5 κουκκίδες και ύψος 8 κουκκίδες. Κάθε τελεία στον ορισμό αντλεί 4 τελείες στην οθόνη έτσι ώστε να εμφανίζονται καλύτερα.

Οι οριζόντιες και οι κάθετες γραμμές σχεδιάζονται εύκολα με ένα βρόχο. Απλώς πρέπει να θυμάστε ότι χρειάζεστε την επιπλέον κουκκίδα στο τέλος. Μια γραμμή από (0, 7) έως (5, 7) θα χρειαστεί 6 τελείες: με x ίσο με 0, 1, 2, 3, 4 και 5 με τη σειρά.

Η βασική εντολή dot είναι oled. Pixel (x, y, χρώμα) - 0 είναι μαύρο και 1 είναι λευκό.

Η προέλευση (0, 0) βρίσκεται στο επάνω αριστερό μέρος της οθόνης, 0 - 127 pixels οριζόντια (από αριστερά προς τα δεξιά) και 0 - 63 κάθετα (από πάνω προς τα κάτω).

Βήμα 8: Κουτιά, μπλοκ και κεκλιμένες γραμμές

Κουτιά, μπλοκ και κεκλιμένες γραμμές
Κουτιά, μπλοκ και κεκλιμένες γραμμές

Τα κουτιά είναι κατασκευασμένα από οριζόντιες και κάθετες γραμμές.

Τα μπλοκ κατασκευάζονται από πολλές οριζόντιες γραμμές.

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

Στη συνέχεια υπολογίζουμε την κλίση και τη χρησιμοποιούμε για να ορίσουμε την τιμή y για κάθε τιμή του x.

Η διαδικασία εμφάνισης (t) καθιστά την ενημερωμένη οθόνη ορατή και περιμένει για μικρή καθυστέρηση, t δευτερόλεπτα.

Βήμα 9: Σύμβολο βαθμού, προσάρτηση, γράφημα ράβδων και κύκλος

Σύμβολο πτυχίου, προσάρτηση, γράφημα ράβδων και κύκλος
Σύμβολο πτυχίου, προσάρτηση, γράφημα ράβδων και κύκλος

Το σύμβολο βαθμού δημιουργείται από 4 εικονοστοιχεία.

Η ρουτίνα ευθυγράμμισης () προσθέτει επιπλέον κενά μπροστά από τον αριθμό για να ευθυγραμμίσει δεξιά τις μικρές τιμές σε έναν σταθερό χώρο.

Η ρουτίνα του γραφήματος (v) σχεδιάζει ένα γράφημα οριζόντιας ράβδου δίνοντας το επιλεγμένο ποσοστό. Η τιμή γράφεται στο δεξί άκρο χρησιμοποιώντας το 'T' για να αντιπροσωπεύσει το 100 (Ton ή Top).

Οι κύκλοι απαιτούν τριγωνομετρία, οπότε πρέπει να εισαγάγουμε τη μαθηματική βιβλιοθήκη στην αρχή του σεναρίου. Χρησιμοποιούμε sin, cos και ακτίνια για να υπολογίσουμε τις μετατοπίσεις x και y από το κέντρο καθώς η ακτίνα περιστρέφεται κατά 90 μοίρες. Οι πόντοι απεικονίζονται σε καθένα από τα τέσσερα τεταρτημόρια για κάθε υπολογισμό των αντισταθμίσεων.

Βήμα 10: Συλλογή σκουπιδιών, τίτλοι και κύκλοι

Συλλογή σκουπιδιών, τίτλοι και κύκλοι
Συλλογή σκουπιδιών, τίτλοι και κύκλοι

Αυτές οι οδηγίες δείχνουν το καθαρισμό της οθόνης σε ασπρόμαυρο, την εγγραφή κειμένου στην οθόνη και τη χρήση της ρουτίνας gc () «συλλογής απορριμμάτων» για να απελευθερώσετε χώρο. Η τιμή δείχνει ότι υπάρχει άφθονος χώρος για ένα πολύ μεγαλύτερο σενάριο.

Το πρόγραμμα στη συνέχεια σχεδιάζει κύκλους με κοινό κέντρο και με κινούμενα κέντρα. Αρκετά γρήγορη ρουτίνα λαμβάνοντας υπόψη τον απαιτούμενο υπολογισμό.

Ο τίτλος για το demo γραμμών γράφεται στη συνέχεια.

Βήμα 11: Επίδειξη γραμμών

Lines Demo
Lines Demo

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

Βήμα 12: Ο κύριος βρόχος: Γράφημα ράβδων και καθορισμένοι χαρακτήρες

Ο κύριος βρόχος: Γράφημα ράβδων και καθορισμένοι χαρακτήρες
Ο κύριος βρόχος: Γράφημα ράβδων και καθορισμένοι χαρακτήρες

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

Εάν κρατήσετε πατημένο το κουμπί, οι καθορισμένοι χαρακτήρες αλλάζουν ως 1/0 και True/False. Αυτός ο βρόχος εκτελείται αρκετά αργά επειδή η σχεδίαση των προκαθορισμένων χαρακτήρων είναι μια αργή διαδικασία. Μπορείτε να επιταχύνετε τα πράγματα σχολιάζοντας μερικά από αυτά.

Δεν υπάρχει αισθητήρας θερμοκρασίας που να είναι απλός, έτσι ώστε το ";" εμφανίζεται αντί για μια τιμή στη γραμμή 190.

Συνιστάται: