- ฮาร์ดแวร์ที่ต้องการ:
- ทำความรู้จักกับจอแสดงผล OLED:
- แผนภูมิวงจรรวม:
- การเชื่อมต่อ OLED กับ Raspberry Pi:
- คำอธิบายการเขียนโปรแกรม:
พวกเราส่วนใหญ่จะคุ้นเคยกับจอ LCD 16 × 2 Dot matrix ที่ใช้ในโครงการส่วนใหญ่เพื่อแสดงข้อมูลบางอย่างให้กับผู้ใช้ แต่จอ LCD เหล่านี้มีข้อ จำกัด มากมาย ในการกวดวิชานี้เราจะเรียนรู้เกี่ยวกับ จอแสดงผล OLED และวิธีการใช้พวกเขาด้วยราสเบอร์รี่ Pi มีจอแสดงผล OLED หลายประเภทในตลาดและมีหลายวิธีที่จะทำให้พวกเขาใช้งานได้ เราได้ใช้ 7 Pin OLED กับ Arduino แล้ว
ฮาร์ดแวร์ที่ต้องการ:
- โมดูลแสดงผล OLED 128 × 64 (SSD1306)
- ราสเบอร์รี่ Pi
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
- แหล่งจ่ายไฟ
ทำความรู้จักกับจอแสดงผล OLED:
คำว่า OLED ย่อมาจาก " Organic Light emitting diode" ซึ่งใช้เทคโนโลยีเดียวกับที่ใช้ในโทรทัศน์ส่วนใหญ่ของเรา แต่มีพิกเซลน้อยกว่าเมื่อเทียบกับพวกเขา เป็นเรื่องสนุกจริงๆที่จะมีโมดูลการแสดงผลที่ดูดีเหล่านี้เชื่อมต่อกับ Raspberry Pi เนื่องจากจะทำให้โครงการของเราดูเท่ เราได้กล่าวถึงบทความฉบับเต็มเกี่ยวกับจอแสดงผล OLED และประเภทต่างๆที่นี่ นี่เรากำลังใช้ ขาวดำ 4 ขา SSD1306 0.96” จอแสดงผล LCD นี้สามารถใช้งานได้กับโหมด I2C เท่านั้น
ด้านล่างนี้คือการเชื่อมต่อของ OLED กับ Raspberry pi:
ขา OLED | RPI พิน |
VCC | 3.3 โวลต์ |
GND | GND |
SDA | SDA (พินกายภาพ 3) |
SCL | SCL (พินกายภาพ 5) |
แผนภูมิวงจรรวม:
การเชื่อมต่อ OLED กับ Raspberry Pi:
ชุมชน RPI ได้มอบห้องสมุดจำนวนมากให้กับเราแล้วซึ่งสามารถใช้โดยตรงเพื่อทำให้สิ่งนี้ง่ายขึ้นมาก ฉันลองใช้ห้องสมุดสองสามแห่งและพบว่า Adafruit_SSD1306 OLED Library นั้นใช้งานง่ายมากและมีตัวเลือกกราฟิกจำนวนหนึ่งดังนั้นเราจะใช้สิ่งเดียวกันในบทช่วยสอนนี้
ขั้นตอนที่ 1: เปิดใช้งานการสื่อสาร I2C
ก่อนที่จะติดตั้งไลบรารี Adafruit SSD1306 เราจำเป็นต้องเปิดใช้งานการสื่อสาร I2Cใน Raspberry Pi
ในการทำประเภทนี้ในคอนโซล Raspberry Pi:
sudo raspi -config
จากนั้นหน้าจอสีน้ำเงินจะปรากฏขึ้น ตอนนี้เลือกตัวเลือกอินเทอร์เฟซ
หลังจากนี้เราจำเป็นต้องเลือก I2C
หลังจากนี้เราต้องเลือกใช่แล้วกด Enter จากนั้นตกลง
หลังจากนี้เราต้องรีบูตราสเบอร์รี่ piโดยออกคำสั่งด้านล่าง:
รีบูตsodo
ขั้นตอนที่ 2: ค้นหาที่อยู่ OLED I2C และอัปเดต
จากนั้นเราต้องหาที่อยู่ OLED I2C โดยใช้คำสั่งที่กำหนดและคุณจะเห็นที่อยู่เลขฐานสิบหก
sudo i2cdetect –y 1
จากนั้นอัปเดต Raspberry Pi โดยใช้คำสั่งที่กำหนด:
อัปเดต sudo apt-get
ขั้นตอนที่ 3: ติดตั้ง python-pip และ GPIO Library
หลังจากนี้เราต้อง ติดตั้งpip โดยใช้คำสั่งที่กำหนด:
sudo apt-get install build-essential python-dev python-pip
และติดตั้ง Raspberry Pi GPIO library
sudo pip ติดตั้ง RPi.GPIO
ขั้นตอนที่ 4: ติดตั้ง Python Imaging Library และ smbus library
สุดท้ายเราต้องติดตั้ง Python Imaging Library และ smbus library ใน Raspberry Pi โดยใช้คำสั่งที่กำหนด:
sudo apt-get ติดตั้ง python-imaging python-smbus
ขั้นตอนที่ 5: ติดตั้งไลบรารี Python Adafruit SSD1306
ตอนนี้ถึงเวลาติดตั้งโค้ดไลบรารี Python 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 ติดตั้ง
ตอนนี้ผู้ใช้สามารถค้นหารหัสของการเชื่อมต่อ 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 () width = disp.width height = disp.height image1 = Image.new ('1', (width, height)) draw = ImageDraw.Draw (image1) draw.rectangle ((0,0, width, height), outline = 0, fill = 0) padding = -2 top = padding bottom = height-padding x = 0 font = ImageFont.load_default () หลังจากนี้เราสามารถส่งข้อมูลหรือภาพไปยัง OLEDโดยใช้รหัสที่กำหนด
# เขียนข้อความสองบรรทัด disp.clear () disp.display () draw.text ((x, บนสุด), "OLED Interfacing", font = font, fill = 255) draw.text ((x, top + 8), "Circuit Digest", font = font, fill = 255) draw.text ((x, top + 16), "For more Videos", 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'). convert ('1') else: image = Image. เปิด ('img1.png') แปลง ('1') disp.image (รูปภาพ) dispdisplay () time.sleep (2) ถ้า disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg') แปลง ('1')
OLEDนี้มาในสองรูปแบบหนึ่งคือ 128 * 32 และอื่น ๆ คือ 128 * 64 เพื่อให้ผู้ใช้สามารถเลือกใครก็ได้ตามนั้นในขณะที่เริ่มต้น OLED ที่นี่เราได้เขียนโค้ดนี้สำหรับทั้งคู่ ผู้ใช้ต้องเริ่มต้น OLED สำหรับ 128 * 64 พิกเซลเท่านั้นเช่น:
จ่าย = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
รหัสและฟังก์ชั่นทั้งหมดเข้าใจง่ายและไม่จำเป็นต้องอธิบายเพิ่มเติม เพียงแค่เริ่มและลองเล่นกับความสูงความกว้างและรูปภาพและลองใช้ฟังก์ชันอื่น ๆ เพื่อสร้างรูปทรงเรขาคณิตที่เจ๋งกว่านี้
โค้ด python แบบเต็มและวิดีโอสาธิตมีให้ด้านล่างและที่นี่คุณจะพบรูปภาพที่เราใช้ในโปรแกรมนี้
ตรวจสอบการเชื่อมต่อ OLED กับ Arduino ด้วย