Obsah:

Grafika na displeji SSD1306 I2C OLED 128x64 s CircuitPython pomocí Itsybitsy M4 Express: 13 kroků (s obrázky)
Grafika na displeji SSD1306 I2C OLED 128x64 s CircuitPython pomocí Itsybitsy M4 Express: 13 kroků (s obrázky)

Video: Grafika na displeji SSD1306 I2C OLED 128x64 s CircuitPython pomocí Itsybitsy M4 Express: 13 kroků (s obrázky)

Video: Grafika na displeji SSD1306 I2C OLED 128x64 s CircuitPython pomocí Itsybitsy M4 Express: 13 kroků (s obrázky)
Video: Лазерный дальномер 50м 2024, Červen
Anonim
Grafika na displeji SSD1306 I2C OLED 128x64 s CircuitPython pomocí Itsybitsy M4 Express
Grafika na displeji SSD1306 I2C OLED 128x64 s CircuitPython pomocí Itsybitsy M4 Express

Displej SSD1306 OLED je malý (0,96 ), levný, široce dostupný, I2C, monochromatický grafický displej se 128 x 64 pixely, který lze snadno propojit (pouze 4 vodiče) s vývojovými deskami mikroprocesorů, jako jsou Raspberry Pi, Arduino nebo Adafruit Itsybitsy M4 Express, CircuitPlayground Express nebo jiná zařízení CircuitPython. Ovladače lze stáhnout z internetu.

Grafické rutiny pro Arduinos jsou k dispozici již nějakou dobu, ale ne pro jiné vývojové systémy.

Základní ovladače zařízení umožňují uživatelům:

  • Vymažte obrazovku na černou nebo bílou. oled.fill (c)
  • Napište textový řetězec na obrazovku na zadanou (x, y) pozici oled.text ("Text", x, y, c)
  • Nakreslete tečku na zadanou (x, y) pozici oled. Pixel (x, y, c)
  • Načtěte obrazový soubor na obrazovku. (V tomto projektu není použito)
  • Aktualizujte displej oled.show ()

Tento Instructable s jednoduchými postupy ukáže, jak interaktivně kreslit:

  • řádky
  • kruhy
  • duté boxy
  • pevné bloky
  • předdefinované znaky

K demonstraci metod budu používat Adafruit Itsybitsy M4 Express, ale kód v Pythonu lze snadno přenést do jiných vývojových systémů.

Pro tuto demonstraci jsem si vybral Itsybitsy M4, protože je levný, výkonný, snadno programovatelný, obsahuje analogový i digitální vstup/výstup, má spoustu paměti, snadno vyhledává dokumentaci a fóra nápovědy na internetu, je velmi snadné jej nastavit zpočátku a podporuje CircuitPython, verzi Pythonu ideální pro ty, kteří s kódováním začínají.

Jakmile nastavíte Itsybitsy a SSD1306, je to velmi jednoduchá konstrukce. Nepíše se, všechny soubory lze stáhnout.

Jedná se o levný a snadno sestavitelný projekt, který ale přináší některé středně pokročilé/pokročilé nápady. Doufám, že to zkusíte. Byl jsem ohromen tímto malým displejem.

Krok 1: Co pro tento projekt potřebujeme

Co pro tento projekt potřebujeme
Co pro tento projekt potřebujeme

Hardware:

  • Mono displej SSD1306 I2C 128x64 pixelů
  • Itsybitsy M4 Express
  • kabel microUSB na USB - k programování desky
  • Prkénko
  • 1 potenciometr 10K Ohm
  • 1 tlačítkový spínač
  • spojovací vodič - různé barvy mohou pomoci
  • Počítač (k napsání kódu a jeho nahrání) - velmi starý notebook to zvládne.

Software:

Mu editor - pro psaní kódu a nahrání skriptu do Itsybitsy

Nastavení Itsybitsy je vysvětleno zde:

Nejnovější verze CircuitPython:

Knihovny CircuitPython:

Mu editor:

Krok 2: Okruh

Okruh
Okruh

Toto je velmi jednoduchý obvod k nastavení. Další stránka ukazuje hotové prkénko s barevnými dráty, aby bylo vše snadné.

Krok 3: Verze obvodu na Breadboardu

Breadboard verze obvodu
Breadboard verze obvodu

V horní a dolní části prkénka jsou napájecí lišty. Červeným drátem spojte kladné kolejnice dohromady. S černým drátem spojte -ve kolejnice dohromady.

Připojte 3V kolík Itsybitsy k dolní +ve liště - červený vodič. (Sloupec 12)

Připojte kolík G (GND) Itsybitsy k horní -ve liště - černý vodič. (Sloupec 12)

Ve sloupcích 33 a 34 připojte piny SSD1306 VCC a GND k horním napájecím lištám.

Růžovým drátem spojte kolíky SCL dohromady.

Šedým drátem spojte kolíky SDA dohromady.

Červenými a černými vodiči připojte vnější kolíky potenciometru k horním napájecím lištám a zeleným vodičem připojte středový (stěrač) kolík k A5 na Itsybitsy.

Připojte jednu stranu tlačítkového spínače fialovým vodičem ke kolíku 2 a černým vodičem připojte druhou stranu k liště GND.

Krok 4: Načtení písma

Načítání písma
Načítání písma

