Przeglądając forum i sieć trudno znaleźć proste sterowniki pod RS 232 , dlatego zbudowałem sterowniki za pomocą których możliwe jest sterowanie silnika krokowego unipolarnego , binarnego oraz 2 silnikami dc
Projektując sterowniki wyszedłem z założenia aby były możliwie proste w budowie , funkcjonalne , możliwe do wykonania przez każdego , to samo dotyczy programów napisanych w Bascomie .
Zasadniczo powstały dwa projekty pierwszy służy tylko do obsługi silnika krokowego unipolarnego , natomiast drugi jest bardziej uniwersalny służy do sterowania silnika krokowego bipolarnego jak również 2silników DC.
Obsługa jest bardzo prosta polega na wydaniu polecenia z dowolnego terminala RS 232 np. systemowego Hyper Teminala , każdy z programów na początku przedstawia sposób sterowania .
Programy w Bascomie są napisane na mikrokontroler 89c2051 , ale bez użycia Timerów i systemu przerwań co pozwala w bardzo prosty sposób zastosować je dla AVR , zmieniając jedynie nazwy portów , stosując popularne 90s2313 lub ATtiny 2313 wystarczy pozbyć się układu Reset z płytki , wyprowadzenia są identyczne
Programy są bez komentarza , ale na tyle proste że każdy nawet początkujący powinien zrozumieć zasadę działania , w miarę potrzeby zmodyfikować dla swoich potrzeb
W programach użycie instrukcji Print jest tylko w celach informacyjnych , bez problemu można się ich pozbyć , co pozwoli zaoszczędzić sporo pamięci dla przykładu program dc1 zajmuje 1423 bajty , bez instrukcji Print 723
Krótki opis poszczególnych programów :
Obsługa wersji dla silnika unipolarnego i bipolarnego jest identyczna , oczywiście inne są układy sterowników
Po uruchomieniu i przedstawieniu się program czeka na rozkaz w postaci nazwy polecenia i wartość np. l10 – 10obrotów w lewo , każde polecenie musi być zakończone Enterem
Sterownik przy pierwszym uruchomieniu wymaga ustalenia wartości kroków / obrót początkowa wartość to 50 co odpowiada silnikowi o 200 krokach / obrót czyli 1,8˚ / krok
Proponuje ustawić wartość czasu na 30 ( początkowa 10 ) zaznaczyć punkty odniesienia na osi silnika i obudowie , następnie wydać polecenie wykonania 1 obrotu , obserwując czy silnik wykona dokładnie 1 obrót , w marę potrzeby skorygować wartość poleceniem S , lub znając parametry silnika obliczyć 360 / (kąt jednego kroku)*4 , polecenie to nie jest wyświetlane w programie ponieważ ustawia się je tylko raz
Parametr C – czas pozwala na zmianę prędkości silnika w pewnych granicach , z uwagi na bardzo prosty sposób sterowania silnika wartości zmian nie są duże , dla silnika który testowałem min to 2ms , wartość max może być dowolna
Dla silników DC powstały 3 wersje programów , schemat jest identyczna jak dla silnika bipolarnego , wersje 1 i 2 obsługuje się analogicznie jak dla silników krokowych , oczywiście bez plecenia S , program został napisany tak aby sterować pojazdem dlatego polecenia odpowiadają kierunkom jazdy przy napędzie pojazdu dwoma silnikami , różnica w obsłudze polega na tym że w wersji 1 ustalamy czas pracy silników ( wartość w sekundach ) natomiast w wersji 2 wydanie polecenia jest wykonywane do czasu wydania kolejnego , dodatkowo jest polecenie Stop
Wersje 3 obsługuje się inaczej , poszczególnym klawiszom są przyporządkowane polecenia według zasady przedstawionej w terminalu , jest to układ pozwalający na sterownie jedną ręką , naciśnięcie danego klawisza uruchamia polecenie wykonywane tak długo aż nastąpi jego zmiana innym klawiszem
Część sprzętowa jest typowa Max 232 – komunikacja RS232 , 89c2051 – wiadomo , ULN2003 lub L293D –stopień wyjściowy
W układzie z Max 232 dodatkowo zastosowano sygnalizację transmisji co bywa pomocne w czasie uruchamiania i pracy układu , szybkość jest ustalona na 2400 co w zupełności wystarcza do takiego sterowania , oczywiście można ją dostosować do swoich potrzeb , pamiętając że z jej wzrostem wzrasta ilość błędów w czasie transmisji oraz to jaką wartość ma zegar systemowy
Myślę że zaprezentowane układy przydają się początkującym w zrozumieniu zasady sterownia i pozwolą na budowę własnych bardziej za awansowanych konstrukcji
Projektując sterowniki wyszedłem z założenia aby były możliwie proste w budowie , funkcjonalne , możliwe do wykonania przez każdego , to samo dotyczy programów napisanych w Bascomie .
Zasadniczo powstały dwa projekty pierwszy służy tylko do obsługi silnika krokowego unipolarnego , natomiast drugi jest bardziej uniwersalny służy do sterowania silnika krokowego bipolarnego jak również 2silników DC.
Obsługa jest bardzo prosta polega na wydaniu polecenia z dowolnego terminala RS 232 np. systemowego Hyper Teminala , każdy z programów na początku przedstawia sposób sterowania .
Programy w Bascomie są napisane na mikrokontroler 89c2051 , ale bez użycia Timerów i systemu przerwań co pozwala w bardzo prosty sposób zastosować je dla AVR , zmieniając jedynie nazwy portów , stosując popularne 90s2313 lub ATtiny 2313 wystarczy pozbyć się układu Reset z płytki , wyprowadzenia są identyczne
Programy są bez komentarza , ale na tyle proste że każdy nawet początkujący powinien zrozumieć zasadę działania , w miarę potrzeby zmodyfikować dla swoich potrzeb
W programach użycie instrukcji Print jest tylko w celach informacyjnych , bez problemu można się ich pozbyć , co pozwoli zaoszczędzić sporo pamięci dla przykładu program dc1 zajmuje 1423 bajty , bez instrukcji Print 723
Krótki opis poszczególnych programów :
Obsługa wersji dla silnika unipolarnego i bipolarnego jest identyczna , oczywiście inne są układy sterowników
Po uruchomieniu i przedstawieniu się program czeka na rozkaz w postaci nazwy polecenia i wartość np. l10 – 10obrotów w lewo , każde polecenie musi być zakończone Enterem
Sterownik przy pierwszym uruchomieniu wymaga ustalenia wartości kroków / obrót początkowa wartość to 50 co odpowiada silnikowi o 200 krokach / obrót czyli 1,8˚ / krok
Proponuje ustawić wartość czasu na 30 ( początkowa 10 ) zaznaczyć punkty odniesienia na osi silnika i obudowie , następnie wydać polecenie wykonania 1 obrotu , obserwując czy silnik wykona dokładnie 1 obrót , w marę potrzeby skorygować wartość poleceniem S , lub znając parametry silnika obliczyć 360 / (kąt jednego kroku)*4 , polecenie to nie jest wyświetlane w programie ponieważ ustawia się je tylko raz
Parametr C – czas pozwala na zmianę prędkości silnika w pewnych granicach , z uwagi na bardzo prosty sposób sterowania silnika wartości zmian nie są duże , dla silnika który testowałem min to 2ms , wartość max może być dowolna
Dla silników DC powstały 3 wersje programów , schemat jest identyczna jak dla silnika bipolarnego , wersje 1 i 2 obsługuje się analogicznie jak dla silników krokowych , oczywiście bez plecenia S , program został napisany tak aby sterować pojazdem dlatego polecenia odpowiadają kierunkom jazdy przy napędzie pojazdu dwoma silnikami , różnica w obsłudze polega na tym że w wersji 1 ustalamy czas pracy silników ( wartość w sekundach ) natomiast w wersji 2 wydanie polecenia jest wykonywane do czasu wydania kolejnego , dodatkowo jest polecenie Stop
Wersje 3 obsługuje się inaczej , poszczególnym klawiszom są przyporządkowane polecenia według zasady przedstawionej w terminalu , jest to układ pozwalający na sterownie jedną ręką , naciśnięcie danego klawisza uruchamia polecenie wykonywane tak długo aż nastąpi jego zmiana innym klawiszem
Część sprzętowa jest typowa Max 232 – komunikacja RS232 , 89c2051 – wiadomo , ULN2003 lub L293D –stopień wyjściowy
W układzie z Max 232 dodatkowo zastosowano sygnalizację transmisji co bywa pomocne w czasie uruchamiania i pracy układu , szybkość jest ustalona na 2400 co w zupełności wystarcza do takiego sterowania , oczywiście można ją dostosować do swoich potrzeb , pamiętając że z jej wzrostem wzrasta ilość błędów w czasie transmisji oraz to jaką wartość ma zegar systemowy
Myślę że zaprezentowane układy przydają się początkującym w zrozumieniu zasady sterownia i pozwolą na budowę własnych bardziej za awansowanych konstrukcji
