智能小车项目设计(之二)

项目、任务:

①.完成由舵机控制方向的超声波壁障功能

②.完成光电码盘测速功能

考核内容:

①.小车实现壁障功能、用关电码盘控制小车运动的精度

②.完成本章最后的作业提交任务和反馈内容(请在实验前看,以免影响提交作业)

背景材料(必看预习和参考材料):

附件一为超声波模块的使用方法

①.舵机的原理和控制方法:

②.在linux下控制GPIO

任务、步骤:

任务一:

完成超声波壁障功能

步骤:

①.超声波模块的实物图以及引脚说明如下图所示:

VCC供5V电源,GND为地线,Trig为触发控制信号输入端,Echo为回响信号输出端。

②.超声波模块的电气参数:

③.超声波模块的控制时序图:

④.根据时序图完成对超声波模块的控制,并加入之前所完成的小车项目之一中,实现壁障功能(即当车子前进时,如果前面有障碍物,则即使手机端发出向前的指令,小车也会强制的停止不向前运动,简单点讲,就是超声波测到前方有障碍物,这时不接受手机的向前指令,而接受小车左转、右转、后退的指令)

任务二:

完成舵机的控制

步骤:

①.舵机的接口为:

②.简单介绍控制舵机的原理:

控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:

0.5ms--------------0度;

1.0ms------------45度;

1.5ms------------90度;

2.0ms-----------135度;

2.5ms-----------180度;

③.为了APP能够控制舵机,将在APP上增加一个控件,通过Socket_1向小车发送77,类似上节中的接口定义,学员按照这个指令来编程以控制舵机。

④.根据上面对舵机控制的介绍完成C++编程来控制舵机,我们将把超声波模块固定在舵机上,实现测各个方向的距离。

任务三:

添加光电码盘,实时测量轮子的速度,来调整两个轮子的pwm,来实现小车更加精确的运动

步骤:

①.实物图以及接口:

电机上装有码盘。

②.产品参数:

1、工作电压 3.3V-5.5V 支持3.3和5V的MCU

2、输出电压 低电平0V 高电平VCC

3、产品尺寸 12.3MM*32MM

③,使用方法:

当小车运动时,OUT端将会就会产生脉冲,计算两个轮子的脉冲数,接可以计算小车的速度。

④.学员编程提高运动精度,当你前进或后退时如果左边的轮子比右边的快,那么你应该实时调整相应轮子的pwm以达到两边轮子一样快。目标就是使小车前进和后退时能够走直线。

作业提交:

1.完成任务一,实现超声波壁障功能

2.完成任务二,实现舵机的控制

3.完成任务三,提高小车的运动精度

results matching ""

    No results matching ""

    results matching ""

      No results matching ""