Skocz do zawartości
komo23

Arduino i aplikacja bluetooth

Pomocna odpowiedź

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. 

 

 

Udostępnij ten post


Link to post
Share on other sites
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?

Udostępnij ten post


Link to post
Share on other sites

Myślę, że wystarczą dwa przyciski. Pierwszy zwiększa PWM o daną wartość, a drugi zmniejsza.

Udostępnij ten post


Link to post
Share on other sites

W czym chcesz robić tę aplikację? Android studio i Java, QT czy coś innego?

Udostępnij ten post


Link to post
Share on other sites

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ą ? 

Udostępnij ten post


Link to post
Share on other sites
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.

Udostępnij ten post


Link to post
Share on other sites
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.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...