Jak mogę zmodyfikować tanie serwo hobby, aby działało „swobodnie”?


15

Mam serwery typu hobby ( Power HD 1501MG ) i chciałbym móc je kontrolować (za pośrednictwem Arduino), więc albo przejdą pod ustawionym kątem, albo przestawią je w tryb „swobodnego działania”, gdzie ładunek zabierze ich gdziekolwiek się pojawi.

Czy to w ogóle możliwe, czy po prostu skończę zrzucać koła zębate?

Moją pierwszą myślą jest po prostu zabicie mocy serwomechanizmu, ale siła potrzebna do przeniesienia ich w tym stanie jest większa niż bym chciał.

Jeśli to możliwe, czy patrzę na zmianę sprzętu, czy mogę to zrobić w oprogramowaniu?


3
Serwa hobby nie nadają się do solidnej robotyki, a zmodyfikowane serwo hobby są jeszcze gorsze. Jeśli to zrobisz, nie spodoba ci się to, co dostaniesz. Kup niedrogi silnik prądu stałego z przekładnią i mały mostek H, aby go napędzać, będzie on o wiele bardziej solidny i będziesz szczęśliwszy. Możesz zbudować mostek H z obwodu L298 przy bardzo niskich kosztach.
Jon Watte

1
Wydaje mi się, że moje następne pytanie brzmi: „co to jest h-bridge?” (Ale najpierw spróbuję google!)
Khrob

Odpowiedzi:


13

To, o co prosisz, nie będzie łatwe ze standardowym serwomechanizmem RC.

To, o co prosisz, to serwomechanizm z napędem wstecznym. IE taki, który można dowolnie obracać poprzez zastosowanie zewnętrznego momentu obrotowego. Z pewnością można je utworzyć i są one stosowane w wielu robotach, ale większość serwomechanizmów RC wymaga znacznego momentu obrotowego, aby je napędzić. Nazwałbym ich pół-backdrivable.

Co przeszkadza ci jeździć? Dwie rzeczy:

Tarcie: po pierwsze tarcie w łańcuchu zębatym i silniku. Serwa RC są zawsze ustawione w dół; wyjście obraca się wolniej niż silnik. Oczywiście oznacza to, że kiedy spróbujesz jechać z powrotem, musisz bardzo szybko obrócić silnik. Każde tarcie lub zazębienie w silniku będzie odczuwane kilkadziesiąt razy na wyjściu.

cofalność

Prąd: coś zaskakującego w silnikach elektrycznych polega na tym, że w przypadku zwarcia zacisków trudniej jest je obrócić. Obrót silnika wytwarza prąd elektryczny, który działa przeciwnie do obrotu. Elektronika wewnątrz serwomechanizmu może pozwolić na przepływ wystarczającej ilości prądu, nawet gdy jest wyłączony, co wyraźnie uniemożliwia cofanie. W przeszłości zauważyłem, że niektóre duże silniki krokowe, nawet gdy są nieuzbrojone, są prawie niemożliwe do cofnięcia po podłączeniu do niezasilanego sprzętu. Ale kiedy je odłączysz, można je dowolnie obracać.

Tak więc jednym ze sposobów na poprawienie sterowności wstecznej jest zapobieganie przepływowi prądu. Oczywistym sposobem na to jest całkowite odłączenie silnika od jego elektroniki. Jest to jednak trudne, nawet przy użyciu tranzystorów polowych, ponieważ diody wewnątrz tranzystorów polowych mogą umożliwiać przepływ prądu. Możesz jednak użyć przekaźnika, który naprawdę odłączyłby silnik. Będziesz musiał użyć go tylko na jednym z zacisków silnika.

ESCON Maxona

„Właściwe” serworegulatory (takie jak ESCON firmy Maxon) faktycznie zawierają kontroler prądu, który może aktywnie zapobiegać przepływowi prądu poprzez przyłożenie odpowiedniego napięcia do zacisków silnika. Naprawdę może pomóc wymiana elektroniki w serwomechanizmie na coś zdolnego do kontroli prądu.

Co powinieneś zrobić: Otwórz serwo, odsprzedaj silnik i zmontuj go ponownie. Jak łatwo jest teraz jeździć? Jeśli jest to łatwe, może być możliwe zrobienie tego, co chcesz. Jeśli nadal jest to zbyt trudne dla twojej aplikacji, będziesz musiał wybrać inne serwo lub stworzyć własne. Wykonaj jedno z jednym stopniem przekładni, aby maksymalnie zredukować tarcie przekładni, i zastosuj elektronikę napędową z pętlą sterowania prądem, aby zapewnić zerowy przepływ prądu.


Odpowiedź SimpleCodera jest również doskonała.
Khrob

7

Interesujące pytanie.

Pierwszą opcją, którą zbadałem, byłoby odcięcie zasilania zgodnie z twoimi sugestiami (być może sterowanie MOSFET w oprogramowaniu do przełączania zasilania).

