版权声明: https://blog.csdn.net/qq_38351824/article/details/88693762
一、元器件的准备:
电机、电机驱动、红外传感器、电池、arduino、稳压模块、轮胎、车模
二、电路的接线方式:
时间比较紧没有复查,有疑问和问题均欢迎大家在下方留言评论。
三、程序底层(使用到的知识):
1、电机转速调整 ----> analogWrite()
需要提醒注意的是:① 不是每个引脚都可以用来输出PWM;② 尽量不要使用5、6引脚。
2、红外传感器数值的读取 ----> digitalRead()
3、PWM需要使用四个,每两个一组(控制正反转和转速),每一组对应一个轮子。
4、一个引脚对应读取一个红外传感器(也有其他方法,由于是入门,这里不再提及),即需要几个红外传感器就需要几个引脚,那么,需要几个红外传感器呢?这就需要根据算法来决定了。
四、算法(逻辑)部分:
!!!注意!!!
算法代表整辆车的思想,而我随便一想就有了十几种方式,下面我仅阐述其中一种算法的思路,我只说思路,不提供代码,主要我怕被学弟揍,仅供参考!!!
按照上图进行讲解
1、正常的循迹赛道:
该部分至少使用两个红外传感器(我也尝试过一个的确实可以,但是太扯淡了),简单的说下思路。
如果两个红外传感器均未检测到黑线时,那么直行;否则如果左边检测到了(说明车偏向右边了),那么左转;否则如果右边检测到了(说明车偏向左边了),那么右转;
2、直角90度的赛道元素:
该部分至少使用两个红外传感器,简单的说下思路。
如果左边检测到了(说明车需要左转90度了),那么左转;否则如果右边检测到了(说明车需要右转90度了),那么右转。
!!!注意!!!一定要确保延时足够让车转过来!也可以考虑加一些辅助元器件来测试车是否转过来,比如陀螺仪,新手不建议使用。
!!!注意!!!传感器的位置一定要这么放吗?想想原因。欢迎下方讨论。
3、双边赛道元素:
这部分可能就是压轴部分了,我没打算在这部分还透露太多的东西,但是我目前还不知道这个赛道的宽度等待被告知…
五、算法(逻辑)的整合:
1、 按照上面的算法有三部分代码,那请问这三部分代码顺序应该怎么放呢?
2、 我的意见是把元素部分的代码放到正常循迹部分代码的前面,你们怎么认为呢?
3、 而元素代码部分内含两部分又该怎么放呢?
因为时间充裕,大家可以慢慢想,愿意讨论的可以在下方评论。
六、其他算法思路(自己比较哪个好噢;不多列):