- Nødvendig hardware:
- Lær om OLED-skærme at kende:
- Kredsløbsdiagram:
- Tilslutning af OLED med Raspberry Pi:
- Programmeringsforklaring:
De fleste af os ville være fortrolige med 16 × 2 Dot matrix LCD-displayet, der bruges i de fleste projekter til at vise nogle oplysninger til brugeren. Men disse LCD-skærme har mange begrænsninger. I denne vejledning vil vi lære om OLED-skærm, og hvordan man bruger dem med Raspberry Pi. Der er mange forskellige typer OLED-skærme tilgængelige på markedet, og der er mange måder at få dem til at fungere. Vi har allerede brugt 7-pin OLED med Arduino.
Nødvendig hardware:
- 128 × 64 OLED-skærmmodul (SSD1306)
- Hindbær Pi
- Brødbræt
- Tilslutning af ledninger
- Strømforsyning
Lær om OLED-skærme at kende:
Udtrykket OLED står for " Organisk lysemitterende diode", det bruger den samme teknologi, der bruges i de fleste af vores fjernsyn, men har færre pixels i forhold til dem. Det er rigtig sjovt at have disse seje displaymoduler, der skal forbindes med Raspberry Pi, da det får vores projekter til at se seje ud. Vi har dækket en komplet artikel om OLED-skærme og dens typer her. Her bruger vi en monokrom 4-benet SSD1306 0,96 ”OLED-skærm. Denne LCD-skærm kan kun fungere i I2C-tilstand.
Nedenfor er forbindelserne mellem OLED og Raspberry pi:
OLED-pin | RPI-pin |
VCC | 3.3v |
GND | GND |
SDA | SDA (Fysisk pin 3) |
SCL | SCL (Fysisk pin 5) |
Kredsløbsdiagram:
Tilslutning af OLED med Raspberry Pi:
RPI-samfundet har allerede givet os en masse biblioteker, som kan bruges direkte til at gøre dette meget enklere. Jeg prøvede et par biblioteker og fandt ud af, at Adafruit_SSD1306 OLED-biblioteket var meget let at bruge og har en håndfuld grafiske muligheder, derfor bruger vi det samme i denne vejledning.
Trin 1: Aktivér I2C-kommunikation
Før vi installerer Adafruit SSD1306-biblioteket, skal vi aktivere I2C-kommunikation i Raspberry Pi.
For at gøre denne type i Raspberry Pi-konsol:
sudo raspi -konfig
Og så vises en blå skærm. Vælg nu grænseflademulighed
Herefter skal vi vælge I2C
</s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s> </s>
Herefter skal vi vælge ja og trykke på enter og derefter ok
Efter dette er vi nødt til at genstarte hindbær pi ved at udstede nedenstående kommando:
genstart af sodo
Trin 2: Find OLED I2C-adresse, og opdater den
Derefter skal vi finde OLED I2C-adresse ved hjælp af den givne kommando, og du vil se en hex-adresse.
sudo i2cdetect –y 1
Opdater derefter Raspberry Pi ved hjælp af den givne kommando:
sudo apt-get opdatering
Trin 3: Installer python-pip og GPIO Library
Herefter skal vi installere pip ved hjælp af den givne kommando:
sudo apt-get install build-essentiel python-dev python-pip
Og installer Raspberry Pi GPIO-bibliotek
sudo pip installerer RPi.GPIO
Trin 4: Installer Python Imaging Library og smbus- biblioteket
Endelig er vi nødt til at installere Python Imaging Library og smbus- biblioteket i Raspberry Pi ved hjælp af den givne kommando:
sudo apt-get install python-imaging python-smbus
Trin 5: Installer Adafruit SSD1306 python-biblioteket
Nu er det tid til at installere Adafruit SSD1306 python-bibliotekskoden og eksempler ved hjælp af givne kommandoer:
sudo apt-get install git git klon https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Nu kan brugeren finde koden til OLED-interface i Raspberry Pi, og du kan spille direkte eller tilpasse den selv. Her har vi tilpasset en eksempelkode til demonstration. Du kan finde den fulde Python-kode i slutningen af artiklen.
Programmeringsforklaring:
Programmering af del til grænseflade mellem OLED og RPi-projekt er let. først skal vi importere nogle nødvendige biblioteker.
importtid import Adafruit_GPIO.SPI som SPI import Adafruit_SSD1306 fra PIL import Billede fra PIL import ImageDraw fra PIL import ImageFont import underproces
Efter dette initialiseres displayet
RST = 0 disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST) disp.begin () disp.clear () disp.display () width = disp.width height = disp.thight image1 = Image.new ('1', (width), højde)) 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 () Herefter kan vi sende data eller billede til OLED ved hjælp af en given kode
# Skriv to linjer tekst. 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), "For flere videoer", 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) # Vis billede. disp.image (image1) disp.display () time.sleep (2) if disp.height == 64: image = Image.open ('img1.png'). convert ('1') ellers: image = Image. åben ('img1.png'). konverter ('1') disp.billede (billede) disp.display () time.sleep (2) hvis disp.højde == 64: image = Image.open ('img3.jpg'). convert ('1') ellers: image = Image.open ('img3.jpg'). convert ('1')
Denne OLED fås i to varianter, den ene er 128 * 32 og den anden er 128 * 64, så brugeren kan vælge nogen i overensstemmelse hermed, mens OLED initialiseres. Her har vi skrevet denne kode til begge. Brugeren skal kun initialisere OLED til 128 * 64 pixel som:
disp = Adafruit_SSD1306.SSD1306_128_64 (rst = RST)
Al kode og funktioner er lette at forstå, og der er ikke behov for yderligere forklaring. Bare start og prøv at lege med højde, bredde og billeder, og prøv nogle andre funktioner for at skabe nogle mere seje geometriske figurer.
Fuld pythonkode og demonstrationsvideo er angivet nedenfor, og her finder du de billeder, som vi har brugt i dette program.
Kontroller også OLED-grænseflade med Arduino.