3.TrikeBot小车前进实验

您当前位置: 首页 > 树莓派-Trikebot > 编程语言视频教学

advance.c  点击下载

advance.py  点击下载

实验:树莓派平台-------TrikeBot小车前进实验

 

1、实验前准备

image.png

1-1 树莓派3B+主控板

image.png 

图1-2  2个直流减速电机

image.png 

1-3  9G金属数字舵机

 

2、实验目的

 SSH远程登录树莓派后,运行小车前进可执行程序,实验效果为小车先延时2s,一直循环前进1s。

 

3、实验原理

  对于2路直流减速电机的控制我们采用的是TB6612FNG驱动芯片来驱动电机。通过控制驱动芯片的AIN1,AIN2,BIN1,BIN2,PWMA,PWMB的电平高低来控制电机的正转,反转,停止。本次实验主要是控制AIN1为高电平,AIN2为低电平,BIN1为高电平,BIN2为低电平,进而通过控制PWMA,PWMB在0-255之间控制小车的速度。一路PWM控制小车一侧电机的速度。

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

舵机的控制:一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分。本次实验的采用的舵机是180度伺服,控制关系如下:

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

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

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

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

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

  我们的TrikeBot小车是通过控制舵机来控制前面橡胶轮的方向,从而控制小车的前进方向,本次实验小车我们根据实际情况将舵机的角度设置成了55度,表示小车处于正前方状态。

4、实验步骤

4-1.看懂原理图

image.png 

图4-1 树莓派电路图

image.png 

4-2 电机驱动芯片TB6612FNG

image.png 

4-3  多舵机接口

image.png 

图4-3 树莓派40PIN引脚对照表

 

4-2  理解原理图

由电路原理图可知AIN1,AIN2,PWMA,BIN1,BIN2,PWMB分别接在树莓派主控板上的40,38,36,37,35,33物理引脚上。

         AIN1-----40----29(wiringPi编码)

         AIN2-----38----28(wiringPi编码)

         PWMA-----36----27(wiringPi编码)

         BIN1-----37----25(wiringPi编码)

         BIN2-----35----24(wiringPi编码)

         PWMB-----33----23(wiringPi编码)

注:我们在编写程序采用的是wiringPi库,有关这个库的详细情况,见树莓派软件与文档文件夹

 

4-3 程序代码

详情见TrikeBot小车前进代码。

 

4-4 运行程序

我们先在树莓派系统中输入: gcc advance.c -o advance -lwiringPi编译该文件。注意需要加上-lwiringPi 连接到库文件。编译之后没有错误出现就输入./advance运行该程序,即可听到我们小车前进1S,循环此状态。

需要停止时我们通过ctrl+c,表示向linux内核发送一个终止当前进程的信号,但是此时相关的引脚的状态是不确定的,我们还需要运行一个初始化引脚的脚本对所有引脚初始化。直接运行TrikeBotCar目录下的initpin.sh脚本完成引脚初始化。输入./initpin.sh如果报错-bash: ./initpin.sh: Permission denied,我们可输入chmod 777 initpin.sh改变initpin.sh的文件权限,然后输入./initpin.sh

即可初始化管脚。

如下图所示:

image.png