Einen Arduino als Controller verwenden?

Die Elektronik des c't-Bot
Antworten
VDX
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 293
Registriert: 26 Jan 2006, 22:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Einen Arduino als Controller verwenden?

Beitrag von VDX » 19 Okt 2012, 13:40

Hallo,

... da mir die Programmierung des c't-bots von Beginn an etwas umständlich und unübersichtlich vorkam, hatte ich mir schon ein paar mal überlegt, einen anderen Controller zu nehmen oder ein Funkinterface mit I/O-Platine draufzusetzen und die komplette Steuerung von einem Programm auf dem PC machen zu lassen ...

Gab's da in der Zwischenzeit etwas in der Richtung?

Aktuell würde sich der Arduino anbieten, da die Anbindung und Programmierung (bzw. Umsetzung der Sensor-Auswertung) sehr schnell gehen dürfte und die Verbreitung auch ziemlich 'flächendeckend' ist.

Ich selber habe mehrere unterschiedliche Arduinos und clones vom Nano bis zum Mega, USB/I2C-Displays und auch ein paar 'Funk-Brücken' da, aber keine große Lust, mir eine singuläre Insellösung aufzubauen :?

Viktor
Ciao, Viktor --- Aufruf zum Projekt "Müll-freie Meere" - https://reprap.org/forum/list.php?426

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Einen Arduino als Controller verwenden?

Beitrag von marvin » 19 Okt 2012, 15:13

Hallo Viktor,

das Thema Arduino kam mir auch schon in den Sinn, für eine neue Code Basis. Habe mich in den letzten Jahren ausgiebig damit beschäftigt. Der ATmega644/1284 funktioniert auf alle Fälle unter Arduino, auch der alte ATmega32 sollte gehen. Ich wäre auf alle Fälle dabei. Denkst du auch über ien neues Mainbaord nach?

Ein Smartphone als Steuer Prozessor wäre auch nicht schlecht.

Grüße Peter

VDX
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 293
Registriert: 26 Jan 2006, 22:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: Einen Arduino als Controller verwenden?

Beitrag von VDX » 19 Okt 2012, 15:24

Hi Peter,

für den Arduino sind 'shields' üblich, die auf die Pins aufgesteckt werden und alle zusätzlichen Komponenten beinhalten - für den c't-Bot würde sich eine passend gefräste runde Platine im c't-Bot-Formfaktor anbieten, die statt der jetztigen Controllerplatine aufgeschraubt wird und nach Unten hin die Stecker für die Sensoren und Motoren und nach Oben hin die Pin-Reihen zum Aufstecken des Arduinos hat.

Das Layout und Iso-Fräsen von ein paar Prototypen würde ich mir noch zutrauen, hab' leider immer nur sehr wenig Zeit am Stück übrig und noch jede Menge anderer wichtiger Projekte am Laufen :?

Wäre schön, wenn sich noch ein paar Andere mit passenden Interessen und Möglichkeiten zum Reaktivieren der community zusammenfänden ... mit einer moderneren Software-/Elektronik-Basis und hin zu autonomen Bots als 'Haushaltshilfen' (Staubsaugen, Rasenmähen, Spielen, ...) dürfte da noch (oder wieder) einiges an Potential vorhanden sein :wink:

Viktor
Ciao, Viktor --- Aufruf zum Projekt "Müll-freie Meere" - https://reprap.org/forum/list.php?426

tobi

Re: Einen Arduino als Controller verwenden?

Beitrag von tobi » 20 Okt 2012, 19:13

Hi,

warum wollt ihr denn eine neue Controllerplatine? Die ctBot-HW lässt sich doch auch so mit Arduino programmieren.

Wenn dann würd ich eher ne Erweiterung mit nem Controller der mehr Power und Speicher und so hat machen. Da gibts ja auch schon ne Entwicklung im Wiki.

Tobi

VDX
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 293
Registriert: 26 Jan 2006, 22:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: Einen Arduino als Controller verwenden?

Beitrag von VDX » 20 Okt 2012, 22:47

... die neueren Arduinos wären schon eine Erweiterung - mit dem Mega 2560 habe ich einiges mehr an Speicher und I/O-pins, als mit dem Original-System.

Außerdem gibts ein paar Entwicklungen um ARM-Chips und andere Plattformen, die auf Arduino-Kompatibilität setzen, aber mit deutlich schnelleren Prozessoren aufwarten können.

Viktor
Ciao, Viktor --- Aufruf zum Projekt "Müll-freie Meere" - https://reprap.org/forum/list.php?426

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Einen Arduino als Controller verwenden?

Beitrag von marvin » 21 Okt 2012, 23:19

Ich werd es erst mal etwas ruhiger angehen und die bestehende Hardware verwenden. Wenn es mir dann zu langweilig wird, kommt auch ein anderes Mainboard drauf.
Meine Roadmap:
  • 1. Prozessor Tausch gegen ATmega644P
  • 2. Arduino Bootloader flashen (vom Arbotix Projekt)
  • 3. erste Arduino Beispiel Sketche ausprobieren
  • 4. ct-Bot Hardware Pinbelegung auf Arduino Pin Mapping umsetzen
  • 5. ct-Bot Auto Reset fähig machen
  • 6. ct-Bot Arduino Hardware Library schreiben
  • 7. erste ct-Bot Arduino Sketche ausprobieren
Die ersten 4 Punke sind schon abgearbeitet.

VDX
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 293
Registriert: 26 Jan 2006, 22:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: Einen Arduino als Controller verwenden?

Beitrag von VDX » 21 Okt 2012, 23:59

... was auch eine meiner möglichen Optionen wäre - das Framework auf reine 'slave'-Funktionalität mit Sensorauswertung und Motorsteuerung reduzieren und eine Funkbrücke draufsetzen, die vom PC aus bedient wird.

Statt WLan ins Framework zu integrieren, hätte ich dann simpelst programmierte 'Drohnen' mit der gesamten 'Intelligenz' auf dem PC.

Für sowas habe ich noch ein paar 31x31mm große 'Funk-Briefmarken' mit einem C51-Kern und 2.44GHz-Funkmodem, die ich direkt ankoppeln könnte.

Oder einen Arduino-Nano direkt draufsetzen ... oder eine Kombination von beidem ... und vor einiger Zeit hatte ich ein mini-GPS-Modul und ein 3Achs-Accelerometer-Chip da, die ebenfalls mit einem Arduino/Teensyduino als Controller laufen.

Der Möglichkeiten gäb's also mehrere ... hab' nur momentan keine Zeit dafür frei - muß mich erstmal ums 3D-Scannen/Drucken und um den Lasergravierer kümmern ...

Viktor
Ciao, Viktor --- Aufruf zum Projekt "Müll-freie Meere" - https://reprap.org/forum/list.php?426

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Einen Arduino als Controller verwenden?

Beitrag von marvin » 22 Okt 2012, 22:05

Hallo Viktor,
gute Idee mit dem ct-Bot als Slave Controller.

Man könnte auch einen Raspberry Pi oder den neuen Arduino Due als Big Brain mit auf den ct-Bot packen und seriell mit der bestehenden Hardware verbinden. Zumindest beim RasPi kann man billige USB WLAN Dongle anschliessen für eine Drahtlosverbindung oder eine Web Cam zur Bildverarbeitung über OpenCV.

lenchen
Friends of Gort
Friends of Gort
Beiträge: 56
Registriert: 12 Apr 2011, 15:31

Re: Einen Arduino als Controller verwenden?

Beitrag von lenchen » 23 Okt 2012, 20:46

hi,

es gibt doch im Wiki schon eine CPU-Erweiterung, wo ein ARM-Board (BeagleBone, ist aber ja dafür kein großer Unterschied zum Raspberry Pi) seriell an den Bot angebunden wird und dort der Master drauf läuft. Auch mit USB WLAN, was dann mit Board immer noch billiger ist als die WLAN-Erweiterung :-)

LG Lena

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Einen Arduino als Controller verwenden?

Beitrag von marvin » 23 Okt 2012, 23:04

Hallo Lena,

