mirror of
https://gitee.com/yyz_o/bk_bishe_pi.git
synced 2025-09-07 23:21:26 +00:00
2025.5.18第二次提交,重新写一份复杂的,慢一些的turn函数
This commit is contained in:
96
bot_code_turn/maze_func_turn.cpp
Normal file
96
bot_code_turn/maze_func_turn.cpp
Normal file
@@ -0,0 +1,96 @@
|
||||
#include<iostream>
|
||||
#include<string>
|
||||
#include"eyebot++.h"
|
||||
#include"maze_parameter.h"
|
||||
#include"maze_func.h"
|
||||
using namespace std;
|
||||
|
||||
|
||||
void BOTturn(int turn)
|
||||
{
|
||||
int f_wall, b_wall, r_wall, l_wall;
|
||||
int old_f_wall, old_b_wall;
|
||||
int turn_check;
|
||||
|
||||
if (turn == -1) //右转
|
||||
{
|
||||
l_wall = PSDGetRaw(2) - 16;
|
||||
if (l_wall < 145)
|
||||
{
|
||||
b_wall = PSDGetRaw(4) - 2;
|
||||
do
|
||||
{
|
||||
old_b_wall = b_wall;
|
||||
MOTORDriveRaw(1,19);
|
||||
MOTORDriveRaw(2,-17);
|
||||
OSWait(850);
|
||||
MOTORDriveRaw(1,0);
|
||||
MOTORDriveRaw(2,0);
|
||||
b_wall = (PSDGetRaw(4) - 2) * 0.7 + old_b_wall * 0.3; //减小突变
|
||||
turn_check = b_wall - old_b_wall;
|
||||
OSWait(50);
|
||||
} while ( turn_check < -3 || b_wall > 140);
|
||||
}
|
||||
else
|
||||
{
|
||||
ENCODERReset(1);
|
||||
ENCODERReset(2);
|
||||
do
|
||||
{
|
||||
MOTORDriveRaw(1,21);
|
||||
MOTORDriveRaw(2,-19);
|
||||
} while (abs(ENCODERRead(2)) < 218);
|
||||
}
|
||||
MOTORDriveRaw(1,0);
|
||||
MOTORDriveRaw(2,0);
|
||||
}
|
||||
else if (turn == 1) //左转
|
||||
{
|
||||
r_wall = PSDGetRaw(3);
|
||||
if (r_wall < 145)
|
||||
{
|
||||
b_wall = PSDGetRaw(4) - 2;
|
||||
do
|
||||
{
|
||||
old_b_wall = b_wall;
|
||||
MOTORDriveRaw(1,-19);
|
||||
MOTORDriveRaw(2,17);
|
||||
OSWait(850);
|
||||
MOTORDriveRaw(1,0);
|
||||
MOTORDriveRaw(2,0);
|
||||
b_wall = (PSDGetRaw(4) - 2) * 0.7 + old_b_wall * 0.3; //减小突变
|
||||
turn_check = b_wall - old_b_wall;
|
||||
OSWait(50);
|
||||
} while (turn_check < -3 || b_wall > 130);
|
||||
}
|
||||
else
|
||||
{
|
||||
ENCODERReset(1);
|
||||
ENCODERReset(2);
|
||||
do
|
||||
{
|
||||
MOTORDriveRaw(1,-21);
|
||||
MOTORDriveRaw(2,19);
|
||||
} while (abs(ENCODERRead(2)) < 240);
|
||||
}
|
||||
MOTORDriveRaw(1,0);
|
||||
MOTORDriveRaw(2,0);
|
||||
}
|
||||
else if (turn == 2) //掉头
|
||||
{
|
||||
ENCODERReset(1);
|
||||
ENCODERReset(2);
|
||||
do
|
||||
{
|
||||
MOTORDriveRaw(1,21);
|
||||
MOTORDriveRaw(2,-19);
|
||||
|
||||
} while (abs(ENCODERRead(2)) < 500);
|
||||
MOTORDriveRaw(1,0);
|
||||
MOTORDriveRaw(2,0);
|
||||
}
|
||||
else
|
||||
{
|
||||
cout << "errer" << endl;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user