机器人走迷宫程序用stm32要想学会的话因人而异,但是一般来说快的话需要半个多月,慢的话则需要一两年的时间。
这个情况主要因人而异,会还是精通是两种感念,能用起来的话,我认为使用库函数标准固件库大约一周就行。要是hal库加上cube的话大约3天,但我觉得hal库比较个人不推荐,个人推荐,学懂一款单片机最好就先学会使用寄存器直接 *** 作,这种 *** 作方式效率高,但对新手不友好,大约需要小半年吧。
之所以要这么长时间以及十分不确定性是因为机器人在矩阵范围内可以向上下左右走,终点[2, 3]可以由[2,1]或[1, 3]走来。
可在起点到点[2,1]的距离、起点到[1, 3]的距离中取最小值,再加1格子之间距离为1即可,这就需要复杂的程序编程控制。
对于算法初学者,自然想到递归,当然,递归肯定可以解决问题,但是必须要不能找下去再递归回来,太慢了;时间复杂度,半径是最短距离。能扩散到终点即可,不必求出终点四周的点,再取min值,算法效率最高,时间复杂度也很高,所以一般来说需要一年的时间。
编好的倒是没有,图形的也没有,不过我可以告诉你思路。把程序模块化
void 函数名()
{
while(1)
{
走线程序;
if(达到十字路口的条件)
break
}
}
这样就可以从一个十字路口到另一的十字路口。
如果想直行再用一段上面的程序
如果想转弯
void 函数名()
{
while(1)
{
转弯程序
if(转向完成的条件)
break;
}
}
这样的话走普通的线没问题,如果有什么特殊的线的模块那就得编写新的子程序了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)