Wie schreibe ich eine Arduino-Skizze und eine Android-Anwendung, um über ein Standard-USB-Kabel miteinander zu kommunizieren?


Antworten:


6

Android-Geräte haben normalerweise keinen USB-Host: Sie erwarten, dass sie mit einem intelligenteren Gerät wie Ihrem Computer verbunden sind. Gleiches gilt für Arduino. Aus diesem Grund hat Arduino das Mega ADK (das heißt Accessory Development Kit ) hergestellt.

Mega ADK und Due fungieren als USB-Hosts und können direkt mit Ihrem Android-Telefon verbunden werden. Wenn Sie bereits eine Karte haben, können Sie auch ein USB-Host-Shield erwerben, um USB-Host-Funktionen hinzuzufügen.

Ihre Skizze teilt dem Telefon mit, um welche Art von Zubehöranwendung es sich handelt, und Ihr Telefon lädt die entsprechende Anwendung aus dem Store herunter.

Es gibt ein Buch über die Verbindung von Arduino mit Android .


Es gibt Konverter von Mini-USB zu USB-A-Host.
Apnorton

@anorton Ja: das sind OTG-Kabel ... siehe meinen Beitrag.
Anonymer Pinguin

Die Prämisse dieser Antwort wurde Jahre veraltet , bevor es veröffentlicht wurde - die meisten zeitgenössischen Android - Geräte wurden bestimmt USB - Host - Unterstützung zu haben, aber es gibt Fälle , in denen einige Marotte der Design - Blätter es gebrochen.
Chris Stratton

3

Sie haben Ihr Tablet-Modell oder Arduino-Modell nie erwähnt

Es gibt einige Tablets, die für USB-Flash-Laufwerke und -Drucker ausgelegt sind. Dies nennt man OTG (unterwegs).

Du brauchst:

  • Ein Tablet, das OTG unterstützt
  • Ein OTG-Adapter, der in den USB-Steckplatz Ihres Tablets passt und kompatibel ist
  • Die Arduino Uno Communicator App
  • Arduino Uno (oder Klon) [Hinweis: Es heißt, dass es mit Atmega16U2 oder Atmega8U2 funktioniert, die als USB-zu-Seriell-Konverter programmiert sind. Ich würde also davon ausgehen, dass dies einige Boards mehr abdeckt als das Uno.)

Eine andere Alternative ist das Betrachten von Bluetooth (Hinweis: Ich habe gerade einen zufälligen Link ausgewählt, aber es gibt Hunderte ähnlicher BT-Adapter).


Beachten Sie, dass der Standard-Android-USB-Host-Modus keine Flash-Laufwerke mit Betriebssystemfunktionen unterstützt (obwohl dies einige Hersteller-Builds tun), sondern eine ziemlich rohe USB-Host-API dem Anwendungscode aussetzt.
Chris Stratton

2

Das USB-Protokoll erfordert, dass ein Ende ein "Host" und das andere Ende ein "Peripheriegerät" ist, und es funktioniert nicht, wenn die Geräte an beiden Enden des Kabels "Peripheriegeräte" sind. Leider sind die meisten Arduinos und viele frühe Android-Geräte "Peripheriegeräte", sodass das Anschließen solcher Geräte mit einem Standard-USB-Kabel nicht funktioniert.

Einige moderne Android-Geräte unterstützen "OTG", so dass man theoretisch das Android-Ende des Kabels zum "Host" machen könnte. Hat jemand das zum Laufen gebracht?

Ein anderer Ansatz besteht darin, das Arduino-Ende des Kabels irgendwie zum "Host" und das Android-Ende des Kabels zum "Peripheriegerät" zu machen. Das ist der Ansatz von

(Die Amarino (a) und Cellbots (a) (b) verfolgen einen weiteren völlig anderen Ansatz).


1

Die Verarbeitung ist ein großartiger Ort, um mit der Kommunikation von Gerät zu Gerät zu beginnen.

Die Benutzeroberfläche und die Sprache sind Arduino sehr ähnlich und es gibt viele Beispiele, die Ihnen den Einstieg erleichtern.

http://playground.arduino.cc/Interfacing/Processing


2
Läuft das auf Android?
Anonymer Pinguin

@AnnonomusPerson Ja, Verarbeitung für Android
Faux_Clef

@Faux_Clef Hmm wusste das nicht. Ich weiß immer noch nicht, ob es das Beste für Android ist. Der von Ihnen gepostete Link schien nicht sehr stabil zu sein. Ich weiß, dass die Verarbeitung USB-Unterstützung bietet, aber ich weiß nicht, ob Sie dies unter Android tun können ...
Anonymer Pinguin

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.