logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Serwa modelarskie - domowe porównianie Bascom i Arduino

fysiek 20 Kwi 2018 18:14 762 1
REKLAMA
  • #1 17178780
    fysiek
    Poziom 24  
    Witam wszystkich. Na samym początku oświadczam, że nie jestem ani po jednej stronie ani po drugiej, tylko jako żę zabieram się za fajny projekt wykorzystujący sześć serw, zamiast zadawać głupie pytania chciałem sprawdzić sam.

    Często pojawiają się pytania czy można podłączyć jakąś ilość serw do mikrokontrolera, czy będzie działać i z jaką dokładnością. Postanowiłem to sprawdzić sam. Jako sprzęt do testów posłużyły mi:

    - Dla Bascoma zestaw ATB 1.04 z mikrokontrolerem AtMega32 i kwarcem 16MHz
    - Dla Arduino po prostu Arduino Uno z AtMega328 i kwarcem 16MHz

    Do kontroli generowanych przebiegów posłużyłem się ośmiokanałowym klonem Saleae Logic.

    Nie podłączałem serw, jedynie sprawdzałem przebiegi na pinach mikrokontrolera i moje założenia początkowe były następujące:

    - pozycja 0 stopni - 1ms
    - pozycja 90 stopni - 1.5ms
    - pozycja 180 stopni - 2ms

    Nie twierdzę, żę są to założenia idealne, ale w ten sposób było mi łatwiej.

    Na początek kody źródłowe dla Bascoma:
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    I Arduino:
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    Jak widać standardowe kody, beż żadnych bajerów. Okazało się, że jednak w przypadku Arduino można uzyskać większą rozdzielczość. W przypadku Arduino od 1ms do 2 ms rozdzielczość wyniosła 100, natomiast w przypadku Bsscoma 76.

    Teraz czas na przebiegi, zacznę od Bascoma:
    Serwa modelarskie - domowe porównianie Bascom i Arduino
    Serwa modelarskie - domowe porównianie Bascom i Arduino
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    I Arduino:
    Serwa modelarskie - domowe porównianie Bascom i Arduino
    Serwa modelarskie - domowe porównianie Bascom i Arduino
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    Postanowiłem sprawdzić jeszcze jedną rzecz....a dokładnie ile trwa sama obsługa serw zawarta w bibliotece. Posłużyłem się w tym celu dodatkowym pinem na którym wystawiłem stan wysoki, wstawiłem opóźnienie 100ms i zresetowałem pin. Tu przyszło duże zdziwienie, bo o ile w przypadku Arduino delay 100ms trwał 100ms:
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    Tak w przypadku Bascoma było o ponad 60ms dłużej:
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    Na koniec podaję jeszcze kody które wykorzystałem do sprawdzenia opóźnienia:
    Serwa modelarskie - domowe porównianie Bascom i Arduino
    Serwa modelarskie - domowe porównianie Bascom i Arduino

    Mam nadzieję, że mój skromny test pomoże w przyszłości:) Jak pisałem, nie podłączałem serw i nie jestem w stanie powiedzieć jak się zachowują, jednak myślę, że pokazałem, że jednak jest delikatna przewaga Arduino nad Bascomem przez troszkę większą rozdzielczość, jak i brak opóźnień wynikających z obsługi serw. Oczywiście nie jest to ani reklama jednago, ani próba zmieszania z błotem drugiego...tylko domowy test z ciekawości. Zapewne istnieją bardziej optymalne sposoby sterowania, jednak jako że jestem początkujący, jak i chciałem innym początkującym nieco ułatwić, prosze starych wyjadaczy o brak uwag w stylu asembler, język C czy zewnętrzne karty PWM 12 bitów i więcej...
  • REKLAMA
  • #2 17179676
    Artur k.
    VIP Zasłużony dla elektroda
    Fajnie, tylko że w Twoim teście mikrokontroler nie zajmował się niczym innym jak tylko obsługą serw. W rzeczywistości nikt nie napisze takiego programu bo jest on bezużyteczny, praktyczne programy będą robiły coś jeszcze i efektem tego czegoś jeszcze będzie sterowanie serwami. Spróbuj napisać program który umożliwi sterowanie serwami np. za pomocą klawiatury i wówczas zobacz, czy obsługa klawiatury nie będzie wpływała na zachowanie się serw. Niestety musiałbyś podłączyć serwa i obserwować ich zachowanie. Analizatorem stanów logicznych możesz nie wychwycić pewnych anomalii, a na serwach będziesz widział.
REKLAMA