Steven_MengのBlog

2019/11/2

收到小车配件,开始组装。

配件包含:四个直流马达,四个轮子,底板,若干螺丝,螺母,电池盒等。

Arduino模块包括:开发板(Arduino/Genuino Uno),马达板(L298N),杜邦线等。

组装步骤:

装好底板上的马达

lp6es0.jpg

lp6kGj.jpg

其中螺丝钉要用长一点的那种,需要穿过马达。

安装电池盒和开发板

lp6ZMq.jpg

lp6Ezn.jpg

至此,小车的第一步拼装完成。

2019/11/9

今天主要做接线和测试直线走。

由于L298N只有左右两个接口,所以要左右各接两个马达。

接上电池后Arduino板亮灯,说明接线良好。

遇到问题:写入程序后马达根本不转。

  • 猜想是接线端口接错了

  • 确实有接错的问题,但是接对后还是不转

  • 是不是接触不良

  • 用电压表测量马达两边的电压,发现确实有电压,但是电压太小

  • 再接上4节电池,也就是共8节电池,发现小车可以正常跑起来。

于是最终问题是电压不足。

代码比较好编写:

1
2
3
4
5
6
7
8
9
10
11
12
const int GoSecond=7100;
const int StopSecond=4000;
void forward_and_back(){
forward(150,220);
delay(GoSecond);
pause(0,0);
delay(StopSecond);
back(150,220);
delay(GoSecond+1000);
pause(0,0);
delay(StopSecond);
}

2019/12/22

今天主要测试跑八字。

测试曲线走

遇到问题:调节程序里面左右轮转速的参数,但是两轮转速不变

  • 发现程序里面还预留了两个接口,猜想是还有线没接上去

  • 发现马达板上并没有多余的接口,上网查找资料

  • 发现有两个帽没有拔掉,拔掉以后只用接前面一个接口(称为pwm接口),如图所示

    4__V1Z8SA4__RWBX_~N_GM0.png

  • 接上之后还是无法调转速

  • 发现只有开发板上标有~的接口才能接pwm,这里连上5,6接口

  • 可以调节转速

八字走

设计如下,先向左走一个圈,停一下(防止惯性的影响),然后向右走一个圈。

circle.png

遇到问题,转一个圈之后无法回到开始位置,有点偏差

  • 猜想是因为圈画得太大
  • 将左右轮转速差调大一些
  • 猜想是因为画圈的时间太长了
  • 将画圈的时间CircleTime调小一点
  • 现在第一个圈基本到位,但是第二个圈仍有偏差
  • 猜想是因为第二圈和第一圈的参数不一样
  • 经过不懈的调试,终于调好

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const int LeftMotorSpeed=70;
const int RightMotorSpeed=250;
const int CircleTime=5500;
const int StopTime=2000;
void circle(){
forward(RightMotorSpeed,LeftMotorSpeed-5);
delay(CircleTime);
pause(0,0);
delay(StopTime);
forward(LeftMotorSpeed,RightMotorSpeed);
delay(CircleTime+600);
pause(0,0);
delay(StopTime);
}

视频:

 评论