INHOUDSOPGAWE:
- Stap 1: Wat ons nodig het vir hierdie projek
- Stap 2: Die stroombaan
- Stap 3: Broodbordweergawe van die kring
- Stap 4: Laai die lettertipe
- Stap 5: Voeg ekstra bestuurders by
- Stap 6: Stel die toestelle op
- Stap 7: Definieer karakters en teken horisontale en vertikale lyne
- Stap 8: bokse, blokke en skuins lyne
- Stap 9: Graadsimbool, aanwysing, staafgrafiek en sirkel
- Stap 10: Vullisversameling, titels en sirkels
- Stap 11: Demonstrasie van lyne
- Stap 12: Die hooflus: staafgrafiek en gedefinieerde karakters
Video: Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
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
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
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
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 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
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
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
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
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
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
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
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
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:
Hoe om 'n baba-gewigmasjien te maak met behulp van Arduino Nano, HX-711-laadsel en OLED 128X64 -- Kalibrasie van HX-711: 5 stappe
Hoe om 'n baba-gewigmasjien te maak met behulp van Arduino Nano, HX-711-laadsel en OLED 128X64 || Kalibrasie van HX-711: Hallo instruksies, ek het 'n paar dae gelede pa geword van 'n oulike baba?. Toe ek in die hospitaal was, het ek gevind dat die gewig van die baba so belangrik is om die groei van die baba te monitor. So ek het 'n idee? om self 'n baba -gewigmasjien te maak. in hierdie instruksionele ek
ESP32 -koppelvlak met SSD1306 Oled met MicroPython: 5 stappe
ESP32 -koppelvlak met SSD1306 Oled With MicroPython: Micropython is die optimalisering en klein voetspoor van python. Dit was bedoel om te bou vir 'n ingeboude toestel met geheue beperkings en 'n lae kragverbruik. Micropython is beskikbaar vir baie beheergesinne, waaronder ESP8266, ESP32, Ardui
CircuitPython Met 'n Itsybitsy M4 Express 1: Opstelling: 9 stappe
CircuitPython Met 'n Itsybitsy M4 Express 1: Opstelling: nuut in kodering? Het u slegs Scratch gebruik en wil u oorskakel na 'n tekstuele taal wat maklike toegang tot fisiese rekenaar met LED's, skakelaars, skerms en sensors bied? Dan is hierdie dalk vir jou. Ek het opgemerk dat hierdie webwerf baie instruksies bevat
Flappy Bird op ATtiny85 en OLED Display SSD1306: 6 stappe (met foto's)
Flappy Bird op ATtiny85 en OLED Display SSD1306: Hey almal, vandag gaan ek u 'n basiese klapvoëlkloon wat ek geskep het, wys en hoe u 'n soortgelyke speletjie kan maak. Ek gaan in wese deur my kode deur en verduidelik hoe dit elke stap werk. Hierdie speletjie is gebou om
128x64 geel/blou OLED vir Arduino Nano, met TSL2591: 3 stappe
128x64 geel/blou OLED vir Arduino Nano, met TSL2591: U kan 'n OLED -skerm op 'n Arduino Nano bou met 'n TSL2591 spektroskopiese sensor (wel, twee kanale - visueel en NIR …) deur sketsvoorbeelde aanlyn te kombineer. Wat u kry, is 'n 4-reël vertoning van totale vloed, visuele vloed, NIR en 'n indeks kal