רובנו נדע להכיר את תצוגת ה- LCD של מטריקס 16 × 2 המשמשת ברוב הפרויקטים להצגת מידע כלשהו למשתמש. אבל לתצוגות LCD אלה יש הרבה מגבלות. במדריך זה אנו הולכים ללמוד על תצוגת OLED וכיצד להשתמש בהם עם Raspberry Pi. ישנם המון סוגים של תצוגות OLED הזמינות בשוק וישנן המון דרכים לגרום להם לעבוד. השתמשנו כבר ב- OLED 7 פינים עם Arduino.
נדרש חומרה:
- מודול תצוגת OLED 128 × 64 (SSD1306)
- פאי פטל
- קרש לחם
- חוטי חיבור
- ספק כוח
היכרות עם תצוגות OLED:
המונח OLED מייצג " דיודה פולטת אור אורגני" הוא משתמש באותה טכנולוגיה המשמשת ברוב הטלוויזיות שלנו אך יש בה פחות פיקסלים בהשוואה אליהן. זה ממש כיף שמודולי התצוגה המגניבים האלה יתממשקו עם ה- Raspberry Pi מכיוון שזה יגרום לפרויקטים שלנו להיראות מגניבים. סקרנו כאן מאמר מלא על תצוגות OLED וסוגיה. כאן אנו משתמשים בתצוגה OLED מונוכרום עם 4 פינים SSD1306 0.96 אינץ '. LCD זה יכול לעבוד רק במצב I2C.
להלן החיבורים של OLED עם פטל פאי:
סיכת OLED | פין RPI |
VCC | 3.3 וולט |
GND | GND |
SDA | SDA (סיכה פיזית 3) |
SCL | SCL (סיכה פיזית 5) |
תרשים מעגל:
חיבור OLED עם פטל פי:
קהילת RPI כבר נתנה לנו הרבה ספריות שניתן להשתמש בהם ישירות כדי להפוך את זה להרבה יותר פשוט. ניסיתי כמה ספריות ומצאתי שספריית OLED של Adafruit_SSD1306 הייתה מאוד קלה לשימוש ויש לה קומץ אפשרויות גרפיות ולכן נשתמש בהן במדריך זה.
שלב 1: אפשר תקשורת I2C
לפני התקנת ספריית Adafruit SSD1306 עלינו לאפשר תקשורת I2C ב- Raspberry Pi.
כדי לעשות סוג זה במסוף Raspberry Pi:
sudo raspi -config
ואז יופיע מסך כחול. עכשיו בחר באפשרות ממשק
אחרי זה, אנחנו צריכים לבחור I2C
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
אחרי זה, עלינו לבחור כן ולחץ על Enter ואז בסדר
לאחר מכן, עלינו להפעיל מחדש את פטל פטל על ידי הנפקת הפקודה הבאה:
אתחול סודה מחדש
שלב 2: מצא את כתובת ה- OLED I2C ועדכן אותה
ואז עלינו למצוא כתובת OLED I2C באמצעות הפקודה הנתונה ותראה כתובת הקסית.
sudo i2cdetect –y 1
ואז עדכן את Raspberry Pi באמצעות הפקודה הנתונה:
עדכון sudo apt-get
שלב 3: התקן פייתון-פיפ וספריית GPIO
לאחר מכן עלינו להתקין pip באמצעות הפקודה הנתונה:
sudo apt-get להתקין python-dev פיתון-פיפ חיוני
והתקן את ספריית Raspberry Pi GPIO
sudo pip מתקין את RPi.GPIO
שלב 4: התקן את הדמית Python ספריית SMBus ספרייה
לבסוף, עלינו להתקין את ספריית ההדמיה של Python ואת ספריית smbus ב- Raspberry Pi באמצעות הפקודה הנתונה:
sudo apt-get install python-imaging python-smbus
שלב 5: התקן את ספריית הפיתון של Adafruit SSD1306
עכשיו הגיע הזמן להתקין את קוד ספריית הפיתון של Adafruit SSD1306 ודוגמאות באמצעות פקודות נתונות:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
כעת המשתמש יכול למצוא את הקוד של ממשק OLED ב- Raspberry Pi ותוכל לשחק ישירות או להתאים אותו בעצמך. כאן התאמנו קוד לדוגמא להפגנה. תוכל למצוא קוד Python מלא בסוף המאמר.
הסבר על תכנות:
חלק תכנות לממשק OLED עם פרויקט RPi הוא קל. ראשית, עלינו לייבא כמה ספריות נחוצות.
יבוא זמן ייבוא Adafruit_GPIO.SPI כ- SPI ייבוא Adafruit_SSD1306 מ- PIL ייבוא תמונה מ- PIL ייבוא ImageDraw מ- PIL ייבוא ImageFont ייבוא תת-תהליך
לאחר מכן אתחל את התצוגה
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST) disp.begin () disp.clear () disp.display () רוחב = disp.width גובה = disp.height image1 = Image.new ('1', (רוחב), גובה)) צייר = ImageDraw.Draw (image1) רישום.מלבן ((0,0, רוחב, גובה), מתאר = 0, מילוי = 0) ריפוד = -2 עליון = ריפוד תחתון = ריפוד גובה x = 0 גופן = ImageFont.load_default () לאחר מכן, אנו יכולים לשלוח נתונים או תמונה ל- OLED באמצעות קוד נתון
# כתוב שתי שורות טקסט. disp.clear () disp.display () draw.text ((x, top), "OLED Interfacing", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, top + 16), "לסרטונים נוספים", font = font, fill = 255) draw.text ((x, top + 25), "Visit at", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # תצוגת תמונה. disp.image (image1) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img1.png'). להמיר ('1') אחר: image = תמונה. open ('img1.png'). convert ('1') disp.image (image) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img3.jpg'). להמיר ('1') אחר: image = Image.open ('img3.jpg'). להמיר ('1')
OLED זה מגיע בשתי גרסאות האחת היא 128 * 32 והשנייה היא 128 * 64, כך שהמשתמש יכול לבחור כל אחד בהתאם בעת אתחול ה- OLED. כאן כתבנו את הקוד הזה לשניהם. המשתמש צריך לאתחל OLED רק עבור 128 * 64 פיקסלים כמו:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
קל להבין את כל הקוד והפונקציות ואין צורך בהסבר נוסף. פשוט התחל ונסה לשחק עם גובה, רוחב ותמונות ונסה כמה פונקציות אחרות כדי ליצור כמה דמויות גיאומטריות מגניבות יותר.
קוד פיתון מלא וסרטון הדגמה ניתן להלן וכאן תוכלו למצוא את התמונות בהן השתמשנו בתוכנית זו.
בדוק גם ממשק OLED עם Arduino.