Skocz do zawartości

Pomocna odpowiedź

Napisano

Witam 

Buduję robota na kołach.

W jaki sposób rozwiązać zmianę prędkości silników ? 

Myślałem żeby zrobić kilka przycisków w aplikacji, wybranie powodowałoby ustawienie danej prędkości. 

 

 

1 godzinę temu, komo23 napisał:

Myślałem żeby zrobić kilka przycisków w aplikacji, wybranie powodowałoby ustawienie danej prędkości. 

Dobrze myślisz 🙂 Możesz również zrobić suwak, którym będziesz płynnie regulował prędkości.

Z czym dokładnie masz problem?

Myślałem o App Inventor. 

Suwak będzie pewnie najlepszym rozwiązanie.

Tylko jak w kodzie programu sterowania uwzględnić zmienną odpowiadająca za prędkość ? 

Zrobić różne przedziały liczbowe i na tej podstawie sterować prędkością ? 

17 minut temu, komo23 napisał:

Suwak będzie pewnie najlepszym rozwiązanie.

To pewnie będziesz miał virtualny joystick jako jeden z widgetów/widoków.

 

18 minut temu, komo23 napisał:

Tylko jak w kodzie programu sterowania uwzględnić zmienną odpowiadająca za prędkość ? 

Zrobić różne przedziały liczbowe i na tej podstawie sterować prędkością ? 

Z aplikacji wysyłasz wartości jak piszesz - w danym przedziale. Np -100 to max wychylenie do tyłu, +100 to max do przodu. 0 to stój w miejscu.

Po stronie sterownika interpetujesz to jako wartość PWM ale z uwaględnieniem budowy robota. Jak masz 2 silniki (sterowanie różnicowe) to jak z aplikacji wyślesz +100 to ma to oznaczać, że oba silniki kręcą się na maxa do przodu, czyli oba mają PWM na max i kierunek obrotów do przodu, który ustawiasz mostkiem H (steronikiem silników).

Jak będziesz chciał skręcać to możesz dodać drugi suwak i analogiczna metoda tylko przy skręcie zamieniasz kierunek obrotów.

Aby ruch był płynny możesz użyć funkcji 'map' Arduino, która służy do liniowej interpolacji wartości - czyli będziesz miał wartości pośrednie PWM, zaś aby określić kierunek obrotu silników sprawdzasz czy wartość wysłana z aplikacji jest > 0 czy < 0. Myślę, że więcej znajdziesz w kursie budowy robotów na blogu.

31 minut temu, komo23 napisał:

Zrobić różne przedziały liczbowe i na tej podstawie sterować prędkością ? 

Zapoznaj się z funkcją Arduino, która nazywa się map() - powinna rozwiązać Twój problem.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...