Sadržaj:

Grafika na SSD1306 I2C OLED ekranu 128x64 sa CircuitPythonom koristeći Itsybitsy M4 Express: 13 koraka (sa slikama)
Grafika na SSD1306 I2C OLED ekranu 128x64 sa CircuitPythonom koristeći Itsybitsy M4 Express: 13 koraka (sa slikama)

Video: Grafika na SSD1306 I2C OLED ekranu 128x64 sa CircuitPythonom koristeći Itsybitsy M4 Express: 13 koraka (sa slikama)

Video: Grafika na SSD1306 I2C OLED ekranu 128x64 sa CircuitPythonom koristeći Itsybitsy M4 Express: 13 koraka (sa slikama)
Video: Работа с OLED дисплеем 2024, Juli
Anonim
Grafika na SSD1306 I2C OLED ekranu 128x64 sa CircuitPythonom koristeći Itsybitsy M4 Express
Grafika na SSD1306 I2C OLED ekranu 128x64 sa CircuitPythonom koristeći Itsybitsy M4 Express

SSD1306 OLED ekran je mali (0,96 ), jeftin, široko dostupan, I2C, jednobojni grafički ekran sa 128x64 piksela, koji se lako povezuje (samo 4 žice) sa mikroprocesorskim razvojnim pločama kao što su Raspberry Pi, Arduino ili Adafruit Itsybitsy M4 Express, CircuitPlayground Express ili drugi CircuitPython uređaji. Upravljački programi mogu se preuzeti s interneta.

Grafičke rutine za Arduinos bile su dostupne već neko vrijeme, ali ne i za druge razvojne sisteme.

Osnovni upravljački programi omogućuju korisnicima:

  • Očistite ekran na crno ili bijelo. oled.fill (c)
  • Upišite tekstualni niz na ekran na navedenoj (x, y) poziciji oled.text ("Tekst", x, y, c)
  • Nacrtajte tačku na navedenom (x, y) položaju oled.pixel (x, y, c)
  • Učitajte datoteku slike na ekran. (Ne koristi se u ovom projektu)
  • Ažurirajte ekran oled.show ()

Ovaj Instructable će, jednostavnim procedurama, pokazati interaktivno crtanje:

  • linije
  • krugovima
  • šuplje kutije
  • čvrsti blokovi
  • unapred definisani znakovi

Koristit ću Adafruit Itsybitsy M4 Express za demonstraciju metoda, ali se kod u Pythonu može lako prenijeti na druge razvojne sisteme.

Odabrao sam Itsybitsy M4 za ovu demonstraciju jer je jeftin, moćan, jednostavan za programiranje, uključuje analogni i digitalni ulaz/izlaz, ima puno memorije, ima lako lociranje dokumentacije i forume za pomoć na Internetu, vrlo ga je lako postaviti i podržava CircuitPython, verziju Pythona idealnu za one koji tek počinju kodirati.

Nakon što ste postavili Itsybitsy i SSD1306, ovo je vrlo jednostavna konstrukcija. Nema upisivanja, sve datoteke se mogu preuzeti.

Ovo je jeftin i jednostavan projekt za izgradnju, ali uvodi neke srednje/napredne ideje. Nadam se da ćete pokušati. Bio sam impresioniran ovim malim ekranom.

Korak 1: Šta nam je potrebno za ovaj projekat

Šta nam je potrebno za ovaj projekat
Šta nam je potrebno za ovaj projekat

Hardver:

  • SSD1306 I2C mono ekran 128x64 piksela
  • Itsybitsy M4 Express
  • microUSB na USB kabel - za programiranje ploče
  • Breadboard
  • 1 potenciometar od 10K ohma
  • 1 prekidač
  • spojna žica - razne boje mogu vam pomoći
  • Računalo (da napišete kôd i otpremite ga) - poslužit će vrlo star laptop.

Softver:

Mu editor - za pisanje koda i postavljanje skripte na Itsybitsy

Postavljanje Itsybitsy objašnjeno je ovdje:

Najnovija verzija CircuitPythona:

Biblioteke CircuitPython:

Mu Editor:

Korak 2: Krug

The Circuit
The Circuit

Ovo je vrlo jednostavno kolo za postavljanje. Sljedeća stranica ilustrira gotovu ploču s obojenim žicama za olakšavanje stvari.

Korak 3: Verzija kola za idejnu ploču

Breadboard verzija kola
Breadboard verzija kola

Na vrhu i dnu ploče nalaze se vodilice za napajanje. Crvenom žicom spojite +ve šine zajedno. Crnom žicom spojite -ve šine zajedno.

Spojite 3V iglu Itsybitsyja na donju +ve šinu - crvenu žicu. (Kolona 12)

Spojite G (GND) iglu Itsybitsy na gornju šinu - crnu žicu. (Kolona 12)

U kolonama 33 i 34 spojite SSD1306 VCC i GND pinove na gornje tračnice za napajanje.

Ružičastom žicom spojite SCL igle zajedno.

Sivom žicom spojite igle SDA zajedno.

Crvenim i crnim žicama spojite vanjske pinove potenciometra na gornje šine za napajanje, a zelenom žicom spojite središnji (brisač) pin na A5 na Itsybitsyju.

Spojite jednu stranu prekidača s ljubičastom žicom na pin 2, a drugom stranom s GND šinom.

Korak 4: Učitavanje fonta

Učitavanje fonta
Učitavanje fonta

Preuzmite datoteku fonta i povucite je na CIRCUITPY pogon. (Ovo je Itsybitsy.)

