Indholdsfortegnelse:

Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: 13 trin (med billeder)
Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: 13 trin (med billeder)

Video: Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: 13 trin (med billeder)

Video: Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: 13 trin (med billeder)
Video: Raspberry Pi Pico Tutorial - SSD1306 I2C OLED DISPLAY 2024, Juli
Anonim
Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython ved hjælp af en Itsybitsy M4 Express
Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython ved hjælp af en Itsybitsy M4 Express

SSD1306 OLED -skærmen er en lille (0,96 ), billig, bredt tilgængelig, I2C, monokrom grafisk skærm med 128x64 pixels, som let kan tilsluttes (kun 4 ledninger) til mikroprocessorudviklingskort som en Raspberry Pi, Arduino eller Adafruit Itsybitsy M4 Express, CircuitPlayground Express eller andre CircuitPython -enheder. Drivere kan downloades fra internettet.

Grafiske rutiner for Arduinos har været tilgængelige i nogen tid, men ikke for andre udviklingssystemer.

De grundlæggende enhedsdrivere tillader brugere at:

  • Ryd skærmen til sort eller hvid. oled.fill (c)
  • Skriv en tekststreng til skærmen på en bestemt (x, y) position oled.text ("Tekst", x, y, c)
  • Tegn en prik på en bestemt (x, y) position oled. Pixel (x, y, c)
  • Indlæs en billedfil på skærmen. (Ikke brugt i dette projekt)
  • Opdater displayet oled.show ()

Denne instruktør vil med enkle procedurer demonstrere, hvordan man tegner interaktivt:

  • linjer
  • cirkler
  • hule kasser
  • solide blokke
  • foruddefinerede tegn

Jeg vil bruge en Adafruit Itsybitsy M4 Express til at demonstrere metoderne, men koden i Python kan let portes til andre udviklingssystemer.

Jeg valgte Itsybitsy M4 til denne demonstration, fordi den er billig, kraftfuld, let at programmere, indeholder analog og digital input/output, har masser af hukommelse, let har fundet dokumentation og hjælpefora på Internettet, er meget let at oprette i starten og understøtter CircuitPython, en version af Python, der er ideel til dem, der er nye inden for kodning.

Når du har konfigureret din Itsybitsy og SSD1306, er dette en meget enkel brødbrætopbygning. Der er ingen indtastning, alle filerne kan downloades.

Dette er et billigt og let projekt at bygge, men introducerer nogle mellemliggende/avancerede ideer. Jeg håber du vil prøve det. Jeg var imponeret over dette lille display.

Trin 1: Hvad vi har brug for til dette projekt

Hvad vi har brug for til dette projekt
Hvad vi har brug for til dette projekt

Hardware:

  • SSD1306 I2C mono -skærm 128x64 pixels
  • Itsybitsy M4 Express
  • microUSB til USB -kabel - for at programmere kortet
  • Brødbræt
  • 1 10K Ohm potentiometer
  • 1 knapkontakt
  • tilslutningskablet - forskellige farver kan hjælpe
  • Computer (for at skrive koden og uploade den) - en meget gammel bærbar computer vil gøre.

Software:

Mu -editor - til at skrive kode og uploade scriptet til Itsybitsy

Opsætning af Itsybitsy forklares her:

Den seneste version af CircuitPython:

CircuitPython -biblioteker:

Mu Editor:

Trin 2: Kredsløbet

Kredsløbet
Kredsløbet

Dette er et meget enkelt kredsløb at oprette. Den næste side illustrerer det færdige brødbræt med farvede tråde for at gøre tingene lette.

Trin 3: Breadboard -version af kredsløbet

Breadboard version af kredsløbet
Breadboard version af kredsløbet

Der er strømskinner i toppen og bunden af brødbrættet. Tilslut +ve -skinnerne med en rød ledning. Med sort ledning forbindes de -ve skinner sammen.

Slut Itsybitsys 3V -pin til den nederste +ve -skinne - rød ledning. (Kolonne 12)

Tilslut G (GND) pin på Itsybitsy til den øverste skinne - sort ledning. (Kolonne 12)

I kolonne 33 og 34 forbindes SSD1306 VCC- og GND -benene til de øverste strømskinner.

Slut SCL -stifterne sammen med en lyserød ledning.

Slut SDA -stifterne sammen med en grå ledning.

Med røde og sorte ledninger forbindes potentiometerets ydre ben til de øvre strømskinner og med grøn ledning forbindes midterstiften (visker) til A5 på Itsybitsy.

Forbind den ene side af knapkontakten med en lilla ledning til pin 2 og tilslut den anden side til en GND -skinne med en sort ledning.

Trin 4: Indlæsning af skrifttype

Indlæser skrifttypen
Indlæser skrifttypen

Download skrifttypefilen og træk den til CIRCUITPY -drevet. (Dette er Itsybitsy.)

Dobbeltklik på mappen lib, og se på listen over drivere, du allerede har indlæst.

Trin 5: Tilføjelse af ekstra drivere

Tilføjelse af ekstra drivere
Tilføjelse af ekstra drivere