Stáhněte si soubor písma a přetáhněte jej na jednotku CIRCUITPY. (Toto je Itsybitsy.)

Poklepejte na složku lib a podívejte se na seznam ovladačů, které jste již načetli.

Krok 5: Přidání dalších ovladačů

Přidání dalších ovladačů
Přidání dalších ovladačů

Ve složce lib budete potřebovat následující:

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

Pokud chybí, přetáhněte je do složky z nejnovější dostupné verze.

Nyní jste připraveni stáhnout skript.

Po načtení do editoru Mu jej můžete uložit do Itsybitsy pod názvem main.py.

Program prochází řadou ukázek čar, kruhů, dynamického sloupcového grafu a zobrazování definovaných znaků. Hrnec otočte pomalu a stisknutím a podržením tlačítka ovládejte displej.

Následující stránky poskytují více informací o tom, jak program funguje.

Krok 6: Nastavení zařízení

Nastavte zařízení
Nastavte zařízení

Tato první část načte všechny knihovny a nastaví přepínač SSD1306, potenciometr a přepínač na správné piny.

Krok 7: Definujte znaky a nakreslete vodorovné a svislé čáry

Definujte znaky a nakreslete vodorovné a svislé čáry
Definujte znaky a nakreslete vodorovné a svislé čáry
Definujte znaky a nakreslete vodorovné a svislé čáry
Definujte znaky a nakreslete vodorovné a svislé čáry

Tato část nastavuje předdefinované znaky. Mají šířku 5 bodů a výšku 8 bodů. Každá tečka v definici nakreslí na obrazovku 4 body, aby se zobrazovaly lépe.

Vodorovné a svislé čáry lze snadno kreslit pomocí smyčky. Jen si musíte pamatovat, že na konci potřebujete další tečku. Řádek od (0, 7) do (5, 7) bude potřebovat 6 bodů: s x rovnými 0, 1, 2, 3, 4 a 5 v pořadí.

Základní bodový příkaz je oled.pixel (x, y, color) - 0 je černá a 1 je bílá.

Počátek (0, 0) je v levé horní části obrazovky, 0 - 127 pixelů vodorovně (zleva doprava) a 0 - 63 svisle (shora dolů).

Krok 8: Krabice, bloky a šikmé čáry

Krabice, bloky a šikmé čáry
Krabice, bloky a šikmé čáry

Krabice jsou postaveny z vodorovných a svislých čar.

Bloky jsou postaveny z několika vodorovných čar.

U šikmých čar nejprve kontrolujeme, že souřadnice jsou dány nejvíce vlevo. Pokud ne, vyměníme je, protože čára bude nakreslena zleva doprava.

Potom vypočítáme sklon a pomocí něj nastavíme hodnotu y pro každou hodnotu x.

Postup zobrazení (t) zviditelní aktualizovanou obrazovku a čeká na krátké zpoždění, t sekundy.

Krok 9: Stupňový symbol, zarovnání, sloupcový graf a kruh

Stupňový symbol, zarovnání, sloupcový graf a kruh
Stupňový symbol, zarovnání, sloupcový graf a kruh

Symbol stupně je vytvořen ze 4 pixelů.

Rutina align () přidá před číslo další mezery, aby zarovnala krátké hodnoty doprava do pevného prostoru.

Rutina grafu (v) nakreslí vodorovný sloupcový graf udávající zvolené procento. Hodnota je zapsána na pravém konci pomocí 'T' reprezentující 100 (Ton nebo Top).

Kruhy vyžadují určitou trigonometrii, takže musíme importovat matematickou knihovnu na začátku skriptu. Pomocí sin, cos a radiánů vypočítáme odsazení xay od středu, protože poloměr se otočí o 90 stupňů. Body jsou vyneseny do každého ze čtyř kvadrantů pro každý výpočet offsetů.

Krok 10: Sběr odpadků, tituly a kruhy

Sběr odpadků, tituly a kruhy
Sběr odpadků, tituly a kruhy

Tyto pokyny demonstrují čištění obrazovky na černobíle, psaní textu na obrazovku a použití rutiny gc () „garbage collection“k uvolnění místa. Hodnota ukazuje, že je zde dostatek místa pro mnohem větší skript.

Program pak kreslí kruhy se společným středem a s pohyblivými středy. Poměrně rychlá rutina s ohledem na požadované množství výpočtu.

Dále je napsán nadpis pro demo řádků.

Krok 11: Ukázka linek

Lines Demo
Lines Demo

Tato rutina opravdu dává rutině line () cvičení. Radiální čáry jsou kresleny z každého ze čtyř rohů displeje s různými rozestupy tvořícími vzory.

Krok 12: Hlavní smyčka: sloupcový graf a definované znaky

Hlavní smyčka: Sloupcový graf a definované znaky
Hlavní smyčka: Sloupcový graf a definované znaky

Toto je hlavní smyčka programu. Hodnoty z potenciometru mění zobrazené hodnoty a mění délku sloupcového grafu.

Pokud tlačítko podržíte, definované znaky se přepnou stejně jako 1/0 a True/False. Tato smyčka běží poměrně pomalu, protože kreslení předdefinovaných znaků je pomalý proces. Věci můžete urychlit komentováním některých z nich.

Neexistuje žádné teplotní čidlo, aby bylo toto demo jednoduché, takže '?' se místo hodnoty v řádku 190 zobrazí.

Doporučuje: