浅析Arduino单片机智能小车设计
2019-06-30梅蓉
梅蓉
【摘 要】相较于其他系统,Arduino表现出编程简易、成本低、平台跨越等一系列优势,将其应用于智能小车设计具有十分重要的现实意义。文章通过阐述整体系统设计方案,对Arduino单片机智能小车硬件设计、软件设计及示例功能的实现展开探讨,旨在为促进智能小车设计的健康稳定发展提供必要借鉴。
【关键词】Arduino;单片机;智能小车
【中图分类号】PT29 【文献标识码】A 【文章编号】1674-0688(2019)02-0123-02
0 引言
依托各式各样传感器采集一系列信息,传输至主控单元Arduino单片机处理数据后实现相应操作,进而达到自身控制。电机驱动电路,借助H桥驱动模块驱动2个直流电机;借助手机蓝牙用户界面、HC-06蓝牙模块实现蓝牙控制;借助HC-SR04超声波模块、舵机模块实现测距及避障,最后通过控制单元处理数据完成编程,并有效整合一系列模块信号,实现相应操作,达到智能控制的目的,如同简易机器人。
1 整体系统设计方案
相较于其他系统,Arduino表现出编程简易、成本低、平台跨越等诸多优势。现阶段,较为常用的Arduino版本为Arduino UNO R3,其高效性、稳定性可为智能小车设计提供有力支持。智能小车是指一款可对一系列实际状况开展智能自主评估分析,进一步作出理想操作的智能机器。智能小车整体结构主要依托直流电动机驱动,将各式各样传感器采集的信息数据传输至主控单元Arduino单片机,单片机开展对应的数据处理分析,实现最理想的相应操作,这一过程可称为智能化自身控制。
2 硬件设计
智能小车硬件环节以模块化方式开展设计,设计内容主要包括电源模块、电机驱动模块、控制模块、红外收发模块、LCD显示模块等。
电源模块在全面系统设计中发挥至关重要的作用,该模块设计稳定与否决定了全面系统设计的成败。本系统的电源主要源自12 V、720 mA可充电式锂电池,经由逆流保护、保险等手段变压调整为其他电压值,供其他模块使用。电机驱动电源为12 V,Arduino单片机运行电压为5 V,电机驱动模块、显示模块、红外收发模块等运行电压为5 V。另外,Arduino还可提供3.3 V、5 V双电压。
电机驱动模块设计运用电机驱动芯片L298N,其包含两个H桥的高电压大电流全桥式驱动器,连接外部续流二极管保护电路,进而实现两个电机的运动姿态控制。因为智能小车电机未设置转速编码盘或者相关传感器,依托调节PWM输出脚脉冲信号占空比,以实现对小车速度的控制。调节完PWM控制端后,变更控制信号输入脚电平,便可使智能小车实现不同姿态的转变。
控制模块在全面系统中发挥至关重要的控制作用。系统设计应用Arduino单片机控制单元,通过主从通信方式实现对系统运行的有效控制。主从双方依托SPI总线开展数据交互。模块设计时,Arduino基于单片机控制核心,本模块依据Arduino UNO开展设计。Arduino作用于控制命令关键词的传输及从机数据的接收,但不直接参与底层硬件模块的控制工作;单片机主要作用于主机传输来命令关键词的接收,并结合各种命令执行对应的子函数,进一步实现不同的功能。
红外收发模块设计主要划分为红外发射头、接收头的驱动电路设计,其中,两个红外发射头通过PNP三极管实现驱动,接收头通过对应的指示灯实现数据接收指示。红外发射头设置于PCB顶部,接收头设置于PCB底部,两个接收头接收面正对发射头正前方,同时发射头、接收头呈相应角度列于智能小车头部两端,切实降低红外信号误接受率。与此同时,通过对红外发射头驱动电路中可调电阻的控制,可实现对红外发射头电流的有效调节。值得一提的是,依托红外收发模块,可实现智能小车的红外避障功能。
LCD显示模块由LCD160、背光及对比度调节电路组成,其主要负责呈现智能小车执行相关功能的对应数据信息。该模块设计过程中,依托四线制方式开展数据信息发送,可实现对单片机I/O端的有效控制。
3 软件设计
3.1 主机程序设计
在主机程序设计过程中,涉及SPI连接、SPI通信初始化、SPI数据发送等关键函数,而主机与从机的SPI通信有效建立与否,则是实现其他功能函数的重要基础。SPI总线初始化函数实现SPI功能初始化,涉及片选引脚选择、输入输出模式设置、数据传输方式等内容。调节满意后,loop主函数部分便可实现对相关功能库函数的调用。期间会涉及片选信号端电平拉低、命令关键词及数据传输、片选信号端电平拉电等流程,结合对应的时序实现对某一字节或若干字节数据的传输。
3.2 从机程序设计
从机程序设计可划分为初始化调用、子函数调用两个部分。单片机配置位设置涉及诸多方面内容,诸如选择芯片振荡器模式、禁用后台调试器、调节数据区和引导区中相关数据保护与否等。单片机配置位调节结束后,从机的SPI初始化应当与主机SPI初始化通信时序保持统一。程序设计过程中,接收主机的数据通过中断响应方式实现接收。接收完成后,依托关键命令字的分析转至对应的子函数,然后经由数据分析实现底层硬件调节,进而实现各项功能。
4 示例功能实现
4.1 红外避障
红外避障是以Arduino两组红外收发器为基础实现智能小车的自动避障功能。这一功能设计借助外部中断、定时器中断方式以检测红外接收头的信号输出脚电压转变情况,缩减红外信号检测滞后性,进一步增强智能小车对障碍物的检测灵敏度。另外,可依托对PWM信号占空比的控制,以有效调节智能小车运动速度;可依托对智能小车避障动作延时参数、红外发射头可调电阻值的调节,实现对智能小车避障效果的有效调节。
4.2 蓝牙遥控
蓝牙遥控是以Arduino连接蓝牙模块及手机应用软件蓝牙遥控为基础,实现手持设备遥控智能小车的功能。Arduino模块经由串口接收蓝牙模块从设备端接收数据,并对其展开分析,然后将分析结果控制逻辑及应用软件手势控制逻辑开展评定处理,进而达到手持设备遥控智能小车的目的。依托手势的不同方向操作,可实现智能小车的不同功能。手持设备控制软件依托第三方设计应用软件,可实现蓝牙连接,并实现蓝牙数据接收、传输等功能。
5 结语
基于Arduino单片机智能小车设计,主要是以Arduino单片机为核心,依托蓝牙系统对Arduino单片机的反馈,从而实现对智能小车通信行动的智能控制,然后依托控制處理器对相关数据展开分析,进一步调节电动机的主驱动,以实现智能小车的红外避障、蓝牙遥控等智能化功能。因此,相关人员必须加大研究力度,不断开拓创新,学习借鉴国内外成功经验,提高对Arduino的有效认识,切实推进智能小车设计的健康稳定发展。
参 考 文 献
[1]章杰瑞,周屹.基于Arduino和PIC单片机智能小车平台的研究与设计[J].电脑知识与技术,2017(29):187-190.
[2]赵津,朱三超.基于Arduino单片机的智能避障小车设计[J].自动化与仪表,2013,28(5):1-4.
[3]陈开军.基于Arduino技术的智能小车设计[J].科技创新与应用,2014(34):78-79.
[4]徐开军,刘飞龙.基于Arduino平台的多功能智能小车的设计[J].电子世界,2016(24):112-113.
[责任编辑:钟声贤]