[Aktualizacja: 2019-03-30] Czytelnik, Paweł Kopacz, zauważył, że aktualnie trzeba jeszcze zainstalować pip i setuptools oraz wheel
Podobnie jak poprzednio – mamy dziś bardzo prostą instrukcję dla tym razem wyświetlacza. Śledząc dyskusje na grupie Malinowe Pi, Hubert Wu podzielił się linkiem do wyświetlacza 128×64. Jest to wyświetlacz monochromatyczny o całkiem słusznej rozdzielczości 128×64 wykonany w technologii OLED. Pomyśleć, że mój pierwszy komputer miał także rozdzielczość 640×400 i monochrom. Wyświetlacz kosztuje około 20-25 PLN i występuje najczęściej pod nazwą: ”0.96″ I2C IIC Serial 128X64” w popularnych serwisach aukcyjnych i wygląda podobnie do oryginalnego wyświetlacza Adafruit SSD1306 – którego właśnie użyłbym.
Czego będziemy potrzebować?
Software:
- git, python-devel, python-pip (programy do zainstalowania w dystrybucji Raspbian na RPi)
- Bibliotekę z przykładami od Adafruit: Adafruit_Python_SSD1306
Hardware:
- Raspberry Pi – 1B, 1A, 2B, 3B+, 4B+ – właściwe dowolne z zainstalowanym Raspbianem (wystarcza wersja mini)
- Wyświetlacz OLED SSD 1306 lub zgodny
Zastosowanie
Podłączony do RPi wyświetlacz (który jest zupełnie niezależny od wyjść HDMI czy Composite), przydaje się oczywiście do niezliczonych projektów, ale gdy zapytać konkretnie – to jednym z podstawowych jest wyświetlenie adresu IP 🙂
Podłączamy
Najpierw podłączamy zasilanie i masę – VCC i GND do 3,3 i GND RPi, a następnie SDA i SCL do GPIO0 (GPIO 2 w RPi B+, 2 i 3) i GPIO1 (GPIO 3 w RPi B+, 2 i 3):
Podłączenie jest bardzo proste a wszystkie PINy obok siebie (no prawie, omijamy GPIO4!). Podczas podłączania – pomyliłem VCC z GND! Objawem było delikatne świecenie zielonej LED na RPi… Na szczęście po poprawieniu – okazało się, że zarówno RPi jak i wyświetlacz są w porządku. Od strony wyświetlacza podłączenie wygląda to tak:
Instalujemy
Pierwszy krokiem będzie włączenie szyny I2C (GPIOO lub GPIO2 i GPIO1 lub GPIO3) na naszym RPi, włączamy ją używając raspi-config (Interfacing Options–>I2C->Enable).
Uruchamiamy ponownie RPi i zabieramy się za instalację odpowiednich programów:
Tradycyjne, aktualizujemy system:
sudo apt-get update && sudo apt-get upgrade
Następnie instalujemy odpowiednie programy:
sudo apt-get install build-essential python-dev python-pip python-imaging python-smbus git
Następnie RPi.GPIO:
sudo pip install RPi.GPIO
Gdy wszystko zostanie pobrane i zainstalowane – pobieramy używając git odpowiednią bibliotekę z przykładami od Adafruit:
sudo python -m pip install --upgrade pip setuptools wheel git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git cd Adafruit_Python_SSD1306 sudo python setup.py install
Test!
Przekonajmy się czy nasz wyświetlacz jest prawidłowo podłączony!
cd Adafruit_Python_SSD1306/examples/ nano shapes.py
Edytujemy plik shapes.py i lokalizujemy linię, która konfiguruje nasz wyświetlacz do pracy przez I2C, jest to:
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST, i2c_bus=1)
Inne linie zaczynające się od disp – „haszujemy” czyli stawiamy na początku znak #.
Teraz uruchamiamy:
sudo python shapes.py
Wreszcie wyświetlacz ożył! W katalogu znajdują się jeszcze pliki w Pythonie z przykładami – animate.py oraz image.py, należy je także przygotować – wybrać właściwą konfigurację zmiennej disp.
Możemy stosować własne czcionki (foramat TTF) – np: o wysokości 16pix:
image.py pozwala z kolei wyświetlić obraz w formacie PPM – do przygotowanie można użyć GIMP oraz konwersji na monochrom z ditheringiem:
Efekt zależy od wejściowego obrazu – powiedzmy, że logo można rozpoznać!
Pozostaje nam zagłębić się w Python’a i użyć wyświetlacza do podania adresu IP.