ct-Bot Basis-Firmware

Die Programmierung des c't-Bot
eax
Friends of Sonny
Friends of Sonny
Beiträge: 110
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

ct-Bot Basis-Firmware

Beitrag von eax » 20 Mai 2017, 23:31

Hallo zusammen,

wie hier schon mal angedeutet, habe ich vor eine reduzierte Basis-Firmware für die Grundfunktionalität des ct-Bots zu bauen. Wie u.a. hier beschrieben, sollen die Grundfunktionen dann über eine UART- oder WLAN-Schnittstelle angesteuert werden können. Um die Verwendung möglichst einfach zu halten, folgender Vorschlag für ein entsprechendes ASCII-basiertes Kommunikationsprotokoll:
  • Abfragen von Sensordaten etc. über get Befehle, z.B.

    Code: Alles auswählen

    get dist
    gibt die aktuellen Werte der Distanzsensoren als Antwort zurück:

    Code: Alles auswählen

    200 300
  • Ansteuern der Motoren, Servos, LEDs und des Displays über set Befehle, z.B.

    Code: Alles auswählen

    set motor 100 150
    setzt die gewünsche Geschwindigkeit links auf 100 und rechts auf 150.
Die Befehle und Antworten sind jeweils Textzeilen, so dass man sie auch direkt über eine Terminal-Programm setzen kann, z.B. um die Sensoren und Aktuatoren des Bots auch leicht testen zu können.

Soweit mal die erste Idee. Würde das passen, oder benötigt jemand etwas anderes?

Viele Grüße,
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

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

Re: ct-Bot Basis-Firmware

Beitrag von VDX » 21 Mai 2017, 23:04

Hi Timo,

für's "fine-tunen" der Geschwindigkeit, um z.B. eine gerade Linie mit leicht unterschiedlichen Motor-Parametern fahren zu können, brauchts beim "set motor" eine ziemlich hohe Auflösung der werte.

Ein "move"-Befehl mit Distanz, Winkel (und/oder Kurve mit dem "set motor 100 150") wäre auch interessant

Eventuell kann auch schon eine Abfrage der "Abgrund-Sensoren" mit in eine Bewegung eingebaut werden, so daß er stehen bleibt und eine "Fehlermeldung" zurückgibt?

"set speed [nnn]" (mit Vorzeichen + für Vor und - für Rück) und "follow line" über die beiden Liniensensoren wäre auch denkbar ...

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

eax
Friends of Sonny
Friends of Sonny
Beiträge: 110
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitrag von eax » 23 Mai 2017, 19:53

Hi Viktor,
V2 hat geschrieben:für's "fine-tunen" der Geschwindigkeit, um z.B. eine gerade Linie mit leicht unterschiedlichen Motor-Parametern fahren zu können, brauchts beim "set motor" eine ziemlich hohe Auflösung der werte.
Vielleicht sollte man es besser "set speed" nennen, ich hatte mir das so gedacht, dass man eine Geschwindigkeit für die Räder vorgibt und die Firmware per Regler dafür sorgt, dass diese auch eingehalten wird. Somit sollte nicht besonders viel Finetuning nötig sein. Als Auflösung hatte ich an einen Bereich von -512 bis +512 gedacht, so wie in der alten Firmware auch, ich denke das hat sich bewährt.
V2 hat geschrieben:Ein "move"-Befehl mit Distanz, Winkel (und/oder Kurve mit dem "set motor 100 150") wäre auch interessant.
Eventuell kann auch schon eine Abfrage der "Abgrund-Sensoren" mit in eine Bewegung eingebaut werden, so daß er stehen bleibt und eine "Fehlermeldung" zurückgibt?
"set speed [nnn]" (mit Vorzeichen + für Vor und - für Rück) und "follow line" über die beiden Liniensensoren wäre auch denkbar ...
Stimmt, das könnte man natürlich auch noch ergänzen, das würde ich dann sozusagen als "zweite Ebene" in einem zweiten Schritt einbauen. Es gäbe dann die low-level Kommandos für wirklich nur Basis-Funktionen und auf der zweiten Ebene solche "high"-level Kommandos. Viel mehr Komplexität als in deinen Beispielen würde ich aber auch dort erstmal nicht einbauen, sonst wird das Ganze wieder umfangreich und undurchsichtig. Lässt sich aber bei Bedarf natürlich immer noch erweitern.

