Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 10 cze 2026, o 23:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 25 mar 2015, o 19:54 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Witam serdecznie.
Jestem nowym użytkownikiem i nie chciałbym być od razu skarany za natychmiastową chęć wiedzy ;)
W planach mam pewien projekt, który uwzględnia równoczesne sterowanie kilkoma serwami.
Czytałem o serwach na wielu forach, nieco już udało mi się dowiedzieć.
Jednak nie do końca i wydaje mi się że z małą pomocą uda mi się rozwiązać mój problem.
Znam zasadę działania serwo, wiem że 1,5ms to pozycja centralna, obrót w prawo - około 1,7-2,1ms, w lewo 0,7-1,1ms.
Potrafię zaprogramować takie pojedyncze serwo wykorzystując delay'e bądź też prosty timer odliczający czas i zmieniający stan impulsu sterującego serwo.

Zależy mi na sterowaniu programowym, wyczytałem, że bez procedur przerwań się nie obędzie i na pewno nie ma co nawet zaczynać z delay'ami (p. M. Kardaś dość poważnie to podkreślał w jednym z postów).

Czy byłby ktoś w stanie polecić mi jakąś literaturę dotyczącą servo i ich sterowania? Ewentualnie wykorzystanie serwo w sterowaniu manipulatorami/robotami kroczacymi itp.
Blue book Kardasia posiadam, Francuza planuję do tego poczytać.

Nie szukam gotowców, chcę dokładnie zrozumieć sposób w jaki mógłbym tym sterować. Może ktoś byłby w stanie w prosty sposób wytłumaczyć zasady jakich powinienem się trzymać sterując (może na początek) dwoma serwami? Ale tak jak wyżej pisałem, jednocześnie i niezależnie od siebie. Nie bardzo wiem w jaki sposób wykorzystać przerwania.

Pozdrawiam ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 mar 2015, o 21:13 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Czapek napisał(a):
Blue book Kardasia posiadam

Zacznij czytać. W jednym z pierwszych rozdziałów jest przykład użycia programowego PWM do sterowania LED. Serwomechanizm steruje się również PWM. Ustaw częstotliwość programowego PWM na 50 Hz (okres 20 ms). W przerwaniu timera 2 inkrementowany jest licznik 8-bitowy i porównywany z ze zmiennymi, które sterują wypełnieniem impulsów. Skoro cały cykl ma trwać 20 ms to przerwanie musi wystąpić 256 razy częściej czyli co 78 us (z częstotliwością 12,8 kHz). Należy znaleźć liczbę do wpisania do OCR2. Kalkulator do tego jest ukryty w programie MkAvrCalculator. Licząc na piechotę dla 8 MHz i preskalera 8 to będzie 8 000 000 / 8 / 12800 - 1 = 77.

Należy pamiętać, że do zmiennych pwmx wpisujesz liczby aby impuls był w zakresie 1-2ms, czyli 13 - 26. Należy również odwrócić polaryzację, czyli w przerwaniu zamienić instrukcje ustawiające i zerujące stan wyjść.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 mar 2015, o 18:02 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Dzięki za odpowiedzi ;)
Będę mieć chwilę to spróbuję coś sklepać, wynikami (i ewentualnymi wątpliwościami) podzielę się tutaj ;)
Pozdrawiam!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 kwi 2015, o 23:12 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

To co udało mi się skleić:
(Sterowanie 2 serw + obsługa klawisza. Po wciśnięciu klawisza zaczyna się cykl poruszających się serw)
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ktoś ma może jakieś zastrzeżenia co do powyższego kodu?
Może jakieś inne, lepsze rozwiazania programowe?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2015, o 09:42 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Nie wiem czemu, ale nie mogę dla mokrowskiego dać "pomógł" ;p
Lepiej wykorzystać 16 bitowy timer (dla większej dokładności).
A jak wpływa na dokładnosć i pracę serw taktowanie procesora?
Rozważam użycie atmegi w wersji niskonapięciowej bądź standardowej. Ważne, że atmegę niskonapięciową można taktować w granicy 0-8Mhz. Standardowe atmegi za to można trochę więcej- 20Mhz.
Stąd też moje rozważania :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2015, o 12:34 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Konkretnie ^^
Będę mieć chwilę to spróbuję jakoś wysterować te serwa ;)
Możliwe że najpierw spróbuję na 16bitowym timerze, potem Twoim sposobem ;)
Ciekaw jestem co mi z tego wyjdzie^^



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2015, o 13:47 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

A tak jeszcze na szybko, w przypadku wykorzystania innych metod taktowanie (8MHz czy też 20) gra dużą rolę?
Bo w sumie nie wiem czy lepiej niskonapięciową atmegę użyć czy standardową.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2015, o 09:22 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Rozwiałeś wątpliwości ;)
W sumie trochę pomieszałem. I tak mikroklocek odpowiadający za sterowanie serw ma być zasilany 5V...
3V3 potrzebuję do komunikacji uart-rfm12b więc wystarczy atmega8L.
Dzięki za pomoc ;)

Edit:

Pisałeś, że udało Ci się wysterować 16 serw.
Mam pytanko. Nie do kodu, a do zasilania serw.
Jak rozwiązałeś problem zasilania i stabilizowania napięcia dla serw?
Osobiście planuję wykorzystać stabilizatory LM317(1,5A)/350(3A) i zasilać po 2-3 serwa z jednego stabilizatora. Boję się trochę, że wartość prądu będzie makabrycznie wysoka - co też wiązać się będzie z dużym ciepłem na tych elementach. Musiałbym wówczas rozważyć wykorzystanie jakiegoś radiatora.
Na serwa potrzebuję 7V. Używać będę dość sporych serw - MG995. Są dość prądożerne...
Druga sprawa to problem "Dropout Voltage", lepiej byłoby chyba użyć stabilizator LDO.
W jaki sposób to rozwiązałeś?
Może ktoś inny coś podpowie?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2015, o 12:53 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

Czyli jeśli mam zasilacz 24V powiedzmy 2A. Jedną linię ciągnę do stabilizatora dla nC np 7805, drugą linię do stabilizatora dla serw np LM317?
Czy jakoś inaczej, całkiem oddzielne zasilania?
Co do trybu rampy-poszukam jakiś info, bo rzeczywiście serwa trochę zbyt gwałtownie pracują.. A i szkoda byłoby je uszkodzić.

Coś takiego złożyłem:
Obrazek

nC zasilany z 5V, 3.3V dla rfm12B, 7V dla serwa.
Jeszcze powinienem uwzględnić konwersję napięć między nC i RFM12B. Poza tym wygląda to ok?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2015, o 14:51 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

A co się stało z filtrowaniem napięć dla uC?
Polecam pooglądać i wziąć sobie do serca ;-)
http://mirekk36.blogspot.com/2012/12/fi ... wazne.html


Autor postu otrzymał pochwałę

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2015, o 15:48 
Offline
Użytkownik

Dołączył(a): 25 mar 2015
Posty: 105
Pomógł: 2

MirkoT napisał(a):
A co się stało z filtrowaniem napięć dla uC?
Polecam pooglądać i wziąć sobie do serca ;-)
http://mirekk36.blogspot.com/2012/12/fi ... wazne.html

MirkT,
przecież filtruję napięcia dla uC.
Na każdą z par GND VCC mam przecież parę- ceramik 100nF i elektrolit 22uF :)

dambo napisał(a):
te stabilizatorki będą się okropnie grzały z 24V może jakaś przetworniczka typu LM2596?


dambo,
24V to tylko przykład. Raczej dałbym 12V lub 9V ;)

Edit. Ups, nieaktualny schemat dałem, tam zamiast 2x 100nF ma byc para 100nF i elektrolit 22uF.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO