- Yêu cầu phần cứng:
- Tìm hiểu về Màn hình OLED:
- Sơ đồ mạch:
- Kết nối OLED với Raspberry Pi:
- Giải thích lập trình:
Hầu hết chúng ta sẽ quen thuộc với màn hình LCD ma trận 16 × 2 được sử dụng trong hầu hết các dự án để hiển thị một số thông tin cho người dùng. Nhưng những màn hình LCD này có rất nhiều hạn chế. Trong hướng dẫn này, chúng ta sẽ tìm hiểu về màn hình OLED và cách sử dụng chúng với Raspberry Pi. Có rất nhiều loại màn hình OLED có sẵn trên thị trường và có rất nhiều cách để chúng hoạt động. Chúng tôi đã sử dụng OLED 7 Pin với Arduino.
Yêu cầu phần cứng:
- Mô-đun màn hình OLED 128 × 64 (SSD1306)
- Raspberry Pi
- Breadboard
- Kết nối dây
- Nguồn cấp
Tìm hiểu về Màn hình OLED:
Thuật ngữ OLED là viết tắt của “ Diode phát sáng hữu cơ”, nó sử dụng cùng một công nghệ được sử dụng trong hầu hết các TV của chúng ta nhưng có ít điểm ảnh hơn so với chúng. Thật là thú vị khi có những mô-đun hiển thị bắt mắt này được giao tiếp với Raspberry Pi vì nó sẽ làm cho các dự án của chúng tôi trông thật bắt mắt. Chúng tôi đã đề cập đến một Bài báo đầy đủ về màn hình OLED và các loại của nó ở đây. Ở đây, chúng tôi đang sử dụng màn hình OLED đơn sắc 4 chân SSD1306 0,96 ”. Màn hình LCD này chỉ có thể hoạt động với chế độ I2C.
Dưới đây là các kết nối của OLED với Raspberry pi:
Pin OLED | Pin RPI |
VCC | 3,3v |
GND | GND |
SDA | SDA (Chân vật lý 3) |
SCL | SCL (Chân vật lý 5) |
Sơ đồ mạch:
Kết nối OLED với Raspberry Pi:
Cộng đồng RPI đã cung cấp cho chúng tôi rất nhiều Thư viện có thể được sử dụng trực tiếp để làm cho việc này trở nên đơn giản hơn rất nhiều. Tôi đã thử một vài thư viện và nhận thấy rằng Thư viện Adafruit_SSD1306 OLED rất dễ sử dụng và có một số tùy chọn đồ họa, do đó chúng tôi sẽ sử dụng tương tự trong hướng dẫn này.
Bước 1: Bật giao tiếp I2C
Trước khi cài đặt thư viện Adafruit SSD1306, chúng ta cần kích hoạt giao tiếp I2C trong Raspberry Pi.
Để thực hiện loại này trong bảng điều khiển Raspberry Pi:
sudo raspi -config
Và sau đó một màn hình màu xanh lam sẽ xuất hiện. Bây giờ chọn tùy chọn giao diện
Sau đó, chúng ta cần chọn I2C
Các bác sĩ cho biết thêm:
Sau đó, chúng ta cần chọn yes và nhấn enter rồi ok
Sau đó, chúng ta cần khởi động lại raspberry pi bằng lệnh dưới đây:
khởi động lại sodo
Bước 2: Tìm địa chỉ OLED I2C và cập nhật nó
Sau đó, chúng ta cần tìm địa chỉ OLED I2C bằng cách sử dụng lệnh đã cho và bạn sẽ thấy một địa chỉ hex.
sudo i2cdetect –y 1
Sau đó cập nhật Raspberry Pi bằng lệnh đã cho:
sudo apt-get cập nhật
Bước 3: Cài đặt python-pip và Thư viện GPIO
Sau đó, chúng ta cần cài đặt pip bằng cách sử dụng lệnh đã cho:
sudo apt-get install build-essential python-dev python-pip
Và cài đặt thư viện Raspberry Pi GPIO
sudo pip cài đặt RPi.GPIO
Bước 4: Cài đặt Thư viện hình ảnh Python và thư viện smbus
Cuối cùng, chúng ta cần cài đặt Thư viện ảnh Python và thư viện smbus trong Raspberry Pi bằng cách sử dụng lệnh đã cho:
sudo apt-get install python-images python-smbus
Bước 5: Cài đặt thư viện python Adafruit SSD1306
Bây giờ đã đến lúc cài đặt mã thư viện python Adafruit SSD1306 và các ví dụ bằng cách sử dụng các lệnh đã cho:
sudo apt-get install git git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Giờ đây, người dùng có thể tìm thấy mã giao diện OLED trong Raspberry Pi và bạn có thể chơi trực tiếp hoặc tự mình tùy chỉnh. Ở đây chúng tôi đã tùy chỉnh một mã ví dụ để trình diễn. Bạn có thể tìm thấy mã Python đầy đủ ở cuối bài viết.
Giải thích lập trình:
Phần lập trình để giao tiếp OLED với dự án RPi rất dễ dàng. đầu tiên, chúng ta cần nhập một số thư viện cần thiết.
nhập thời gian nhập Adafruit_GPIO.SPI dưới dạng SPI nhập Adafruit_SSD1306 từ nhập PIL Hình ảnh từ nhập PIL ImageDraw từ nhập PIL Quy trình con nhập ImageFont
Sau khi khởi tạo màn hình này
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 () Sau đó, chúng tôi có thể gửi dữ liệu hoặc hình ảnh tới OLED bằng cách sử dụng mã đã cho
# Viết hai dòng văn bản. 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), "Để biết thêm Video", font = font, fill = 255) draw.text ((x, top + 25), "Truy cập tại", font = font, fill = 255) draw.text ((x, top + 34), "www.circuitdigest.com", font = font, fill = 255) # Hiển thị hình ảnh. disp.image (image1) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img1.png'). convert ('1') else: image = Image. open ('img1.png'). convert ('1') disp.image (image) disp.display () time.sleep (2) nếu disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Đây OLED có hai biến thể một là 128 * 32 và còn lại là 128 * 64 vì vậy người dùng có thể chọn bất cứ ai phù hợp khi khởi tạo OLED. Ở đây chúng tôi đã viết mã này cho cả hai. Người dùng chỉ cần khởi tạo OLED cho 128 * 64 pixel như:
disp = Adafruit_SSD1306.SSD1306_128_64 (dau tien = RST)
Tất cả mã và chức năng đều dễ hiểu và không cần giải thích thêm. Chỉ cần bắt đầu và thử chơi với chiều cao, chiều rộng & hình ảnh và thử một số chức năng khác để tạo ra một số hình hình học thú vị hơn.
Mã python đầy đủ và Video trình diễn được cung cấp bên dưới và ở đây bạn tìm thấy những hình ảnh mà chúng tôi đã sử dụng trong chương trình này.
Cũng kiểm tra Giao diện OLED với Arduino.