Noch bin ich damit zwar nicht so weit, aber vorab schon mal die Frage: Wer hätte einen Bot mit Funkmodul zur Verfügung und hätte dann Interesse das Ganze mal zu testen? Alternativ ginge es natürlich auch mit einem anderem Controller, der per UART verbunden ist. Oder mit dem USB-2-Bot Adapter, "an der Leine" ist es erfahrungsgemäß aber nicht so interessant damit rumzuspielen.

Viele Grüße,
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

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

Re: ct-Bot Basis-Firmware

Beitrag von VDX » 23 Mai 2017, 22:45

Hi Timo,

ich habe zwar das BT-Modul, wollte mich aber nicht wieder in die Software reinknien (auch wegen wenig Zeit), sondern hoffe eher auf eine Umstellung auf Arduino - da habe ich diverse 16 und 32 Bit Typen da und auch WLAN-Module für die direkte PC-Kopplung ...

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

eax
Friends of Sonny
Friends of Sonny
Beiträge: 110
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitrag von eax » 24 Mai 2017, 23:53

Hi Viktor,

d.h. du willst dann einen Arduino per UART an den ct-Bot anschließen, verstehe ich das richtig?
Ich werde zum Testen auch ein einfaches Gegenstück für die UART-Befehle bauen, vermutlich zuerst mal für den Raspberry Pi, aber da kann ich gern auch eine Arduino-Version machen, das ist ja kein Aufwand. Das könnte dann für dich interessant sein.

Viele Grüße,
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

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

Re: ct-Bot Basis-Firmware

Beitrag von VDX » 25 Mai 2017, 10:25

Hi Timo,

... nein, ich würde gern den Arduino als eigentlichen Controller draufsetzen - entweder durch einen Aufsteck-Adapter (als CPU-Austausch) auf die alte Platine, oder die Controller-Platine durch eine redesignte ersetzen ...

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

eax
Friends of Sonny
Friends of Sonny
Beiträge: 110
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitrag von eax » 25 Mai 2017, 12:22

Hi Viktor,

aah okay, verstehe. :idea: Dazu kann ich erstmal keine Software anbieten.

Viele Grüße,
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 118
Registriert: 07 Okt 2015, 00:14

Re: ct-Bot Basis-Firmware

Beitrag von anonybot » 04 Jun 2017, 02:02

eax hat geschrieben:Noch bin ich damit zwar nicht so weit, aber vorab schon mal die Frage: Wer hätte einen Bot mit Funkmodul zur Verfügung und hätte dann Interesse das Ganze mal zu testen? Alternativ ginge es natürlich auch mit einem anderem Controller, der per UART verbunden ist. Oder mit dem USB-2-Bot Adapter, "an der Leine" ist es erfahrungsgemäß aber nicht so interessant damit rumzuspielen.
Testen könnte ich. Mir fehlt leider das Funkmodul (130€ bei meiner letzten Anfrage an Segor, boah!). Gibt es ein HowTo? :mrgreen:

Edit: zur eigentlichen Anfrage: die Vorschläge klingen für mich super. Ich bin für alle Änderungen dankbar, die die Programmierung einfacher gestalten.
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 118
Registriert: 07 Okt 2015, 00:14

Re: ct-Bot Basis-Firmware

Beitrag von anonybot » 08 Nov 2017, 01:00

anonybot hat geschrieben:
eax hat geschrieben:Noch bin ich damit zwar nicht so weit, aber vorab schon mal die Frage: Wer hätte einen Bot mit Funkmodul zur Verfügung und hätte dann Interesse das Ganze mal zu testen? Alternativ ginge es natürlich auch mit einem anderem Controller, der per UART verbunden ist. Oder mit dem USB-2-Bot Adapter, "an der Leine" ist es erfahrungsgemäß aber nicht so interessant damit rumzuspielen.
Testen könnte ich. Mir fehlt leider das Funkmodul (130€ bei meiner letzten Anfrage an Segor, boah!). Gibt es ein HowTo? :mrgreen:
Nur der Vollständigkeit wegen: Funkmodul wäre jetzt einsatzbereit! 8)
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

eax
Friends of Sonny
Friends of Sonny
Beiträge: 110
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitrag von eax » 10 Nov 2017, 00:52

Ach ja stimmt, da war noch was... :roll: das sollte ich mal wieder rauskramen, allerdings gibt es da bisher null Dokumentation :?
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 118
Registriert: 07 Okt 2015, 00:14

