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

Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085

Miglans_87 13 Gru 2010 21:12 15548 10
  • Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085

    Witam.
    Przedstawiam projekt, który zrobiłem na zaliczenie na studiach, a tym samym chciałem, aby był użyteczny.
    Wariometr elektroniczny służy do pomiaru prędkości pionowej.
    Można go stosować do wolnego latania paralotniarzy. Polega to na lataniu bez napędu szukając kominów termicznych, które powodują wznoszenie lotnika.
    Projekt można też wykorzystać w modelarstwie.

    Podstawowe elementy Wariometru to:
    - mikroprocesor Atmega168. Byłem zmuszony do zakupu uP z większą pamięcią, ponieważ biblioteki czujnika Bosh bmp085 , LCD nokia 3310 oraz mój własny program nie mieścił się na Atmega8. Z 16kB pamięci wykorzystuje 80%.
    - czujnik bmp085, miniaturowy czujnik ciśnienia i temperatury. Komunikacja między uP, a czujnikiem odbywa się przez I2C. Przy inicjacji programu, czujnik jest kalibrowany. Pomiar Ciśnienia jest bezwzględny. Wysokość nad poziomem morza jest przeliczany z ciśnienia.
    - LCD Nokia 3310 lub 3330. Ja osobiście użyłem LCD 3330. Całą Nokię kupiłem na Allegro za 10zł. Dodatkowo do zasilania użyłem baterii z tej Nokii.
    - reszta to kilka kondensatorów, diody, klawisze, głośnik piezo.

    Cele i założenia:
    Moim celem było zaprojektowanie i wykonanie Wariometru elektronicznego stosowanego w paralotniarstwie.
    Zawiera on:
    - pomiar prędkości pionowej w m/s;
    - buzer emitujący dźwięk informujący o wznoszeniu lub opadania;
    - wariometr graficzny pokazujący w skali wielkość opadania i wznoszenia;
    - pomiar wysokości względnej (nad lądowiskiem);
    - pomiar wysokości bezwzględnej (nad poziomem morza);
    - pomiar temperatury otoczenia;
    - historia rekordów: największa osiągnięta wysokość względna i bezwzględna, oraz szybkość opadania i wznoszenia;
    - wyświetlanie poziomu paliwa z możliwością kalibracji;
    - zasilanie bateryjne;
    - 4 klawisze do nawigowanie po menu;

    Wygląd menu oraz warunki przejścia:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085

    Opis poszczególnych etapów menu:

    1. Menu powitalne :
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Bitmapa stworzona w programie „Paint.exe” w formacie 48x84 pikseli. Później przerobiony na tablice liczb szesnastkowych w programie „Bmp2asm.exe”.

    Bitmapa wyświetla się jednorazowo przy włączeniu urządzenia. Przejście do następnego stanu odbywa się po naciśnięciu dowolnego klawisza.

    2. . Stan podstawowy:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Wyświetlane są tam najważniejsze informacje takie jak:
    - prędkość wznoszenia lub opadania,
    - wysokość względna (zerowana w menu),
    - temperatura otoczenia,
    - czas lotu (zerowana w menu),
    - wariometr graficzny (z lewej strony).
    - Poziom paliwa ( z prawej strony)

    Przejście do innego etapu klawiszami, w górę, w dół lub OK;

    3. Duży wariometr:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Wyświetla w dużym formacie prędkość pionową, czas lotu oraz wariometr graficzny. Wraz z sygnalizacją dźwiękową jest przydatne do lataniu bez napędu (tzw. Wolne latanie) . Wolne latanie polega na szukaniu tunelów aerodynamicznych, które powodują wznoszenie paralotniarza. Czas wolnego lotu na egzaminie musi wynosić więcej niż 40min. Bez wariometru jest to niemożliwe.

    4. Historia rekordów:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Wyświetlane są największe osiągnięcia takie jak: - największą osiągnięta wysokość nad poziomem morza, - największą osiągnięta wysokość względna, - najszybsza prędkość wznoszenia i opadania; Każdy rekord może być kasowany. Wybierając klawiszami ‘góra’ i ‘dół’ wybieramy co chcemy skasować, następnie klawiszem ‘OK’ zatwierdzamy wybór.

    Każdy rekord jest zapisywany w pamięci EEPROM, aby nie zostały skasowane po wyłączeniu. Jak wiadomo pamięć EEPROM ma ograniczoną ilość przeprogramowań. Producent gwarantuje tylko 100 tysięcy operacji zapisu. Dlatego zastosowałem następujące stany wyznaczenia i zapisu każdego rekordu:
    1. Oczekiwanie aż pomiar jest większy od rekordu;
    2. Zapisuje pomiar do zmiennej i oczekuje aż pomiar zacznie maleć;
    3. Zapisuje do EEPROM i wracam do pkt.1;

    5. Menu:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Umożliwia swobodne poruszanie się miedzy opcjami przy pomocy czterech klawiszy: do góry; w dół; OK. i C (wroc);

    6. Ustawienia Paliwa:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Do pomiaru poziomu paliwa został użyty rezystancyjny czujnik poziomu cieczy. Pomiar dokowany jest przez przetwornik analogowo-cyfrowy. Aby utworzyć program uniwersalnym zastosowałem możliwość kalibracji poprzez ustawienia poziomu Rezerwy (R) oraz poziomu maksymalnego (F). Pod zmienną ‘P’ pokazany jest bieżący pomiar z ADC.

    Kalibracje dokonuje się następująco:

    - nalewamy taką ilość paliwa do baku, przy ilu ma nam się pokazać stan minimalny, następnie klikamy na raz dwa klawisze : OK+ DOŁ. Po tej czynności do zmiennej R zostanie wpisany pomiar P;
    - nalewamy maksymalną ilość paliwa i następnie wciskamy: OK + GÓRA. Po tej czynności do zmiennej F zostanie wpisany pomiar P. Aby nie trzeba było powtarzać czynność po każdym włączeniu urządzenia, obie zmienne są wpisywane w pamięć EEPROM.

    7. Pomiary:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085
    Wyświetlane są wszystkie dane pochodzące z pomiarów. Ciśnienie i temperatura z czytywane są z czujnika Bosh bmp085, następnie obliczana jest wysokość

    8. Wariometr elektroniczny wyposażony jest w głośnik piezoelektryczny.

    Wydaje on dźwięk:

    - przy wznoszeniu – wysoki ton pikania, szybkość i częstotliwość pikania jest tym większe, im szybsze jest wznoszenie;

    - przy opadaniu – ton niski i ciągły, tym niższa częstotliwość im szybsze opadanie;

    Spis elementów:

    - mikroprocesor - Atmega168;
    - wyświetlacz z Nokii 3310;
    - czujnik ciśnienia i temperatury;
    - rezystory – 2x47kΩ , 500Ω;
    - kondensator – elektrolityczny 20µF, 100nF;
    - bateria z telefonu Nokia;
    - diody – Zenera 3,6V ; prostownicza 1N4007;
    - głośnik piezoelektryczny;
    - joystick;
    - płytki PCB;
    - obudowa;
    Całkowity koszt = 100zł

    Efekt końcowy:
    Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085 Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085 Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085 Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085 Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085 Wariometr, Atmega168 + LCD Nokia 3330 / 3310 + Bosh BMP085

    Filmy:

    -- Wznoszenie


    Link


    -- Opadanie


    Link



    Mam nadzieję że zmobilizuję Was do własnego pomysłu, jak wykorzystać Atmege.

    Pozdrawiam
    Tomek

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Miglans_87
    Poziom 13  
    Offline 
    Specjalizuje się w: automatyka i informatyka stosowana
    Miglans_87 napisał 66 postów o ocenie 48, pomógł 4 razy. Mieszka w mieście Rzeszow. Jest z nami od 2010 roku.
  • Texa PolandTexa Poland
  • #2
    mdziewie
    Poziom 18  
    Mam pytanie -
    czy wariometr wyposażony jest w różnicowy czujnik, tak jak urządzenia znane z "cięższego" lotnictwa, czy bazujesz tylko na cyfrowym różniczkowaniu sygnału z czujnika ciśnienia atmosferycznego?
    Cicho przypuszczam, że to drugie, i tu mam kolejne pytanie:
    Na ile czuły jest taki układ? Czy pokaże wznoszenie 1 m/s trwające przez 1 sekundę (czyli uniesienie pudełka trzymanego w dłoni do góry)?

    Dla niewtajemniczonych - klasyczne rozwiązania lotniczych wariometrów (zarówno elektronicznych, jak i zwykłych - pneumatycznych) prawie zawsze mają w sobie "termos" - czyli podręczny magazynek powietrza "sprzed chwili". Termos połączony jest z dajnikiem właściwego ciśnienia statycznego poprzez element utrudniający przepływ powietrza, tak że panujące w nim ciśnienie "nadąża" za atmosferycznym z niewielkim opóźnieniem. Mierząc różnicę tych ciśnień, można wyznaczyć prędkość wznoszenia.
  • Texa PolandTexa Poland
  • #3
    Miglans_87
    Poziom 13  
    Dobre pytanie. Profesjonalne czujniki ciśnienia rzeczywiście mają takie dozowniki lub wzornik. Niestety nie wiem jak jest w czujniku Bosh BMP085
    Specyfikacje czujnika możesz przeczytać tutaj: http://www.bosch-sensortec.com/content/language1/downloads/BST-BMP085-DS000-05.pdf
    Producenci chwalą się niskimi wahaniami.

    W rzeczywistości pomiar wysokości czujnika pływa, ale już przy spacerze po schodach czujnik zachowuje się prawidłowo(mowa tu o sygnalizacji dzwiękowej). Do paralotniarstwa jest wystarczający.
    Ale, jeżeli dodać do tego filtry ( Kalmana lub górno i dolno przepustowe) to można z tego urządzenia wycisnąć bardzo dokładny pomiar. Ale to dopracuje przy chwili czasu .
  • #4
    wojio
    Poziom 12  
    Cytat:
    Polega to na lataniu bez napędu szukając tunelów aerodynamicznych, które powodują wznoszenie lotnika.
    Projekt można też wykorzystać w modelarstwie.
    "Tunelów aerodynamicznych" ?? Ło matko. Chyba chodziło koledze o kominy termiczne.
    Pomijając tę małą dygresję, ciekawy projekt edukacyjny.

    pozdr
  • #5
    Miglans_87
    Poziom 13  
    wojio napisał:
    Cytat:
    Polega to na lataniu bez napędu szukając tunelów aerodynamicznych, które powodują wznoszenie lotnika.
    Projekt można też wykorzystać w modelarstwie.
    "Tunelów aerodynamicznych" ?? Ło matko. Chyba chodziło koledze o kominy termiczne.
    Pomijając tę małą dygresję, ciekawy projekt edukacyjny.

    pozdr
    Dzięki za poprawę. Posta poprawiłem, żeby nie siać głupot.
  • #6
    skaktus
    Poziom 37  
    O ile sam projekt w sobie jest ciekawy i nawet przydatny dla pasjonatów, to wykonanie jest poprostu złe.

    W środku masę kleju, kabelkologia jak z pierwszych konstrukcji typu żarówka i bateria...

    Do tego ciekawi mnie po co środkowy klawisz (pomiędzy 4 kierunkowymi) ma zdarty papier. Dodatkowo warto by było wyciąć skalpelem okienko na ekran, bo teraz to widać resztki papieru.
  • #7
    Miglans_87
    Poziom 13  
    skaktus napisał:

    W środku masę kleju, kabelkologia jak z pierwszych konstrukcji typu żarówka i bateria...


    Był to mój pierwszy projekt. Do tego śpieszyłem się, żeby zaliczenie dostać.
    Teraz jakbym robił taki drug, to byłby w całości na jednej płytce, wszystko ładnie wycięte. Bardziej skupiłem się na programie a nie na kosmetyce.

    skaktus napisał:

    Do tego ciekawi mnie po co środkowy klawisz (pomiędzy 4 kierunkowymi) ma zdarty papier. Dodatkowo warto by było wyciąć skalpelem okienko na ekran, bo teraz to widać resztki papieru.


    Tam nie ma 4 klawiszy, tylko jeden Joystick na środku. Dlatego to też tak wygląda.

    micc napisał:
    Bez sensu jest umieszczanie nie kompletnego projektu bo ten dział nazywa się "DIY Konstrukcje - zrób to sam".

    Konstrukcja jest pokazowa. Biblioteki do LCD i czujnika są dostępne.
    Przy tej konfiguracji (atmega+bosh bmp085+ lcd z Nokii 3310) można zrobić pogodynki, zegarki z dodatkami itp. Ja zrobiłem wariometr. Nie wiem czy się nadaje do DIY. To już kwestia moderatorów.
  • #8
    JaGin4
    Poziom 10  
    Dla walczących z oprogramowaniem BMP085 w Bascom'ie przedstawiam oprogramowanie z wykorzystaniem ATMEGA16, które odczytuje temperaturę i uśrednione ciśnienie z 10 pomiarów, które wyświetla na wyświetlaczu 2 x 16 zn.
    Program wykorzystywałem przy konstrukcji układu rejestratora temperatury zewnętrznej, ciśnienia i czasu zapisywanego na karcie MMC. Rejestrator wykorzystuje ATMEGA32 i jest w fazie testowania (spisuje się b. dobrze). Chcę jeszcze dodać odczyt wilgotności powietrza. Po zakończeniu projektu postaram się "wrzucić" na forum. Na schemacie brak rezystorów podciągających w magistrali IIC, ponieważ zastosowałem moduł SEN-09694 (Nettigo) na którym są te rezystory i kondensator na linii zasilania. W przypadku stosowania samego elementu BMP085 należy dla sygnału SDA i SCL zastosować rezystory 4,7 K podłączone do +3,3V. Uwaga: pomiar jest prawidłowy dla wartości OSS (Over Sampling Setting) w granicach od 0 do 2. Przy wartości 3 zawyża pomiar ciśnienia. Nie analizowałem dlaczego, ponieważ wykorzystuję standardową czułość ciśnienia (OSS=1).
  • #9
    darkievek
    Poziom 12  
    Mam pytanie: Gdzie dostać ten czujnik ciśnienia w dobrej cenie? A poza tym nie ma raczej linku do kodu źródłowego (ani gotowego wsadu) do Twojego urządzenia (albo jestem ślepy).
  • #10
    kiwols
    Poziom 9  
    Witam fajny temat.
    Miglans_87 mam prośbę, czy mógł byś wrzucić bardziej czytelny schemat wariometru?