Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Atmega16] [BASCOM] - Odczytywanie stanu z żyroskopu PG-03

kasztan_85 17 Sie 2012 00:55
  • #1 17 Sie 2012 00:55
    kasztan_85
    Poziom 9  

    Witam, posiadam żyroskop ( piezo-gyro PG-03) Odchylenie podawane jest w postaci impulsów do serwo mechanizmu ponieważ jest to żyroskop modelarski. W jaki sposób można odczytać przez Atmegę 16 wychył tego żyroskopu w Bascomie? Próbowałem z ADC ale poległem, myślałem o wykorzystaniu timerów ale jeszcze za bardzo ich nie ogarniam dlatego zwracam się o pomoc.

    link do instrukcji tego żyroskopu:
    Link

  • #2 17 Sie 2012 01:44
    Electix
    Poziom 20  

    Tak jak piszesz. Żyroskop podaje sygnał sterujący serwem. Czyli jest to sygnał prostokątny. Gdzie dla neutralnej pozycji serwa co 20 ms występuje impuls o czasie trwania 1,5ms. Dla maksymalnego odchylenia serwa w lewo impuls ten skraca się do 1ms. A dla maksymalnego wychylenia w prawo - wydłuża do 2ms. Po opisie żyroskopu, można wywnioskować iż odchylenie go od położenia równowagi, jest obrazowane na wyjściu właśnie w podobny sposób.

    Co prawda, dałoby się to badać przy pomocy ADC, ale wymagałoby to jeszcze paru elementów zewnętrznych, które by przetworzyły sygnał częstotliwościowy na napięciowy, lub wymagałoby zastosowania odpowiedniego algorytmu obliczeń na próbka sygnału, ale to raczej odpada, bo rdzeń AVR raczej by się z tym nie wyrobił na czas.

    I tu podążasz dobrym tropem, bo w tym zastosowaniu, timer jest najlepszym i najbardziej optymalnym rozwiązaniem. Podpowiem Ci żebyś poczytał o trybie CAPTURE i właśnie ten tryb w tym przypadku zastosował.

    Co do BASCOM to za wiele Ci nie pomogę, bo moja przygoda z tym językiem się bardzo szybko skończyła. Po paru godzinach zabawy jak przekonałem się jak duże ograniczenia ma ten język i jak potwornie jest "nieekonomiczny" rzuciłem go na rzecz ASM i C. Z tego co pamietam to w helpie BASCOMA powinieneś znaleść wyczerpujące informacje o konfiguracji i działaniu timerów. Zajrzyj tam. Wiem że jest spolszczenie helpa, jeśli by Ci to coś pomogło, szukaj w googlu...

    powodzenia :)

    pzdr

  • #4 06 Gru 2012 20:10
    matrix0606
    Poziom 14  

    Nie potrzebny jest tu timer. Poczytaj o pięknej funkcji Bascoma jaką jest PULSEIN. Jak ogarniesz tą dyrektywę to oniemiejesz z zachwytu.

  • #5 08 Gru 2012 14:48
    Freddy
    Poziom 43  

    Electix napisał:
    Gdzie dla neutralnej pozycji serwa co 20 ms występuje impuls ...

    Dla każdej pozycji serwa impulsy występuja co 20ms, a nie tylko dla neutralnej!

  • #6 09 Gru 2012 09:18
    matrix0606
    Poziom 14  

    Electix napisał:
    (...) dla neutralnej pozycji serwa co 20 ms występuje impuls o czasie trwania 1,5ms. Dla maksymalnego odchylenia serwa w lewo impuls ten skraca się do 1ms. A dla maksymalnego wychylenia w prawo - wydłuża do 2ms.(...)

    Skoro już się "czepiamy" to jeszcze nadmienię że nie dla każdego impuls 1ms to jedno skrajne położenie a 2ms to drugie skrajne. Są serwomechanizmy gdzie żeby wychylić je max w jedną stronę potrzeba około 0,8ms a max w drugą około 2,5 a nawet 2,8ms.

  • #7 11 Sty 2014 13:49
    tomastom
    Poziom 10  

    czy może toś wkleić taki kod bascoma tego żyroskopu