Dziś mały wstęp do pracy z Raspberry Pi i LCD OLED o rozdzielczości 128×64 i przekątnej 0,96″ na szynie I2C.
Zakupiłem całkiem tani i całkiem mały wyświetlacz OLED który jest prosty w obsłudze i można na nim zrealizować wiele projektów. Działa on na szynie I2C i domyślnie zgłasza się na adresie 3c. Instalacja sprowadza się do podłączenia zasilania 3.3V, GND, SDA i SCL do Raspberry Pi. Jak widać poniżej piny są oznaczone więc nie ma problemu z podłączeniem. Oczywiście piny Raspberry Pi są do sprawdzenia np. tu.
Po wydaniu polecenia listującego urządzenia podłączone pod szynę I2C powinien pojawić się adres jak poniżej.
root@Zero1:~# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Sterowniki
Bez odpowiednich bibliotek nie ruszymy dalej! Ja znalazłem na tym githubie co trzeba zainstalować aby z powodzeniem używać OLED’a. W skrócie trzeba wykonać poniższe instalacje:
sudo apt-get install i2c-tools python-smbus python-pip libjpeg-dev sudo pip install pillow git clone https://github.com/rm-hull/ssd1306 cd ssd1306 sudo python setup.py install
Po poprawnej instalacji można odpalić przykłady
cd examples python sys_info.py
Dalej można już tylko się bawić!
Przykładowy kod który wyświetla napis nettemp.pl, który został dopisany do kodu sys_info.py z przykładów:
font = ImageFont.load_default() font2 = ImageFont.truetype('../fonts/C&C Red Alert [INET].ttf', 30) with canvas(oled) as draw: draw.text((10, 15), 'nettemp.pl', font=font2, fill=255)
Rysowanie tekstu odbywa się przy pomocy ustawienia kursora w odpowiednim miejscu i narysowanie go odpowiednią czcionką i wielkością. Ja ustawiłem wielkość 30, i zmieniłem wartości draw.text((0, 0) na draw.text((10, 15).
Sam dopiero zaczynam z tym wyświetlaczem może coś jeszcze o nim napiszę :) Dawajcie znać jak wam idzie :)