Innehållsförteckning:

Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: 13 steg (med bilder)
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: 13 steg (med bilder)

Video: Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: 13 steg (med bilder)

Video: Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: 13 steg (med bilder)
Video: arduino oled i2c tutorial : 0.96" 128 X 32 for beginners 2024, Juli
Anonim
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express

SSD1306 OLED -skärmen är en liten (0,96 ), billig, allmänt tillgänglig, I2C, monokrom grafisk skärm med 128x64 pixlar, som enkelt kan anslutas (endast 4 ledningar) till mikroprocessorutvecklingskort som en Raspberry Pi, Arduino eller Adafruit Itsybitsy M4 Express, CircuitPlayground Express eller andra CircuitPython -enheter. Drivrutiner kan laddas ner från internet.

Grafiska rutiner för Arduinos har varit tillgängliga under en tid men inte för andra utvecklingssystem.

De grundläggande enhetsdrivrutinerna tillåter användare att:

  • Rensa skärmen till svart eller vitt. oled.fill (c)
  • Skriv en textsträng till skärmen vid en angiven (x, y) position oled.text ("Text", x, y, c)
  • Rita en prick vid en angiven (x, y) position oled. Pixel (x, y, c)
  • Ladda en bildfil på skärmen. (Används inte i detta projekt)
  • Uppdatera displayen oled.show ()

Denna instruktör kommer att visa, med enkla procedurer, hur man ritar, interaktivt:

  • rader
  • cirklar
  • ihåliga lådor
  • fasta block
  • fördefinierade tecken

Jag kommer att använda en Adafruit Itsybitsy M4 Express för att demonstrera metoderna men koden, i Python, kan enkelt portas till andra utvecklingssystem.

Jag valde Itsybitsy M4 för den här demonstrationen eftersom den är billig, kraftfull, enkel att programmera, innehåller analog och digital ingång/utgång, har gott om minne, lätt har hittat dokumentation och hjälpforum på Internet, är mycket lätt att installera inledningsvis och stöder CircuitPython, en version av Python som är perfekt för dem som är nya inom kodning.

När du väl har konfigurerat din Itsybitsy och SSD1306 är detta en mycket enkel konstruktion av brödbräda. Det går inte att skriva, alla filer kan laddas ner.

Detta är ett billigt och enkelt projekt att bygga men introducerar några mellanliggande/avancerade idéer. Jag hoppas att du kommer att prova. Jag var imponerad av denna lilla display.

Steg 1: Vad vi behöver för detta projekt

Vad vi behöver för detta projekt
Vad vi behöver för detta projekt

Hårdvara:

  • SSD1306 I2C mono -skärm 128x64 pixlar
  • Itsybitsy M4 Express
  • microUSB till USB -kabel - för att programmera kortet
  • Bakbord
  • 1 10K Ohm potentiometer
  • 1 knappomkopplare
  • anslutningskabel - olika färger kan hjälpa
  • Dator (för att skriva koden och ladda upp den) - en mycket gammal bärbar dator kommer att göra.

Programvara:

Mu editor - för att skriva kod och ladda upp manuset till Itsybitsy

Inställningen av Itsybitsy förklaras här:

Den senaste versionen av CircuitPython:

CircuitPython -bibliotek:

Mu Editor:

Steg 2: Kretsen

Kretsen
Kretsen

Detta är en mycket enkel krets att ställa in. Nästa sida illustrerar den färdiga brödbrädan med färgade trådar för att göra det enkelt.

Steg 3: Breadboard -versionen av kretsen

Brödbrädans version av kretsen
Brödbrädans version av kretsen

Det finns kraftskenor upptill och nedtill på brödbrädan. Med röd tråd sammanfogar +ve -skenorna. Med svart tråd sammanfoga -ve skenorna tillsammans.

Anslut 3V -stiftet på Itsybitsy till den nedre +ve -skenan - röd tråd. (Kolumn 12)

Anslut G (GND) stiftet på Itsybitsy till den övre väggskenan - svart tråd. (Kolumn 12)

I kolumnerna 33 och 34 ansluter du SSD1306 VCC- och GND -stiften till de övre kraftskenorna.

Anslut SCL -stiften med en rosa tråd.

Anslut SDA -stiften med en grå tråd.

Med röda och svarta ledningar ansluter potentiometerns yttre stift till de övre kraftskenorna och med grön tråd ansluter mitt (torkar) stiftet till A5 på Itsybitsy.

Anslut ena sidan av knappomkopplaren med en lila tråd till stift 2 och anslut den andra sidan till en GND -skena med en svart kabel.

Steg 4: Ladda teckensnittet

Läser in teckensnittet
Läser in teckensnittet

Ladda ner teckensnittsfilen och dra den till CIRCUITPY -enheten. (Detta är Itsybitsy.)

Dubbelklicka på lib -mappen och titta på listan över drivrutiner som du redan har laddat.

Steg 5: Lägga till extra drivrutiner

