本帖最后由 zrs 于 2017-1-24 13:06 编辑
我们组买了很多辆这个小车做开发,很多车走不直,所以我们只好想个办法让小车走直线。这是我们组的实现方法,放在论坛上供大家参考:思路:
调节左右轮的速度让小车走直线。
道具:
Arduino滑动变阻器 (10k)我们在国外用的是这款,
淘宝上面或者任何地方都买得到
滑动变阻器在Arduino的应用可以参见这篇教程
https://www.arduino.cc/en/Tutorial/Potentiometer
由于Arduino主板上面有一块电机驱动板,所以需要的是母-母的线,这和教程中不一样,我们用的小车没有装前向的红外传感器,所以A4和A5的接口是空出的。注意一下连的时候滑动变阻器两端接地和VCC,中间接信号。
接下来我们只需要加几句代码,使得旋转变阻器的时候小车的左右轮速度变化,比较简单的办法是这样:
int value_read = analogRead(Input_Detect); double right_correction = (value_read - 511.5) / 511.5;
left_nominal_speed = 100 * (1-right_correction);
right_nominal_speed = 100 * (1+right_correction);
if(left_nominal_speed > 255)
{
left_nominal_speed = 255;
}
if(right_nominal_speed > 255)
{
right_nominal_speed = 255;
}
analogWrite(ENB, left_nominal_speed);
analogWrite(ENA, right_nominal_speed);
将这几句代码加入 loop() 里面就实现了滑动变阻器控制车速,旋转滑动变阻器的时候一边的速度变快,另一边的速度变慢,调节旋钮到合适的位置,小车就能跑直了,
当然这样会直接屏蔽掉本来的左右转功能,同时也屏蔽掉本来的调速功能,至于如何在不屏蔽的情况下调节,就需要多写几行代码了,但是意思和这个代码类似。 最后贴几张图作为参考:
建议小R公司的下一个版本增加一个这样的滑动变阻器的tuning功能,一个变阻器也就几块钱,但是会让我们方便很多。 另外电机板和Arduino板的管脚对应根本不知道,发的电路图全是乱码根本没法看管脚对应关系,这对开发造成很大的麻烦希望能更正。
|