Dvaput kliknite na fasciklu lib i pogledajte listu upravljačkih programa koje ste već učitali.

Korak 5: Dodavanje dodatnih upravljačkih programa

Dodavanje dodatnih upravljačkih programa
Dodavanje dodatnih upravljačkih programa

U fascikli lib trebat će vam sljedeće:

  • simpleio.mpy
  • adafruit_bus_device
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

Ako nedostaju, povucite ih u mapu s najnovije dostupne verzije.

Sada ste spremni za preuzimanje skripte.

Nakon učitavanja u uređivač Mu možete ga spremiti u Itsybitsy s imenom main.py.

Program prolazi kroz niz demonstracija linija, krugova, dinamičkog stupčastog grafikona i prikazivanja definiranih znakova. Samo polako okrenite lonac i pritisnite i držite dugme za upravljanje prikazom.

Sljedeće stranice daju više informacija o tome kako program radi.

Korak 6: Postavite uređaje

Postavite uređaje
Postavite uređaje

Ovaj prvi odjeljak učitava sve biblioteke i postavlja ispravne pinove SSD1306, potenciometra i prekidača na gumbima.

Korak 7: Definirajte znakove i nacrtajte vodoravne i okomite linije

Definirajte znakove i nacrtajte vodoravne i okomite crte
Definirajte znakove i nacrtajte vodoravne i okomite crte
Definirajte znakove i nacrtajte vodoravne i okomite crte
Definirajte znakove i nacrtajte vodoravne i okomite crte

Ovaj odjeljak postavlja unaprijed definirane znakove. Oni su široki 5 i visoki 8 točaka. Svaka tačka u definiciji iscrtava 4 tačke na ekranu kako bi se bolje prikazale.

Vodoravne i okomite linije lako se iscrtavaju petljom. Morate samo zapamtiti da vam je potrebna dodatna točka na kraju. Liniji od (0, 7) do (5, 7) trebat će 6 točaka: sa x jednakim 0, 1, 2, 3, 4 i 5.

Osnovna naredba tačke je oled.pixel (x, y, boja) - 0 je crno, a 1 bijelo.

Ishodište (0, 0) je u gornjem lijevom kutu ekrana, 0 - 127 piksela vodoravno (slijeva nadesno) i 0 - 63 okomito (odozgo prema dolje).

Korak 8: Kutije, blokovi i nagnute linije

Kutije, blokovi i nagnute linije
Kutije, blokovi i nagnute linije

Kutije su izgrađene od vodoravnih i okomitih linija.

Blokovi su izgrađeni od više vodoravnih linija.

Za nagnute linije prvo provjeravamo da li su koordinate najprije ostavljene lijevo. Ako ne, zamijenimo ih jer će se linija povući slijeva nadesno.

Zatim izračunavamo nagib i pomoću njega postavljamo vrijednost y za svaku vrijednost x.

Postupak prikaza (t) čini ažurirani ekran vidljivim i čeka kratko kašnjenje, t sekundi.

Korak 9: Simbol stepena, poravnanje, trakasti grafikon i krug

Simbol stupnja, poravnanje, trakasti grafikon i krug
Simbol stupnja, poravnanje, trakasti grafikon i krug

Simbol stupnja je kreiran od 4 piksela.

Rutina align () dodaje dodatne razmake ispred broja za poravnavanje desnih kratkih vrijednosti u fiksnom prostoru.

Rutina grafikona (v) crta vodoravni stupčasti grafikon koji daje odabrani postotak. Vrijednost je napisana s desne strane koristeći 'T' za predstavljanje 100 (tona ili vrh).

Krugovi zahtijevaju određenu trigonometriju pa moramo uvesti matematičku biblioteku na početku skripte. Koristimo sin, cos i radijane za izračunavanje pomaka x i y od središta dok se radijus rotira za 90 stupnjeva. Bodovi se ucrtavaju u svaki od četiri kvadranta za svaki izračun pomaka.

Korak 10: Prikupljanje smeća, naslovi i krugovi

Sakupljanje smeća, naslovi i krugovi
Sakupljanje smeća, naslovi i krugovi

Ove upute pokazuju brisanje ekrana na crno -bijelo, pisanje teksta na ekran i korištenje rutine gc () za prikupljanje smeća za oslobađanje prostora. Vrijednost pokazuje da ima dovoljno prostora za mnogo veću skriptu.

Program zatim iscrtava krugove sa zajedničkim centrom i sa pokretnim centrima. Prilično brza rutina s obzirom na količinu potrebne kalkulacije.

Naslov za demo redova je napisan sljedeći.

Korak 11: Lines Demo

Lines Demo
Lines Demo

Ova rutina zaista daje line () rutini vježbu. Radijalne linije iscrtane su iz svakog od četiri ugla zaslona s različitim razmacima koji tvore uzorke.

Korak 12: Glavna petlja: trakasti grafikon i definirani znakovi

Glavna petlja: trakasti grafikon i definirani znakovi
Glavna petlja: trakasti grafikon i definirani znakovi

Ovo je glavna petlja programa. Vrijednosti s potenciometra mijenjaju prikazane vrijednosti i mijenjaju dužinu stupčastog grafikona.

Ako pritisnete tipku, definirani znakovi se mijenjaju kao 1/0 i Tačno/Netačno. Ova petlja radi prilično sporo jer je crtanje unaprijed definiranih znakova spor proces. Možete ubrzati stvari tako što ćete neke od njih komentirati.

Nema ugrađenog senzora temperature, kako bi demo bio jednostavan, pa '?' prikazuje se umjesto vrijednosti u retku 190.

Preporučuje se: