ライントレースロボットを作ってみた
画質悪いですが、ようつべに上げてみました。
ソースコードはこんな感じ。
#include "sensorlib.c" #include "motorlib.c" #define THRES 45 task main() { init_sensor(); while(true) { go_forward(); if (get_light() < THRES) { turn_right(); } else { turn_left(); } go_forward(); } }
go_forwardは前進、turn_rightは右回転、turn_leftは左回転です。こういうのはよく使いそうなので、ライブラリ化しました。
#define L_MOTOR motorB #define R_MOTOR motorC void go_forward() { motor[L_MOTOR] = 75; motor[R_MOTOR] = 75; } void turn_left() { motor[L_MOTOR] = 75; motor[R_MOTOR] = -75; } void turn_right() { motor[L_MOTOR] = -75; motor[R_MOTOR] = 75; }
光以外は省略してますけど、センサー周りもライブラリ化しました。
#define TOUCH_SENSOR S1 #define SOUND_SENSOR S2 #define LIGHT_SENSOR S3 #define SONAR_SENSOR S4 void init_sensor() { SetSensorType(TOUCH_SENSOR, sensorTouch); SetSensorType(SOUND_SENSOR, sensorSoundDB); SetSensorType(LIGHT_SENSOR, sensorLightActive); SetSensorType(SONAR_SENSOR, sensorSONAR); } int get_light() { return SensorValue(LIGHT_SENSOR); }
ダンシングロボットとかのビデオも上げてみようかな。