Code-Optionen
Übersicht der in ct-Bot.h aktivierbaren Optionen
Stand: Code-Version 1874
Die Optionen lassen sich jeweils per #define ein- oder ausschalten. Das Ausschalten erfolgt durch die Kommentarzeichen // am Anfang der Zeile.
Ausgeschaltete Optionen belegen keinen Platz im Flash-Speicher des Controllers. Außerdem kann ein Ausschalten auch andere Dinge indirekt einschalten, so bewirkt MEASURE_MOUSE_AVAILABLE z.B., dass der Bot seine Positionsdaten mit Hilfe des Maussensors berechnet. Schaltet man MEASURE_MOUSE_AVAILABLE aus, so gibt es weiterhin Positionsdaten, diese werden aber mit den Sensorwerten der Radencoder berechnet. Diese Option ist also eine Art "Umschalter".
Logging-Funktionen
Folgenden Optionen steuern ob und wenn ja welche Log-Methode vorhanden ist (es kann jeweils nur eine Log-Methode aktiv sein):
- LOG_CTSIM_AVAILABLE: Logging zum ct-Sim (PC und MCU)
- LOG_DISPLAY_AVAILABLE: Logging über das LCD-Display (PC und MCU)
- LOG_UART_AVAILABLE: Logging über UART (nur für MCU)
- LOG_STDOUT_AVAILABLE: Logging auf die Konsole (nur für PC)
- LOG_MMC_AVAILABLE: Logging in eine txt-Datei auf MMC inkl. Displayausgabe mit Scrollfunktion
- USE_MINILOG: Schaltet auf vereinfachtes Logging um (nur in Verbindung mit LOG_CTSIM_AVAILABLE oder LOG_MMC_AVAILABLE), das Flash-Speicher und RAM spart, dafür aber z.B. nicht den Dateinamen der Quellcode-Datei mit ausgibt. Prinzip "manchmal ist weniger mehr". Deaktiviert man das #define, bekommt man wieder das "große" Logging.
Kommunikation
- BOT_2_SIM_AVAILABLE: Aktiviert die Kommunikation des Bots mit dem Sim, d.h. der Bot sendet seine Sensorwerte an den Simulator, die dort angezeigt werden. Das Einschalten dieser Option aktiviert die serielle Schnittstelle der MCU, über die die Daten entweder per USB-2-Bot-Adapter oder per LAN / WLAN (wenn das Erweiterungsmodul vorhanden ist) an den Sim gesendet werden. Natürlich ist diese Option nur für den realen Bot interessant, der Simulierte muss schließlich immer Daten mit dem Sim austauschen.
- DISPLAY_REMOTE_AVAILABLE: Aktiviert neben der Übertragung der Sensorwerte an den Sim auch die Übertragung des Display-Inhalts, so dass dieser im Sim erscheint. Setzt BOT_2_PC_AVAILABLE voraus.
- BOT_2_BOT_AVAILABLE: Schaltet die Auswertung von Nachrichten eines anderen Bots ein und ermöglicht den Datenaustausch zwischen mehreren Bots. Details finden sich in der Dokumentation.
- BOT_2_BOT_PAYLOAD_AVAILABLE: Aktiviert die Möglichkeit, Payloaddaten zwischen zwei Bots auszutauschen. Weitere Infos in der Dokumentation.
- KEYPAD_AVAILABLE: Aktiviert die Möglichkeit mit der Fernbedienung Zeichen eingeben zu können (Handy- / Telefontastatur).
Sensorauswertung
- MEASURE_MOUSE_AVAILABLE: Aktiviert die Positions- und Geschwindigkeitsberechnung aus den Maussensordaten. Damit verwenden die Verhalten diese anstatt der aus den Radencoder-Werten berechneten Positions- und Geschwindigkeitsdaten. Ein Ausschalten dieser Option schaltet also auf Positionsbestimmung per Radencoder um.
- MEASURE_COUPLED_AVAILABLE: Positions- und Geschwindigkeitsdaten werden aus Maussensor- und Radencoder-Werten ermittelt und gekoppelt (die Gewichtung lässt sich in bot-local.h einstellen).
- MOUSE_AVAILABLE: Aktiviert den Code für die Auswertung des Maussensors. Ein Ausschalten deaktiviert gleichzeitig MEASURE_MOUSE_AVAILABLE und MEASURE_COUPLED_AVAILABLE.
- SRF10_AVAILABLE: Aktiviert den Code für den Ultraschallsensor SRF10.
- CMPS03_AVAILABLE: Aktiviert die Auswertung des Kompassmoduls CMPS03. Siehe auch Dokumentation.
- SP03_AVAILABLE: Aktiviert die Unterstützung für das Sprachausgabemodul SP03. Siehe auch Dokumentation.
- BPS_AVAILABLE: Aktiviert die Auswertung des Sensors zur Lokalisierung (IR-Landmarken). Ist diese Option aktiv, ist der linke Helligkeitssensor (LDRL) automatisch deaktiviert. Siehe auch Lokalisierung des ct-Bots.
Umgebungskarte
- MAP_AVAILABLE: Aktiviert die Kartographie. Die Karte kann auf verschiedene Arten abgelegt werden, auf dem realen Bot entweder auf der MMC (wenn MMC_AVAILABLE an ist) oder im SRAM der MCU. Auf Grund des beschränkten Speichers macht in der Praxis nur eine Ablage der Daten auf der MMC Sinn. Beim simulierten Bot am PC kann die Karte entweder im RAM des PCs oder auf einer emulierten MMC (Datei auf der Festplatte, die auch beim Neustart des Bots erhalten bleibt) gespeichert werden.
- MAP_2_SIM_AVAILABLE : Sendet die Map-Aktualisierungen sowie die aktuelle Bot-Position fortlaufend zur Anzeige an den Simulator. Das funktioniert für simulierte und echte c't-Bots.
Motoransteuerung
- SPEED_CONTROL_AVAILABLE: Aktiviert die Motorregelung. Damit sie funktioniert, muss sie zuvor einmalig kalibriert werden (siehe auch Dokumentation). Mit Motorregelung kann der Bot die gewünschte Fahrtgeschwindigkeit auch genau einhalten, was zu gutem Fahrverhalten sowie exakten Drehungen und Positionierungen führt. Außerdem werden die Motoren schonender betrieben.
- ADJUST_PID_PARAMS: Aktiviert die Einstellung der PID-Paramter für die Motorregelung zur Laufzeit per Fernbedienung. Das ist zum manuellen Kalibrieren der Regelung einmalig nötig und sollte danach wieder ausgeschaltet werden, weil es sonst unnötig Rechenzeit kostet.
- SPEED_LOG_AVAILABLE: Zeichnet Debug-Infos der Motorregelung auf einer MMC (falls vorhanden) auf. Nur in Ausnahmefällen nötig (siehe auch Dokumentation).
MMC / SD-Karte als Speichererweiterung (Erweiterungsmodul)
- MMC_AVAILABLE: Aktiviert die Treiber für eine MMC/SD-Karte, die z.B. von MAP benutzt werden kann.
- SPI_AVAILABLE: Aktiviert die Verwendung des Hardware-SPI-Modus der MCU, um mit der MMC zu kommunizieren, siehe MMC per Hardware-SPI. Außerdem wird der Anschluss des linken Radencoders auf einem anderen Pin erwartet.
- BOT_FS_AVAILABLE: Aktiviert das Dateisystem BotFS, welches für uBasic benötigt wird und außerdem vom Map-Code sowie Logging auf SD-Karte verwendet wird. Siehe SD-Karten Dateisystem BotFS.
- MMC_VM_AVAILABLE (deprecated): Aktiviert das Virtual Memory Management mit MMC/SD-Karte oder PC-Emulation. Damit kümmert sich der Bot selbst um das Ein- und Auslagern von Speicherseiten, die auf der MMC liegen und stellt somit einen einfach zu benutzenden und großen Speicherraum zur Verfügung. Ebenso wird das Lesen und Schreiben von Dateien auf der MMC durch Caching optimiert. Benötigt allerdings relativ viel RAM (für den Cache) und Flash-Speicher, ein ATMega644 (statt des ATMega32) wird empfohlen. Beim simulierten Bot schaltet diese Option die emulierte MMC ein, die die Daten, die der Bot auf der MMC speichert, für die Verhalten völlig transparent ein eine Datei umleitet.
Bootloader
- BOOTLOADER_AVAILABLE: Aktiviert den Bootloadercode - das ist nur nötig für die einmalige Installation des Bootloaders. Siehe auch Dokumentation. Ist der Bootloader einmal installiert, muss man diese Option wieder ausschalten.
Sonstiges
- OS_AVAILABLE: Aktiviert ein Mini-Betriebssystem mit Threads und Scheduling. Details sind in os_thread.c und im Wiki zu finden.
- EEPROM_EMU_AVAILABLE: Aktiviert die EEPROM-Emulation fuer PC. Weitere Details unter Documentation/eeprom-simulation.html.
- POS_STORE_AVAILABLE: Stellt einen globalen Speicher für Positionsdaten bereit, der von Verhalten benutzt werden kann. Die möglichen Policies sind FIFO und LIFO (Stack).
In ct-Bot.h finden sich neben den hier aufgeführten Optionen noch Weitere. Im Wesentlichen schalten diese lediglich einige Treiber (z.B. für die LEDs) ein oder aus. Da diese Optionen aber im Normalfall immer an sein sollten und sie recht selbsterklärend sind, wird an dieser Stelle nicht weiter darauf eingegangen.