Innym bardziej skomplikowanym podejściem może być monitorowanie poboru prądu przez serwomechanizm w celu wykrycia, kiedy znajduje się on pod dużym obciążeniem. Gdy chcesz przejść do trybu „swobodnego działania”, pozwól swojemu oprogramowaniu próbować w sposób ciągły ustawiać serwomechanizm w pozycji zapewniającej najmniejsze zużycie prądu. Nie spowoduje to całkowicie „wolnego działania” serwomechanizmu, ponieważ wystąpią pewne drgania serwomechanizmu, gdy oprogramowanie będzie próbowało znaleźć „właściwą” pozycję, ale może działać w zależności od aplikacji.

Nie trzeba modyfikować serwomechanizmów, aby monitorować bieżące zużycie. Płytka taka jak ta SparkFun będzie znajdować się pomiędzy serwomechanizmem a jego źródłem zasilania (potrzebujesz jednego z nich na serwomechanizm) i będzie generować napięcie analogowe (które można odczytać na pinie ADC mikrokontrolera), które odpowiada prądowi:

wprowadź opis zdjęcia tutaj

Zdjęcie z SparkFun


@ Khrob: Proszę zobaczyć moją edycję
Chris Laplante

Fajnie - zamówiłem teraz ich kilka!
Khrob

@ Khrob: Fajnie, daj nam znać, jak działają! (I proszę, nie obwiniaj mnie, jeśli to nie działa;))
Chris Laplante,

@ Khrob: Pamiętaj też, że w zależności od tego, jak małe prądy mierzysz
Chris Laplante

1
Zacznę tanio i będę się wspinać!
Khrob

5

Zazwyczaj tego rodzaju serwomechanizmy hobby nie są przeznaczone do ciągłego obrotu i często zawierają mechaniczne zatrzymanie. Uwaga: to, co przedstawię poniżej, jest pewnym sposobem, aby nigdy nie uzyskać rzeczywistego działania w pętli zamkniętej, ale zamiast tego sprawi, że serwo będzie działać tylko w sposób ciągły.

Przez większość czasu możesz wykonać szybkie wyszukiwanie w trybie online „Ciągła modyfikacja dla serwomechanizmu x”, ale tutaj opiszę ogólny proces.

  • Sprawdź, czy serwo ma fizyczny ogranicznik. Jeśli tak, będziesz musiał otworzyć serwomechanizm i go usunąć (polecam narzędzie Dremel).
  • Następnie chcesz znaleźć „środek” mechanizmu sprzężenia zwrotnego.
    • Podłącz serwo do Arduino i wyślij polecenie „środkowe” (zazwyczaj PWM 127).
    • Znajdź mechanizm sprzężenia zwrotnego (zwykle potencjometru) i przytnij go, aż serwo w ogóle się nie poruszy.
    • Przyklej potencjometr na miejscu lub zmierz rezystancję i zastąp potencjometr rezystorem o ustalonej wartości.
  • Zmontuj serwo.

Teraz wysłanie polecenia „środkowego” do serwomechanizmu powinno zatrzymać ruch, a wysłanie polecenia pozytywnego lub negatywnego powinno spowodować ciągłe obracanie się w jednym lub drugim kierunku. Prędkość obrotowa powinna być proporcjonalna do „odległości” od środka wysłanego polecenia.

Jeśli chcesz przywrócić działanie serwomechanizmu do nowo zmodyfikowanego serwomechanizmu, możesz dodać koder w celu ponownego zamknięcia pętli.

Alternatywnie, możesz przyjrzeć się serwo serii Dynamixel , które pozwala zarówno na pracę ciągłą, jak i serwo oraz zawiera pewne wsparcie dla Arduino.


Nie przeszkadza mi mechaniczne ograniczenie ruchu, ale byłby to dobry sposób, aby rozszerzyć go jeszcze bardziej, aby uzyskać pęknięcie przy odwróconym ustawieniu wahadła! Obejrzałem rzeczy Dynamixel i jest to bardzo fajne, ale więcej $$ niż mam nadzieję na to wydać.
Khrob

Odniosłem wrażenie, że OP chciał uruchomić coś w ruchu, kierując serwomechanizmem, a następnie pozwolić „wybiegać” bez zasilania, aż w naturalny sposób zatrzyma się przed bezwładnością. Nie znam żadnych serwomechanizmów (ciągłych lub nie), które pozwoliłyby na taki efekt.
Crake

@ Złamać, zgadzam się, wierzę, że odpowiedziałem na złe pytanie, ale zostawię to, ponieważ już wykonałem pracę: str. IIRC, serwomechanizmy Dynamixel powinny mieć ustawienie „wybiegu”.
mjcarroll

@mjcarroll Tak, myślę, że warto wspomnieć o tym, jak zmodyfikować serwomechanizm do ciągłej rotacji, ponieważ jest to częste zadanie w przypadku tanich projektów robotów. Jestem ciekawy, czy serwomechanizmy Dynamixel używają algorytmu pomiaru prądu opisanego w odpowiedzi SimpleCodera, stale starając się zminimalizować prąd poprzez dostosowanie PWM, czy też mają fizyczne sprzęgło do odłączania silnika serwo od wału napędowego.
Crake

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.