Snap4Arduino – Sterowanie serwomotorem przy pomocy klawiatury

Jak zaprogramować kierowanie robotem przy pomocy strzałek klawiatury komputera

Snap4Arduino posiada gotowy blok, który wykrywa naciśnięcie dowolnego klawisza na klawiaturze. Należy on do grupy bloków KONTROLA, z rozwijanego menu można wybrać, który klawisz będzie go aktywować.

Snap - klawiatura wybór klawiszy

Silniki serwo przypinamy do pinów cyfrowych 9 i 10. Przy pomocy bloku SET DIGITAL PIN … TO … ustawiamy piny 9 i 10 na SERVO.

Gdy piny są odpowiednio skonfigurowane sterowanie nimi przy pomocy klawiatury jest bardzo proste. Poniższy przykład pokazuje jak ustawić odpowiednie ruchy silników dla odpowiednich strzałek klawiatury.

snap_klawiatura1

Minusem powyższego rozwiązania jest fakt, że blok KIEDY KLAWISZ … NACIŚNIĘTY daje sygnał tylko wtedy kiedy klawisz został WCIŚNIĘTY ale nie daje żadnego sygnału kiedy klawisz jest PUSZCZONY. Dlatego jako klawisz zatrzymujący silniki ustawiona jest SPACJA.

Program sterujący silnikami tak aby kręciły się one gdy klawisz strzałki jest wciśnięty, a przestają się obracać gdy klawisz jest puszczony jest trochę bardziej skomplikowany.

W poniższym przykładzie do wykrycia wciśniętego klawisza wykorzystujemy odpowiedni blok z grupy CZUJNIKI który zwraca wartość PRAWDA kiedy klawisz został naciśnięty a w przeciwnym wypadku zwraca FAŁSZ, umieszczamy go w bloku warunku JEŻELI. Wewnątrz bloku JEŻELI wstawiamy bloki sterujące odpowiednio kierunkami silników.

Tworzymy cztery podobne warunki JEŻELI wykrywające naciśnięcie każdego z klawiszy strzałek i umieszczamy je w bloku ZAWSZE, dzięki któremu po naciśnięciu zielonej flagi program cały czas sprawdza czy któryś z klawiszy został wciśnięty (bez bloku ZAWSZE sprawdził by to tylko raz po wciśnięciu flagi).

Mamy już zdefiniowane wykrywanie naciśnięcia klawiszy, następny krok to wykrywanie kiedy klawisz został PUSZCZONY. Do tego celu wykorzystamy dwa bloki z zakładki WYRAŻENIA, pierwszy to NIE …, wewnątrz którego umieszczamy blok KIEDY KLAWISZ … NACIŚNIĘTY dzięki czemu możemy wykryć czy klawisz NIE jest wciśnięty. Drugi zielony blok, który potrzebujemy to … I …, który określa że warunek znajdujący się po jego lewej i prawej stronie ma być spełniony jednocześnie.

Musimy sprawdzić jednocześnie cztery warunki (cztery klawisze strzałek) musimy więc zagnieźcić w sobie kilka bloków … I … z odpowiednimi warunkami… w efekcie otrzymujemu coś co wygląda tak jak ta zielona część poniższego diagramu. Połączone warunki umieszczamy w jeżeli JEŻELI dzięki czemu otrzymujemy warunek brzmiący mniej więcej tak:

JEŻELI “klawisz góra NIE jest wciśnięty I klawisz dół NIE jest wciśnięty I klawisz lewo NIE jest wciśnięty I klawisz prawo NIE jest wciśnięty” wtedy ZATRZYMAJ SILNIKI (ustaw je w pozycji neutralnej ~90).

Snap klawiatura

Podobne wpisy