77#include "u8g.h"
88#include <string.h>
99#include "arc.h"
10- #define FOLLOW_DISTANCE 120 //跟随距离
10+ #define FOLLOW_DISTANCE 120
1111#define STOP_DISTANCE 80
1212#define LOST_DISTANCE 300
1313#define ALARM_DISTANCE 400
@@ -53,7 +53,7 @@ void u8g_prepare(void)
5353}
5454static void draw (int32_t temp , uint16_t pmm )
5555{
56- char s []= "Temperature: . C" ; //温度
56+ char s []= "Temperature: . C" ;
5757 s [12 ]= (int )(temp /100 )+ 48 ;
5858 s [13 ]= (int )((temp - ((int )(temp /100 ))* 100 )/10 )+ 48 ;
5959 s [15 ]= (int )(temp %10 )+ 48 ;
@@ -162,14 +162,14 @@ static void stop(void)
162162int main (void )
163163{
164164 uint8_t rcv_buf [28 ];
165- int a0_to_a1 ;//基站0到基站1距离
166- int a0_to_a2 ;//基站0到基站2距离
167- int a1_to_a2 ;//基站1到基站2距离
168- int t_to_a0 ;//标签到基站0距离
169- int t_to_a1 ;//标签到基站1距离
170- int t_to_a2 ;//标签到基站2距离
171- double a = 20.0 ;//等边三角形边长
172- double b ,c ,d ,f ,jiaodu ,y ;//坐标表示
165+ int a0_to_a1 ;
166+ int a0_to_a2 ;
167+ int a1_to_a2 ;
168+ int t_to_a0 ;
169+ int t_to_a1 ;
170+ int t_to_a2 ;
171+ double a = 20.0 ;
172+ double b ,c ,d ,f ,jiaodu ,y ;
173173 uint32_t rcv_cnt ;
174174 uint32_t i = 0 ;
175175 uint32_t baudrate = 115200 ;
@@ -231,23 +231,23 @@ int main(void)
231231 a0_to_a2 = (rcv_buf [25 ]<<8 ) |(rcv_buf [24 ]) ;
232232 a1_to_a2 = (rcv_buf [27 ]<<8 ) |(rcv_buf [26 ]) ;
233233 }
234- y = (t_to_a0 * t_to_a0 - t_to_a1 * t_to_a1 )/(2 * a );//标签y方向坐标
234+ y = (t_to_a0 * t_to_a0 - t_to_a1 * t_to_a1 )/(2 * a );
235235 b = 2 * a * a + 2 * t_to_a2 * t_to_a2 - t_to_a0 * t_to_a0 - t_to_a1 * t_to_a1 ;
236236 c = t_to_a0 * t_to_a0 + t_to_a1 * t_to_a1 - 2 * a * a - 2 * t_to_a2 * t_to_a2 ;
237237 d = t_to_a0 * t_to_a0 - t_to_a1 * t_to_a1 ;
238238 f = sqrt1 (c * c + 3 * d * d );
239239 jiaodu = b /f ;
240- jiaodu = acos1 (jiaodu )* 180.0 /PI ; ////////基于三点定位原理,建立空间直角坐标系,计算方位角
240+ jiaodu = acos1 (jiaodu )* 180.0 /PI ;
241241 printf ("jiaodu=%lf\n" ,jiaodu );
242- if (t_to_a2 > FOLLOW_DISTANCE && t_to_a2 < LOST_DISTANCE ) //如果距离大于跟随距离
242+ if (t_to_a2 > FOLLOW_DISTANCE && t_to_a2 < LOST_DISTANCE )
243243 {
244244 if (right_obstacle > 0 )
245245 right_obstacle -- ;
246246 if (left_obstacle > 0 )
247247 left_obstacle -- ;
248248 if (turn_left )
249249 {
250- if (dis_m < 80 ) //正前方障碍物距离小于80cm,继续转,否则前进。
250+ if (dis_m < 80 )
251251 {
252252 left ();
253253 }
@@ -269,11 +269,11 @@ int main(void)
269269 left_obstacle = 2 ;
270270 }
271271 }
272- else if (dis_l < 30 || dis_m < 30 || dis_r < 30 ) //如果障碍物距离小于30,小车后退
272+ else if (dis_l < 30 || dis_m < 30 || dis_r < 30 )
273273 {
274274 back ();
275275 }
276- else if (dis_l < 50 || dis_r < 50 )//如果障碍物距离小于50,小车朝另一边走。
276+ else if (dis_l < 50 || dis_r < 50 )
277277 {
278278 if (dis_l < 50 )
279279 {
@@ -286,29 +286,29 @@ int main(void)
286286 right_obstacle = 2 ;
287287 }
288288 }
289- else if (y <=0 && (jiaodu >=40 && dis_l >=80 || jiaodu >=70 )&& left_obstacle == 0 )//标签在小车左边40度,并且左边没有障碍物。或者标签在小车左边大于70度。朝标签方向旋转。
289+ else if (y <=0 && (jiaodu >=40 && dis_l >=80 || jiaodu >=70 )&& left_obstacle == 0 )
290290 {
291291 left ();
292292 }
293293 else if (y > 0 && (jiaodu > 40 && dis_r > 80 || jiaodu > 70 )&& right_obstacle == 0 )
294294 {
295295 right ();
296296 }
297- else if (dis_m < 50 ) //如果正前方障碍物小于50cm
297+ else if (dis_m < 50 )
298298 {
299- if (dis_r > 50 || dis_l > 50 )//左边或者右边障碍物大于50cm,则朝没有障碍物的地方转。
299+ if (dis_r > 50 || dis_l > 50 )
300300 {
301- if (dis_r > dis_l ) //1:进入朝右转模式,一直转到正前方没有障碍物,再往前走。
301+ if (dis_r > dis_l )
302302 {
303303 turn_right = 1 ;
304304 }
305305 else
306306 {
307- turn_left = 1 ; //进入朝左转模式,一直转到正前方没有障碍物,再往前走。
307+ turn_left = 1 ;
308308 }
309309 }
310310 }
311- else if (right_obstacle == 0 && left_obstacle == 0 ) //标签在正前方,并且左右没有障碍物
311+ else if (right_obstacle == 0 && left_obstacle == 0 )
312312 {
313313 forward ();
314314 }
0 commit comments