ct-Bot Basis-Firmware

Die Programmierung des c't-Bot

Moderator: Moderatoren Team

ct-Bot Basis-Firmware

Beitragvon 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
eax
Friends of Robby
Friends of Robby
 
Beiträge: 754
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitragvon V2 » 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
V2
Friends of Johnny-5
Friends of Johnny-5
 
Beiträge: 255
Registriert: 26. Jan 2006, 23:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: ct-Bot Basis-Firmware

Beitragvon 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
eax
Friends of Robby
Friends of Robby
 
Beiträge: 754
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitragvon V2 » 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
V2
Friends of Johnny-5
Friends of Johnny-5
 
Beiträge: 255
Registriert: 26. Jan 2006, 23:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: ct-Bot Basis-Firmware

Beitragvon 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
eax
Friends of Robby
Friends of Robby
 
Beiträge: 754
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitragvon V2 » 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
V2
Friends of Johnny-5
Friends of Johnny-5
 
Beiträge: 255
Registriert: 26. Jan 2006, 23:43
Wohnort: Großkrotzenburg (Main-Kinzig-Kreis)

Re: ct-Bot Basis-Firmware

Beitragvon eax » 25. Mai 2017, 12:22

Hi Viktor,

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

Viele Grüße,
Timo
eax
Friends of Robby
Friends of Robby
 
Beiträge: 754
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitragvon anonybot » 4. 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.
anonybot
Friends of Sonny
Friends of Sonny
 
Beiträge: 129
Registriert: 7. Okt 2015, 00:14

Re: ct-Bot Basis-Firmware

Beitragvon anonybot » 8. Nov 2017, 02: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)
anonybot
Friends of Sonny
Friends of Sonny
 
Beiträge: 129
Registriert: 7. Okt 2015, 00:14

Re: ct-Bot Basis-Firmware

Beitragvon eax » 10. Nov 2017, 01:52

Ach ja stimmt, da war noch was... :roll: das sollte ich mal wieder rauskramen, allerdings gibt es da bisher null Dokumentation :?
eax
Friends of Robby
Friends of Robby
 
Beiträge: 754
Registriert: 18. Jan 2006, 17:16
Wohnort: Karlsruhe

Re: ct-Bot Basis-Firmware

Beitragvon anonybot » 12. Nov 2017, 00: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. ;)
anonybot
Friends of Sonny
Friends of Sonny
 
Beiträge: 129
Registriert: 7. Okt 2015, 00:14


Zurück zu Programmierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron