Skocz do zawartości
Ziutekwielki

Serwomechanizmy "adresowalne" ?

Pomocna odpowiedź

Witam 

Przeszukałem internet i nie mogę nigdzie znaleźć sposobu na połączenie szeregowe serwomechanizmów. Mam projekt wymagający kontroli 64 serw indywidualnie, serwa będą umieszczone w grupie blisko siebie natomiast sterownik już w większej odległości i szukam rozwiązania, które umożliwiło by sterowanie serwami za pomocą magistrali szeregowej tak aby nie prowadzić do każdego serwa oddzielnego przewodu sterującego.

Nie wchodzi w grę umieszczenie sterownika bliżej serw. 

Czy spotkaliście się kiedyś z jakimś możliwym rozwiązaniem tego problemu?

Udostępnij ten post


Link to post
Share on other sites
3 godziny temu, Ziutekwielki napisał:

Czy spotkaliście się kiedyś z jakimś możliwym rozwiązaniem tego problemu?

Tak, to rozwiązanie nazywa się mikrokontroler. Na Twoim miejscu kupił bym jakichś tanich attiny albo 3x arduino mini połączone przez SPI albo I2C i problem rozwiązany. Wystarczy napisać program sterujący serwami w odpowiedzi na adresy i komendy ze "sterownika".

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Oczywiście, że tak można. Można również zastosować sterownik serw np. 16 kanałowy PCA9685 x4, ale nie zmienia to faktu, że do każdego serwa muszę doprowadzić osobny przewód sterujący a chodzi o doprowadzenie tylko jednego i podłączenie szeregowe serw jak w przypadku np. diod adresowalnych WS2812B. 

Udostępnij ten post


Link to post
Share on other sites

3x arduino mini to za mało... trzeba sześć.

Co nie zmienia faktu, że Pro Mini jest wielkości kostki połączeniowej, potrzebnej do zasilenia 12 serw.

Jak się dobrze postarasz, to te sześć połączysz jednym przewodem (nie licząc zasilania). Słyszałeś może o DMX? 256 odbiorników na jednej parze drutów...

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
18 minut temu, atMegaTona napisał:

Na Twoim miejscu kupił bym jakichś tanich attiny

Attiny 85 mogą być dobrym pomysłem. Za 5zł kupisz układ w obudowie SMD, później zaprojektujesz niewielką płytkę którą możesz umieścić przy serwie. Magistrala I2C i przy pomocy 2+2 przewodów możesz zrobić łańcuszek.W rozwiązaniu tym problem to adresy - albo hardcoded dla każdego, albo zrobisz dip switch z 6 kanałami (2^6 = 64) gdzie poustawiasz im adresy.

Jeżeli ma to działać jak diody programowalne gdzie adresy są przydzielane po sąsiedzku to musiałbyś poczytać o tym sposobie komunikacji.

Są jeszcze dedykowane układy 1-wire ze sterowaniem PWM ale to są raczej sterowniki do LED, niemniej jeżeli zalezy Ci na 3 a nie 4 przewodach to możesz pomyśleć o 1-wire.

Edytowano przez Gieneq

Udostępnij ten post


Link to post
Share on other sites

Z Attiny 85 to całkiem dobre i tanie rozwiązanie, tylko że zaprojektowanie płytki przekracza moje umiejętności i wiedzę na ten temat. Czy istnieją takie gotowe układy? 

Udostępnij ten post


Link to post
Share on other sites

Od biedy może być polutowane na pająku nawet. Wystarczy zasilanie odfiltrować stabilizatorem i kondensatorami, wszystko co potrzeba do wysterowania 4 serw z attiny25 (ok. 1,5zł) jest już w scalaku.  Ramka może wyglądać tak: [Adres scalaka][nr. serwa][pozycja].

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

DMX jest prostszy, nie ma adresowania, po prostu wrzucasz na linię n wartości do wysterowania n odbiorników - coś właśnie jak w diodach.

Protokół jest znany, pół świata na tym pracuje (sterowniki świateł począwszy od dyskotek, aż do potężnych pokazów typu HongKong), są gotowe odbiorniki/nadajniki, nie trzeba kombinować tylko albo kupić, albo zaprogramować jakiegoś pryszcza.

Radzę kupić.

Przy okazji do 256 odbiorników wystarczy 20 msec.

Edytowano przez ethanak
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Fajne ale drogie.. chociaż czasem drogie wychodzi taniej.  Możesz polecić coś konkretnego?

Udostępnij ten post


Link to post
Share on other sites

Raczej nie - ja na tym pracowałem i wiem co z tym można zrobić (konkretniej DMX512, ale to po prostu powielone dwa obwody). Maszynki (reflektory) miały to wbudowane, z pulpitu wyłaził jeden kabel (coś jak mikrofonowy ale z 5 drutami). Łączy się szeregowo.

Działa w praktyce bezawaryjnie, bierzesz kabel, podpinasz i działa. Ma wszelkie możliwe atesty (do fajerwerków raczej wskazane), wątpię czy w warunkach domowych czy przeciętnej firmy od lutowania i wtykania tranzystorów w płytkę da się to osiągnąć.

No ale jak ktoś chce...

Udostępnij ten post


Link to post
Share on other sites

Ech, od razu widać chłopaki, że z modelarstwem to macie kontakt jak trzeba dziecku samolocik z papieru zrobić..

7 godzin temu, Ziutekwielki napisał:

Przeszukałem internet i nie mogę nigdzie znaleźć sposobu na połączenie szeregowe serwomechanizmów

Widocznie nie wiedziałeś czego szukać. Skoro robisz duży projekt to masz dużo pieniędzy. Zajrzyj zatem do pierwszego lepszego sklepu modelarskiego i poszukaj: Serwomechanizmy -> Cyfrowe -> SBUS. To szeregowa magistrala Futaby do której są specjalne odbiorniki RC i która umożliwia właśnie pozbycie się plątaniy drutów w co większych modelach, bo wszystkie elementy na niej powieszone są równolegle na tych samych 3 drutach (2 zasilania + UART). Oczywiście to nie jest tanie, bo to highend w tej działce, ale masz co chciałeś. Ostatnio pojawiło się jakieś rozszerzenie SBUS2. Protokół jest znany więc można samemu od biedy coś napisać na dowolny procek. Na pewno do typowej SBUS są biblioteki nawet do Arduino produkujące odpowiedni strumień bitów. Jest chyba oczywiste, że po zakupie trzeba nadać swojemu nowemu serwomechanizmowi jego osobisty adres (a czasem wpisać wiele innych parametrów) więc trzeba mieć programator. Pod SBUS podpięło się już kilku innych producentów więc ceny spadły, ale wciąż trzeba liczyć pewnie z 50 USD za (jednak bardzo porządne) serwo.

https://www.horusrc.com/en/frsky-b1711-sbus-servo.html

https://www.towerhobbies.com/cgi-bin/wti0091p?SORT=A&CAT=MAH&VND=FUT

A specjalnie do robotów itp aplikacji od dawna są produkowane serwa z protokołami szeregowymi, np. I2C lub UART. Można wtedy nie tylko ustawiać położenie, ale zwrotnie czytać obciążenie, prąd, temperaturę itp itd. Oczywiście na "jednym drucie" możesz powiesić ich kilkaset. Jeśli ktoś przyzwyczaił się do rachitycznych serw po 10 zł, to tutaj niestety też będzie zaskoczony ceną. W każdym razie ograniczeń od góry raczej nie ma.. Przeszukaj ten sklep np:

https://www.trossenrobotics.com/dynamixel-ax-12-robot-actuator.aspx

Udostępnij ten post


Link to post
Share on other sites

Sbus to może i fajne i dobre rozwiązanie ale 30 $ za serwo to jednak za dużo jak do mojego projektu. DMX to też drogie rozwiązanie. Pójdę jednak w attiny85 albo attiny25 +  https://abc-rc.pl/product-pol-9173-Adapter-USB-do-mikrokontrolerow-ATtiny13A-ATtiny25-ATtiny45-ATtiny85.html. na aliexpress koszt łącznie od 4 do 8 zł. A daje duże możliwości jeśli chodzi o ilość elementów którymi mogę sterować w obrębie jednego urządzenia. 

Dzięki wszystkim za pomoc. 

Udostępnij ten post


Link to post
Share on other sites

Drobiazg. Jako świeżakowi pewnie wydaje Ci się, że gdy kupisz tanie elementy i sklecisz z nich układzik wgrywając gotowy program to coś zaoszczędzisz. Mam nadzieję że rozumiesz że w tym przypadku prawdziwe problemy są dopiero przed Tobą. Żeby nie lać wody:

  • Zasilanie procesora oddalonego o kilka metrów i mającego wspólne linie (choćby GND) z wieloma serwami to materiał na osobny projekt (zakłócenia, spadki napięć, przepięcia itd..)
  • Przesyłanie sygnałów cyfrowych asymetrycznych (bo pewnie spróbujesz bezpośednio wysłać zwykły UART TTL z Arduino czy co tam masz do oddalonego ATtiny) w linii ułożonej równolegle do zasilań serwomechanizmów bez zrozumienia co tam się dzieje, bez kontroli zboczy, bez zrozumienia roli składowej stałej (spadki na masie) i dopasowania impedancji to kolejne grabie, które przywalą aż gwiazdy zobaczysz.

Standardy SBUS czy DMX (czy nawet prawdziwy RS232 czy RS485) nie są drogie dlatego, że komuś tak się uwidziało tylko dlatego, że płacisz za ogromną, inżynierską wiedzę w nie włożoną własnie po to, by w trudnych warunkach po prostu działały. Kiedyś to docenisz, np. gdy Twoja płyteczka sterująca będzie musiała być zrobiona przez doświadczonego projektanta któremu i tak nieźle zapłacisz, bo Twoje pierwsze naiwne przymiarki będą działały przez chwilę albo wcale. Nie raz obserwuję takie rzeczy z boku i tylko czekać, jak zaczniesz pisać "procesor nie odpowiada - czy go spaliłem?" albo "mój Attiny na 10-metrowym kablu wciąż się resetuje i nie mam niezawodnego sterowania dużym projektem - co robić?". No cóż, nie jesteś pierwszy kto płacąc mało zapłaci dwa razy. Szkoda tylko, że każdy kolejny liczy na jakieś odkrycie (taniej) Ameryki i planuje uczyć się na własnych błędach - to zwykle najdroższy sposób, choc początki wyglądają zachęcająco (zdecydowałem i tak zrobię). Czyli co, porywasz się na projekt z kilkudziesięcioma serwami a masz w kieszeni 500zł? Trochę niepoważne, nie sądzisz?

Udostępnij ten post


Link to post
Share on other sites

Na moje potrzeby powinno wystarczyć. Nie jestem takim typem człowieka który dla byle pierdoły kupie wszystko z najwyższej półki czego nie wykorzystam w pełni. Wydać 10 000 zł żeby mieć mercedesa to głupota skoro opel wystarczy w 100% a cena 100 razy niższa. Pewnie jesteś idealistą z workiem pieniędzy ale ja jestem realistą liczącym pieniądze. 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...