Skocz do zawartości

Pojazd mobilny - Bluetooth zasięg/alternatywy.


EasyPeasy_

Pomocna odpowiedź

Dziś przyszło do mnie arduino wraz z czujnikiem (temperatury+wilgotności powietrza) i modułem Bluetooth XM-15: https://botland.com.pl/moduly-bluetooth/6642-modul-bluetooth-21-xm-15b-33v5v.html

( z uwagi na to iż przede mną inżynierka https://www.forbot.pl/forum/topics33/sterowanie-obiektem-mobilny-inzynierka-pomysly-vt14423.htm )

( I na początku chcę po prostu napisać aplikację na androida, która umożliwi połączenie się z modułem, wysyłania jej dowolnych komend i zbierze dane z tego czujnika i w ładnej formie je wyświetli. )

A na dziś no to rozpakowałem Arduino, zrobiłem prosty układ wpinając moduł Bluetooth, rezystor, diodę i napisałem w Arduino IDE - program, który po odebraniu z telefonu "1" włącza diodę, po odebraniu "0" wyłącza i wysyła odpowiednie komunikaty zwrotne do telefonu. W tym celu pobrałem napisaną aplikację z Google Play "Bluetooth Terminal", która po prostu umożliwiała połączenie się z modułem Bluetooth i wysyłanie i odbieranie danych.

I ogólnie wszystko działa i jak można wyczytać z linka prowadzącego do tego modułu "Maksymalny zasięg jest równy 30 m" i wiecie chciałem to sprawdzić, zostawiłem sobie laptop z arduino i tym modułem tuż przed oknem mojego domu i po zrobieniu około 25 kroków (+/- 10-15m) no aplikacja mi się rozłączała.

_____________________________________________________________________

I teraz pytanie czy mój promotor to zaakceptuje, ogólnie no wezmę laptopa w samochód z Arduino i postawię go na otwartej przestrzeni i wtedy zobaczę jaki jest faktycznie w przybliżeniu zasięg. No, ale te 15 metrów czy tam nawet 10 metrów to trochę mało, jak na pojazd mobilny, który miałby jeździć zbierać dane pogodowe z czujników i przesyłać obraz z kamery.

I teraz pytanie są jakieś alternatywy możliwe do wykorzystania przy sterowaniu za pomocą aplikacji android (bo taki jest mój temat pracy inżynierskiej)? Na jakiej zasadzie działa moduł WiFi, bo szczerze mówiąc nie wiem. Powiedzmy kupuję moduł WiFi do Arduino (a tanie nie są) i co arduino może się podłączyć do jakiejś sieci WiFi tak jak normalny komputer? Zasięg modułu WiFi jest większy niż Bluetooth ?

Zostałby jeszcze moduł RF w przypadku dronów i aparatury do sterowania, ale ja muszę sterować za pomocą aplikacji Android, więc to odpada. W takim razie chyba jednak zostanę przy tym Bluetooth.

[ Dodano: 29-08-2017, 20:15 ]

Byłem teraz zobaczyć na otwartej przestrzeni położyłem płytkę z modułem na dachu samochodu było różnie zwykle (gdy poruszałem się szybszym tempem) rozłączało się po około 20 metrach, max zaszedłem krok po kroku na odległość około 30 metrów.

Link do komentarza
Share on other sites

Generalnie WiFi i Bluetooth średnio nadają się do takich zastosowań. Czas połączenia Bluetooth jest dosyć długi, co jest szczególnie uciążliwe przy utracie zasięgu (a ten jest mały). Przy WiFi dodatkowym problemem jest latencja, czyli czas od wysłania danych do ich otrzymania. W przypadku słabego sygnału ten parametr potrafi się znacznie zmieniać, co jest problemem, jeśli chciałbyś tym robotem sterować.

Generalnie to widzę kilka opcji:

1. Wziąć jakiś lepszy (i droższy) moduł Bluetooth, najlepiej z zewnętrzną anteną, może to jakoś pomoże, ale cudów nie będzie.

2. Wykorzystać moduły RF o niższej częstotliwości, poniżej 1GHz (Bluetooth i WiFi działają na 2,4GHz, a ogólna zasada jest taka, że im wyższa częstotliwość tym krótszy zasięg, ale szybszy transfer). Żeby korzystać przy tym z Androida, musiałbyś zrobić sobie dodatkowe urządzenie (bridge), które odbierało by dane z Bluetooth i wysyłało przez moduł radiowy i w drugą stronę:

Telefon (BT) <-> (BT) Bridge (RF) <-> (RF) Robot

3. Zmienić założenia: semestr się jeszcze nie zaczął, zawsze możesz zmienić swój pomysł. Na przykład nie komunikować się z Androidem, tylko zrobić to jakoś inaczej. Albo sterować robotem zdalnie przez jakiś zwykły moduł RF, zbierać w tym czasie dane z czujników, a gdy uda się połączyć Bluetooth to przesłać te dane do telefonu.

Co nie wybierzesz: powodzenia!

Link do komentarza
Share on other sites

@EDIT

Ten moduł Bluetooth -> https://botland.com.pl/moduly-bluetooth/1220-modul-bluetooth-btm222.html podobno ma zasięg do 100 metrów, więc byłby idealny ale niby wyszedł już z produkcji, ale może uda mi się go dorwać gdzieś.

_______________

Generalnie WiFi i Bluetooth średnio nadają się do takich zastosowań. Czas połączenia Bluetooth jest dosyć długi, co jest szczególnie uciążliwe przy utracie zasięgu (a ten jest mały). Przy WiFi dodatkowym problemem jest latencja, czyli czas od wysłania danych do ich otrzymania. W przypadku słabego sygnału ten parametr potrafi się znacznie zmieniać, co jest problemem, jeśli chciałbyś tym robotem sterować.

Generalnie to widzę kilka opcji:

1. Wziąć jakiś lepszy (i droższy) moduł Bluetooth, najlepiej z zewnętrzną anteną, może to jakoś pomoże, ale cudów nie będzie.

2. Wykorzystać moduły RF o niższej częstotliwości, poniżej 1GHz (Bluetooth i WiFi działają na 2,4GHz, a ogólna zasada jest taka, że im wyższa częstotliwość tym krótszy zasięg, ale szybszy transfer). Żeby korzystać przy tym z Androida, musiałbyś zrobić sobie dodatkowe urządzenie (bridge), które odbierało by dane z Bluetooth i wysyłało przez moduł radiowy i w drugą stronę:

Telefon (BT) <-> (BT) Bridge (RF) <-> (RF) Robot

3. Zmienić założenia: semestr się jeszcze nie zaczął, zawsze możesz zmienić swój pomysł. Na przykład nie komunikować się z Androidem, tylko zrobić to jakoś inaczej. Albo sterować robotem zdalnie przez jakiś zwykły moduł RF, zbierać w tym czasie dane z czujników, a gdy uda się połączyć Bluetooth to przesłać te dane do telefonu.

Co nie wybierzesz: powodzenia!

1. No z tych pomysłów Twoich to najbardziej odpowiada mi właśnie ten numer poszukam może znajdę jakiś lepszy moduł Bluetooth, ewentualnie zostanę przy tym co mam.

2. Mógłbyś rozwinąć koncepcję mostka (RF), bo mi na myśl jedynie przychodzi po prostu drugie arduino, które byłoby na miejscu i miało w sobie ten mój moduł Bluetooth i nadajnik RF (masz jakąś inną wizję) tyle, że no te oba arduino musiałaby mieć zarówno nadajnik RF jak i odbiornik RF, bo z czujników dane musiałaby wracać do tego drugiego i być przesyłane przez Bluetooth do telefonu, no a te pierwsze arduino musi mieć odbiornik RF, żeby otrzymać komendy do sterowania pojazdem od tego drugiego, więc to może nie aż tak drogie rozwiązanie, bo te moduły są po 5 zł, ale mobilność staje pod znakiem zapytania, no bo z telefonem trzeba by nosić drugie arduino.

No i ja mam w planach mieć w tym pojeździe kamerę, która będzie streamowała obraz na żywo, więc będę musiał skorzystać z Rasberry Pi lub innego mini komputera (Onion Omega może), więc trochę wyszedłbym na bananowe dziecko korzystające z gotowych modułów/Arduino/Rasberry itd. - ale mam w planach zrobić własną płytkę/nakładkę na Arduino wraz z modułem do komunikacji/czujnikami oraz pomiarem napięcia, mostkiem do sterowania silnikami, więc tragedii aż takiej nie będzie.

3. No akurat nie mogę zmienić sposobu sterowania, bo temat pracy nie jest mój, tylko pochodzi z listy tematów i brzmi dokładnie tak "Sterowanie obiektem mobilnym za pomocą aplikacji Android".

Także poszukam lepszego modułu Bluetooth (jeśli jakiś znajdę), kupię też moduł WiFi napiszę program z podobną funkcjonalnością co ten Bluetooth i porównam zasięg, jeśli będzie gorszy lub podobny to zostanę przy tym module Bluetooth co mam. Bo do końca tygodnia chcę napisać już prostą aplikację, która pozwoli na połączenie w tym momencie Bluetooth z modułem WiFi wysyłanie komunikatów (zapal diodę) i odebranie danych z czujnika temperatury + wilgotności, a przed rozwinięciem tej aplikacji do sterowania już samym pojazdem muszę już konkretnie wiedzieć czy będzie to Bluetooth/ czy WiFi, bo struktura aplikacji jest kompletnie inna w przypadku obu tych rodzajów komunikacji.

PS. I ogólnie też z tego wszystkiego to najwięcej czasu pochłonie właśnie napisanie samej aplikacji na Androida i tym chcę zabłysnąć właśnie, chcę żeby była naprawdę dopracowana to znaczy, poza samym sterowaniem żeby w ładny sposób prezentowała dane z czujników. Więc muszę w przeciągu tygodnia zdecydować się na dane rozwiązanie sprawy komunikacji, bo temat inżynierki był przewidziany na 2 osoby, bo faktycznie jest sporo rzeczy do zrobienia, najwięcej z aplikacją, ale myślę, że dam radę.

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

W opcji z mostkiem chodziło mi prawie dokładnie o to, co napisałeś, tylko zamiast odbiornika i nadajnika RF myślałem po prostu o jakimś transceiverze (transmitter/receiver), czyli module, który potrafi nadawać i odbierać na zmianę, czyli na przykład nRF24L01+.

Widzę, że plany masz ambitne, więc jako odrobinę starszy student, który ledwo co skończył magisterkę, postaram się trochę ostudzić Twój zapał.

Po pierwsze semestr wbrew pozorom jest całkiem krótki, a oprócz samego programu i robota, musisz jeszcze zrobić przegląd literatury, napisać pracę i ją poprawić zgodnie z wizją promotora. To jest całkiem czasochłonne, a co gorsza męczące. Kod pisze się fajnie, ale tekst już nie bardzo.

No i ja mam w planach mieć w tym pojeździe kamerę, która będzie streamowała obraz na żywo, więc będę musiał skorzystać z Rasberry Pi lub innego mini komputera (Onion Omega może), więc trochę wyszedłbym na bananowe dziecko korzystające z gotowych modułów/Arduino/Rasberry itd. - ale mam w planach zrobić własną płytkę/nakładkę na Arduino wraz z modułem do komunikacji/czujnikami oraz pomiarem napięcia, mostkiem do sterowania silnikami, więc tragedii aż takiej nie będzie.

Obraz fajny bajer, ale to w zasadzie osobną inżynierkę mógłbyś z tego zrobić. Zamiast tego możesz po prostu w swojej aplikacji na Androidzie zasymulować jakieś wejście (chociażby odtwarzać film).

Na swoją magisterkę dopiero co robiłem sieć mesh opartą o Arduino i nRF24L01+ (za dwa tygodnie mam obronę😉), także doświadczenie z tym radiem pewne mam. Zaletą jest to, że jest cholernie tanie i ma w sumie sporą przepustowość w porównaniu z innymi dostępnymi powszechnie transceiverami. Dodatkowo jest przyzwoity sterownik dla Arduino (chociaż warto najpierw dokładnie przeczytać dokumentację samego modułu). Wady są i to całkiem istotne, mianowicie to radio czasem nie działa, jakby się spodziewało i zazwyczaj są to problemy bardzo subtelne, typu: wysyłam wiadomość, 3 radia odbierają ją poprawnie, a 4. już nie. Wiele moich problemów okazało się związanych z zasilaniem, bo korzystałem ze stabilizatora z Arduino. Z drugiej strony myślę, że w przypadku alternatyw problemów będzie tyle samo albo i więcej.

Dodatkowo, jak zależy Ci na zasięgu, to chyba to: http://electropark.pl/moduly-komunikacji/5569-modul-nrf24l01palna-wraz-z-antena-2-4ghz.html może Ci dać największy z zasięg ze wszystkiego, co jesteś w stanie kupić w miarę szybko i tanio.

Link do komentarza
Share on other sites

Obraz fajny bajer, ale to w zasadzie osobną inżynierkę mógłbyś z tego zrobić. Zamiast tego możesz po prostu w swojej aplikacji na Androidzie zasymulować jakieś wejście (chociażby odtwarzać film).

Dodatkowo, jak zależy Ci na zasięgu, to chyba to: http://electropark.pl/moduly-komunikacji/5569-modul-nrf24l01palna-wraz-z-antena-2-4ghz.html może Ci dać największy z zasięg ze wszystkiego, co jesteś w stanie kupić w miarę szybko i tanio.

Nie mam już ochoty na większy zasięg, bo napisałem już prostą aplikację 3 przyciski LED ON/ LED OFF/ CZUJNIK -> każdy z nich wysyła przez bluetooth do Arduino inną komendę ('0' - LED OFF, '1' - LED ON, '2' - DATA FROM HUMIDITY SENSOR) i wyświetla w TextBoxie feedback z Arduino, czyli no np. Dioda zapalona, Dioda wyłączona, No i dane z czujnika postaci Wilgotnosć x % Temperatura x *C i pozwala też na wysłanie dowolnej komendy do Arduino wpisując ją w EditTextBoxa - wygląda tak: 1.jpg

Oczywiście nie oddam takiego czegoś na inżynierkę, bo promotor by mnie wyśmiał i spytał czy upadłem na głowę, ale chodzi mi o to, że po prostu załatwiłem już sprawę komunikacji przez Bluetooth i nie zamierzam jej zmieniać na inny sposób, bo to wymagało by znów nauczenia się obsługi tego w Android Studio.

___________________________________

I właściwie dziś wybieram podwozie do swojego pojazdu, (arduino, moduł Bluetooth, ten jeden czujnik i L298N mam) i jak podwozie przyjdzie to chcę po prostu żeby na rozpoczęcie semestru no już mieć jeżdżący samochód sterowany przez Bluetooth tj. no po prostu rozbudować trochę tą aplikację, właściwie będę musiał tylko dopracowywać ją od strony wizualnej, przedstawiania danych z czujników, no bo warstwa komunikacji jest załatwiona i pokazać to promotorowi.

Wybrałem te podwozie na stronie producenta jest za 39.90$, ale za wysyłkę do PL liczą sobie 20$, a na tej stronie wysyłka paczkomatami to 11 zł, w zasadzie sam nie wiem czy nie przepłacam za podwozie, ale jak będę chciał tą kamerkę z maliną albo jakiś prosty manipulator, to ta górna platforma się przyda -> https://kamami.pl/podwozia-dfrobot/198858-pirate-4wd-platforma-mobilna-dfrobot-rob0003.html

Tylko żeby mnie nie wyśmiał albo się nie przyczepił, że no co Pan robi arduino używa gotowy jeszcze L298N, wszystko na gotowca, może by się Pan pokusił o coś własnego.

A dlaczego sądzisz, że streamowanie obrazu z kamery przez Rasberry Pi to na osobną inżynierkę, z tego co widziałem wykorzystuję się MPJG Streamer i obraz z kamery trafia na serwer HTTP no i po prostu musiałbym go wykaraskać z serwera do swojej aplikacji na na androida?

No chyba, że promotor zgodzi się bez kamerki, czyli tylko samo sterowanie kierunkiem jazdy pojazdu przez multitouch'a oraz akcelerometr (przechylanie telefonu), do tego ładna prezentacja danych z czujnika jak np. w aplikacjach pogodowych no i moduł GPS, czyli wyświetlanie pozycji na tej mapie z Google Maps (choć to trochę taki przerost formy nad treścią, bo komu potrzebna jest pozycja pojazdu, który ma moduł Bluetooth z zasięgiem +/- 20 metrów, kiedy dokładność GPS to +/- 5 metrów zależy jeszcze jakiego)

PS: A i nie zrozumiałem co miałeś na myśli pisząc o tym, żebym w swojej aplikacji zamiast obrazu z kamery zasymulował wejście np. odtwarzając filmy? Co to ma wspólnego z moim tematem pracy "Sterowanie obiektem mobilnym za pomocą aplikacji Android" 😃

__________

Komentarz dodany przez: Treker

Link do komentarza
Share on other sites

Nie wiem jakiego masz promotora, ale raczej to mało dydaktyczne, żeby miał się z czegokolwiek śmiać w Twoim rozwiązaniu. Jak uzna coś za zbyt prymitywne, to po prostu powinien zasugerować, że powinieneś to zmienić i tyle.

Jeśli chodzi o obraz z kamery, to nie jestem w tej dziedzinie ekspertem. MJPG streamer pewnie zadziała, pytanie ile da się klatek z czegoś takiego wycisnąć i jakie jest opóźnienie. No i czy uda się taki obraz przepchnąć przez bluetooth?

Link do komentarza
Share on other sites

Nie wiem jakiego masz promotora, ale raczej to mało dydaktyczne, żeby miał się z czegokolwiek śmiać w Twoim rozwiązaniu. Jak uzna coś za zbyt prymitywne, to po prostu powinien zasugerować, że powinieneś to zmienić i tyle.

Jeśli chodzi o obraz z kamery, to nie jestem w tej dziedzinie ekspertem. MJPG streamer pewnie zadziała, pytanie ile da się klatek z czegoś takiego wycisnąć i jakie jest opóźnienie. No i czy uda się taki obraz przepchnąć przez bluetooth?

Co do streamowania obrazu znalazłem takie rozwiązanie i działa -> https://www.forbot.pl/forum/topics38/lifehack-jak-zastapic-rasberry-pi-z-kamera-streamujaca-obraz-na-telefon-android-streamujacy-obr-vt14670.htm

A rodzaju komunikacji już na bank nie zmienię, bo już napisałem kilka modułów mojej aplikacji i jest oparta na Bluetooth, więc nie ma mowy o zmianie 😋

A co do robota, to dziś przyszło podwozie, złożyłem, jutro wstawię temat z relacji z tego jak wygląda na dziś dzień, wstawię zdjęcia, film.

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.