/*!********************************************************* * @brief * * @param * * @retval * * @return * **********************************************************/ void lt_pol_triger( void ) { U8 touch; U32 bt = 0; char buf[128]; U32 size; S8 pwm_l; S8 pwm_r; /* タッチセンサ */ touch = ecrobot_get_touch_sensor(PORT_TOUCH); /* Bluetooth */ size = ecrobot_read_bt(buf, 0, 128); if (size > 0) { if (buf[0] == 's') { ecrobot_send_bt("start", 0, 5); bt = 1; } else { ecrobot_send_bt("unknown", 0, 7); } } else { /* nothing */ } if (touch == 1 || bt == 1) { /* 倒立制御 */ balance_control( (F32)0, (F32)0, (F32)ecrobot_get_gyro_sensor(PORT_GYRO), GYRO_OFFSET, (F32)nxt_motor_get_count(PORT_MOTOR_L), (F32)nxt_motor_get_count(PORT_MOTOR_R), (F32)ecrobot_get_battery_voltage(), &pwm_l, &pwm_r); nxt_motor_set_speed(PORT_MOTOR_L, pwm_l, 1); nxt_motor_set_speed(PORT_MOTOR_R, pwm_r, 1); nxt_motor_set_count(PORT_MOTOR_TAIL, (int)0); gkRobotStat.robotStat = ROBOT_STAT_STAND; } else { /* NOTHING */ } }
//リモートスタート管理関数 static int remote_start(void){ int i; unsigned int rx_len; unsigned char start = 0; //状態フラグ for (i=0; i<BT_MAX_RX_BUF_SIZE; i++){ rx_buf[i] = 0; //受信バッファをクリア } rx_len = ecrobot_read_bt(rx_buf, 0, BT_MAX_RX_BUF_SIZE); if (rx_len > 0){ //受信データあり if (rx_buf[0] == CMD_START){ start = 1; //走行開始フラグ } ecrobot_send_bt(rx_buf, 0, rx_len); //受信データをエコーバック } return start; }
//***************************************************************************** // ���� : remote_start // �� : ���� // �Ԃ�l : 1(�X�^�[�g)/0(�ҋ@) // �T�v : Bluetooth�ʐM�ɂ�郊���[�g�X�^�[�g�B Tera Term�Ȃǂ̃^�[�~�i���\�t�g����A // ASCII�R�[�h��1�𑗐M����ƁA�����[�g�X�^�[�g����B //***************************************************************************** static int remote_start(void) { int i; unsigned int rx_len; unsigned char start = 0; for (i=0; i<BT_MAX_RX_BUF_SIZE; i++) { rx_buf[i] = 0; /* ��M�o�b�t�@���N���A */ } rx_len = ecrobot_read_bt(rx_buf, 0, BT_MAX_RX_BUF_SIZE); if (rx_len > 0) { /* ��M�f�[�^���� */ if (rx_buf[0] == CMD_START) { start = 1; /* ���s�J�n */ } ecrobot_send_bt(rx_buf, 0, rx_len); /* ��M�f�[�^���G�R�[�o�b�N */ } return start; }