Raspberry Pi vs. Arduino ADK (mit Telefon-Tethering)

Ich habe im nächsten Jahr einige Nachforschungen für mein Abschlusssteinprojekt angestellt. Im Grunde ist es ein autonomer Rover, der dazu bestimmt ist, Außenbereiche zu erkunden und Videos/Bilder an eine Website zurückzusenden.

Bisher umfasste unser ursprüngliches Design für das Steuerungssystem Arduino ADK, das mit einem Android-Telefon verbunden war. Das Telefon soll das Gehirn sein und wir können alle damit verbundenen Sensoren verwenden, während das Arduino zur Steuerung der Motoren und für Echtzeit-Feedbacks verwendet wird. Wir verwenden dafür ein Telefon, weil einzelne Komponenten wie GPS, Mobilfunkmodul usw. für Arduino uns am Ende viel mehr kosten werden. Für die Kommunikation werden wir aufgrund der großen Reichweite das Mobilfunknetz des Telefons verwenden.

Unserem Professor gefiel die Idee, aber er schlug vor, dass wir uns mit der Verwendung eines Himbeer-Pi anstelle von Arduino befassen sollten, damit wir einige Programme und Hardware (Analyse/Datenprotokollierung) verwenden könnten, die für Linux gedacht sind, um dem Projekt einen praktischeren Zweck zu geben die Zukunft. Machen Sie im Wesentlichen das RPi zum Gehirn und verwenden Sie einfach die Sensoren am Telefon, um Daten zu liefern.

Ich bin nicht so erfahren mit Rpi, also bin ich mir nicht sicher, wie sich die Dinge entwickeln werden. Deshalb habe ich ein paar Fragen: - Kann ein Android-Telefon mit dem Rpi verbunden werden und es einfach als 3G-Modem verwenden und die Daten der Onboard-Sensoren verwenden? - Obwohl RPi nicht für Echtzeitfunktionen gedacht ist, welche Art von Verzögerung ist davon zu erwarten? Wenn es weniger als 100 ms ist, denke ich, dass es in Ordnung sein sollte. -Obwohl die Anzahl der GPIO auf dem RPi begrenzt ist, kann sie verwendet werden, um eine Motorsteuerung zu betreiben? Es kann auch mit einem einfachen Arduino Uno gekoppelt werden, das wiederum die Motorsteuerung haben kann, aber wird es eine Verschwendung von Ressourcen sein?

Ich bin noch am recherchieren und werde in Zukunft noch viele Fragen haben. Für den Anfang reichen diese Noob-Fragen aus.

Sie können sich auch den neuen Beaglebone Black ansehen. Ähnlicher Preis wie der RPi und läuft auch unter Linux, hat aber mehr GPIO.
Ich habe es mir gerade angesehen, wusste nicht, dass sie kürzlich eine billigere Version herausgebracht haben. Das trägt zu meiner Verwirrung bei! RPi hat eine größere Community, die es unterstützt, was sich als nützlich erweisen könnte. Kann man also in Bezug auf die Software sagen, dass alles, was für RPi gedacht ist, auch für BeagleBone gilt?
Generell würde ich ja sagen. Beide laufen unter Linux und haben Bibliotheken zur Unterstützung der Hardware. Schauen Sie sich die Projektseite an , um zu sehen, was die Leute damit machen.
Ihre Fähigkeit, ein Telefon mit dem Pi zu verbinden, wäre die gleiche wie Ihre Fähigkeit, dieses Telefon mit einer Desktop-Linux-Box zu verbinden, da AFAIK alle Android<->Linux-Implementierungen Open Source und daher für Arm-Linux neu kompilierbar sind. ADB, Tethering, ADK-Protokollimplementierung usw. sind also alle auf dem Tisch, abhängig von den Details des Telefons und Ihren Wünschen.
Das Projekt umfasst auch den Betrieb mehrerer Hochleistungs-Gleichstrom-/Schrittmotoren und Aktuatoren. Nach dem, was ich bisher gelesen habe, ist das Hinzufügen eines Motorcontrollers zu RPi (oder Beagle-Board) nicht so einfach / zuverlässig wie ein Arduino. Ich kann ein Arduino an sie anschließen, aber ich frage mich nur, ob ich zu viel potenzielle Rechenleistung für alle 3 Systeme (Android, RPi und Arduino) verschwende

Antworten (1)

Ein Pi ist in der Tat keine wunderbare Lösung für die Motorsteuerung - als eingebettetes Linux-Gerät ist es nicht ideal für die Echtzeitsteuerung, und als eines, das von einer SD-Karte für ein Root-Dateisystem abhängt, ist es notorisch zerbrechlich, insbesondere bei unerwartetem Stromausfall kann ein Problem sein. Da es eher auf einer Set-Top-Box als auf einem mobilen SoC basiert, fehlen ihm auch die meisten Leistungssteuerungsfunktionen, die man von einem batteriebetriebenen System erwarten würde.

Aber USB-Host mit einem Arduino zu machen ist auch keine gute Idee - der Host-Chip kostet am Ende mehr als Ihr Hauptmikrocontroller.

Wenn Sie die ADK-Idee mit dem externen Gerät als Host beibehalten möchten, schauen Sie sich etwas wie einen STM32F4 oder KL25Z als kostengünstigen eingebetteten USB-Host an (die STM Nucleo-Boards kosten im Bereich von 11 US-Dollar, obwohl die USB-Signale nur auf Stiftleisten vorhanden sind). statt USB-Anschluss)

Eine andere Möglichkeit besteht darin, die Dinge umzudrehen und das Telefon als Host mit dem eingebetteten Prozessor als Gerät zu verwenden. Dies ist in gewisser Weise vernünftiger und kann Sie wieder in das Gebiet von Arduino versetzen, bedeutet jedoch, dass Sie entweder eine Möglichkeit finden müssen, das Telefon dabei mit Strom zu versorgen, oder am Ende den Akku entladen.

Für eine einfache Motorsteuerung lohnt es sich auch, modulierte Signale über die Kopfhörerbuchse laufen zu lassen.

(Mir ist bewusst, dass dies eine alte Frage ist, aber sie ist nicht besonders veraltet. Vielleicht können wir sie mit einer Antwort zurückziehen, damit sie nicht wieder in der automatischen Abwanderung sprudelt).