Blog (473)
Komentarze (5k)
Recenzje (0)
@wojtekadamsOLED PiCobber dedykowany wyświetlacz dla RPi

OLED PiCobber dedykowany wyświetlacz dla RPi

16.06.2014 | aktual.: 16.06.2014 15:58

Od pojawienia się Raspberry Pi minęło już sporo czasu, ale nadal ten produkt jest na fali i co jakiś czas firmy wypuszczają na rynek swoje rozszerzenia od prostych po te przeznaczone dla bardziej cykniętych użytkowników. GEEKROO, aby nie odstawać od konkurencji także zaproponowała linię swoich produktów, którą nosi nazwę PiCobbers(Cobbers to australijskie określenie kumpli). Na ową grupę składa się sześć różnych przystawek:

519174

Firma Geekroo pochodzi z Australii - swoją siedzibę ma w południowej jej części, a dokładnie w mieście Adelaide. Określają się mianem elektroników maniaków. Zajmujemy się projektowaniem, produkcją i sprzedażą gadżetów elektronicznych, akcesoriów dla Arduino, Raspberry Pi i BeagleBone. Cała załoga pracuje hobbistycznie tworząc swoje produkty w wolnym czasie - to się nazywa pasja :)

W moje ręce trafił OLED PiCobber w raz z dedykowaną obudową. Na płytce mamy do dyspozycji 1,3” wyświetlacz OLED + 6 programowalnych przycisków. Dodatkowo na płytce znajduje się miejsce na wlutowanie odbiornika IR. Standardowo urządzenie działa w trybie SPI, zaś z czasem zostanie udostępniona możliwość odpalenie w trybie I2C.

116399
116400
519180

Przygotowania

Kod, który został udostępniony przez pasjonatów (http://g-base.org/oled-picobber-user-manual ), zawiera już podstawy do testowego uruchomienia wyświetlacza. Jednak aby rozpocząć pracę z owym programem musimy spełnić kilka warunków.

Przed wszystkim musimy zainstalować niezbędny stuff, a zrobimy to z użyciem poniższego polecenia:

sudo apt-get install python-dev i2c-tools python-smbus libjpeg

W kolejnym kroku powinniśmy włączyć obsługę interfejsu SPI, w tym celu musimy edytować plik “/etc/modprobe.d/raspi-blacklist.conf”, gdzie zakomentowujemy linię:

blacklist spi-bcm2708
519187

Następnie w pliku /etc/modules musimy dodać dwie następujące linie:

i2c-bcm2708
i2c-dev

Po tej czynności powinniśmy zrestartować Malinę, zaś po ponownym uruchomieniu systemu wpisując w konsoli:

lsmod

...powinniśmy zobaczyć spi_bcm2708 na liście modułów.

519193

Teraz czeka nas instalacja SPI wrappera, dzięki któremu będziemy mogli łączyć się z urządzeniami SPI za pomocą sterownika spidev:

mkdir python-spi
cd python-spi
wget https://raw.github.com/doceme/py-spidev/master/setup.py
wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c
sudo python setup.py install

Ostatnim krokiem w procesie przygotowawczym będzie instalacja biblioteki wiringpi, która umożliwi nam dostęp do pinów GPIO z poziomu pythona.

sudo apt-get install python-pip
sudo pip install wiringpi2

Bym był zapomniał o doinstalowaniu PILa (PYTHON IMAGE LIBRARY), będziemy go wykorzystywać do blitowania obrazów na wyświetlacz.

sudo pip install pil

Wielki finał

W tym momencie zbliżamy się do końcówki całego wpisu, gdzie zobaczymy jak działa udostępniony program przez twórców tej przystawki. Owy kod na ekranie wyświetli datę (dzień, miesiąc, rok), a następnie przewinie aktualny ekran na drugi zbuforowany gdzie pokaże dokładną godzinę. Oto kawałek programu wykonywującego:

offset = 0 # flips between 0 and 32 for double buffering
# While loop has bulk of the code in it!
while True:
     # write the current time to the display on every other cycle
     if offset == 0:
          text = time.strftime("%A")
          led.draw_text2(0,0,text,2)
          text = time.strftime("%e %b %Y")
          led.draw_text2(0,16,text,2)
          text = time.strftime("%X")
          led.draw_text2(0,32+4,text,3)
          led.display()
          time.sleep(1)
     else:
          time.sleep(1)
          # vertically scroll to switch between buffers
          for i in range(0,32):
               offset = (offset + 1) % 64
               led.command(led.SET_START_LINE | offset)
               time.sleep(0.01)

[yt=https://www.youtube.com/watch?v=9rxWSvoDGj4] Jak można zauważyć po prezentowanym kodzie obsługa wyświetlacza nie jest skomplikowana, a udostępniona biblioteka daje nam szereg możliwości - do tego dochodzi sześć programowalnych przycisków. [yt=https://www.youtube.com/watch?v=uQti-9jM58E] Zastosowany wyświetlacz (ssd1306) w OLED PiCobber jest dość popularny - znajdziemy go także w rozwiązaniach innych firm np. Adafruit - dzięki czemu w internecie roi się od przykładów jego zastosowań i pomysłów na jego wykorzystanie.

Wybrane dla Ciebie
Komentarze (12)