1. 学习目标
本节课检测按键,控制小车前进、停止功能
2.课前小知识
1)根据麦克纳姆轮的特性,我们的omniduino全向小车要前进时,四个轮子都必须正转,如以下受力分析图:
根据物理运动学知识可知,大小相等,方向相反的力可以互相抵消,假设A轮和B轮正转的速度一样快,那么A轮分解出向右的力和B轮分解出向左的力刚好互相抵消,合力方向向前,根据牛顿第二运动定律(F=ma)可知,加速度方向向前,则最终合速度方向也向前。
2)知道了运动原理,那么我们怎么使用代码的方式来控制小车前进呢?
经过查看硬件速查表可以知道,PCA9685每两个引脚控制一个轮子,一个引脚控制正转,一个引脚控制反转。如左前方电机M1,由PCA9685芯片的12号引脚控制反转和13号引脚控制正转,如果12号输出为0,13号正常输出PWM脉冲,则M1电机正转;如果12号输出PWM脉冲,13号输出为0,则M1电机反转。
3)什么是PWM,PWM是怎么控制电机运转的呢?
PWM指的是脉冲宽度调制,在PWM驱动控制的调整系统中,按一个固定的频率输出高低电平,并根据需要改变一个周期内“高电平1”和“低电平0”时间的长短。通过这种方式改变“占空比”,来改变平均电压(有效电压)的大小,再经过电机驱动放大信号,从而控制电机的转速。
3.寻找积木块
按键的使用相信大家在前面的讲解中已经很熟悉,这里不做赘述。
除去按键所需的积木之外我们还需要:
1)小车运动积木,我们可以选择小车的运动方式:前进后退左右平移等等,速度在0-160之间可调。
组合积木块:
4.编译上传程序
1) 积木搭建完成后,点击Helloblock编程界面右上角的代码模式。我们可以看到对应的Arduino 代码。
2) 然后,我们需要通过USB数据线将omniduino全向小车和电脑连接起来,选择对应的端口号(该端口号要和电脑设备管理器中的端口号保持一致,具体细节请详见【课前准备】-【Helloblock编程软件的使用】)。
!注意:每个电脑的端口号都不一样,请根据实际情况选择你当前的端口号。
3) 点击右上角的上传按钮,即可上传程序。此按键为一键编译上传,所以需要一点时间,请耐心等待。
4) 当编程界面右下角出现“Done compiling Done uploading”的字样时,如下图所示,即表示程序已经下载好了。
5.实验现象
上传成功后,开机后小车不会动,按一下功能按键,小车向前开,再按一次按键小车停止。