Lägger till extra drivrutiner
Lägger till extra drivrutiner

Du behöver följande i mappen lib:

  • simpleio.mpy
  • adafruit_bus_enhet
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

Om de saknas, dra dem till mappen från den senaste tillgängliga versionen.

Du är nu redo att ladda ner skriptet.

När den har laddats in i Mu -redigeraren kan du spara den till Itsybitsy med namnet main.py.

Programmet går igenom en serie demonstrationer av linjer, cirklar, ett dynamiskt stapeldiagram och visar definierade tecken. Vänd bara grytan långsamt och håll knappen intryckt för att styra displayen.

De följande sidorna ger mer information om hur programmet fungerar.

Steg 6: Konfigurera enheterna

Konfigurera enheterna
Konfigurera enheterna

Detta första avsnitt laddar alla bibliotek och ställer in SSD1306, potentiometer och knappbrytare på rätt stift.

Steg 7: Definiera tecken och rita horisontella och vertikala linjer

Definiera tecken och rita horisontella och vertikala linjer
Definiera tecken och rita horisontella och vertikala linjer
Definiera tecken och rita horisontella och vertikala linjer
Definiera tecken och rita horisontella och vertikala linjer

Detta avsnitt anger de fördefinierade tecknen. De är 5 punkter breda och 8 punkter höga. Varje punkt i definitionen drar 4 punkter på skärmen så att de visas bättre.

Horisontella och vertikala linjer är lätta att rita med en loop. Du måste bara komma ihåg att du behöver den extra pricken i slutet. En linje från (0, 7) till (5, 7) behöver 6 punkter: med x lika med 0, 1, 2, 3, 4 och 5 i tur och ordning.

Det grundläggande punktkommandot är oled.pixel (x, y, färg) - 0 är svart och 1 är vitt.

Ursprunget (0, 0) är längst upp till vänster på skärmen, 0 - 127 pixlar horisontellt (vänster till höger) och 0 - 63 vertikalt (uppifrån och ner).

Steg 8: Lådor, block och sluttande linjer

Lådor, block och sluttande linjer
Lådor, block och sluttande linjer

Lådor är byggda av horisontella och vertikala linjer.

Block är byggda av flera horisontella linjer.

För sluttande linjer kontrollerar vi först att koordinaterna ges mest vänster först. Om inte byter vi dem eftersom linjen dras från vänster till höger.

Vi beräknar sedan lutningen och använder den för att ställa in y -värdet för varje värde av x.

Displayen (t) gör den uppdaterade skärmen synlig och väntar på en kort fördröjning, t sekunder.

Steg 9: Gradsymbol, anteckning, stapeldiagram och cirkel

Examenssymbol, anteckning, stapeldiagram och cirkel
Examenssymbol, anteckning, stapeldiagram och cirkel

Gradsymbolen skapas från 4 pixlar.

Linjen () anpassar rutan till extra mellanslag framför siffran för att högerjustera korta värden i ett fast utrymme.

Diagrammet (v) -rutinen ritar ett horisontellt stapeldiagram som anger procenttalet. Värdet skrivs i högra änden med 'T' för att representera 100 (ton eller topp).

Cirklar kräver viss trigonometri så vi måste importera mattebiblioteket i början av manuset. Vi använder sin, cos och radianer för att beräkna x- och y -förskjutningarna från mitten när en radie roteras 90 grader. Poäng plottas i var och en av de fyra kvadranterna för varje beräkning av förskjutningarna.

Steg 10: Skräpsamling, titlar och cirklar

Skräpsamling, titlar och cirklar
Skräpsamling, titlar och cirklar

Dessa instruktioner visar att skärmen rensas till svart och vitt, skriver text till skärmen och använder rutinen gc () för "sophämtning" för att frigöra utrymme. Värdet visar att det finns gott om plats för ett mycket större manus.

Programmet ritar sedan cirklar med ett gemensamt centrum och med rörliga centra. Ganska snabb rutin med tanke på mängden beräkning som krävs.

Rubriken för raden demo är skriven nästa.

Steg 11: Demonstrationer

Demonstration av linjer
Demonstration av linjer

Denna rutin ger verkligen line () rutinen ett träningspass. Radiella linjer dras från vart och ett av displayens fyra hörn med olika mellanrum som bildar mönster.

Steg 12: Huvudslingan: stapeldiagram och definierade tecken

Huvudslingan: stapeldiagram och definierade tecken
Huvudslingan: stapeldiagram och definierade tecken

Detta är programmets huvudslinga. Värdena från potentiometern ändrar de visade värdena och ändrar stapeldiagrammets längd.

Om knappen hålls intryckt byts de definierade tecknen ut som 1/0 och True/False. Denna loop går ganska långsamt eftersom att rita de fördefinierade tecknen är en långsam process. Du kan påskynda saker genom att kommentera några av dem.

Det finns ingen temperatursensor för att hålla denna demo enkel, så '?' visas istället för ett värde på rad 190.

Rekommenderad: