Strona Główna
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy RegulaminRegulamin  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj






Przyszłość jest w naszych rękach...
...bo przyszłość to robotyka.





Poprzedni temat «» Następny temat
Przesunięty przez: daniel93
25 Cze 08 01:29
serwo-programowanie
Autor Wiadomość
siemian 



Posty: 27
Otrzymał 4 piw(a)
Skąd: Wysoka
Wysłany: 18 Lip 07 10:45   serwo-programowanie

zakupiłem serwa z conrada jednak nie potrzebuje ich przerobionych jako napęd lecz normalnie. nie mogę znaleźć nigdzie w sieci w jaki sposób napisać program aby serwo wychylało się o tyle stopni ile chcę, procesor jakiego chcę użyć to ATMEGA8, jeszcze jedno pytanie czy napięcie które będę podawał na serwo musi być dodatkowo stabilizowane czy wystarczy dać normalne z zasilacza?
Najlepiej żeby program było można napisać w c
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 16 razy
Posty: 158
Otrzymał 26 piw(a)
Skąd: zza winkla
Wysłany: 18 Lip 07 12:53   

Na tej stronie jest przykład wraz z opisem
http://winavr.scienceprog...-using-avr.html

więcej szczegółów znajdziesz po adresem
http://mil.ufl.edu/~achamber/servoPWMfaq.html
Postaw piwo autorowi tego posta
 
 
siemian 



Posty: 27
Otrzymał 4 piw(a)
Skąd: Wysoka
Wysłany: 15 Gru 07 08:02   

Nareszcie znalazłem czas i środki żeby się zająć tym porządnie i od razu porażka. Program który mi podałeś nie działa poprawnie, nie reaguje na klawisze a serwo jak by próbowało się kręcić tylko w jedną stronę, ale tylko próbowało bo się nie kręci, nie wiem może ja popełniam jakiś błąd, żeby nie było niedomówień, serwo i uC zasilam stałym napięciem 5V (stabilizator L7805) z jednego źródła, serwa są sprawne bo są to nówki, działanie sprawdzałem na dwóch sztukach i na obu to samo, uC tak samo sprawdzałem 3 sztuki. Czy element podpięty oprócz serwa do PB1 jest niezbędny? nie potrafiłem tego zidentyfikować więc pomyślałem że to tylko coś dla lepszego zobrazowania działania.
Chciałem w takim razie zacząć od czego prostszego więc napisałem program w bascomie:
Kod:
$crystal = 10000000

Config Servos = 1 , Servo1 = Portb.2 , Reload = 10

Config Portb = Output



Enable Interrupts





Do


   Servo(1) = 20

   Waitms 500

   Servo(1) = 80

   Waitms 500

   Servo(1) = 120

   Waitms 500

   Servo(1) = 180

   Waitms 500

   Servo(1) = 200

   Waitms 1000

Loop

End


Tutaj serwo nawet się nie poruszyło i nie słychać aby próbowało.

Już nie wiem co dalej, chciałem zrobić mechaniczne ramię zakupiłem 6 serw, a nawet jednego nie potrafię zaprogramować. Liczę na waszą pomoc we wskazaniu błędu lub przy napisaniu nowego programu.
Pozdrawiam
Z góry dziękuję.
Postaw piwo autorowi tego posta
 
 
 
raddeon 



Posty: 35
Skąd: Hrubieszów
Wysłany: 16 Gru 07 08:23   

a zadeklarowałeś w programie odpowiedni procek np. $regfile = "2313def.dat"
masz to przykładowy program bo mi się nie podoba twój między DO a LOOP.


$regfile = "2313def.dat"
Config Servos = 2 , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = 10
Config Portb = Output
Enable Interrupts
Servo(1) = 100 'włącz na 1000 mikrosekund
Servo(2) = 200 'włącz na 2000 mikrosekund

Dim I As Byte

Do

For I = 1 To 100

Servo(1) = I

Waitms 1000

Next

For I = 200 To 1 Step -1

Servo(1) = I

Waitms 1000

Next

Loop

End
_________________
Jestem otwarty na kontakty związane z elektroniką i robotyką (ja nie ukrywam swojej wiedzy :) .
Postaw piwo autorowi tego posta
 
 
 
siemian 



Posty: 27
Otrzymał 4 piw(a)
Skąd: Wysoka
Wysłany: 16 Gru 07 09:25   

dzięki za pomoc na reszcie serwo się ruszyło, ja wzorując się na przykładzie z polskiego helpa nie dopisałem regfile ponieważ był tam przykładowy program na użycie serw i nic o tym nie wspomniano

Teraz mam kolejne pytanie, jak ustawiać parametry dla "servo(1)=" bo przy wykonywaniu takiego programu:
Kod:
$regfile = "m8def.dat"
$crystal = 1000000
Config Servos = 1 , Servo1 = Portb.2 , Reload = 10
Config Portb = Output
Enable Interrupts


Do

   Servo(1) = 20

   Waitms 500

   Servo(1) = 80

   Waitms 500

   Servo(1) = 120

   Waitms 500

   Servo(1) = 180

   Waitms 500

   Servo(1) = 200

   Waitms 500


Loop

End


serwo ustawia się w pewnej pozycji wtedy wykonuje obró o jakieś ok. 120 stopni i wali o blokadę,


Czy przy projekcie mechanicznego ramienia warto wykorzystać bascoma? czy lepiej posiedzieć trochę więcej i próbować swoich sił w "c", jeżeli tak to proszę o wskazówki gdzie szukać potrzebnej mi wiedzy ;)
Postaw piwo autorowi tego posta
 
 
 
abxyz 
Expert programowanie


Pomógł: 16 razy
Posty: 158
Otrzymał 26 piw(a)
Skąd: zza winkla
Wysłany: 16 Gru 07 10:20   

Jeśli chcesz programować w C, możesz przetestować ten (poprawiony ) program, nie wiem czy działa, dziś nie mam po ręką żadnego sero żeby go sprawdzić.
http://abxyz.eu.interia.pl/servo1/main.c
http://abxyz.eu.interia.pl/servo1/main.hex

A na tej stronie jest jeszcze jeden przykład sterowania servo w C
http://martin.roboterbastler.de/?p=21
Postaw piwo autorowi tego posta
 
 
szpatryk 


Posty: 1
Skąd: Piotrków Tryb.
Wysłany: 06 Mar 08 10:52   

Witam, mam pytanie, czy tego programu do sterowania serw można użyć do mikrokontrolera Atmega16-16PU DIP40, a jeśli nie to jakie zmiany należałoby wprowadzić ? ( nie wiem, czy to pytanie jest banalne, ale dopiero się zapoznaje z mikrokontrolerami ).
Postaw piwo autorowi tego posta
 
 
abxyz 
Expert programowanie


Pomógł: 16 razy
Posty: 158
Otrzymał 26 piw(a)
Skąd: zza winkla
Wysłany: 07 Mar 08 02:00   

http://abxyz.eu.interia.pl/servo_m16/main.c
http://abxyz.eu.interia.pl/servo_m16/main.hex
A w tym BASCOMowym to ( chyba ) wystarczy zmienić: $regfile = "m8def.dat" na $regfile = "m16def.dat"
_________________
Nie powie ci nawet wiedźma Pleple, czego się dowiesz wprost z Google_
Postaw piwo autorowi tego posta
 
 
Decado 



Pomógł: 6 razy
Posty: 154
Otrzymał 5 piw(a)
Skąd: Bełk
Wysłany: 07 Mar 08 02:12   

Tak właściwie to w bascomie nigdy nie deklaruje procka i zawsze mi działa jak natura chciała...

Pozdrawiam
_________________
"Niema ludzi niewinnych, są tylko źle przesłuchiwani" Feliks "Krwawy Feliks" Dzierżyński
Postaw piwo autorowi tego posta
 
 
 
pawel 



Pomógł: 5 razy
Posty: 121
Otrzymał 3 piw(a)
Skąd: Rybnik
Wysłany: 07 Mar 08 02:41   

W BASCOMie nie trzeba ustawiać procka, programator robi to za nas.
_________________
www.robotyka.net.pl
www.peakoil.pl
Postaw piwo autorowi tego posta
 
 
 
daniel93 



Pomógł: 11 razy
Posty: 377
Otrzymał 17 piw(a)
Skąd: Wujskie
Wysłany: 07 Mar 08 03:12   

Bez ustawienia procka, czasami zdarzały mi się problemy, tak więc lepiej ustawić.
Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


website uptime

Powered by phpBB modified by Przemo © 2003 phpBB Group - manga
kredyt przez internet

Love and Light Dominik Peh kosmetyki nero BearShare taniec nowoczesny Warszawa taniec z gwiazdami Porównywarka cen elektroniki