Du skal bruge følgende i mappen lib:

  • simpleio.mpy
  • adafruit_bus_enhed
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

Hvis de mangler, skal du trække dem ind i mappen fra den seneste tilgængelige version.

Du er nu klar til at downloade scriptet.

Når den er indlæst i Mu -editoren, kan du gemme den på Itsybitsy med navnet main.py.

Programmet kører gennem en række demonstrationer af linjer, cirkler, et dynamisk søjlediagram og viser definerede tegn. Drej bare langsomt på gryden, og tryk på knappen, og hold den inde for at styre displayet.

De følgende sider giver mere information om, hvordan programmet fungerer.

Trin 6: Konfigurer enhederne

Konfigurer enhederne
Konfigurer enhederne

Denne første sektion indlæser alle bibliotekerne og opsætter SSD1306, potentiometer og knapkontakt på de korrekte ben.

Trin 7: Definer tegn og tegn vandrette og lodrette linjer

Definer tegn og tegn vandrette og lodrette linjer
Definer tegn og tegn vandrette og lodrette linjer
Definer tegn og tegn vandrette og lodrette linjer
Definer tegn og tegn vandrette og lodrette linjer

Dette afsnit opsætter de foruddefinerede tegn. De er 5 prikker brede og 8 prikker høje. Hver prik i definitionen trækker 4 prikker på skærmen, så de vises bedre.

Vandrette og lodrette linjer er lette at tegne med en sløjfe. Du skal bare huske, at du har brug for den ekstra prik i slutningen. En linje fra (0, 7) til (5, 7) skal bruge 6 prikker: med x lig med 0, 1, 2, 3, 4 og 5 på skift.

Den grundlæggende dot -kommando er oled. Pixel (x, y, farve) - 0 er sort og 1 er hvid.

Oprindelsen (0, 0) er øverst til venstre på skærmen, 0 - 127 pixels vandret (fra venstre mod højre) og 0 - 63 lodret (top til bund).

Trin 8: Kasser, blokke og skrå linjer

Kasser, blokke og skrå linjer
Kasser, blokke og skrå linjer

Kasser er bygget af vandrette og lodrette linjer.

Blokke er bygget af flere vandrette linjer.

For skrå linjer kontrollerer vi først, at koordinater er givet mest venstre først. Hvis ikke bytter vi dem om, da stregen bliver trukket fra venstre mod højre.

Vi beregner derefter hældningen og bruger den til at indstille y -værdien for hver værdi på x.

Display (t) -proceduren gør den opdaterede skærm synlig og venter på en kort forsinkelse, t sekunder.

Trin 9: Gradsymbol, fortegnelse, søjlediagram og cirkel

Gradsymbol, fortegnelse, søjlediagram og cirkel
Gradsymbol, fortegnelse, søjlediagram og cirkel

Gradsymbolet er oprettet ud fra 4 pixels.

Justeringsrutinen () tilføjer ekstra mellemrum foran tallet for at højrejustere korte værdier i et fast mellemrum.

Grafen (v) rutinen tegner et vandret søjlediagram, der angiver den valgte procent. Værdien skrives i højre ende ved hjælp af 'T' til at repræsentere 100 (Ton eller Top).

Cirkler kræver en vis trigonometri, så vi skal importere det matematiske bibliotek i begyndelsen af scriptet. Vi bruger sin, cos og radianer til at beregne x- og y -forskydningerne fra midten, da en radius roteres 90 grader. Punkter er afbildet i hver af de fire kvadranter for hver beregning af forskydningerne.

Trin 10: Affaldssamling, titler og cirkler

Affaldssamling, titler og cirkler
Affaldssamling, titler og cirkler

Disse instruktioner viser skærmrensning til sort og hvid, skriver tekst til skærmen og bruger gc () 'skraldesamlingsrutinen' til at frigøre plads. Værdien viser, at der er masser af plads til et meget større script.

Programmet tegner derefter cirkler med et fælles center og med bevægelige centre. En ganske hurtig rutine i betragtning af den nødvendige beregning.

Overskriften til linjedemoen skrives derefter.

Trin 11: Demoer af linjer

Demo af linjer
Demo af linjer

Denne rutine giver virkelig line () rutinen en træning. Radiale linjer tegnes fra hvert af de fire hjørner af displayet med forskellige mellemrum, der danner mønstre.

Trin 12: Hovedløkken: søjlediagram og definerede tegn

Hovedløkken: søjlediagram og definerede tegn
Hovedløkken: søjlediagram og definerede tegn

Dette er programmets hovedsløjfe. Værdierne fra potentiometeret ændrer de viste værdier og ændrer længden af søjlediagrammet.

Hvis knappen holdes nede, skiftes de definerede tegn ud, ligesom 1/0 og True/False. Denne sløjfe kører ret langsomt, fordi tegning af de foruddefinerede tegn er en langsom proces. Du kan fremskynde tingene ved at kommentere nogle af dem.

Der er ingen temperatursensor monteret for at holde denne demo enkel, så '?' vises i stedet for en værdi i linje 190.

Anbefalede: