Skocz do zawartości

Komunikacja AVR z Androidem


TomXV

Pomocna odpowiedź

Witam,
Czy zna ktoś jakiś sposób w jaki możne połączyć układ z AVR Atmega do tabletu z Androidem. Na razie dopiero uczę się programować aplikacje na Androida, a w przyszłości chciałbym sterować robotem z tabletu.

Na początek chciałbym napisać aplikacje zapalającą diody na avr, ale google nie daje żadnych rozwiązań.

Link do komentarza
Share on other sites

Na pewno mógłbyś skorzystać z jakiegoś moduły Bluetooth, połączyć go z AVRem, a na Androidzie napisać specjalną aplikację która wysyłałaby odpowiednie komendy rozpoznawane przez mikrokontroler.

Link do komentarza
Share on other sites

wydaje mi się ,że bluetooth było by najlepszym rozwiązanie a zarazem nałatwiejszym,a moduły wcale nie są takie drogie (ok.60zł),bo z tego co mi wiadomo to żeby polączyć Uc z tabletem to twój tablet musialby posiadać funkcję hosta USB.

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

Dokładnie tak jak pisał kermit, tablet musiałby obsługiwać hosta USB, a z tego co wiem to taką opcje mają chyba tylko Samsungi, ale mogę się mylić. W dodatku kabel USB nie mógłby być dłuższy niż 5m, bo powyżej musiałby mieć dodatkowe zasilanie. Niedawno zostały stworzone jakieś płytki od Google które można było połączyć z Androidem. Może tym się zainteresuj...

Link do komentarza
Share on other sites

Jak poszukasz np na hackadayu to może uda ci się znaleźć jakieś próby połączenia androida z avrem po usb. Funkcja hosta usb z tego co się orientuje została dodana niedawno w jakiejś nowej wersji Androida. Jeżeli chodzi o inne standardowe możliwości połączenia to poza Bluetoothem masz jeszcze WiFi. Z kolei jeśli chodzi o sposoby niestandardowe - możesz pobawić się wyjściem audio i komunikować się za pomocą modulacji. Nie jest to proste i zapewnia mniejsze możliwości niż wifi czy bt ale na pewno jest tanie i możliwe do wykonania.

Link do komentarza
Share on other sites

Przez Wifi? Nie wiem jak ty chciałbyś podłączyć Wifi do AVRka, ale nawet gdyby Ci się to udało to musiałbyś użyć routera albo stworzyć punkt dostępu na tablecie. Jest to możliwe, ale chyba za dużo z tym zabawy 🙂

Link do komentarza
Share on other sites

No właśnie można stworzyć punkt dostępu na Androidzie, do avra dodać moduł wifi i wgrać odpowiedni soft obsługujący stos IP. Wifi spokojnie idzie na AVRach, w końcu można kupić nawet moduły do arduino, a do nich jest dołączona implementacja stosu IP od razu. Tak więc nie wiem w czym widzisz problem.

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

Najprościej jest użyć modułu BT - testowałem na HC-05 i działa bez problemu, ale na BTM-222 czy innych też powinno działać - podpinasz pod TX/RX w atmedze i smiga. Na androidzie masz terminal (bt term), albo możesz swoją aplikację napisać, w API masz normalnie dostęp do wirtualnego portu COM po BT, zresztą są tutoriale w internecie jak napisać taką aplikację.

Co do połączenia po USB to jest to jak najbardziej możliwe, ale wymagany jest specjalny układ - najłatwiej użyć oficjalnej płytki wspieranej przez google, a mianowicie Arduino Mega ADK (http://arduino.cc/en/Main/ArduinoBoardADK). Więcej informacji o ADK można znaleźć w dokumentacji androida: http://developer.android.com/guide/topics/usb/adk.html . Istnieją klony tych płytek (tak jak klony zwykłego arduino), np: http://www.seeedstudio.com/depot/seeeduino-adk-main-board-p-846.html ,
lub: http://iteadstudio.com/store/index.php?main_page=product_info&cPath=50_51&products_id=464 .

W Polsce możesz kupic taką płytkę np. tutaj:

http://arduinosolutions.com/index.php?route=product/product&path=47&product_id=258 (klon)

Lub oryginalna:

http://nettigo.pl/products/184

Jeśli masz arduino, lub chcesz je zbudować samemu (co sprowadza się do prostej operacji wrzucenia bootloadera do atmegi), to możesz kupic sam USB host shield:

http://nettigo.pl/products/194

http://arduinosolutions.com/index.php?route=product/product&filter_name=host&product_id=197

http://www.sparkfun.com/products/9947 lub tutaj:

http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino (to chyba pierwszy shield, na którym się opierało google tworząc ADK, zresztą na jego podstawie zrobiono arduino mega ADK. Na tej stronie masz też schematy, to możesz sobie zrobić sam jak chcesz, bo tam chyba tylko jeden scalak jest;)).

I oczywiście nieprawdą jest, że telefon musi posiadać USB HOST - może być dowolny.

Filmy:

Chyba, że w telefonie masz NFC (ale z androidem to ma chyba tylko nexus i note) to robiąc prostą antenę z drutu możesz się komunikować tak:

No ale tak jak mówię, najprościej użyć BT, tym bardziej, że taki układ kosztuje jakieś 35zł i działa bez żadnego problemu, co osobiście przetestowałem.

A co do Wi-fi na AVR to jak najbardziej możliwe - jak kolega wyżej wspomniał, są gotowe moduły do arduino, np: http://www.sparkfun.com/products/10822

P.S: Jeśli pomogłem, to pamiętaj, że możesz postawić "piwo", jeśli masz ochotę🙂

Link do komentarza
Share on other sites

MatManiak

Na ostatnim filmiku jest HTC Desire (mam dokładnie takiego samego 😉) on nie posiada takiego modułu, ale ma magnetometr w dokładnie tym miejscu gdzie leży ta cewka, więc myślę, że po prostu komunikacja odbywa się poprzez odczyt siły pola magnetycznego, czyli jest jednostronna.

Link do komentarza
Share on other sites

MatManiak

Na ostatnim filmiku jest HTC Desire (mam dokładnie takiego samego 😉) on nie posiada takiego modułu, ale ma magnetometr w dokładnie tym miejscu gdzie leży ta cewka, więc myślę, że po prostu komunikacja odbywa się poprzez odczyt siły pola magnetycznego, czyli jest jednostronna.

A, tak - faktycznie, Desire nie ma NFC, a to jest zrealizowane magnetometrem, tak jak napisałeś🙂 Komunikacja jest jednostrona oczywiście. No ale jak już wspomniałem o NFC, to oczywiście jest shield do arduino (a do czego nie ma? 🤯):

http://www.seeedstudio.com/depot/nfc-shield-p-916.html

lub w PL:

http://arduinosolutions.com/index.php?route=product/product&filter_name=nfc&product_id=247

🙂

Jak widać, możliwości jest wiele:) Można jeszcze użyć sygnału z minijack: http://www.sparkfun.com/products/10331, ale to raczej bez sensu na androida bo po pierwsze można taniej po BT lub kablu (ADK), a po drugie program byłby skomplikowany do kodowania/dekodowania audio. No ale wykonalne - na iphone i WP7 nie ma dostępu do wirtualnego portu COM po BT z poziomu API, ale jest dostęp do sygnału z mikrofonu, więc w tych systemach to jedyne rozwiązanie... Taka ciekawostka - technikę zdalnego sterowania za pomocą gniazda JACK wykorzystuje robot/pojazd rc/zabawka TankBot ( http://www.mydeskpets.com/tankbot/ ) 🙂

Link do komentarza
Share on other sites

Te płytki arduino są dosyć drogie; ja wybrałem inne rozwiązanie: IOIO Board (http://ytai-mer.blogspot.com/2011/04/meet-ioio-io-for-android.html), które kosztuje 55$ razem z wysyłką.

Przesyłka dopiero do mnie jedzie, więc niestety jeszcze nie mogę powiedzieć jak się spisuje w praktyce, ale recenzje innych użytkowników są bardzo pozytywne.

A tak w ogóle to dzień dobry 🙂

Link do komentarza
Share on other sites

Te płytki arduino są dosyć drogie; ja wybrałem inne rozwiązanie: IOIO Board (http://ytai-mer.blogspot.com/2011/04/meet-ioio-io-for-android.html), które kosztuje 55$ razem z wysyłką.

Przesyłka dopiero do mnie jedzie, więc niestety jeszcze nie mogę powiedzieć jak się spisuje w praktyce, ale recenzje innych użytkowników są bardzo pozytywne.

A tak w ogóle to dzień dobry 🙂

No fajna płytka, tylko że to na PIC jest, a koledze chodziło o atmegę, co napisał w pierwszym poście;)

Link do komentarza
Share on other sites

No fajna płytka, tylko że to na PIC jest, a koledze chodziło o atmegę, co napisał w pierwszym poście;)

Co racja to racja, ale ta płytka może służyć jako interfejs pomiędzy Androidem a AVRem. W końcu masz kilkadziesiąt pinów do dowolnego wykorzystania 🙂

Płytkę już dostałem, na razie połączyłem ją z ATTiny2313 poprzez I2C i wykorzystuję do wyświetlania logów z avra na ekranie telefonu. Daje mi to dużo większe możliwości niż komunikaty na LCD znakowym, a przy tym zużywa mniej pinów - tylko 2 na I2C (TWI).

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.