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

Arduino UNO - Robot 6 DOF manipulator, przyspieszenie i hamowanie SERVA

madiz08 23 Maj 2016 19:27 786 0
  • #1 23 Maj 2016 19:27
    madiz08
    Poziom 14  

    Witam

    Temat umieściłem już w https://www.elektroda.pl/rtvforum/viewtopic.php?p=15694184#15694184,, ale jeżeli jest taka opcja, chciałbym tez umieścić go w temacie Arduino

    Ostatnio zacząłem przygodę z Arduino UNO. Po nauczeniu się sterowania serwami postanowiłem kupić sobie robota "6 DOF manipulator" z Chin, ponieważ w Polsce jeszcze nie znalazłem stronki skąd można to kupić.

    Jak widać na filmiku powyżej (duży rozmiar, ponieważ po konwersji wyskakiwała informacja o niewłaściwym formacie) użyłem zmodyfikowany program z przykładu KNOB, gdzie 5 potencjometrów ustawia 5 osi. Każda z pozycji wyświetlana jest na LCD i na tej podstawie w drugim arduino programuję pozycje mając efekt jak poniżej

    Powiem, że pozytywnie jestem zaskoczony tym sprzętem. Ma na prawdę niewielkie luzy i jest to dosyć szybki. Na 0,5h zostawiłem robota w cyklu pracy jak na drugim filmiku i nie zmienił pozycji.
    Jak widać błędem jest to, że nie ma stopniowego przyspieszenia i hamowania. Po prostu długość PWM zmienia się gwałtownie i robot wykonuje szybki skok i zatrzymanie, przez co występują wahania.
    chciałbym napisać jakiś algorytm przyspieszania i hamowania, ale jest jeden mały problem. W bibliotece servo.h

    Kod: c
    Zaloguj się, aby zobaczyć kod

    zmienna dla której może być przypisana wartość pozycji serva, może być z zakresu od 0 do 180, co odpowiada kątowemu przesunięciu serva. Jestem dosyć świeży w temacie C++ i Arduino. Czy moglibyście mi podpowiedzieć w jaki sposób mógłbym zwiększyć ten zakres aby przyspieszanie było bardziej płyne, nie co 1°, tylko powiedzmy co 0,1°?

    0 0