Skocz do zawartości

Zdalne sterowanie (przez internet z kamerą)


lukiluk100

Pomocna odpowiedź

Witam!

Jestem tu nowy, a zajrzałem, ponieważ potrzebuję odpowiedzi. Chciałbym stworzyć zdalne sterowanie online do pojazdu jeżdżącego. Kamera + pełna kontrola. Jednak nie wiem czy na ardiuno da się to osiągnąć, czy może lepiej szukać innych modułów... Zamierzam uczyć się od zera i wiem, że długa droga mnie czeka, ale taki właśnie mam cel ostateczny. Dodam, że posiadam serwer VPN przez który prawdopodobnie mógłbym spokojnie przesyłać informacje, ale nie wiem czy na arduino się da, a jesli to czy się to w ogóle opłaca.

Link do komentarza
Share on other sites

@lukiluk100 witam na forum 🙂 Jeśli jesteś zainteresowany realizacją projektów, które wykorzystują łączność przez internet oraz kamerę to Arduino raczej tutaj nie będzie pomocne (ewentualnie jako element wykonawczy). Zdecydowanie lepiej będzie zainteresować się w takim przypadku Raspberry Pi.

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

@Treker Trochę poczytałem. Faktycznie RPi wygląda lepiej do tego celu. Nadal jednak mam wątpliwości. Przeczytałem sobie kurs znaleziony na Forbocie i znalazłem tam 3 opcje połączenia z RPi, każda jednak wymagała komputera sterującego w niedużej odległości... Zasięg routera lub kabla ethernet. Nie ma możliwości komunikacji przez serwer internetowy?

Link do komentarza
Share on other sites

Nie zabardzo wiem po co na tym etapie potrzebny ci VPN.

Może zacznij od mniejszych wyzwań np.

  1. napisz program który będzie sterował wirtualnymi napędami, sam zestaw funkcji które np wypisują do logu informacje w stylu jedź prosto//do tyłu...
  2. napisz komunikację - nie interesuje cię czy będzie to ethernet, wifi czy może gsm. Wybierz za to protokół komunikacji, np UDP jest dobry do wysyła czegoś często i możesz napisać prostą aplikację desktopową/mobilną klienet-serwer. (coś podobnego jak w grach online, gdzie sterujesz sobie postacią wysyłając pakiety do serwera).
  3. jak uda ci się wysterować, to zastanów się jak sterować napędami.
  4. kamera, to możesz skorzystać z gotowców np motion, tam masz wykorzystany protokół RTSP, który załatwia komunikację za ciebie.
  5. jak masz już to wszystko to teraz można myśleć jak wyjść poza sieć lokalną 
  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

4 minuty temu, Gieneq napisał:

kamera, to możesz skorzystać z gotowców np motion

i nic z tego nie wyjdzie, motion jest fajny jako kamerka do domowego alarmu ale nie nadaje się do streamingu. To już lepszy VLC.

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

@Gieneq Jestem totalnie zielony jak wspomniałem. Chciałbym po prostu dopytać czy mam możliwości. Nie chciałbym zainwestować czasu w naukę, żeby na końcu okazało się, że cel główny jest nieosiągalny. Dlatego chciałbym jakieś ogólniki, czego i jak szukać 😉

Co do punktów które wymieniłeś, chciałbym przerobić samochodzik zdalnie sterowany, tak, żeby zamiast pilotem sterować nim z ekranu komputera i móc nim jeźdź wszędzie gdzie wyrobi mi internet. Taki jest zamysł ogólny. Kamerę wykombinuję. Ale potrzebny mi jest jakiś sposób na połączenie i wydanie poleceń 😉
 

Link do komentarza
Share on other sites

To powiem Ci tak: Twój "cel główny" jest tak niejasno sformułowany, że nie można na pytanie odpowiedzieć jednoznacznie "da się" albo "nie da się".

Transmisja danych przez Internet ma to do siebie, że:

  • Jest pakietowa (tzn. zbiera się dane w jakąś paczkę i tę się wysyła do odbiorcy)
  • W każdej chwili może zostać przerwana
  • Otrzymana informacja może być niekompletna
  • Zachodzi z pewną średnią prędkością, z tym że owa średnia prędkość liczona jest na pewnych dość długich odcinkach czasowych

Pomijając techniczne szczegóły jednym z efektów jest pewne opóźnienie przekazywanych informacji, przy czym owo opóźnienie nie jest stałe i może zmieniać się od kilkuset milisekund do kilku sekund. W związku z tym kierowanie takim samochodzikiem będzie bardziej podobne do kierowania łazikiem marsjańskim, niż samochodem.

Da się z Ziemi takim łazikiem sterować? Oczywiście - dowodem na to są jeżdżące po Marsie ziemskie roboty które całkiem nieźle sobie tam radzą.

Da się sterować nimi tak samo jak samochodem? Oczywiście, że nie - choćby z uwagi na opóźnienie sygnału.

Zaraz powiesz, że przecież w internecie można oglądać telewizję na żywo, jakoś wszystkie klatki obrazu dochodzą i prędkość wystarczy...

A właśnie że nie na żywo i nie wszystkie dochodzą. Część po drodze się zgubi, trzeba je powtórzyć, co albo wyjdzie albo nie, część zostanie w jakiś sposób lepiej lub gorzej zregenerowana, a czasem transmisja w ogóle na chwilę zostanie przerwana bo nie zostaną otrzymane wszystkie informacje z okresu odpowiadającemu opóźnieniu i zamiast twarzy mordercy zobaczysz na ekranie napis "buforowanie".

Włącz radio FM (np. na "trójkę"), i jednocześnie włącz sobie odtwarzacz na ichniej stronie internetowej - zobaczysz o co chodzi. A to tylko dźwięk, który wymaga dużo mniej danych do przesłania niż obraz, i w którego przypadku zgubienia ramki nawet nie zauważysz...

Pomyśl więc, jak chcesz tym swoim samochodzikiem kierować i co tak naprawdę chcesz zobaczyć na ekranie komputera. Bo jeśli Twoje wymagania to kamera FPV full HD działająca z opóźnieniem nie większym niż ramka, i błyskawiczna reakcja na drobne ruchy kierownicą - nie da się. Jeśli to ma być przekazanie zaprogramowanej trasy przejazdu i obejrzenie filmiku z pokonywania owej trasy - da się na 100%, ale to pewnie żadna frajda (chociaż jak dla kogo). Gdzieś pomiędzy tymi dwiema skrajnościami (które obie spełniają warunek "pełnej kontroli nad pojazdem") można przeprowadzić granicę - sam musisz zdecydować, czy pewien możliwy do realizacji sposób sterowania spełnia Twoje wymagania. Ale to Ty musisz zdecydować (i w końcu spróbować), my za Ciebie tego nie jesteśmy w stanie zrobić. My możemy co najwyżej odpowiedzieć na bardzo konkretne pytania, a i to pomijając pewne skrajne przypadki nie ze 100-procentową pewnością.

Potem dopiero będzie się można zastanawiać nad szczegółami typu UDP, RTSP, VLC i innymi mądrze brzmiącymi skrótami 🙂

 

Edytowano przez ethanak
  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

8 godzin temu, lukiluk100 napisał:

zamiast pilotem sterować nim z ekranu komputera i móc nim jeźdź wszędzie gdzie wyrobi mi internet.

Nie wiem czy ten projekt nie jest 1:1 co chcesz zrobić. Tam użyta jest biblioteka wiringPi, która jak gdzieś tam pisałem nie jest w pełni działająca na nowym Raspbianie. Masz tam też prostą bibliotekę, która umożliwia sterowanie z poziomu przeglądarki internetowej - myślę że to będzie dobry początek. W ten sposób spokojnie wysterujesz swój pojazd w obrębie sieci lokalnej. Jeżeli chciałbyś zrobić coś więcej, możesz np.do samochodu wrzucić telefon z hotspotem + VPN i możesz jeździć gdzie chcesz 😄 jak to wygląda w praktyce, to się okaże ale tak jak napisał @ethanak nie spodziewaj się natychmiastowej odpowiedzi.

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

(edytowany)

@ethanak Jestem zielony w elektronice, ale nie aż tak. Wiem że jest opóźnienie, a kamerkę chciałbym mieć tylko po to, żeby widzieć gdzie jadę, zakładając, że stracę pojazd z oczu.

@Gieneq Dzięki za ten projekt. Jest to coś czego szukałem 😄

Dziękuję wam za pomoc. Wiem, że mogę być trudny do zrozumienia, ale blond na głowie zobowiązuje 😉 
Najważniejsze, że jest opcja połączenia sprzętu bez ograniczenia odległości. Kosztem właśnie opóźnienia i możliwości zerwania zasięgu. Nie ma doskonałych rozwiązań.

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

Na początek polecam Ci nie inwestowac w elektornikę, tylko zorganizuj płytkę Raspberry Pi i popróbuj napisać program, który będzie symulował działanie napędów. Wtedy będziesz mógł zacząć od czegoś prostego.

Możliwości wysyłania danych jest sporo, przykładowo ostatnio testowałem googlowe rozwiązania: Firebase oraz Google Sheet API dający wgląd w arkusze i przyznam, że mógłbyś zrobić sterowanie wysyłając i odbierając dane z arkusza umieszczonego na drivie.

Wiem, bez sensu, ale da się. Więc polecam po prostu poeksperymentować, zapoznasz się przy okazji z różnymi rozwiązaniami.

Link do komentarza
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!

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

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.