基于Arduino的智能循迹小车
文章目录
基础知识
本设计需要掌握一些相关的硬件软件知识,读者可通过下面的链接跳转学习。
Arduino的基础知识、语法及常用函数等
Arduino IDE的安装与使用
Arduino UNO的引脚说明
电池驱动TB6612的引脚说明
蓝牙模块HC-05
系统功能说明及材料准备
本设计利用Arduino单片机作为主控制器,结合循迹传感器、蓝牙模块、电机驱动模块等硬件组件,参考具体使用的硬件参数,使用C语言来编写代码,实现小车的自动循迹与启停控制等功能,从而使小车可以按照正确的路线来行驶。
本系统所有所需原件如下表所示:
部件名称/数量 | 功能 |
---|---|
Arduino Uno/1 | 微控制器,是智能小车的核心 |
MG513/2 | 电机驱动,控制转向和转速 |
亚克力板/2 | 底板 |
轮胎/2 | 后轮,受电机控制 |
万向轮/2 | 前轮 |
亚伯四路循迹传感器/1 | 检测路线 |
3s航模电池/1 | 供电 |
TB6612电池驱动/1 | 确保电压电流稳定输出 |
HC-05/1 | 蓝牙通讯 |
系统总体架构图如下
一、硬件连接
1.电池驱动模块
首先进行主板与电池驱动及电机的连接,接线图如图,其中STBY是TB6612驱动的启动脚,它用于控制电机驱动模块的启动与否,当STBY引脚接5V时,驱动模块可以正常工作,但当STBY接低电平时,驱动模块将处于休眠状态。PWMA(PWMB)引脚连接Arduino Uno,接收开发板传出的PWM信号,控制电机的转速。
除此之外TB6612的电源输入接口(如下图)要连接上航模电池的电源线,此时打开电源开关,可以看到电池驱动板上的LED灯亮起,即为连接成功,电池可以正常供电。
2.循迹模块及蓝牙控制模块
接下来将四路循迹模块和蓝牙模块与Uno开发板进行连接,这一步中要格外注意该模块中四个独立的小传感器的位置和其排线顺序之间的对应。除此之外,因为检测的精度与灵敏度对后面小车运行轨迹的准确性息息相关,所以还要注意将传感器固定在底板上时要使调节灵敏度的旋钮暴露在底板外,方便后续调节。接线图如图所示。
二、整体功能整合
1.功能流程图示意
根据上述系统流程图,编写相应的程序代码,以实现小车的完整功能,程序主要由电机驱动、循迹模块、蓝牙通讯三部分组成。
2.程序设计
2.1 电机驱动
在setup()函数中要先通过Serial函数设置串口波特率,方便后续通过串口查看当前数据情况。首先通过Motor_Init函数实现电机初始化,每个电机都需要与特定的引脚相连,这些引脚需要使用pinMode函数配置为输出模式,若不对电机进行初始化,Arduino无法正确控制电机的工作状态。初始化过程中,电机会被设定为一个初始状态(如停止或以低速运行),这是为了防止电机在系统启动时因接收到随机信号而突然启动,从而避免潜在的危险和不稳定情况。初始化过程可以确保每次系统启动时,电机都处于相同的初始状态,这对于调试和控制算法的稳定运行至关重要。
部分代码如下所示: