Sind wir an den Arduino gebunden?

stm

New member
Schönen guten Abend zusammen!
Habe eben bisschen nach Einplatinencomputern gesucht (@alex: Octoprint ;) )
Mittlerweile gibt es sehr günstige, aber kräftige Boards in dieser Richtung...
Zum einen den RPi Zero, Orange Pi Zero und den Arduino MKR1000.
Alle davon sind mit WLAN zu haben, was die Möglichkeiten quasi endlos erweitert, die der "Ardumower" haben könnte.

Der Name Ardumower impliziert ja, dass hier die Marke "Arduino" Hauptbestandteil ist.

Ein paar Fragen die mir dabei durch den Kopf gingen:
Sind wir fest an den Arduino gebunden?
Welche Möglichkeiten hätten wir mit einem der ogn. Boards?
Was kann verbessert werden?
Was wäre effizienter zu lösen?
Wo haben wir Vorteile / Nachteile ?
Wo haben Entwickler Vorteile?
Wäre mehr Präzision möglich?


Wäre nett, wenn jemand mit Entwicklerbackground hierzu kurz mal ein paar Zeilen in die Tastatur tippt..


Grüße,

Stephan
 
Hallo Stephan,

wenn ein Board einen I/O Pin (GPIO) hat heisst das noch lange nicht dass man damit sämtliche Hardware ansteuern kann. Es gibt analoge Pins, PWM-Pins, digitale Pins, Pins mit Interrupt-Funktion, I2C, SPI, serielle Pins, ... einige Anwendungen im Ardumower brauchen dann noch ADC-Sampling oder sogar besser noch DMA-Transfer usw. - Das ist die Hardware-Seite. Die andere Seite (Software) entscheidet ob so ein Pin überhaupt mit der benötigten Funktionalität angesprochen werden kann.

Prinzipiell kann man sagen je moderner eine CPU (hier meine ich wirklich die gesamte Bandbreite von 16 Mhz bis zum Quad Core) umso schwieriger ist die Hardware und Software für die benötigte Anwendung anzusprechen. Bei modernen CPUs muss man Kernel-Treiber entwickeln um bestimmten Anwendungen umzusetzen (ADC-Sampling, DMA...). Weiterer Nachteil: Bei modernen Einplatinen Computern werden oft nur wenige GPIO Pins nach "aussen" geführt.

Wir sind an keinen Arduino gebunden aber er vereinfacht den Hardware-Zugriff enorm. Also:

Vorteile einer modernen CPU:
Viel und schneller Arbeits-Speicher, es lassen sich sehr große Mengen von Daten schnell verarbeiten - ideal für "höhere" Aufgaben wo viele Daten anfallen wie z.B. Kartenverarbeitung, Navigationsalgorithmen, WLAN-Server Benutzerinterface, Kamera-Bilddatenverarbeitung usw.

Nachteile einer modernen CPU:
Hardware-Zugriff schwierig, bei Einplatinen-Computern oftmals nur wenige Pins nach aussen geführt

Die Kombination aus 2 CPUs dürfte so etwas wie das beste aus beiden Welten darstellen. Wir probieren ja schon verschiedenes in dieser Richtung aus (z.B. Ardumower PCB mit Mega/Due an Raspberry PI).

Gruss,
Alexander
 
Da stimme ich Alex voll zu.
Es gibt keinen Grund an einen Arduino gebunden sein, wir werden ja nicht gespnsortn ;)
ABER der GPIO's sollten schon leicht ansprechbar sein.

Aus deinen Beispielen :

Arduino MKR1000 dürfte zu wenig IO Pins haben.
Bei den Pi ist das mit den IO Ports auch so eine Sache, wobei wir dann wieder beim Thema externe Module währen und
er braucht in BS. Die gesammte software muss neu aufgesetzt werden.

Am vielversprechendsten scheinen mir zur Zeit Arduino Due, Otto (wenn mal verfügabr) oder der TC275 zu sein. Aber auch beim TC275 schein die Umsetzung der Software nicht so einfach zu sein.
 
Hi Stephan,


StephanM schrieb:
Mittlerweile gibt es sehr günstige, aber kräftige Boards in dieser Richtung...
Zum einen den RPi Zero, Orange Pi Zero und den Arduino MKR1000.

