Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

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

ghost666 19 May 2015 11:38 15855 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:

    Code: cpp
    Log in, to see the code


    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:

    Code: cpp
    Log in, to see the code


    Źródło:

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

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    ghost666
    Translator, editor
    Offline 
    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 wrote 11803 posts with rating 9943, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • #2
    krru
    Level 33  
    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
    Level 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
    Level 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
    Level 33  
    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).