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.

Projekt edukacyjny AVR + DGUS (ATMEGA8)

elektra999 03 Wrz 2014 00:05 18723 26
  • Projekt edukacyjny AVR + DGUS (ATMEGA8)

    Witam wszystkich, przedstawiam ciekawy twór mojego autorstwa oraz kolegi. Mieliśmy zaproponować coś ciekawego, innowacyjnego, a zarazem prostego na zaliczenie. Mając, jak to na studiach, strasznie mało czasu na całe przedsięwzięcie.
    Zaczęliśmy poszukiwania na forum, z którego teraz my się pochwalimy swoimi wypocinami.
    Po kilku dziesięciu minutach szukania natrafiliśmy na bardzo ciekawe tematy:
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=13239065#13239065
    https://www.elektroda.pl/rtvforum/topic2682758.html
    Mając do dyspozycji powyższe informacje, wiedzę oraz zaczątek projektu stwierdziliśmy, że projekt zbliżony do opracowań kolegi Bieli da nam zaliczenie bez najmniejszych problemów.

    Dość tej przedmowy, czas na opis projektu.
    Projekt nasz ukazuje możliwości symbiozy wyświetlacza DGUS z 8-bitowym mikrokontolerem (ATMEGA8).
    Wyświetlacz z mikrokontrolerem komunikuje się w standardzie RS232-TTL, dzięki czemu ATMEGA8 zajmuje się tylko ważnymi zadaniami, a nie jakąś obsługą wyświetlacza graficznego. :P
    Do tego celu musieliśmy zaprojektować obwód drukowany, który spełniałby założenia jeśli chodzi o peryferia otaczające AVR-a. Założyliśmy, iż nasza płytka będzie posiadała:
    - 4 wejścia zwierne,
    - 4 wyjścia przekaźnikowe,
    - 4 wejścia analogowo-cyfrowe,
    - 2 wyjścia PWM,
    - 1 szyna 1WIRE,
    - 1 gniazdo I2C (igiełki),
    - 1 gniazdo SPI (igiełki),
    - 1 gniazdo łączące wyświetlacz DGUS z płytką,
    - zasilacz 5V pracujący z napięciem wejściowym do 15V.
    Staraliśmy się, aby obwód drukowany nie był za duży, no i raczej się powiodło to założenie.

    Projekt edukacyjny AVR + DGUS (ATMEGA8)

    Czas gonił i płytkę przyszło nam wytrawić metodą termotransferu, lecz z zastosowaniem laminatora. Gdybyśmy mięli więcej czasu, pewnie wysłalibyśmy do produkcji, aby mieć kilka więcej płytek na przyszłość.
    Po zmontowaniu płytka prezentowała się jak na poniższym zdjęciu:

    Projekt edukacyjny AVR + DGUS (ATMEGA8)

    Następnie przyszedł czas na oprogramowanie ATMEGI8, znowu brak czasu wziął górę i wykorzystaliśmy kompilator CODEVISION do AVR.
    Jest to naprawdę sprytne narzędzie, które oszczędza mnóstwo czasu, jednakże minimalną wiedzę przy użytkowaniu tego kompilatora należy mieć. Równie dobrze mogliśmy posłużyć się BASCOMEM, lecz profesor dał wymóg, żeby zaliczyć: oprogramowanie nie może wykroczyć poza poziom C, czyli w ASEMBLERZE, też mogliśmy działać.
    Wszystkim, którzy korzystają z BASCOM-a, a z jakiejś przyczyny obawiają się języka C, proponuję zapoznanie się z CODEVISION.
    Co do działania programu, to transmisja przychodząca z wyświetlacza wprowadza mikrokontroler w przerwanie, aby on mógł odczytać i zbuforować w tym czasie wszystkie potrzebne dane do rozpoznania komend. Pozostałe funkcje programu pracują w pętli głównej i tak np. naciśnięcie przycisku zapala nam odpowiednią żarówkę, na której siedzi żabka poprzez wysłanie odpowiedniej ramki do wyświetlacza.
    Projekt oczywiście całościowo udostępniamy - obwód, oprogramowanie ATMEGI8 oraz wyświetlacz.

    Projekt edukacyjny AVR + DGUS (ATMEGA8)

    Co do wyświetlacza DGUS - jego oprogramowanie jest dość proste w obsłudze, ale
    w pierwszej chwili należy się z nim oklikać.

    Projekt edukacyjny AVR + DGUS (ATMEGA8)

    Po kilku godzinach praca z nim była już całkiem przyjemna i dość wydajna!
    Jeśli chodzi o opis ramek, które wysyłamy i odbieramy z wyświetlacza świetnie wykonał taki opis dystrybutor tychże wyświetlaczy:
    http://www.whiteelectronics.pl/demo_uart.php

    Jeśli chodzi o koszty:
    -obwód z elementami około 50zł (niektóre części mieliśmy, innych niestety nie),
    -wyświetlacz LCD bodajże kosztował nas 220zł, gdyż napisaliśmy, że chcemy zaliczyć przedmiot za pośrednictwem tego wyświetlacza. :)
    Gdyby laminat chcieć zamawiać, wyszłoby jeszcze więcej.

    Podsumowując - projekt opisany powyżej jest kompromisem pomiędzy czasem na projekt, a szukaniem oszczędności!
    Poniżej film z działania projektu. Aha... mamy nadzieję dzięki temu projektowi zaliczyć jeszcze więcej przedmiotów, kto wie...?? Może rozbuduje się go do jakiejś automatyki np. domowej i gotowe.


    Link

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    elektra999
    Poziom 9  
    Offline 
    elektra999 napisał 21 postów o ocenie 36, pomógł 0 razy. Mieszka w mieście Gdynia. Jest z nami od 2010 roku.
  • SterControlSterControl
  • #2
    tehaceole

    Poziom 28  
    Słabo Koledzy szukali... https://www.elektroda.pl/rtvforum/topic2761186.html
    :)

    Wdrożyłem te wyświetlacze w komercyjnym projekcie maszyny vendingowej. Efekt (w tym cena) przeszedł najśmielsze oczekiwania zleceniodawcy. Co prawda w projekcie użyłem dość mocno rozbudowanej wersji biblioteki, ale to co zaprezentowane jest w artykule w zupełności wystarczy na początek zabawy. :)

    Generalnie: poznaliście fajne niedrogie urządzenie, które jest bardzo ciekawą alternatywą dla przemysłowych paneli operatorskich wszędzie tam gdzie budżet jest mocno okrojony.

    ps. Jaka była ocena na zaliczenie? :)
    ps2. Nie przejmujcie się, bo zaraz posypią się słowa krytyki od "znawców" tematu którzy tych wyświetlaczy nie mieli nawet w rękach. Podobnie już było w jednym temacie: "trzeba było wziąć ARM i zrobić obsługę grafiki w procesorze... bla bla bla". Niektórym ciężko zrozumieć, że projekt DGUS powstał włśnie po to aby programistę odciążyć o tego zadania...
    ps3. Niestety nie mogę wrzucić tu fotek z działania mojego wdrożenia, póki co nie mam jeszcze zgody zleceniodawcy na upublicznianie projektu :(
  • SterControlSterControl
  • #3
    xE5150
    Poziom 25  
    Gdzie kupiliście wyświetlacz?
    Dzięki za ciekawy projekt do analizy! Może się czegoś nauczę!
  • #4
    pc majster
    Poziom 14  
    taki wyświetlacz kosztuje około 45 zł na allegro.
  • #5
    elektronik19
    Poziom 11  
    pc majster napisał:
    taki wyświetlacz kosztuje około 45 zł na allegro.


    A pod jaką nazwą kolega go znalazł?
  • #6
    scal12
    Poziom 19  
    Taki wyświetlacz kosztuje 240 zł na znanym portalu występuje pod nazwą "Wyświetlacz UART 4,3" 480x272 128MB" sam takiego używam idealny dla początkujących, fajna zabawa.
  • #7
    olelek
    Poziom 24  
    Też jestem ciekaw tej ceny, bo po krótkich poszukiwaniach obawiam się że Kolega pc majster pomylił się o jedno zero na końcu, lub przynajmniej dwójkę na początku. Widzę, że Autorzy projektu zastosowali przetwornicę na wejściu, co bardzo mi się podoba. Czasami warto skorzystać z firmy wykonującej PCB. Można by wtedy puścić cieńsze ścieżki, zastosować więcej przelotek i tym samym wyeliminować te druty. Poza tym łatwiej by się lutowało, no i projekt byłby do łatwiejszego powielenia.
  • #9
    elektronik19
    Poziom 11  
    No nie ma tam mowy o wyświetlaczu za 45 zł... ale projekt wykonany bardzo estetycznie. Dlaczego obudowa jest taka duża?
  • #10
    elektra999
    Poziom 9  
    Odpowiedź dla (tehaceole) : Ocena 5,0 za dość nietypowe podejście do sprawy. Dla nas ważne było zaliczenie przedmiotu i poznanie czegoś nowego. Słowami krytyki nie ma co się przejmować skoro ocena już wystawiona :)
    Co do możliwości wyświetlaczy DGUS to zależą tylko od wyobraźni autora projektu!

    Odpowiedź dla (xE5150) : Wyświetlacz został zakupione od polskiego dystrybutora.
    Wpisz w googlach: white elektronics

    Odpowiedź dla (olelek) : Jeśli będą chętni możemy wysłać gdzieś projekcik płytki np. partii 20sztuk :) Fakt druty są mało estetyczne ale eliminują konieczność spasowania jednej warstwy miedzi z drugą (od spodu na całości jest wylana masa przynajmniej w prototypie).

    Odpowiedź dla (elektronik19) : No niestety koszt wyświetlacza jest dość duży bo wynosi 240zł, wiadomo zawsze można próbować negocjować cenę np. kupując dwa naraz. Jaka obudowa jest taka duża?
  • #11
    elektronik19
    Poziom 11  
    Obudowa projektu kolegi scal12. z linku powyżej. Powiem szczerze, że do możliwości owego panelu cena nie wydaje się wygórowana. Pracuję na panelach HMI simatic a tam cena do możliwości to porażka.
  • #12
    Bieli
    Poziom 12  
    Gratuluję zaliczenia :) Cieszę się, że umieszczone informacje okazały się przydatne.
    Zastosowanie przetwornicy to był dobry pomysł. Pozwoli to na podłączenie większych wyświetlaczy, które maja większy pobór prądu. Wytracenie kilku woltów przy 400-500mA powoduję dość znaczne grzanie stabilizatora liniowego.
    Czy sprawdzaliście na jak długich przewodach zadziała Wam pomiar temperatury?
  • #13
    elektronik19
    Poziom 11  
    Testowałem DS18b20 na odcinku 50m na przewodzie 3x0.75 i działa super.
  • #14
    pc majster
    Poziom 14  
    olelek napisał:
    Też jestem ciekaw tej ceny, bo po krótkich poszukiwaniach obawiam się że Kolega pc majster pomylił się o jedno zero na końcu, lub przynajmniej dwójkę na początku. Widzę, że Autorzy projektu zastosowali przetwornicę na wejściu, co bardzo mi się podoba. Czasami warto skorzystać z firmy wykonującej PCB. Można by wtedy puścić cieńsze ścieżki, zastosować więcej przelotek i tym samym wyeliminować te druty. Poza tym łatwiej by się lutowało, no i projekt byłby do łatwiejszego powielenia.


    Widziałem podobny sprzęt ale 1.8'' za 29,15 zł
  • #15
    scal12
    Poziom 19  
    Odpowiadając na pytanie koledze elektronik19 dlaczego obudowa duża, to dlatego ponieważ jest w niej umieszczony wyświetlacz, moduł bluetooth, kontroler ładowania ogniw lion, oraz 4 ogniwa lion, które starczają na tydzień pracy bez ładowania.
  • #16
    tehaceole

    Poziom 28  
    pc majster napisał:
    Widziałem podobny sprzęt ale 1.8'' za 29,15 zł
    Kolego zapewniam Cię, że widziałeś coś innego. W posiadanym przeze mnie aktualnym cenniku polskiego dystrybutora (korzystam z tych wyświetlaczy) nie ma paneli poniżej 3,5".
    DGUS to nie jest goły wyświetlacz LCD tylko panel ze zintegrowanym interpreterem, pamięcią i szeregowym portem komunikacyjnym.
  • #17
    elektronik19
    Poziom 11  
    scal12 napisał:
    Odpowiadając na pytanie koledze elektronik19 dlaczego obudowa duża, to dlatego ponieważ jest w niej umieszczony wyświetlacz, moduł bluetooth, kontroler ładowania ogniw lion, oraz 4 ogniwa lion, które starczają na tydzień pracy bez ładowania.


    Może kolega zapodać schemat? jestem ciekaw jak rozwiązane jest ładowanie.
  • #18
    Bieli
    Poziom 12  
    pc majster: To troszeczkę tak jakby porównać furmankę do samochodu. W sumie i jedno i drugie ma cztery koła i na tym podobieństwo się kończy. Wyświetlacze DGUS posiadają: zintegrowany sterownik który obsługuje m.in. takie obiekty i funkcje jak:
    - scroll
    - obracająca się wskazówka
    - podmienianie grafiki w trakcie naciskania przycisku
    - animacja
    - prosty system przeźroczystości w ikonach
    - wykres
    - przeskoki między stronami
    - klawiatura qwerty i numeryczna
    - czcionki
    - wyświetlanie tej samej wartości w różny sposób
    - pamięć obrazu
    - pamięć czcionek
    - pamięć zmiennych
    - buzer
    - RTC

    Wyświetlacze które przytaczasz są najczęściej gołe lub posiadają prosty sterownik do którego trzeba dostarczać całą masę danych aby coś sensownego wyświetlić. Do tego trzeba monitorować panel dotykowy i samemu przeliczać czy należy podjąć jakieś działanie dla współrzędnych X,Y. Tutaj jeśli klikamy w obszar który nie ma funkcjonalności uP nie dostaje w ogóle zbędnych danych, a jeśli klikniemy coś istotnego dostajemy prostą ramkę mówiącą "naciśnięto przycisk X" gdzie dla każdej strony te same współrzędne mogą oznaczać inny przycisk.
  • #19
    GanzConrad
    Poziom 23  
    bardzo przyjemnie się to ogląda, gratulacje.
    Mam kilka pytań/uwag:
    - niewłaściwy układ resetu (http://mikrokontrolery.blogspot.com/2011/04/minimalne-podlaczanie-pinow.html)
    - dlaczego AVCC jest zasilane poprzez R10 Ohm, zamiast dławik?
    - dlaczego szyna 1-Wire ma włączone rezystory w szereg? (zamiast podciągnięcia do VCC)
    - w przyszłości można prowadzić zworki na drugiej warstwie (poprzez przelotki, niestety trzeba również przeprojektować pola masy) - będzie to wówczas wersja zarówno do wyrobu "domowego" jak i "hurtowego" ;-).
  • #20
    nouki
    Poziom 25  
    Witam.


    To co pokazał Kolega to tylko mała próbka możliwości tego wyświetlacza.
    Można zrobić na tym co tylko.... Nie znalazłem ograniczeń.
    Kwestia to dobór procesora i umiejętność napisania odpowiedniego programu.
    Do tych co piszą że drogo... proszę pokazać swoje dzieła i ich możliwości od strony graficznej nie programowej.


    Osobiście robiłem maszynę z użyciem panela DMT80480t070_18WT.
    Panel pracuje w warunkach 4 do 10 stopni i wilgotności 95% ( mycie ciepłą wodą maszyn przy niskiej otoczenia). Obsługa nie szanuje niczego mimo to ma już prawie rok i nie było problemu.
    Jedyne co zastosowałem do ochrony to folia bezbarwna i grzałka w szafie sterowniczej dająca 18-20 stopni.

    Obecnie przygotowuje sterownik oświetlania – czyli połączenie panela z modułem radiowym i odbiornika... niebawem może się pochwalę.

    Osobiście panele mają potencjał jest do nich sporo dodatków jak i systemów (np. Android) jak i moduły mające sporo możliwości DCT_100b.

    Panel ma dość prosty program do robienia części wizualnej. Myślę że jest alternatywą dla paneli firmowych a możliwości ma takie same jak nie większe.

    Dystrybutor Polski- pomocny i chętny do pomocy, nie kończy się na zakupie i mam Cię w d....... jak u większości.


    Pozdrawiam
  • #21
    elektra999
    Poziom 9  
    Reasumując wypowiedzi kolegów.
    Wyświetlacz, który wykorzystaliśmy jest bez dwóch zdań bardzo dobrym produktem w przystępnej cenie!
    Za parędziesiąt złotych owszem kupimy jakiś wyświetlacz ale pracy przy projekcie w którym go wykorzystamy będziemy potrzebować z dziesięć razy więcej niż z wyświetlaczem DGUS.
    Wszystkim sceptykom polecam wypróbować to rozwiązanie, a nie od razu je ukrócać!

    Co do sprawdzeniu na jakiej długości przewodu układ poprawnie odczytuje temperaturę z DS-ów to my mieliśmy pod ręką przewód długości 20 metrów i śmigało, że aż miło!

    Informacje dla GanzConrad:
    - układ Resetu można rozwiązać dowolnie, ja stosuje taki i mi się sprawdza idealnie;
    - co do rezystora zamiast dławika to ogólnie filtr RC i LC działa podobnie, nie narzucam nikomu ktoś chce może dławik wlutować;
    - fakt na schemacie wkradł się błąd w postaci rezystora R46 - zamiast DNP powinien być tam 4k7;
    - rezystor szeregowy ma ochronić linie przed błędem przy podłączaniu;
    - projekt jest przystosowany do wyrobu "domowego" jak i "hurtowego" tylko w prototypie z lenistwa poprzez metodę termotransferu przenieśliśmy śnieżki na jedną warstwę, drugą zostawiliśmy w postaci placka miedzi :)
  • #23
    Bieli
    Poziom 12  
    Przepływność 921600 można ustawić dla wyświetlaczy z DGUS. Model z Mini DGUS obsługuje do 115200. Dla modeli z pełnym DGUS można ustawić cykl pracy na 80ms co daje 12,5fps. Więc jest to wartość całkiem przyzwoita. Jeśli chodzi o zrobienie oscyloskopu to mini DGUS obsługuje do dwóch wykresów liniowcyh natomiast DGUS do 8. Jeśli byśmy chcieli robić FFT to można by to zrobić albo na wspomnianym wykresie liniowym lub wstawić odpowiednią ilość ikon prezentujących poszczególne prążki. Przy dobrym zorganizowaniu pamięci zmiennych można by dane wysyłać w jednym strumieniu danych. Wtedy mamy stosunkowo mało bajtów nadmiarowych (6 bajtów) i np 100 bajtów danych dla 100 słupków. Maksymalnie ramka komunikacyjna może mieć 255 bajtów.
    Ciekawym elementem DGUS jeśli chodzi o wykresy jest automatyczne skalowanie wykresu w osiach X i Y i możliwość zmieniania offsetu w osi Y. Czyli np zmiana V/Dz nie wymaga od nas przeliczania odebranych wartości w uP a jedynie wysłanie jednej zmiennej do LCD a reszta danych leci bez zmian. No jeszcze wypadało by wysłać nowe opisy dla osi Y, ale to znowu tylko kilkanaście bajtów wysłanych raz.
    Myślę, że zrobienie GUI dla oscyloskopu to kilka dni, reszta to już praca nad obróbką sygnału analogowego.
  • #25
    tplewa
    Poziom 38  
    pc majster napisał:

    Widziałem podobny sprzęt ale 1.8'' za 29,15 zł



    Kolego chyba cos ci sie pomylilo - ale nie tyle z cena co pomyliles wyswietlacz z panelem operatorskim. A DGUS to bardziej panel operatorski niz wyswietlacz...

    Jesli chodzi o same wyswietlacze to za byle chinczyka 3.2" trzeba dac 80-90zl...

    Ten 1.8" TFT to chyba kojarze ;) tak to jest TFT z komunikacja szeregowa na ST7735 ;) ale do tego i tak trzeba dac procek bo to sam wyswietlacz z prostym kontrolerem.

    Inna sprawa jak juz masz takie TFT, bierzesz jakiegos ARM-a i przekonujesz sie ze zrobienie czegos takiego jak oferuje DGUS to na prawde kupa roboty. Nie znam cen tych wyswietlaczy - ale patrzac na podana 220zl to nawet bym sie nie bawil w robienie czegos samemu. Jakis ARM z FSMC + pamiec + TFT + PCB + inne elementy to juz za pewne przekroczy i to znacznie 220zl..

    Nie mowiac ze napisanie oprogramowania do obslugi takiego TFT, toucha itp. aby wygladalo (i bylo funkcjonalne)... a nie tylko wyswietlalo BMP to na prawde sporo roboty...

    Sam panel tez ma moze pewne ograniczenia i nie wszedzie bedzie sie nadawal, jednak w wielu wypadkach cos takiego wystarczy i mozna sobie odpuscic czas stracony na wykonanie ukladu i jego oprogramowanie.

    elektra999

    Fajny projekcik ot liczy sie pomyslowosc i zmieszczenie sie w terminie :) Grunt ze sie robi cos ciekawego, a nie tylko odbebnia to co konieczne na studiach (jak spora czesc studentow).
  • #26
    Bieli
    Poziom 12  
    Skoro już się pojawił temat czy da się zrobić analizator widma i oscyloskop to załączam filmik z demem w tym temacie. Wyświetlacz DMT80480T070_18WT. Podłączony po RS232 (115200kbps) do komputera. Wyświetlane dane są symulowane poprzez program w Visual Basic. Wyświetlacz ustawiony w cyklu pracy 80ms co daje 12,5fps.
    Pseudo FFT:
    - Obraz składa się z 32 słupków po 51 poziomów każdy - tak naprawdę jest to jeden zestaw ikon powielony w SDK. Ograniczeniem będzie tutaj ilość obiektów na stronie czyli 64. Ponieważ słupki są ikonami to nie muszą być jednolitego koloru
    - Słupki mają kolejne adresy w pamięci wyświetlacza dzięki czemu możemy wysyłać dane jako jeden ciąg danych z jednym nagłówkiem.
    - Dane wysyłane są do LCD w formie ramki o długości 70 bajtów (6 bajtów nagłówka i 32x2 bajty danych).
    - Skaczące słupki są generowane losowo.
    Projekt edukacyjny AVR + DGUS (ATMEGA8)
    Wykres:
    - Do wyświetlenia wykresu użyty jest obiekt Curve Display.
    - Wyświetlacz pozwala na prezentację 8 wykresów (2 dla mini DGUS)
    - Jeden okres sinusa składa się z 20 wartości i jest wysyłany w ramce 45 bajtów (5 bajtów nagłówka i 20x2 bajty danych).
    - Funkcje skalowania osi X,Y oraz regulacja wzmocnienia są wewnętrznymi funkcjami wyświetlacza i nie wymagają obliczeń po stronie hosta.
    Projekt edukacyjny AVR + DGUS (ATMEGA8)

    W trakcie pracy prezentuje się następująco:

    Link
  • #27
    Bieli
    Poziom 12  
    Witam,

    Tak tylko informacyjnie w nowych wersjach FW można na stronie umieścić 128 obiektów.