tatsächlich, so etwas ähnliches wurde schon realisiert. Wenn auch etwas schwer im Wiki zu entdecken.
http://www.heise.de/ct/projekte/machmit ... eagleBoard

Das kommt meinen Vorstellungen schon sehr nahe, wenn auch etwas zu aufwändig. Ein BeagleBoard werde ich mir deshalb nicht zulegen, da ich das RasPi Board bereits vor mir liegen habe. Braucht es nur noch ein Level Shifter für die UART Signale, WLAN USB Dongle, 5V Stromversorgung für den RasPi und ein Stück Lochraster.

Grüße Peter

VDX
Friends of Johnny-5
Friends of Johnny-5
Beiträge: 293
Registriert: 26 Jan 2006, 22:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: Einen Arduino als Controller verwenden?

Beitrag von VDX » 24 Okt 2012, 00:50

... bei mir ists das gleiche mit den Arduinos und den C51-er Boards - wozu ein anderes Board kaufen, wenn schon was da ist, mit dem man arbeiten kann?

Interessant wäre also eher eine Schnittstellendefinition, mit der alle Sensoren und die Motorsteuerung auf einen Port gelegt werden, der nur noch mit der jeweiligen Hardware verbunden wird.

Die andere Frage ist, wie die Ansteuerung über eine Klassendefinition aussehen könnte, die auf möglichst vielen der verbreiteten Plattformen läuft - es gibt da eingies an IDE's und Programmiersprachen ...

Viktor
Ciao, Viktor --- Aufruf zum Projekt "Müll-freie Meere" - https://reprap.org/forum/list.php?426

lenchen
Friends of Gort
Friends of Gort
Beiträge: 56
Registriert: 12 Apr 2011, 15:31

Re: Einen Arduino als Controller verwenden?

Beitrag von lenchen » 24 Okt 2012, 21:18

hi,

ja ich denke welches Board man dann anschließt ist egal bzw. hängt halt nur davon ab, wie viel Performance man haben möchte. Das RasPi hat ja deutlich weniger Power als z.B. so ein Beagleboard.

So eine Schnittstellendefinition gibt es ja schon mit dem ct-Bot-Protokoll. Wenn alle das verwenden, braucht man nicht viel Code neu schreiben und bleibt kompatibel. Außerdem kann man die Daten zusätzlich sogar noch mit dem Sim-Viewer anzeigen, wenn man möchte. Ist zwar bisher nur für das serielle UART implementiert, aber ich glaub das ist kein schlechter Anfang, das sollten ja eigentlich alle Boards anbieten als Schnittstelle.

LG Lena

tobi

Re: Einen Arduino als Controller verwenden?

Beitrag von tobi » 27 Okt 2012, 19:25

lenchen hat geschrieben:So eine Schnittstellendefinition gibt es ja schon mit dem ct-Bot-Protokoll. Wenn alle das verwenden, braucht man nicht viel Code neu schreiben und bleibt kompatibel. Außerdem kann man die Daten zusätzlich sogar noch mit dem Sim-Viewer anzeigen, wenn man möchte. Ist zwar bisher nur für das serielle UART implementiert, aber ich glaub das ist kein schlechter Anfang, das sollten ja eigentlich alle Boards anbieten als Schnittstelle.
Das klingt doch sehr gut. Ich habe zwar noch kein Erweiterungsboard (weiß noch nicht so genau, welches am besten geeignet ist), aber ich würde es auch bevorzugen, diese definierte Schnittstelle zu verwenden. Dann sind die verschiedenen Erweiterungen in der Community alle kompatibel und man kann auch Code austauschen.

Gruß,
Tobi

marvin
Wiki Master
Wiki Master
Beiträge: 385
Registriert: 18 Jan 2006, 16:21
Wohnort: Berlin
Kontaktdaten:

Re: Einen Arduino als Controller verwenden?

Beitrag von marvin » 28 Okt 2012, 16:59

So hatte ich es auch vor. Erst mal mit der bestehenden Firmware und dem Bot2Sim Protokoll anfangen. Man muß ja nicht immer gleich das Rad neu erfinden. Werde das Thema in einem gesionderten Thread weiterführen.
Grüße Peter

Antworten