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

Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)

piotrva 10 Cze 2010 12:20 19297 21
  • Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)
    Witam serdecznie!
    Ostatnio tworzyłem m. in. zegarek analogowy w BASCOM'ie, co wymagało zastosowania funkcji trygonometrycznych. Początkowo oprogramowanie rysowało jedynie kreski w miejscu wskazówek, jednak gdy chciałem wykonać prawdziwe wskazówki kod uległ mocnemu zabałaganieniu i oczywiście nie działał prawidłowo.
    Dlatego stworzyłem zestaw funkcji, które ułatwiają rysowanie i obracanie dowolnych kształtów. Jedyne co musimy przekazać funkcji to wskaźnik do miejsca gdzie są zapisane współrzędne poszczególnych punktów, punkt od którego ma zostać narysowania grafika, punkt obrotu i jego kąt.
    Dodatkowo chciałem stworzyć funkcję pozwalającą na obrót tekstu o dowolny kąt, jednak jakość po takiej operacji pozostawiała wiele do życzenia, stąd zaniechałem tej części projektu. Pozostała jednak obsługa czcionek oparta na oprogramowaniu opisanemu w tym temacie: https://www.elektroda.pl/rtvforum/viewtopic.php?t=1584593&highlight= z drobnymi poprawkami (ujednolicenie kodu dla wyświetlaczy czarno-białych i kolorowych) oraz drobne ułatwienia w wyświetlaniu (funkcja Lcd_locate i cały system pozycjonowania tekstu) pozwalające na prostsze wyświetlanie tekstu fragmentami, bez konieczności ciągłego podawania współrzędnych x,y w pikselach, a także funkcja Lcd_lowerline, działająca analogicznie jak Lowerline w przypadku wyświetlaczy alfanumerycznych. Biblioteka obsługuje wszystkie wyświetlacze graficzne współpracujące z pakietem BASCOM (używa jedynie funkcji Pset i Line). Dotyczy to zarówno wyświetlaczy kolorowych jak i czarno-białych.

    Poniżej parę zdjęć z działania dema programu. Zachęcam do pobierania, testowania i przesyłania uwag.
    W załączniku:
    1. Biblioteka graph_lib.bas
    2. Program demo dla wyświetlacza kolorowego na sterowniku pcf8533 (N6100)
    3. Zegarek analogowy używający tej biblioteki i zegara rtc pcf8583 oraz Joysticku z modułu And-Graph132

    Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd) Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd) Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd) Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd) Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)
    Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)

    Załączniki:

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Elmark
  • #2 10 Cze 2010 15:32
    chifchif
    Poziom 12  

    Zobacz na stronę link tam jest o odwracaniu tekstu w bascom.

  • #3 10 Cze 2010 17:14
    J_Bravo
    Poziom 27  

    Umieść fotki z obracania textu o dowolny kąt.

  • #4 10 Cze 2010 19:08
    piotrva
    Moderator na urlopie...

    chifchif, ja korzystałem właśnie z tej biblioteki jako podstawy, nawet napisałem o tym w pierwszym poście, czytanie nie boli ;-)
    J_Bravo, oto foto z obracania tekstu o 45°. W załączniku program przed usunięciem implementacji dowolnego obrotu.
    Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)

    Załączniki:
  • Elmark
  • #5 11 Cze 2010 03:34
    skynet_2
    Poziom 26  

    Żeby obracać czcionki o dowolny kąt[%90 != 0] trzeba stosować antyaliasing, inaczej to nie ma sensu.

  • #6 11 Cze 2010 08:43
    pch
    Poziom 14  

    Jak z szybkością wykonywania funkcji?
    Napisz proszę co to za LCD i gdzie można kupić?

    PC

  • #7 11 Cze 2010 09:01
    piotrva
    Moderator na urlopie...

    skynet_2, a jak to zaimplementować w BASCOM? Poza tym wydaje mi się, że będzie trochę zbyt powolne jak dla AVR'ów. Teraz planuję wykonanie na bazie procedury Polygon z mojej biblioteki generator czcionek wektorowych (dana litera zapisana jako współrzędne wierzchołków), bo obracanie takich figur (jak widać na zdjęciach) wygląda znacznie lepiej.

    pch, to wyświetlacz na sterowniku pcf8533, można go wymontować z jakiejś starej nokii (np. N6100, czy N3120, jak trafisz na okazję - telefon z uszkodzonym softem to nabędziesz takie cudo za 20 zł)
    Jednak osobiście polecam zakup całego modułu And-graph132 (znajdziesz na google jego sprzedawcę), ponieważ wyświetlacz ten wymaga:
    1. zasilania i konwersji sygnałów 5V->3,3V
    2. napięcia do podświetlania ~7V
    3. nie wszystkie lcd mają wygodne pady lutownicze
    Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)
    a bez nich podłączenie się do złącza wymaga sporo wysiłku.
    Moduł o którym mówię kosztuje 85 zł (65 zł moduł + wyświetlacz 20 zł) i zawiera wszystko co potrzeba + joystick 5d
    wystarczy tylko podłączyć +5V, GND i kable sygnałowe bezpośrednio do uP
    co do szybkości wykonywania funkcji to zależy od stopnia złożoności figury, ale działa bardzo szybko (możliwa jest płynna animacja). obrócone czcionki rasterowe generują się z widocznym opóźnieniem, ale i tak efekt nie jest zadowalający

  • #8 11 Cze 2010 10:26
    pch
    Poziom 14  

    Dzięki za info. Przyznam się, ze dałem się nabrać ;-) ja szukam czegoś 5x większego. Na zdjęciach ten lcd wyglądał na duży.

    PC

  • #10 11 Cze 2010 11:46
    pch
    Poziom 14  

    piotrva napisał:
    zdjęcia robione na makrze :D
    skoro szukasz czegoś dużego, to może warto pomyśleć o podłączeniu ekranu od komputera do uP??


    Robię komputer do skutera i chciałbym taki do 5" ale większość nie pracuje w rozszerzonym zakresie temperatur.

    PC

  • #11 11 Cze 2010 11:57
    ~~~pio~~~
    Poziom 15  

    Witam
    Wszystko bardzo fajne, ale mógłbyś mi napisać słownie po kolei jak działa poruszanie się wskazówki po okręgu?

  • #12 11 Cze 2010 12:42
    piotrva
    Moderator na urlopie...

    1. liczymy kąt odchylenia na podstawie danych z zegara
    2. przekazujemy odpowiednie wartości do funkcji, która używając wartości trygonometrycznych oblicza pozycję każdego punktu (węzła) wskazówki
    ze wzoru: x = x (sin a) - y (cos a); y = x (cos a) + y (sin a)
    3. rysujemy linie pomiędzy tymi punktami

  • #13 12 Cze 2010 11:56
    piotrva
    Moderator na urlopie...

    dodam, ze wektorowa wersja czcionek już jest w przygotowaniu. Teraz teksty po obróceniu wyglądają dużo lepiej. Co prawda nie we wszystkich miejscach wszystko jest równo, ale jakość o niebo lepsza niż poprzednio. Problem stanowi wprowadzanie czcionek - same duże litery zajęły mi ok. 1,5h (korzystając z prostego generatora pół-graficznego napisanego "na kolanie" w PHP, jak ktoś będzie zainteresowany to umieszczę link i kod źródłowy generatora)
    Dodałem także możliwość skalowania czcionek, jako baza - czcionka 8x8

    Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd) Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd) Biblioteki graficzno-tekstowe dla pakietu BASCOM (różne lcd)

    Załączniki:
  • #14 13 Cze 2010 00:14
    george2002

    Poziom 19  

    Witam,
    właśnie takiego czegoś szukałem :)
    Gratulacje pięknej roboty a co do generatora czcionek to jeśli można to prosiłbym o wstawienie bo również kiedyś szukałem takowego do bascoma ponieważ bawię się wyświetlaczami od nokii 3310 oraz 3510i (pewien czas temu zakupiłem na alle.... po 10 szt każdego za przysłowiowe złotówki) i potrzebuję czcionki większej niż 16x16 lub 8x8 a tylko takową bacom w standardzie posiada :)

    PS
    Tak z ciekawości ktoś próbował tą bibliotekę kolegi czy działa na tych wyświetlaczach ?

    Pozdrawiam
    George2002

  • #15 13 Cze 2010 14:35
    piotrva
    Moderator na urlopie...

    jeśli tylko wyświetlacz obsługuje funkcję Pset pod bascomem, lub jeśli napisałeś własną implementację ustawiania piksela i rysowania linii między 2 punktami to nie będzie żadnego problemu. (Jeśli miałbyś tylko ustawianie pikseli to napisz na PW, bo mam z innego projektu "pikslowy" generator linii)
    co do czcionek większych niż 16x16, to BASCOM AVR ma wbudowany Font Editor do konstruowania czcionek rastrowych (żeby go włączyć wchodzisz Tools->PlugIn Manager; zaznaczasz fonteditor.bpl; i potem wchodzisz Tools->Plugins->Font Editor) i możesz tworzyć czcionki o wymiarach 8, 16, 24 i 32.
    W załączniku w poprzednim poście masz funkcje wyświetlające czcionki wektorowe, w tym załączniku zamieszczam generator czcionek wektorowych na matrycy 8x8.
    Użycie:
    1. wpisz w poszczególne pola numery odpowiadające kolejnym węzłom litery (w takiej kolejności punkty będą łączone)
    2. zaznacz "ptaszkiem" pola, które mają być połączone z następnymi punktami. Jeśli pozostawisz zaznaczenie puste pomiędzy tym, a następnym punktem nie będzie linii.
    3. Jeśli chcesz by jeden punkt był wykorzystany kilka razy wpisz kolejne numery węzłów oddzielone średnikiem ";"
    program generuje gotowy zestaw do doklejenia do pliku vfont.bas. Nie można zapomnieć o modyfikacji funkcji Restore_vfont (używane są kody ASCII znaków)

    Załączniki:
  • #16 19 Cze 2010 12:12
    spawacz12_83
    Poziom 9  

    Bardzo fajna biblioteka. Szkoda tylko że jest ona dosyć pamięcio żerna. Musiałem ją nieźle okroić żeby przetestować ją na atmedze16 + PCF8533. Ale i tak ukłon w stronę autora.

  • #18 04 Lip 2010 19:18
    bury104
    Poziom 13  

    Dużym dobrym i tanim wyświetlaczem do komputera w samochodzie i do
    motoroweru może być:

    Hosiden 320x240 (HLM8619); - ja monochromatyczny kupiłem za 10pln nówkę z pełną folią zabezpieczającą, jak ktoś lubi jest i wersja kolorowa.

    https://www.elektroda.pl/rtvforum/topic259642.html

    Jego podstawową wadą jest to że nie ma sterownika, ale można go dokupić, lub zaadoptować - bo jest to wyświetlacz stosowany w 50% bardziej rozbudowanych kas fiskalnych.

    Do tego trzeba użyć małą przetwornice na 24V ale rozdzielczość 320x240 i przekątna 5,7" - to naprawdę fajna alternatywa.

    Mi wystarczył monochromatyczny i komputer niezły wyszedł.

    Nie jest to palmtop z 3" przekątną (nie trzeba się skupiać aby coś zobaczyć) ale jest to dość porządny wyświetlacz o wyraźnych czcionkach widocznych nawet z dużej odległości.

    Teraz na nim robię stratomaster do mojej paralotni - tak mi się spodobał.

    PZD!!!!

  • #19 17 Maj 2011 20:52
    Juni[]r
    Poziom 16  

    Jestem bardzo ciekaw jak wyszło ci z tym wyświetlaczem. Ja mam zamiar zrobić Digital zegar do motocykla, mam wyświetlacz na T6963C wiec nie będzie opisać to na AVR dlatego szukałem opisu jak zrobić wskazówkę ale prosił bym o jakiś ciekawy przykład. Chodzi mi o to jak w ta funkcje trygonometryczną mogę sterować ? (znaczy się wskazówkę)

  • #21 18 Maj 2011 17:40
    Juni[]r
    Poziom 16  

    tak tylko ja mam monochromatyczny i jak zapodaje instrukcje na color to mam same errory :((((

  • #22 18 Maj 2011 18:42
    piotrva
    Moderator na urlopie...

    Pokaż konkretnie jakie te funkcje.
    Widocznie nie usunąłeś funkcji charakterystycznych dla wyświetlaczy kolorowych.
    NP. taki przykład się kompiluje bez problemu:


    Po prostu zastąp te instrukcje Lcdat instrukcjami Lcd lub moimi odpowiednikami z odpowiednimi parametrami...