INHOUDSOPGAWE:

Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)

Video: Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)

Video: Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)
Video: Space Invaders Arduino OLED, сборка Ep1: Графика и движение 2024, November
Anonim
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met behulp van 'n Itsybitsy M4 Express
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met behulp van 'n Itsybitsy M4 Express

Die SSD1306 OLED -skerm is 'n klein (0,96 ), goedkoop, algemeen beskikbare, I2C, monochrome grafiese skerm met 128x64 pixels, wat maklik gekoppel kan word (slegs 4 drade) met mikroverwerkerborde soos 'n Raspberry Pi, Arduino of Adafruit Itsybitsy M4 Express, CircuitPlayground Express of ander CircuitPython -toestelle. Bestuurders kan van die internet afgelaai word.

Grafiese roetines vir Arduinos is al geruime tyd beskikbaar, maar nie vir ander ontwikkelingstelsels nie.

Die basiese toesteldrywers stel gebruikers in staat om:

  • Maak die skerm skoon na swart of wit. oled.fill (c)
  • Skryf 'n teksstring op die skerm op 'n gespesifiseerde (x, y) posisie oled.text ("Text", x, y, c)
  • Trek 'n kol op 'n gespesifiseerde (x, y) posisie oled.pixel (x, y, c)
  • Laai 'n prentlêer op die skerm. (Word nie in hierdie projek gebruik nie)
  • Dateer die skerm op oled.show ()

Hierdie instruksie sal met eenvoudige prosedures demonstreer hoe om interaktief te teken:

  • lyne
  • sirkels
  • hol bokse
  • soliede blokke
  • vooraf gedefinieerde karakters

Ek sal 'n Adafruit Itsybitsy M4 Express gebruik om die metodes te demonstreer, maar die kode in Python kan maklik na ander ontwikkelingstelsels oorgedra word.

Ek het die Itsybitsy M4 vir hierdie demonstrasie gekies omdat dit goedkoop, kragtig, maklik om te programmeer is, analoog en digitaal ingang/uitvoer bevat, baie geheue het, maklik dokumentasie en hulpforums op die internet gevind het, aanvanklik baie maklik is om op te stel en ondersteun CircuitPython, 'n weergawe van Python wat ideaal is vir diegene wat nuut is vir kodering.

Sodra u u Itsybitsy en SSD1306 opgestel het, is dit 'n baie eenvoudige broodbord -opbou. Daar is geen tik nie, al die lêers kan afgelaai word.

Dit is 'n goedkoop en maklike projek om te bou, maar stel 'n paar intermediêre/gevorderde idees bekend. Ek hoop dat u dit sal probeer. Ek was beïndruk met hierdie klein skerm.

Stap 1: Wat ons nodig het vir hierdie projek

Wat ons nodig het vir hierdie projek
Wat ons nodig het vir hierdie projek

Hardeware:

  • SSD1306 I2C mono -skerm 128x64 pixels
  • Itsybitsy M4 Express
  • microUSB na USB -kabel - om die bord te programmeer
  • Broodbord
  • 1 10K Ohm potensiometer
  • 1 knoppie skakelaar
  • verbindingsdraad - verskillende kleure kan help
  • Rekenaar (om die kode te skryf en op te laai) - 'n baie ou skootrekenaar sal dit doen.

Sagteware:

Mu -redakteur - vir die skryf van kode en die oplaai van die draaiboek na die Itsybitsy

Die oprigting van die Itsybitsy word hier verduidelik:

Die nuutste weergawe van CircuitPython:

CircuitPython -biblioteke:

Mu Editor:

Stap 2: Die stroombaan

Die stroombaan
Die stroombaan

Dit is 'n baie eenvoudige kring om op te stel. Die volgende bladsy illustreer die voltooide broodbord met gekleurde drade om dinge makliker te maak.

Stap 3: Broodbordweergawe van die kring

Broodbordweergawe van die kring
Broodbordweergawe van die kring

Daar is kragrails aan die bokant en onderkant van die broodbord. Verbind met die +ve rels met 'n rooi draad. Verbind met die swart draad die -ve relings saam.

Verbind die 3V -pen van die Itsybitsy met die onderste +veer - rooi draad. (Kolom 12)

Sluit die G (GND) pen van die Itsybitsy aan die boonste spoor - swart draad. (Kolom 12)

Koppel die SSD1306 VCC- en GND -penne in kolomme 33 en 34 aan die boonste kragrails.

Verbind die SCL -penne met 'n pienk draad.

Verbind die SDA -penne met 'n grys draad.

Koppel die buitenste penne van die potensiometer met rooi en swart drade aan die boonste kragrails en verbind die middelste (wisser) pen met groen draad aan A5 op die Itsybitsy.

Koppel die een kant van die knoppieskakelaar met 'n pers draad aan pen 2 en verbind die ander kant met 'n swart draad aan 'n GND -reling.

Stap 4: Laai die lettertipe

Laai die lettertipe
Laai die lettertipe

Laai die fontlêer af en sleep dit na die CIRCUITPY -skyf. (Dit is die Itsybitsy.)

Dubbelklik op die lib -gids en kyk na die lys bestuurders wat u reeds gelaai het.

Stap 5: Voeg ekstra bestuurders by

Voeg ekstra bestuurders by
Voeg ekstra bestuurders by

U benodig die volgende in die lib -lêergids:

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

As dit ontbreek, sleep dit na die gids vanaf die nuutste weergawe wat beskikbaar is.

U is nou gereed om die script af te laai.

Sodra dit in die Mu -redakteur gelaai is, kan u dit op die Itsybitsy stoor met die naam main.py.

Die program loop deur 'n reeks demonstrasies van lyne, sirkels, 'n dinamiese staafgrafiek en vertoon gedefinieerde karakters. Draai die pot stadig, en hou die knoppie ingedruk om die skerm te beheer.

Die volgende bladsye gee meer inligting oor hoe die program werk.

Stap 6: Stel die toestelle op

Stel die toestelle op
Stel die toestelle op

Hierdie eerste afdeling laai al die biblioteke en stel die SSD1306, potensiometer en knoppieskakelaar op die regte penne.

Stap 7: Definieer karakters en teken horisontale en vertikale lyne

Definieer karakters en teken horisontale en vertikale lyne
Definieer karakters en teken horisontale en vertikale lyne
Definieer karakters en teken horisontale en vertikale lyne
Definieer karakters en teken horisontale en vertikale lyne

Hierdie afdeling stel die vooraf gedefinieerde karakters op. Hulle is 5 kolletjies breed en 8 kolletjies hoog. Elke punt in die definisie trek 4 kolletjies op die skerm sodat hulle beter vertoon.

Horisontale en vertikale lyne is maklik om met 'n lus te teken. U moet net onthou dat u die ekstra punt aan die einde nodig het. 'N Reël van (0, 7) tot (5, 7) benodig 6 kolletjies: met x gelyk aan 0, 1, 2, 3, 4 en 5 om die beurt.

Die basiese puntopdrag is oled.pixel (x, y, kleur) - 0 is swart en 1 is wit.

Die oorsprong (0, 0) is links bo in die skerm, 0 - 127 pixels horisontaal (van links na regs) en 0 - 63 vertikaal (van bo na onder).

Stap 8: bokse, blokke en skuins lyne

Bokse, blokke en skuins lyne
Bokse, blokke en skuins lyne

Die bokse is opgebou uit horisontale en vertikale lyne.

Blokke word uit verskeie horisontale lyne gebou.

Vir skuins lyne kyk ons eers of die koördinate die eerste is. Indien nie, ruil ons dit om, want die lyn word van links na regs getrek.

Ons bereken dan die helling en gebruik dit om die y -waarde vir elke waarde van x in te stel.

Die display (t) -prosedure maak die opgedateerde skerm sigbaar en wag vir 'n kort vertraging, t sekondes.

Stap 9: Graadsimbool, aanwysing, staafgrafiek en sirkel

Graadsimbool, aanwysing, staafgrafiek en sirkel
Graadsimbool, aanwysing, staafgrafiek en sirkel

Die graadsimbool word gemaak uit 4 pixels.

Die belyning () -roetine voeg ekstra spasies voor die getal by om kort waardes in 'n vaste spasie regs te pas.

Die grafiek (v) roetine teken 'n horisontale staafgrafiek met die persentasie wat gekies is. Die waarde word aan die regterkant geskryf met 'T' om 100 (ton of bo) voor te stel.

Sirkels benodig trigonometrie, dus moet ons die wiskundebiblioteek aan die begin van die skrif invoer. Ons gebruik sin, cos en radiale om die x- en y -offsette van die middelpunt te bereken terwyl 'n radius 90 grade gedraai word. Punte word in elk van die vier kwadrante geteken vir elke berekening van die verrekenings.

Stap 10: Vullisversameling, titels en sirkels

Vullisversameling, titels en kringe
Vullisversameling, titels en kringe

Hierdie instruksies demonstreer dat die skerm na swart en wit skoongemaak word, teks op die skerm geskryf word en die gc () roetineversameling -roetine gebruik om ruimte vry te stel. Die waarde toon dat daar genoeg ruimte is vir 'n veel groter skrif.

Die program trek dan sirkels met 'n gemeenskaplike middelpunt en bewegende sentrums. Nogal 'n vinnige roetine, met inagneming van die hoeveelheid berekening wat benodig word.

Die opskrif vir die reëls demo word vervolgens geskryf.

Stap 11: Demonstrasie van lyne

Demonstrasie van lyne
Demonstrasie van lyne

Hierdie roetine gee die lyn () roetine regtig 'n oefensessie. Radiale lyne trek uit elk van die vier hoeke van die skerm met verskillende spasies wat patrone vorm.

Stap 12: Die hooflus: staafgrafiek en gedefinieerde karakters

Die hooflus: staafgrafiek en gedefinieerde karakters
Die hooflus: staafgrafiek en gedefinieerde karakters

Dit is die hooflus van die program. Die waardes van die potensiometer verander die getoonde waardes en verander die lengte van die staafgrafiek.

As die knoppie ingedruk word, word die gedefinieerde karakters omgeruil, net soos 1/0 en Waar/Onwaar. Hierdie lus loop redelik stadig, want die teken van die vooraf gedefinieerde karakters is 'n stadige proses. U kan dinge bespoedig deur op sommige daarvan kommentaar te lewer.

Daar is geen temperatuursensor aangebring om hierdie demo eenvoudig te hou nie, dus die '?' word in plaas van 'n waarde in reël 190 vertoon.

Aanbeveel: