2011-08-02 19 views
13

Czy istnieje dobry samouczek dotyczący używania Arduino z systemem Android, na którym urządzenie z Androidem jest hostem USB? (Urządzenie z systemem Android ma system operacyjny w wersji 3.1 (Honeycomb) lub nowszy). Jedynym programem na stronie dewelopera jest wyrzutnia pocisków, co wydaje się dużo prostsze niż nawiązanie współpracy z Arduino.Używanie trybu hosta 3.1 dla USB z Arduino

Dodatkowo: Próbuję zrobić hosta Asus Transformer Arduino Uno, ale ponieważ jest bardzo mało informacji na temat jak działa tryb hosta Android , gubię gdzie zacząć. Po prostu potrzebuję Androida, aby móc odczytać wartości danych z pamięci Arduino. Arduino jest używane do zliczania częstotliwości sygnału, wartość ta musi następnie zostać przekazana do systemu Android. Jeśli przegapiłem jakiś prosty sposób, aby to zrobić, daj mi znać.

(Istnieje wiele informacji pływających wokół na temat korzystania z ADK aby Arduino hosta, ale z transformatorem, że nie wchodzi w grę. - patrz przepełnieniem stosu   pytanie Is it possible to get the Android ADK working on an ASUS Eee Pad Transformer running 3.1?

informacje nie muszą być specyficzne dla Transformera lub Uno, po prostu nie mogę znaleźć przykładów osób używających trybu hosta na swoich tabletach.

+0

Na dłuższej perspektywie ... możliwe jest wdrożenie protokołu Android Debug Bridge na stronie Arduino. Arduino może następnie wysyłać dane przy użyciu przekazywanego portu UDP lub TCP, który jest odbierany przez gniazdo wewnątrz aplikacji. W ten sposób urządzenie pozostaje w trybie USB slave, dostępnym również dla starych urządzeń. – dronus

+1

@dronus - wadą metody ADK/ADB nawet dla tabletu, który prawdopodobnie nie spodziewa się zasilania magistrali, jest to, że to akcesorium wymaga droższego interfejsu hosta USB. –

Odpowiedz

0

Ponieważ Arduino używa konwertera USB na RS232, Tryb hosta Port USB zwykle wymaga sterownika modułu jądra do implementacji sterownika szeregowego. Zazwyczaj FTD Używam chipu, moduł może mieć nazwę ftdi_sio. Tak więc na niskim poziomie, jeśli tryb hosta USB jest włączony, system może udostępnić urządzenie/dev/ttyUSB0 za pomocą tego modułu. Ale jest to bezużyteczne, ponieważ jest ukryte przed aplikacją, chyba że działa na zrootowanym urządzeniu. Tak więc myślę o abstrakcyjnym abstrakcji ADK.

2

Urządzenie arduino uno upuszcza FTDI lub podobny układ USB-rs232 używany w poprzednich projektach na rzecz przeprogramowanego interfejsu USB opartego na stosie LUFA.

Przy normalnym systemie Linux używałbyś sterowników USB CDC - więc pytanie brzmi, czy tablet z plastrem miodu jest dostarczany z tymi.

Wydaje się, że Honeycomb USB host support umożliwia pisanie niskopoziomowych sterowników USB w aplikacjach na Androida w aplikacjach innych firm, więc prawdopodobnie funkcja ta nie znajduje się jeszcze w kernelu i mogłaby zostać dodana w przestrzeni użytkownika.

Inną ideą jest zmiana instalacji LUFA na arduino, rekonfiguracja jej na jeden z wielu innych trybów obsługiwanych przez projekt LUFA, dzięki czemu wygląda na to, że niezmodyfikowany tablet o strukturze plastra miodu już wie jak z nim rozmawiać, na przykład napęd pamięci masowej, klawiaturę lub mysz itp. Może się jednak zdarzyć, że będziesz potrzebować dostępu na poziomie root-a na tablecie o strukturze plastra miodu, jeśli chcesz uzyskać dostęp do tego urządzenia na niskim poziomie (zwłaszcza do zapisu).

1

Jeśli chcesz po prostu znaleźć kilka przykładów aplikacji, które korzystają z funkcji hosta USB, najlepiej jest użyć czegoś podobnego narzędzia codesearch google, a szukać niektóre z USB Host poszczególnych klas/uprawnienia/zamiary

na przykład poszukiwanie android.hardware.usb.action.USB_DEVICE_ATTACHED sprowadza się do następujących zastosowań:

2

Mamy Communcations FTDI pracuje bez sterownika jądra, przy użyciu tego kodu: http://android.serverbox.ch/?p=370

pamiętać, że Samsung Galaxy Tab 10.1 wydaje się brak odpowiedniego kodu USB do nawet wykryć urządzenia USB (oprócz myszy, klawiatury, hub i storage, które są wykrywane przez system operacyjny i nie są przekazywane do aplikacji).

Jednak pracowaliśmy nad Acerem A500.

Powiązane problemy