dies soll der Start einer kleinen Serie von Programmier Beispielen für den c't-Bot werden.
Beginnen möchte ich mit Programmen die ohne das Verhaltens Framework auskommen.
Vorrausgesetzt werden:
- der stable Zweig aus dem c't-Bot SVN
- die Programmier Toolchain, bestehend aus Eclipse, AVR-Tools und MSys/MinGW
- c't-Bot Basis Set mit LCD Modul Erweiterung
Zum Ausprobieren der Beispiele ersetzt man einfach die ct-bot.c und die ct-bot.h mit der jeweiligen Version aus dem beigefügten Anhang.
Teil 1 - Sensoren und LCD Modul
1. Das einfachste Programm um die Sensor Werte auf dem LCD Modul anzuzeigen:
Code: Alles auswählen
#include "ct-Bot.h"
#include "init.h"
#include "sensor.h"
#include "display.h"
int main(int argc, char * argv[])
{
/* Alles initialisieren */
ctbot_init(argc, argv);
/* Hauptschleife des Bots */
for (;;)
{
bot_sens();
sensor_display();
delay(100);
}
return 0;
}
Code: Alles auswählen
#include "ct-Bot.h"
#include "init.h"
#include "sensor.h"
#include "display.h"
int main(int argc, char * argv[])
{
/* Alles initialisieren */
ctbot_init(argc, argv);
/* Hauptschleife des Bots */
for (;;)
{
bot_sens();
display_cursor(1, 1);
display_printf("Dist: L %03X R %03X", sensDistL, sensDistR);
display_cursor(2, 1);
display_printf("Light: L %03X R %03X", sensLDRL, sensLDRR);
display_cursor(3, 1);
display_printf("Cliff: L %03X R %03X", sensBorderL, sensBorderR);
display_cursor(4, 1);
display_printf("Line: L %03X R %03X", sensLineL, sensLineR);
delay(100);
}
return 0;
}
Code: Alles auswählen
#include "ct-Bot.h"
#include "init.h"
#include "sensor.h"
#include "display.h"
int main(int argc, char * argv[])
{
int vL, vR, i;
/* Alles initialisieren */
ctbot_init(argc, argv);
/* Hauptschleife des Bots */
for (;;)
{
bot_sens();
display_cursor(1, 1);
display_printf("Dist: L %03X R %03X", sensDistL, sensDistR);
vL = sensDistL/50;
vR = sensDistR/50;
display_cursor(2, 1);
for (i=0; i<vL;i++)
display_data(5); //print solid blocks
for(;i<20; i++)
display_data(' '); //print spaces
display_cursor(3, 1);
for (i=0; i<vR;i++)
display_data(5); //print solid blocks
for(;i<20; i++)
display_data(' '); //print spaces
delay(100);
}
return 0;
}
Viel Spaß
Peter