Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

OLED PiCobber dedykowany wyświetlacz dla RPi

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:

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.

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 libjpegW 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

Następnie w pliku /etc/modules musimy dodać dwie następujące linie:i2c-bcm2708 i2c-devPo 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.
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 installOstatnim 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 wiringpi2Bym 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)
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.
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. 

sprzęt

Komentarze

0 nowych
cyryllo   16 #1 16.06.2014 08:49

Nie malinuj tutaj tylko dawaj banana ;)

Wpis fajny ale jak dla mnie mało info ;)

command-dos   17 #2 16.06.2014 08:55

kupiłeś, czy okazyjnie miałeś dostęp do tego cacka?

[malo_istotne]zgubiłeś literkę: "gdzie zakmentowujemy linię:"[/malo_istotne]

wojtekadams   18 #3 16.06.2014 09:15

@cyryllo
spoko spoko :) będzie :P

Mało info bo ile pisać na temat wyświetlacza OLED i 6 guzików :P - jedynie że bym opisał każdą funkcję dostarczaną w ssd1306.

@command-dos
powiedzmy że dostałem :)

okokok   12 #4 16.06.2014 13:11

Fajna zabawka :-)
Link do Power Supply PiCobber nie działa.

  #5 16.06.2014 15:25

I znowu do szyny ..... a nie do dedykowanego złącza.... :?

kwpolska   5 #6 16.06.2014 15:55

> PYTHON IMAGE LIBLARY

Library*, i po co ten capslock?

wojtekadams   18 #7 16.06.2014 16:02

A dlaczego kwpolska?

Over   9 #8 16.06.2014 16:26

Spodziewałem sie wyświetlacza wiekszego, cos kolo 3-4 cali a nie jakiegoś podobnego do noki 3310...

  #9 22.06.2014 19:55

Czy jest jakaś metoda, jakieś moduły, które z RPi pozwolą zrobić prosty telefon komórkowy?

kszere   3 #11 24.11.2014 19:05

To teraz napisz mi w jaki sposób wyświetlać własne ikonki i teksty. Chodzi o zapalanie/gaszenie wybranych pixelów. Ktoś ma OLED i mógłby się się podzielić widzą w jaki sposób to zrobić? :P

wojtekadams   18 #12 25.11.2014 06:09

@kszere: w libie ssd1306 wszystko znajdziesz