Skocz do zawartości

Zdalne sterowanie przez zapytania HTTP


MasterYoda95

Pomocna odpowiedź

Cześć, mam gotowe podwozie i elektronikę od mojego poprzedniego robota, linefollowera i chciałbym je wykorzystać przy nowym projekcie. Chodzi o pojazd RC zbudowany na ESP32 z oprogramowaniem w Micropythonie.

Moja wizja jest taka:

Płytka ta hostuje stronę WWW przy wykorzystaniu biblioteki https://github.com/jczic/MicroWebSrv2 - to już sprawdzone, działa. Na stronie umieszczam wirtualny joystick, na przykład ten: https://github.com/bobboteck/JoyStick

2ca19400-80a4-11ea-9034-0dee3dbec67f.thumb.png.ce3242348671527d4ea070e254c04b16.png

Wtedy po prostu biorę smartfon, wchodzę na stronę, która stanowi interfejs sterujący robota i kieruję nim joystickiem. Później chcę dołożyć jeszcze ESP-32 CAM, żeby mieć podgląd, ale to będzie oddzielna płytka, więc to zupełnie inny temat.

Pytanie brzmi: jak najlepiej przesyłać położenie joysticka do robota z poziomu javascriptu w przeglądarce?

Pierwsza myśl to wysyłanie okresowo (najczęściej jak się da bez przeciążania serwera) położenia joysticka przez zwykłe zapytanie HTTP typu POST. Nie czuję się jednak mocny w webdevie i nie wiem czy to optymalna metoda, wydaje mi się że tak częste zapytania (no bo musi być ich co najmniej kilka na sekundę żeby sterowanie było w miarę płynne) mogą zawiesić przeglądarkę, albo, nawet szybciej, serwer na malutkim ESP.

Nie wiem jednak jakie są wydajniejsze alternatywy, myślałem o otwarciu socketu UDP, tylko czy to możliwe z poziomu JS? Dopiero się uczę tego języka.

Macie jakieś propozycje?

 

Edytowano przez MasterYoda95
  • Lubię! 1
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.