Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wyświetlacz z telefonu Nokia 5110 + Arduino - krok po kroku

ghost666 19 Maj 2015 11:38 13521 4
  • Wyświetlacz z telefonu Nokia 5110 + Arduino - krok po kroku

    W poniższym poradniku dowiemy się, krok po kroku, jak podłączyć wyświetlacz z telefonu Nokia 5110 do modułu Arduino, napisać kod oraz, wykorzystując dostępne w sieci narzędzia, stworzyć grafiki, które można będzie wyświetlać na tym ekranie z pomocą Arduino.

    Krok 1: podłączenie

    Wyświetlacz z telefonu Nokia 5110 + Arduino - krok po kroku Wyświetlacz z telefonu Nokia 5110 + Arduino - krok po kroku


    Po pierwsze trzeba podłączyć wyświetlacz telefonu Nokia 5110 do naszego modułu. Pamiętać należy, że wyświetlacz działa przy zasilaniu 3,3 V. Jakkolwiek niektórzy podłączali układ do wyjść w standardzie 5 V i wszystko działało, jednakże czasami widoczne były jakieś niepożądane zjawiska, których lepiej unikać, więc podłączajmy ekran tylko do wyjść w standardzie 3,3 V.

    Po drugie - pin LIGHT wyświetlacza kontroluje działanie podświetlenia LCD włączając i wyłączając je. Podświetlenie będzie włączone, jeśli pin ten podepniemy do masy, a wyłączone jeśli podepniemy do zasilania. Sam wyświetlacz, bez włączonego podświetlenia, pobiera około 3 mA, co jest niezwykle niską wartością. Jeśli chcemy zbudować np. urządzenie które będzie cały czas włączone, lub też zasilane z baterii, to możemy wykorzystać ten wyświetlacz, o ile wyłączmy podświetlenie.

    Poniższa tabela pokazuje jak wykonano połączenia w układzie:

    LCDArduino
    VCCArduino 3.3V
    LIGHTGND Arduino Będziemy korzystać z cały czas zapalonego podświetlenia.
    GNDArduino GND
    CLK (SCLK)Arduino pin 7
    DIN (MOSI)Arduino pin 6
    DCArduino pin 5
    CE lub CSArduino pin 4
    RST (RESET)Arduino pin 3


    Krok 2: Stworzenie pliku BMP

    Kolejnym krokiem jest stworzenie bitmapy i skonwertowanie jej do kodu w C etc.

    Bitmapa (plik BMP) to format obrazka, który składa się z macierzy pikseli z opisanymi ich wartościami. Zapiszmy najpierw wybrany przez nas obraz jako bitmapę.

    Po pierwsze musimy stworzyć w tym celu grafikę. W przedstawionym projekcie skorzystamy z pixlr editor. To prosta internetowa aplikacja do tworzenia obrazków, w tym i bitmap. Na stronie do której prowadzi powyższy link wystarczy wybrać tworzenie nowego obrazka i ustawić jego wielkość na 84 x 48 lub inną, zależnie od rozdzielczości naszego wyświetlacza. Potem wystarczy stworzyć co się chce zobaczyć na wyświetlaczu w naszym systemie. Finalnie wystarczy zapisać obrazek, oczywiście jako plik BMP - Cmd + S (mac) lub Ctrl + S (windows). Teraz wystarczy skonwertować plik BMP do kodu na LCD.

    Krok 3: LCD creator

    Wyświetlacz z telefonu Nokia 5110 + Arduino - krok po kroku


    Jako że autor pracuje na Macintoshu opisana poniżej ścieżka korzysta z oprogramowania nazwanego LCD creator, dostępnego na tą platformę. Na Windowsie skorzystać można z bliźniaczego programu, który nazywa się LCD assistant, Programy pobrać można:

    LCD creator http://www.csmithsoftware.com/LCD_Creator/LCD_Creator.dmg

    LCD assistant http://en.radzio.dxp.pl/bitmap_converter/LCDAssistant.zip

    Rozpocząć trzeba od naciśnięcia "Open .bmp image" i wybrania interesującego nas obrazka. Następnie klikamy na "Generate C code" i widzimy jak poniżej generują się kody heksadecymalne, które po kliknięciu w przycisk "Copy to clipboard" skopiowane mamy do schowka.

    Następnie, w dowolnym, wybrany przez nas edytorze tekstowym tworzymy nowy plik, do którego kopiujemy zawartość schowka i zapisujemy plik jako kod źródłowy z rozszerzeniem .c.

    Następnie skopiować musimy stworzony plik do projektu na Arduino. Po przeładowaniu projektu widzimy dodany plik w zakładce, jak na zaprezentowanym poniżej obrazku.

    Wyświetlacz z telefonu Nokia 5110 + Arduino - krok po kroku


    Krok 4: oszczędzanie pamięci RAM

    Zapisywać kod w C będziemy w pamięci programu, a nie pamięci SRAM mikrokontrolera, gdyż zależy nam na zmniejszeniu wykorzystania pamięci RAM. Aby to zrobić, musimy załadować w kodzie odpowiednią bibliotekę (avr/pgmspace.h) i dodać słowo kluczowe PROGMEM jak pokazano poniżej:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Krok 5: kod programu

    Teraz gotowi jesteśmy do napisania kodu. Poniżej umieszczono prosty kod pozwalający na wyświetlenie grafiki. Dodano do niego odpowiednie komentarze, aby wszystko było jasne. Trzeba tylko zmienić nazwę obiektu w C na "graphic". Autor tego poradnika wykorzystuje bibliotekę LCD5110_Graph, stworzoną przez Henninga Karlsena. Bibliotekę pobrać można tutaj http://www.rinkydinkelectronics.com/download.php?f=LCD5110_Graph.zip. A tak prezentuje się kod źródłowy na AVRa:

    Kod: cpp
    Zaloguj się, aby zobaczyć kod


    Źródło:

    http://www.instructables.com/id/Nokia-5110-graphics-tutorial/?ALLSTEPS

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 napisał 9214 postów o ocenie 6768, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • #2
    krru
    Poziom 32  
    Bardzo marny przykład - po pierwsze nic nie wyjaśnia. Wykorzystane są gotowe programy, wyświetlana jest jedynie wcześniej przygotowana grafika. Nie daje informacji o fizycznej obsłudze wyświetlacza (np. czy LIGHT to sterowanie czy zasilanie), co daje sam sterownik wyświetlacza a co trzeba robić ręcznie, co daje biblioteka.
    Trudno z tego zrobić chociaż zegarek - 24*60 = 1440 różnych obrazków? Potrzebne są procedury rysowania punktów, linii, znaków itp. Czyli i tak trzeba głęboko sięgnąć do dokumentacji - a wtedy ten projekt jest zbędny.
  • #3
    kari007
    Poziom 15  
    Eee tam - mi się podoba. :) Ciężko to nazwać "krok po kroku", bo jest tu wyjaśnione tylko jedno z wielu zagadnień, aczkolwiek artykuł i tak jest ciekawy i przydatny.
  • #4
    marciu11
    Poziom 15  
    Ocena góra 3+. Jedyne co wyjaśnia to to że potrzebna jest biblioteka i podłączenie pinów. A tego jest masa w necie...
    W sumie post dla posta. Ja też mogę napisać: "Aby napić się piwa, kup piwo, za pomocą otwieracza, zdejmij metalowy kapsel. Nalej piwo do szklanki i wypij je..." A poradnik szumnie nazwać: Piwo od A do Z.
    Nazwa artykułu jest po prostu myląca.
  • #5
    krru
    Poziom 32  
    Rozpoznałem nieco temat i by nie być jedynie krytykiem, przedstawiam własną opinie o tym wyświetlaczu. Krótko mówiąc jest to czarno-biały (piksele on/off) wyświetlacz graficzny 84*48 pikseli z szeregowym interfejsem (SPI + 1bit GPIO). Interfejs jest tylko do zapisu. Polecenia umożliwiają dostęp do bajtów i każdy bajt odpowiada za 8 pikseli. Układ ma pamięć obrazu - statycznego obrazu nie trzeba w żaden sposób odświeżać. Niestety nie można czytać tej pamięci, więc, w ogólności, komputer sterujący musi posiadać kopię obrazu wyświetlanego na wyświetlaczu - a potrzeba na to 504 bajty. Jeśli ktoś chciałby użyć tego wyświetlacza na attiny lub małych atmegach musi jakoś rozwiązać ten problem na etapie projektowania, na przykład wyświetlając jedynie z góry ustalone symbole. Układ nie posiada żadnych fontów, jest "czysto graficzny".

    Częstotliwość interfejsu to 0-4MHz. Czyli z zapisem całego wyświetlacza można się wyrobić w ok 1ms. Z drugiej strony można sobie powoli sterować i też działa.

    I jeszcze jeden problem - istnieją co najmniej dwie wersje z różną kolejnością wyprowadzeń - na szczęście piny są opisane.

    Wyświetlacz jest łatwo dostępny i kosztuje kilkanaście złotych (oczywiście można znaleźć droższe źródła).