meines Erachtens haben die modernen CPUs nur Vorteile, sie sind schneller haben echtes USB und vom Preis- Leistungsverhältnis (der PI Zero kostet nur 5 Euro!) sind sie sowieso unschlagbar. Ich beobachte gerade dass man sich hier kompatible Mehrleistung sehr teuer erkauft und kann mir nicht wirklich erklären warum. Das Argument der fehlenden I/O Pins kann ich auch auf den Mega/Due und Co. anwenden, denn auch hier haben wir nicht unendlich freie Ports zur Verfügung. Ich wünsche mir z.B. eine Spannungsüberwachung aller Spannungsquellen und der Uhrenbatterie. In der aktuellen Version müssen die Spannungen per Jumper (Voltage messurement) ausgewählt werden und die Uhrenbatterie wird gar nicht überwacht. Wenn ich mir die freien ADCs des Arduino anschaue scheint da nicht mehr viel frei zu sein. Es wird also immer ein Pin fehlen. Was das ansprechen der I/O Pins angeht ist das genauso einfach wie bei Atmel und Co. denn auch für den RasPI gibt es inzwischen unendlich viele Bibliotheken die einem das Leben einfacher machen.

Einen Wehrmutstropfen hat so ein Wechsel natürlich immer, und da kann ich Alexander bestens verstehen! Die Software lässt sich nicht einfach 1:1 auf ein anderes System portieren und so steht erstmal einiges an Arbeit an bevor man wieder an dem Punkt ist den man hier schon erreicht hat. Auch werden sich wahrscheinlich erst mal neue Fehler einschleichen die man dann erneut beheben muss. Ich für mich habe beschlossen dass es die Arbeit Wert ist und werde versuchen die Software auf einen RasPI Zero zu portieren. Viele Dinge WLan, Bluetooth, Kartenpeicher, Kamera u.v. mehr bekommt man bei einem RasPI ja quasi kostenfrei mitgeliefert und so denke ich dass am Ende weniger Arbeit anfällt als das alles mühsam über Umwege zum laufen zu bekommen. Aber das ist nur meine Meinung, die noch nicht mal mit einem funktionierenden System untermauert ist. Wenn dann irgendwann meine Platinen endlich mal hier eintreffen :( kann ich vielleicht auch über reale Erfahrungen berichten. Noch ist das alles eine rein geistige Machbarkeitsstudie und ich hoffe die Fehlersuche beginnt nicht schon bei den Platinen. :whistle:

VG
Rajiva
 
Zuletzt bearbeitet von einem Moderator:
Das ist ein interessantes Thema.
Vielleicht ist es jetzt etwas besser verständlicher und nachvollziehbarer zur geplanten Platinen Serie Sunray bzw V3.0.
Dort versuchen wir bestimmte Bereiche auszulagern (Bumperduino, Radaruino, Motortreiber, Spannungsaufbereitung und Abschaltung usw)mit einem eigenen Board wenn möglich auf Arduino Basis. Das soll es dann auch später erleichtern und vereinfachen auch mal eine andere Masterplatine Otto, Due, STM, PI oder dergleichen "schnell" einzusetzen ohne das die einzelnen Platinen in der Mülltonne landen.

Gruß
Uwe
 
Was den Raspberry betrifft: die meisten richtig schnellen CPUs haben nicht mal einen ADC :) - Jetzt könnte man z.B. einen externen ADC-Baustein für den Raspberry nehmen oder man nimmt gleich einen Arduino und deckt damit schon mal eine Menge Hardware-Interfaces ab. Ein Mega2560 kann also recht viel für die "letzte Meile" liefern was man sonst mit vielen kleinen externen Platinen zusammenstückeln müsste...
 
Hi Alexander,


AlexanderG schrieb:
Was den Raspberry betrifft: die meisten richtig schnellen CPUs haben nicht mal einen ADC :)

das stimmt so nicht ganz, auch der RasPI hat ADCs! Die will man nur nicht so ohne weiteres verwenden weil die auch vom Kamerainterface verwendet werden und man so das Kamerainterface verlieren würde. Und wer will das schon bei einem so mächtigen Videoprozessor wie in der RasPI eingebaut hat. ;)


Jetzt könnte man z.B. einen externen ADC-Baustein für den Raspberry nehmen oder man nimmt gleich einen Arduino

Ja, der Arduino Mini (Stückpreis 2 Euro) drängt sich da gerade zu auf. Für den Preis gibt es noch nicht mal einen ordentlichen ADC Baustein, von der Flexibilität und den zusätzlichen Möglichkeiten des Arduino Mini gar nicht erst zu sprechen.

Viele Grüße
Rajiva
 
Zuletzt bearbeitet von einem Moderator:
Dann würde es sich doch anbieten, das Board mit einem mega/Due als Schnitstelle auzustatten und die arbeit von ein Pi machen zu lassen ?
 
Klingt gut (ich würde es sogar universeller beschreiben: die Arbeit von einem "externen Gerät" machen zu lassen) - lasst uns das als optionale "Erweiterung" umsetzen (damit die Leute es Schrittweise nachbauen können), d.h. als nächstes kommt ein Software-Steuerungs-Interface in die Ardumower Arduino-Software mit Befehlen so dass man ihn sinnvoll von außerhalb steuern kann. Externe Geräte können dann diese Befehle benutzen um den Roboter zu steuern.
 
Oben