Zmiany

Skocz do: nawigacji, wyszukiwania

Pierwsze kroki - zdalne sterowanie robotem

Dodane 102 bajty, 06:05, 10 wrz 2016
Jeżeli zastanowimy się nad budową i pracą silnika, dosyć szybko dojdziemy do wniosku, że każdy silnik posiada możliwość obrotu do przodu i do tyłu. W przypadku trójkołowca, do każdego z silników zamocowane jest koło. Tak więc aby nasz pojazd poruszał się do przodu, oba silniki powinny obracać się również do przodu (obrót w tym samym kierunku).
Jeżeli jeszcze tego nie zrobiliście, czas uruchomić mBlock (oparty na Scratch program do programowania robotów Makeblock oraz mBot). Klocki odpowiedzialne za silniki znajdziemy w zakładce roboty. Nazywają się "ustaw prędkość silnika...na..."
Obraz [[Plik:robot2.jpg]] 
A ponieważ mamy dwa silniki, do ich sterowania będziemy potrzebować dwóch bloczków. Oznaczenia M1 i M2 odpowiadają silnikom podłączonym do gniazd 1 i 2.
Spróbujmy zatem poruszyć nasz pojazd do przodu. Zauważcie, wartość którą możemy przypisać silnikom wynosi od –255 do 255. Gdzie 255 oznacza ruch do przodu z całą prędkością, -255 to ruch do tyłu, a 0 to zatrzymanie silnika.
Obraz [[Plik:robot3.jpg]] 
To jest odpowiedni moment aby przetestować działanie kodu. (Pamiętajcie o połączeniu z robotem)
I co działa? A udało się go wam zatrzymać? A jak zrobić, żeby się zatrzymał?
Oczywiście zatrzymywanie robota trzeba również zaprogramować, bez odpowiedniego kodu nic się samo nie zdarzy. Potrzebujemy zatem dodać następujący kod:
Obraz [[Plik:robot4.jpg]] 
Nasz robot potrafi jeździć do przodu i do tyłu, zatrzymuje się również jeżeli puścimy klawisz kierunkowy. Ale jak sprawić, żeby zaczął skręcać? Szybko zauważycie, że to nie samochód nie ma osi skrętnej, nasze koła są zamontowane na sztywno. Jak w takim bądź razie skręcać?
Najprostszą metodą jest poruszanie tylko jednym silnikiem, dzięki czemu nasz pojazd skręci wokół unieruchomionego koła. Jest to jednak rozwiązanie mało efektywne. Lepszym rozwiązaniem jest napędzanie silników równocześnie ale w przeciwnych kierunkach (kiedy lewy ma wartość dodatnią to prawy ma taką samą wartość ale ujemną). Pozwoli to na obracanie pojazdu nawet w miejscu.
 
Gotowy kod sterowania powinien wyglądać następująco:
Obraz [[Plik:robot5.jpg]] 
Powyższe skrypty pozwalają nam swobodnie przemieszczać naszego robota. Mają one jednak jedną wadę. Nasz pojazd będzie się poruszał zawsze z ta samą prędkością (zadeklarowaną w skryptach).
A jak zaprogramować robota który mógłby zmieniać prędkość?
Przykładowy kod przypisania prędkości pod klawisz numeryczny:
Obraz [[Plik:robot6.jpg]] 
W przypadku każdego klawisza musimy ustawić nasze 2 ręcznie wpisując pożądane parametry (jazda do przodu – dodatnie, do tyłu - ujemne).
Teraz wystarczy pozamieniać wartości w blokach sterujących silnikami i gotowe.
 
Przykładowy gotowy skrypt sterowania pojazdem poniżej:
Obraz [[Plik:robot7.jpg]] '''Dla chętnych: '''
Jakie alternatywne sposoby sterowania można jeszcze zaprogramować?
Jeżeli wasz pojazd jest wyposażony w czujnik odległości, zaprogramujcie żeby ostrzegał was np.. Dźwiękiem jeżeli zbliżycie się za blisko ściany.