智能车资料链接:

结构

image.png

测试程序

电机测试

  1. cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/
  2. sudo python3 AlphaBot2.py #我这里是python3的环境,为了更严谨建议写python3
  • 预期结果:程序运行后电机转动,小车向前走。
  • 如果方向不对需要相应修改电机接线,或者修改程序中的管脚。建议采用第二种方法。左边轮子转动方向不对则对ain1,ain2, 右边轮子转动方向不对则对调bin1,bin2。
    1. def __init__(self,ain1=12,ain2=13,ena=6,bin1=20,bin2=21,enb=26):

电机控制原理

一台小车首先要有电机轮子,通过控制电机转动,小车实现不同方向行走。电机可以是直流电机或者步进电机。

  • 步进电机是以步阶方式分段移动,也就是每次只能控制转动一小段。所以步进电机的控制精度会很高,可以精确的控制转动距离,但是转速会比较慢。在控制精度要求很高的情况会用,例如机械手臂等。
  • 直流电机则相反,转速快,但是控制精度相对差。直流电机是通过电压控制,通电后电机就可以转,电压越大转速越快,电流方向决定电机转动方向。智能车多少采用直流电机控制。

直流电机通常采用H桥控制。H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
image.png
当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。电流将驱动电机顺时针转动。
image.png
当Q2和Q3导通时,电流将从右至左流过电机。此时电流将驱动电机逆针转动。
image.png
实际使用的时候,用分立元件制作H桥是很麻烦的,很多时候采用H桥集成电路,接上电源、电机和控制信号就可以使用了,比如常用的L293D、L298N、TB6612FNG等。
image.png
以TB6612FNG为例讲解。这两个芯片都是对应A B两组H桥,分别控制两个电机。A组控制左轮,B组控制右轮。每个电机分别由三个管脚控制,AIN1 AIN2两个管脚控制方向,PWMA通过PWM脉冲控制电机转动。AIN1,AIN2电平一样时,电机不转,电平不一样时电机转动,转动方向和AIN1,AIN2的电平有关。这里假设AIN1为低电平,AIN2为高电平时,电机正转,轮子向前走。BIN1为低电平,BIN2为高电平时,电机正转,轮子向前走。

AIN1 AIN2 BIN1 BIN2 描述
0 1 0 1 左右电机正转,小车前进
1 0 1 0 左右电机反转,小车后退
0 1 1 0 右电机反转,左电机正转,小车右转
1 0 0 1 左电机反转,右电机正转,小车左转
0 0 0 0 左右电机停止,小车停止

软件远程控制

  1. cd AlphaBot2-Demo/Raspberry Pi/AlphaBot2/App-Control
  2. sudo python main.py