- Необходим хардуер:
- Запознаване с OLED дисплеите:
- Електрическа схема:
- Свързване на OLED с Raspberry Pi:
- Обяснение на програмирането:
Повечето от нас биха били запознати с матричния LCD дисплей с размери 16 × 2 точки, който се използва в повечето проекти за показване на някаква информация на потребителя. Но тези LCD дисплеи имат много ограничения. В този урок ще научим за OLED дисплея и как да ги използваме с Raspberry Pi. На пазара се предлагат много видове OLED дисплеи и има много начини да ги накарате да работят. Вече използвахме 7 Pin OLED с Arduino.
Необходим хардуер:
- 128 × 64 OLED дисплеен модул (SSD1306)
- Raspberry Pi
- Макет
- Свързване на проводници
- Захранване
Запознаване с OLED дисплеите:
Терминът OLED означава „ Organic Light emitting diode“ , използва същата технология, която се използва в повечето от нашите телевизори, но има по-малко пиксели в сравнение с тях. Истинско забавление е да имаме тези страхотно изглеждащи дисплейни модули, които да бъдат свързани с Raspberry Pi, тъй като това ще направи нашите проекти да изглеждат страхотно. Тук разгледахме пълна статия за OLED дисплеите и техните типове. Тук използваме монохромен 4-пинов SSD1306 0.96 ”OLED дисплей. Този LCD може да работи само в режим I2C.
По-долу са връзките на OLED с Raspberry pi:
OLED щифт | RPI ПИН |
VCC | 3.3v |
GND | GND |
SDA | SDA (физически щифт 3) |
SCL | SCL (физически щифт 5) |
Електрическа схема:
Свързване на OLED с Raspberry Pi:
RPI общността вече ни е предоставила много библиотеки, които могат да се използват директно, за да направят това много по-лесно. Изпробвах няколко библиотеки и установих, че Adafruit_SSD1306 OLED библиотеката е много лесна за използване и има няколко графични опции, поради което ще използваме същите в този урок.
Стъпка 1: Активирайте I2C комуникацията
Преди да инсталираме библиотеката Adafruit SSD1306, трябва да активираме I2C комуникацията в Raspberry Pi.
За да направите този тип в конзолата Raspberry Pi:
sudo raspi -config
И тогава ще се появи син екран. Сега изберете опция за интерфейс
След това трябва да изберем I2C
U
След това трябва да изберем да и да натиснем enter и след това добре
След това трябва да рестартираме Raspberry Pi, като издадем команда по-долу:
sodo рестартиране
Стъпка 2: Намерете OLED I2C адрес и го актуализирайте
След това трябва да намерим OLED I2C адрес с помощта на дадената команда и ще видите шестнадесетичен адрес.
sudo i2cdetect –y 1
След това актуализирайте Raspberry Pi, като използвате зададена команда:
sudo apt-get update
Стъпка 3: Инсталирайте python-pip и GPIO Library
След това трябва да инсталираме pip с помощта на дадена команда:
sudo apt-get инсталирайте компилацията на python-dev python-pip
И инсталирайте Raspberry Pi GPIO библиотека
sudo pip инсталира RPi.GPIO
Стъпка 4: Инсталирайте Python Imaging Library и smbus библиотеката
И накрая, трябва да инсталираме Python Imaging Library и smbus библиотеката в 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 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 () width = disp.width height = disp.height image1 = Image.new ('1', (width, височина)) 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, 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), ако disp.height == 64: image = Image.open ('img1.png'). convert ('1') else: image = Image. отворено ('img1.png'). convert ('1') disp.image (image) disp.display () time.sleep (2), ако disp.height == 64: image = Image.open ('img3.jpg'). convert ('1') else: image = Image.open ('img3.jpg'). convert ('1')
Този OLED се предлага в два варианта, единият е 128 * 32, а другият е 128 * 64, така че потребителят може да избере всеки по съответния начин, докато инициализира OLED. Тук сме написали този код и за двамата. Потребителят трябва да инициализира OLED само за 128 * 64 пиксела, като:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Всички кодове и функции са лесни за разбиране и не са необходими допълнителни обяснения. Просто започнете и опитайте да играете с височина, ширина и изображения и опитайте някои други функции, за да създадете още страхотни геометрични фигури.
Пълният код на python и демонстрационното видео е даден по-долу и тук ще намерите изображенията, които сме използвали в тази програма.
Също така проверете OLED взаимодействието с Arduino.