Re: ct-Bot Basis-Firmware

Beitrag von anonybot » 11 Nov 2017, 23:15

eax hat geschrieben:Ach ja stimmt, da war noch was... :roll: das sollte ich mal wieder rauskramen, allerdings gibt es da bisher null Dokumentation :?
...da ich eh immer so gut wie alles dokumentiere, was ich ausprobiere, könnte ich das erledigen. ;)
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

Nightwalker-87
Site Admin
Site Admin
Beiträge: 167
Registriert: 16 Apr 2017, 23:40

Re: ct-Bot Basis-Firmware

Beitrag von Nightwalker-87 » 29 Dez 2017, 03:26

anonybot hat geschrieben:
eax hat geschrieben:Ach ja stimmt, da war noch was... :roll: das sollte ich mal wieder rauskramen, allerdings gibt es da bisher null Dokumentation :?
...da ich eh immer so gut wie alles dokumentiere, was ich ausprobiere, könnte ich das erledigen. ;)
Ja, bitte... [-o<
nw-87

eax
Friends of Sonny
Friends of Sonny
Beiträge: 110
Registriert: 18 Jan 2006, 16:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitrag von eax » 24 Apr 2018, 23:07

Hallo zusammen,

ich habe das angesprochene Projekt mal ein wenig aufgeräumt und angefangen Dokumentation zu ergänzen. Ihr findet das Ganze unter
https://github.com/tsandmann/ctbot-atmega

Als Anleitung verweise ich hier einfach mal auf die Readme des Projekts, dort habe ich versucht die nötigen Infos zusammenzustellen (das mag aber noch unvollständig sein):
  • Unter "Setup" findet sich eine kurze (und hoffentlich einfache) Anleitung zur (einmaligen) Einrichtung.
    • Hinweis: Die "alte" Installationsanleitung aus dem Wiki muss nicht durchgeführt sein. Wer Eclipse als IDE verwenden will, muss es natürlich installieren, erforderlich ist das aber nicht, die Wahl eines Editors oder einer IDE ist absichtlich völlig frei gehalten.
  • Im Abschnitt "Usage" findet ihr eine kleine Übersicht der Schritte, um die Software zu bauen und zu verwenden. Auf das "help" Kommando antwortet der Bot mit einer Übersicht, was man mit ihm bzw. seiner neuen Software so alles anstellen kann.
  • Die Code Dokumentation lässt sich mit Doxygen erzeugen, sie ist aktuell allerdings noch ziemlich unvollständig
Versteht das Projekt bitte als wirklich minimalistische Basis-Software, was implementiert ist und was nicht, ist in der Readme zusammengefasst. Das Projekt soll kein vollständiger Ersatz der bisherigen ct-Bot Software sein.

Auf Grund der aktuell dünnen Dokumentationslage, ist der Code vermutlich noch nicht besonders leicht verständlich. Für einige Teile gibt es aber immerhin schon mal bunte Bilder mit Ablaufdiagrammen in der Doku. Auch lässt sich an der Struktur sicherlich noch einiges vereinfachen und übersichtlicher gestalten, aktuell ist das nur ein Startpunkt.

Bei Unklarheiten oder Fragen bitte einfach nachfragen, dann erweitere ich Readme oder Doku entsprechend.

Viele Grüße
Timo
Timo -- Meine Beiträge sind unter CC-BY-SA freigegeben

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

Re: ct-Bot Basis-Firmware

Beitrag von lenchen » 29 Apr 2018, 23:20

Cool, das werde ich mir mal anschauen :)

Wenn man keinen wiport hat, kann man auch einen raspi mit usb-bot-adapter verwenden für die console, oder?

Grüße
Lena

anonybot
Friends of Sonny
Friends of Sonny
Beiträge: 118
Registriert: 07 Okt 2015, 00:14

Re: ct-Bot Basis-Firmware

Beitrag von anonybot » 11 Jun 2018, 22:01

Mensch, eben erst mitbekommen, krass - danke Timo!! =D> =D> =D>

Juckt schon in den Fingern... :mrgreen:
Von mir selbst verfasste (daher nicht zitierte) Inhalte dieses Beitrags sind zur Weiternutzung unter CC-BY-SA freigegeben +++ ct-Bot -> Libre-Bot? - Diskussion zur Zukunft des ct-Bots +++ anonybot sagt hello!

Antworten