用51单片机使小车沿预定路线前进的可行性
发布网友
发布时间:2022-04-29 07:48
我来回答
共1个回答
热心网友
时间:2022-06-24 11:54
用51单片机够呛,用stm32单片机应该没问题
这里面有一项十分重要的计算,就是己知当前坐标(GPS获得),并且设定了另一目标点的坐标(地图上抓取或实地测量),单片机要计算目标点与当前点的距离和方位角,这个计算虽不十分复杂(可以网上搜一下,有人会推算公式),但都是三角函数,并且要求经纬角等都是双精度浮点数,用51 单片机来算不是速度慢的问题,关键是内存不够用
我也有这个想法,目前己经在stm32F103单片机上实现了这种运算,下一步是用电子罗盘获得当前小车的指向角,从而决定小车向哪个方向转弯,最终到达目标点
只是因为各种条件*,目前只是在实验用51单片机控制舵机,及获取电子罗盘数据,不过存在一些问题,这两个问题解决后,移植到STM32平台上,就可以真正开始小车的制作了
计算两点间的方位和距离的一种方法如下:
Bj=113.285825;//B点经度,看小数点后面多少位,毕竟地球这么大差1角度秒,距离是很远的
Aj=113.29791667;//A点经度
Bw=33.73010833;/B点/纬度
Aw=33.72178333;//A点纬度
a=cos(rad(90-Aw))*cos(rad(90-Bw))+sin(rad(90-Aw))*sin(rad(90-Bw))*cos(rad(Bj-Aj));//COS(C)
b=sqrt(1-a*a); //sin( c )
A=sin(sin(rad(90-Bw))*sin(rad(Bj-Aj))/b); //sin(A)
AA=asin(A)*180/3.14159265; //方位角,不是最终结果,还需象限调整
C=acos(a); //弧度角
Lab=R*C ; //两点间距离