#ifndef __incourse_h__ #define __incourse_h__ #define DEBUG_LOG /*光センサに使用するポートを選択*/ //#define USE_SENSOR SENSOR_1 //!< Sensor on input pad 1 #define USE_SENSOR SENSOR_2 //!< Sensor on input pad 2 //#define USE_SENSOR SENSOR_3 //!< Sensor on input pad 3 /*後輪駆動用モータに使用するポートを選択*/ #define DRIVE_MOTOR_SPEED(a) motor_a_speed(a) #define DRIVE_MOTOR_DIR(a) motor_a_dir(a) //#define DRIVE_MOTOR_SPEED(a) motor_b_speed(a) //#define DRIVE_MOTOR_DIR(a) motor_b_dir(a) //#define DRIVE_MOTOR_SPEED(a) motor_c_speed(a) //#define DRIVE_MOTOR_DIR(a) motor_c_dir(a) /*ステアリングモータに使用するポートを選択*/ //#define STEERING_MOTOR_SPEED(a) motor_a_speed(a) //#define STEERING_MOTOR_DIR(a) motor_a_dir(a) //#define STEERING_MOTOR_SPEED(a) motor_b_speed(a) //#define STEERING_MOTOR_DIR(a) motor_b_dir(a) #define STEERING_MOTOR_SPEED(a) motor_c_speed(a) #define STEERING_MOTOR_DIR(a) motor_c_dir(a) /*走行モータ制御*/ #define CTRL_DIRVE_R rev #define CTRL_DIRVE_N off #define CTRL_DIRVE_D fwd #define CTRL_DIRVE_P brake /*ステアリングモータ制御*/ #define CTRL_STEERING_LEFT rev #define CTRL_STEERING_FREE off #define CTRL_STEERING_RIGHT fwd #define CTRL_STEERING_LOCK brake /*色キャリブレーション時のセンサ値取得回数*/ #define CALIB_COUNT 100 /*走行速度 0〜255 */ #define DRIVE_SPEED_NOMAL 255 /*通常時*/ /*ステアリング速度 0〜255 */ #define STEERING_SPEED_NOMAL 255 /*通常時*/ /*色確定回数*/ #define FIXED_COLOR_COUNT_NOMAL 1 #define FIXED_COLOR_COUNT_TRIGER 50 /*色テーブル*/ typedef enum { COLOR_WHITE = 0, COLOR_GRAY, COLOR_BLACK } LINE_COLOR; /*走行場所テーブル*/ typedef enum { DRIVE_STAGE1 = 0, /*スタート〜難所難所入口*/ DRIVE_STAGE2, /*難所入口(灰色区間)*/ DRIVE_STAGE3, /*難所入口〜ループA入口*/ DRIVE_STAGE4, /*ループA入口(灰色区間)*/ DRIVE_STAGE5, /*ループA入口〜ループA出口*/ DRIVE_STAGE6, /*ループA出口(灰色区間)*/ DRIVE_STAGE7, /*ループA出口〜ループB入口*/ DRIVE_STAGE8, /*ループB入口(灰色区間)*/ DRIVE_STAGE9, /*ループB入口〜ループB出口*/ DRIVE_STAGE10, /*ループB出口(灰色区間)*/ DRIVE_STAGE11, /*ループB出口〜難所出口*/ DRIVE_STAGE12, /*難所出口(灰色区間)*/ DRIVE_STAGE13, /*難所出口〜坂道入口*/ DRIVE_STAGE14, /*坂路入口(灰色区間)*/ DRIVE_STAGE15, /*坂路入口〜坂路出口*/ DRIVE_STAGE16, /*坂路出口(灰色区間)*/ /*2週目*/ DRIVE_STAGE17, /*坂路出口〜難所難所入口*/ DRIVE_STAGE18, /*難所入口(灰色区間)*/ DRIVE_STAGE19, /*難所入口〜ループA入口*/ DRIVE_STAGE20, /*ループA入口(灰色区間)*/ DRIVE_STAGE21, /*ループA入口〜ループA出口*/ DRIVE_STAGE22, /*ループA出口(灰色区間)*/ DRIVE_STAGE23, /*ループA出口〜ループB入口*/ DRIVE_STAGE24, /*ループB入口(灰色区間)*/ DRIVE_STAGE25, /*ループB入口〜ループB出口*/ DRIVE_STAGE26, /*ループB出口(灰色区間)*/ DRIVE_STAGE27, /*ループB出口〜難所出口*/ DRIVE_STAGE28, /*難所出口(灰色区間)*/ DRIVE_STAGE29, /*難所出口〜坂道入口*/ DRIVE_STAGE30, /*坂路入口(灰色区間)*/ DRIVE_STAGE31, /*坂路入口〜坂路出口*/ DRIVE_STAGE32 /*坂路出口(灰色区間)*/ } DRIVE_STAGE; typedef struct { unsigned char driving_speed; /*走行速度*/ unsigned char driving_vector; /*走行方向 前・後*/ unsigned char steering_speed; /*ステアリング速度*/ unsigned char steering_vector; /*ステアリング方向 左右*/ unsigned short calib_black; /*黒色キャリブレーション結果*/ unsigned short calib_gray; /*灰色キャリブレーション結果*/ unsigned short calib_white; /*白色キャリブレーション結果*/ unsigned short border_wg; /*白色-灰色境界キャリブレーション結果*/ unsigned short border_gb; /*灰色-黒色境界キャリブレーション結果*/ unsigned char fix_color_count_b; /*黒色確定回数*/ unsigned char fix_color_count_g; /*灰色確定回数*/ unsigned char fix_color_count_w; /*白色確定回数*/ } DRIVE_DATA; void start_calib(DRIVE_DATA *data); #endif // __incourse_h__