基于Arduino的麦克纳姆轮绘图小车.docx

上传人:wj 文档编号:1946202 上传时间:2023-05-02 格式:DOCX 页数:49 大小:2.04MB
下载 相关 举报
基于Arduino的麦克纳姆轮绘图小车.docx_第1页
第1页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第2页
第2页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第3页
第3页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第4页
第4页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第5页
第5页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第6页
第6页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第7页
第7页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第8页
第8页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第9页
第9页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第10页
第10页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第11页
第11页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第12页
第12页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第13页
第13页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第14页
第14页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第15页
第15页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第16页
第16页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第17页
第17页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第18页
第18页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第19页
第19页 / 共49页
基于Arduino的麦克纳姆轮绘图小车.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Arduino的麦克纳姆轮绘图小车.docx

《基于Arduino的麦克纳姆轮绘图小车.docx》由会员分享,可在线阅读,更多相关《基于Arduino的麦克纳姆轮绘图小车.docx(49页珍藏版)》请在冰点文库上搜索。

基于Arduino的麦克纳姆轮绘图小车.docx

南京师范大学电气与自动化工程学院毕业设计论文

摘要

智能小车是移动机器人学的一个重要分支,是当今从业余爱好者到研究人员中最受欢迎的项目之一,应用广泛,在文化与生活中也起到越来越大的作用。

从长远来看,它未来不管在民用还是军事亦或是太空开发等领域有着不错的前景与发展空间,随着时代的发展,人工智能也日益受人们所青睐。

本文主要设计任务的制作一辆基于Arduino的麦克纳姆轮绘图小车,并编写合适的程序使得用户可以通过安卓手机蓝牙来控制小车的移动以及笔架的升降,从而达到绘图目的。

文章对小车的车体设计及整体框架进行了描述,对小车的各个模块也进行了相应介绍。

文章介绍了本次所使用的ATmega328开发板与麦克纳姆轮的运动原理,通过对Arduino平台和keil软件的使用编写了控制小车运作的主程序与控制笔架升降的STC单片机程序。

文章末尾为本次设计所遇到的问题以及对应心得的描写,也有对本次毕业设计的一些改进的想法。

本次毕业设计所完成的智能小车基本达到预期所想,具有很大的推广价值,可以实现可靠的全向移动能力,性能可靠。

关键词:

Arduino麦克纳姆轮蓝牙控制智能小车

I

Abstract

Smartcarisanimportantbranchofmobilerobotics.Itistoday'sresearchersfromamateurtooneofthemostpopularitems,widelyused,incultureandalsoplayamoreandmoreimportantroleinthelife.Inthelongrun,itsfuturedevelopmentbothincivilandmilitaryorspace,andotherfieldshasagoodprospectsanddevelopmentspace,withthedevelopmentofTheTimes,artificialintelligenceisincreasinglypopularwithpeople.

Inthispaper,themaindesigntaskofmakingaglossymuwheeldrawingbasedontheArduinocar,andwritetherightprogramthatallowsuserstoandroidbluetoothtocontrolthemovementofthecarandtheriseandfallofpenrack,soastoachievemappingpurpose.Thispaperdescribesthevehiclebodydesignandtheoverallframe,andintroducesthemoduleofthecar.

ATmega328usedbythisarticleintroducesthedevelopmentboardandthedepartment'skinematicprincipleofwheel,throughtheuseoftheArduinoplatformandkeilsoftwarethewriteoperationistocontrolthecarpenrackmainprogramandcontroloftheelevatoronSTCmicrocontrollerprogram.Attheendofthearticle,therearesomeSuggestionsforthedesignofthisdesign.

Thisgraduatedesigncompleteintelligentcarachievestheexpected,hasgreatpopularizationvalue,canrealizeomnidirectionalmobileability,reliableperformanceandreliability.

Keywords:

ArduinoMecanumwheelbluetoothcontrolsmartcar

II

目录

第一章绪论 1

1.1选题背景及意义 1

1.2国内外研究现状 1

1.3课题的主要研究内容 2

第二章硬件介绍 3

2.1Arduino介绍 3

2.1.1Arduino开发板的选择 3

2.1.2Arduino拓展板 6

2.2麦克纳姆轮介绍 6

2.2.1麦克纳姆轮原理 7

2.2.2麦克纳姆轮运动分析 7

2.2.3全向运动的实现 9

2.3蓝牙模块的选择 12

2.4L293驱动控制板 13

第三章程序的调用及编写 14

3.1类库的编写及调用 14

3.1.1简介 14

3.1.2库文件的改用 14

3.2Arduino主程序的编写 17

3.3STC单片机程序的编写 20

第四章程序的烧录 25

4.1Arduino的烧录 25

4.2STC单片机的烧录 26

第五章小车模型及操作流程 28

5.1小车的最终成品 28

5.2流程示意 29

第六章总结与不足 30

6.1课题总结 30

6.2问题与不足 31

致谢 32

参考文献 33

第一章绪论

1.1选题背景及意义

如今,多智能体系统(Multi-AgentSystem)已经被给予越来越多的研究和重视。

智能小车作为其体系的重要组成部分,拥有广泛的应用前景和期望,成为了当前许多高校和电子竞赛所热衷的课题,可见其研究意义之大。

本课题结合了当前热门的智能小车以及创客热衷的Arduino设计开发平台,再配合上将来拥有巨大商业和工业价值的Mecanum轮,通过蓝牙遥控实现无线控制进而达到全向绘图功能的智能小车。

智能化是现代社会的产物,是未来的方向,是当前科技发展的目标,它可以起到比人为更为高效和安全的效果。

自1978年,“智能模拟”就成为国家科学技术发展规划的主要研究课题。

大力发展智能化,可以实现对资源的充分利用,进而获得最大收益,提高工业生产效率,还可以大大减少事故发生的概率,适合以后向慢慢从高端走向生活化。

智能小车,是现代的先进技术的综合体,属于移动轮式机器人的一种。

目前常见的轮式机器人遍布于医疗、军事、生活等各领域,发展面之广。

然而目前常见的轮式机器人有其很多的弊端,在执行许多工作中往往会因为环境空间过于狭小进行无法移动,丧失机动性。

近年来,全向移动的机器人以其特有的优越性越来越受到人们的关注及国内外研究机构的重视,Mecanum轮能在狭隘的空间里快速完成多种作业,对轮式移动小车具有极大的研究价值。

1.2国内外研究现状

基于Mecanum轮的全向机器人在国外已经发展多年,国内的研究还十分少见。

在使用全向移动的技术后,可以显著提高小车的机动性和灵活性,在狭隘的空间作业时,有着显著的优势。

在Mecanum轮发明后,世界许多发达国家诸如美国等大量应用于工业、民用、军事领域,包括叉车、运输车、竞赛智能车等。

1996年美国的Airtrax公司就作为第一个采用该技术公司,将其运用于车辆商业化。

图1-1为Airtrax公司的Sidewinder系列叉车,它们可以实现在狭窄的空间里全方位移动,灵活自由,极大的提高了企业生产效率,具有极大的经济效益。

图1-1Airtrax公司系列叉车

同时,随着国外对Mecanum轮的研究及应用,诸多国内学者也对其进行了许多深入的研究及讨论。

研究的领域包括运动学、运动效率的研究、全向轮的布局及原理探究等,并在此基础上提出了一系列的成果。

其中,PatrickMuir运用矩阵变换的方法建立了Mecanum运动学模型,并运用于反馈算法设计。

1.3课题的主要研究内容

本课题的主要研究任务是研制一辆基于Arduino开发板的,Mecanum轮由4个直流电机控制的,由NMB微型步进推杆电机驱动的笔架结构,从而实现绘图功能的智能小车。

其中,小车由四轮底盘、Mecanum全向轮设计、笔架结构、蓝牙模块、Arduino开发板、电机驱动板等构成。

本文内容一共分为六章,安排如下:

第一章绪论:

介绍课题背景,并探讨智能小车以及Mecanum轮在国内外的研究现状,以此来讨论课题意义。

第二章硬件介绍:

主要介绍本次设计所用到的硬件及一些简单的原理分析及使用介绍。

第三章程序的调用及编写:

主要描写了本次小车所用到的主要程序及编写思路和构成的框架。

第四章程序的烧录:

将本次设计所用到的一些软件部分进行使用说明,描述了我烧录程序的一些基本步骤。

第五章小车模型及操作流程:

介绍了小车最终的成品以及操作小车的流程示意。

第六章总结与不足

第二章硬件介绍

近年来单片机的种类众多,既有一直流行的8位机:

51单片机、AVR、PIC等系列,还有日趋受欢迎的16位机、MSP420等系列,还有ARMCortox‐M系列,这些的单片机都有其各自的优势,使用者可以根据自己的喜好,除此以外还有更接近MCU的DSP系列。

而且我认为:

关于所谓单片机的应用学习,最核心的是要去自己理解以个MCU,然后再根据控制需求来分配MCU资源,编写对应程序,这样才是学习的关键所在。

2.1Arduino介绍

马西莫·班兹原是意大利伊夫雷亚的一家设计学校的老师。

他学校的学生们经常抱怨没有好用的微控制器。

到2005年冬天,马西莫·班兹与DavidCuartielles一起说起了这个问题。

于是2人开始一起设计电路板,三天后,电路板宣布完工。

MassimoBanzi根据自己喜欢去的一家叫做diReArduino的酒吧,这个酒吧是在1000年前以意大利国王Arduin的名字所命名的。

他为了纪念这个就把,将这块电路板命名为Arduino,这就是Arduino名字的由来。

后来Banzi、Cuartielles和Mellis将这个设计图发到了网上。

那时版权法虽然可以监管许多开源软件,但却很难作用于硬件上面,所以他们后来便采用了一种叫做CreativeCommons(CC)的方式来公开设计图来维持自己的自由开源理念。

通过这样的授权,任何人都可以使用他们的设计板。

人们可以自由的使用或者开发Arduino开发板,甚至都不需要开发团队的授权。

但是,一旦你发布了自己的引用设计,那么你就需要声明原先的开发团队。

如果你相应修改电路板。

那么必须用一用的CC授权方式,这样就可以保证新的版本也可以有一用的自由和开发。

Arduino这个名字是被唯一所保留的,被注册成了商标,不允许在未经许可的情况下使用。

随着Arduino的发展,今年来有了众多的衍生控制器产生,这也是Arduino的自由开放所带来的成果。

2.1.1Arduino开发板的选择

Arduino控制器是一个在一个微控制器专为机器人应用。

作用与Arduino开源平台,它支撑上千的开放源代码,并易于扩展与大多数ArduinoShields。

板上的微控制器使用Arduino编程语言编程(基于接线)和Arduino开发环境(基于处理)。

Arduino项目可以独立或他们可以在计算机上运行的软件进行通信(例如Flash,处理,MaxMSP等)。

本次设计小车采用的开发板型号是ArduinoAtmega168/328,如图2-1所示

图2-1Atmega168/328

Atmega168/328开发板具有14通道数字输入输出,6通道的PWM(PIN11,pin10,pin9,pin6,PIN3)8通道10位模拟I/O,也支持USB接口通信,有自动感应的开关电源输入,烧录方面也支持ICSP头程序直接下载,串行借口TTL电平,支持AREF和male/female针头,有着用于APC220射频模块集成插座。

在直流电源方面支持USB供电或外部的7v交流电压,直流12V电压。

直流输出:

5V/3.3VDC和外部电源输出尺寸:

90x80mm。

硬件简介:

-调节电动机的电源输入端(6v-12v);

-不受管制的伺服电源输入端子(供给调节4v-7.2V);

-伺服输入功率选择跳线口;

-串行接口模块headerforapc220模块;

-两直流电机端子–处理电机电流制定2a;

-IIC/TWI端口–SDA,SCL,5V,GND;

-模拟端口与8个模拟输入;

-输入与内部电源电压;

-通用I/O端口13个I/O线;

-4,5,6,7可以用来控制电机;

-复位按钮。

ATmega328的微控制器板有14个数字输入/输出引脚(其中6可作为PWM输出),6个模拟输入,一个16MHz的晶体振荡器,一个USB接口,一个电源插座,一个扩展报头,和一个复位按钮。

它包含所有需要的D支持微控制器;只需将它连接到计算机与USB电缆或电源它与交流到直流适配器或电池开始。

具有以下功能。

a.记忆功能:

ATmega328具有32KB的记忆容量(0.5KB用于引导)。

除此之外它也有2KB的SRAM和1KB的EEPROM(可读取和写入与EEPROM库)。

b.输入和输出PinMode:

14个不同的数字引脚的Duemilanove可以作为输入或输出,使用pinmode(),digitalwrite()和digitalread()功能可以实现引脚的引用。

他们的工作电压固定在5V。

每个引脚可以提供或接收40mA最大并具有内部上拉电阻(断开默认)20-50欧姆。

此外,一些引脚有专门的功能:

系列引脚:

0号引脚(RX)和1号引脚(TX)。

用于接收(RX)和传输(TX)TTL串行数据。

这些引脚连接到相应的引脚的FTDIUSBTTL串口芯片。

外部中断:

2号引脚和3号引脚。

这些引脚可配置触发中断,在一个低值,上升或下降沿,或改变价值。

看到attachinterrupt()功能详情。

脉宽调制:

3,5,6,9,10,11号引脚。

提供与analogwrite()8位PWM输出功能。

SPI:

10(SS),11

(2)、12(MISO),13(SCK)。

这些引脚支持SPI通信使用SPI。

c.通信:

Arduino开发板上有许多设施可以通过计算机与另外的Arduino微控制器进行通信。

ATmega328提供UARTTTL(5V)串行通信,可通过数字引脚0(RX)和1(TX)进行通信。

板上的串口通信在Atmega8u2渠道USB和作为一个虚拟COM端口一起出现在计算机上的软件上。

8u2固件使用标准的USBCOM驱动程序,不需要外部驱动程序。

然而,在Windows中,一个inffile是必须安装的。

当计算机发送数据时,RX和TX发光二极管在板上会闪烁时,数据是通过USB传输到串行芯片和USB连接到计算机。

2.1.2Arduino拓展板

图2-2ATmega168和Atmega328拓展板

ATmega168和Atmega328的IO拓展板如图2-2所示,支持RS485接口可驱动4个电机。

这个Arduino兼容的I/O扩展通过精心的设计从而达到与Arduino板之间的一个简单的连接(如ArduinoDuemilanove)和其他设备,如传感器、RS485器件。

在本质上,它扩大了Arduino控制器的数字I/O和模拟输入引脚与电源和接地端。

它是用arduinomega兼容,是一个完美的伴侣。

特征:

1.支持XBee(XBee-Pro);

2.一个独特的RS485输出,支持RS485设备;

3.独立的PWM引脚,这是与标准伺服连接器兼容;

4.支持蓝牙模块APC220模块;

5.外部电源与车载电源之间的自动切换;

6.支持SD卡(读写-我们的SD卡模块是必要的);

7.支持IIC/I2C/双连接。

2.2麦克纳姆轮介绍

麦克纳姆轮最早为瑞典Macanum公司所提出的,目前应用十分广泛。

他也可以成为斜齿轮,轮齿是由可以旋转的鼓形锟子所组成的。

麦克纳姆轮的轮子结构相对来说比较繁杂,无论对于环境或者是生产工艺都要求较高。

但是,它无论在工业还是军事领域都有极为广泛的运用和前景,这点让它具有很大的上升和研究空间。

2.2.1麦克纳姆轮原理

麦克纳姆轮的设计体系,广泛运用于各类工程实际运作当中,属于目前技术相对较为成熟的一种轮体设计结构。

它有别于传统的车轮,它由设计轴线相差四十五度的轮毂和辊子所构成。

数个辊子由一定的精度设计搭建在一起,与车轮的圆周重合,从而使得车轮实现自由滚动的目的。

当车轮以一定速度滚动时,辊子会与车轮圆周一起实现侧向运动。

通过将多个麦克纳姆轮搭建在一起,从而实现小车在平面内按照指令实现多个方向的移动和转动。

一般情况来说,安装麦克纳姆轮的小车通常由多个电机通过同步驱动的方式,加以微调从而来达到小车的全方向移动。

麦克纳姆轮的自由度是影响其全向移动的关键。

麦克纳姆轮具有2个自由度:

第一个是车轮本身围绕其轴线的转动;第二个是辊子绕其轴线转动。

因此,麦克纳姆轮在旋转的时候,除了能主动运动之外,在辊子的轴线上也具备被动运动的能力。

当轮子绕着固定的车轴转动时,其辊子会绕成一个圆柱面,进而实现连续的滚动,当各个轮子按照一定的组合一起运动时,可以实现在平面上的三自由度运动。

如图2-3为麦克纳姆轮结构件的图示。

图2-3麦克纳姆轮结构件图

2.2.2麦克纳姆轮运动分析

本次毕业设计采用四个麦克纳姆轮按照正方四轮接法,为了方便分析运动原理,建立了如图2-4所示坐标系。

图2-4麦克纳姆轮小车底盘坐标系

如图所示,L表示车身的长度,l为宽度,车速为V(包括Vx与Vy),Wz为车身绕Z轴的角速度。

图中参数满足以下关系:

(2-1a)

(2-1b)

(2-1c)

(2-1d)

其中ai-i轮辊子轴线与轮轴线夹角(i=1,2,3,4)

若考虑矢量方向性,沿着XY轴分解公式可得:

(2-2a)

(2-2b)

(2-2c)

(2-2d)

联立以上方程可得小车的逆运动学方程:

(2-3a)

(2-3b)

(2-3c)

(2-3d)

当小车的平移速度和转动角速度已知时,运用以上逆运动学方式,就可得各个轮子的转速,再对以上公式进行矩阵变换,便可得到正运动学方程:

(2-4a)

(2-4b)

(2-4c)

2.2.3全向运动的实现

本次毕业设计搭建小车底盘麦克纳姆轮搭建方式如图2-5所示。

图2-5小车示意图

从示意图分析小车的运动方式其实很直观,当轮1,2,3,4,按照一定角速度向前或向后转动时,小车可实现向前移动,如图2-6所示。

图2-6小车前后移动

当轮四个轮子速度相同,而轮1、3与轮2、4运动方向相反时,小车即可实现左右移动,如图2-7所示。

图2-7小车左右移动

当轮1、3速度与方向相同而轮2、4不动或者轮2、4速度与方向相同而轮1、3不动时,小车可实现斜45度方向移动,如图2-8所示。

图2-8小车斜45度移动

当4个轮子速度相同,而轮1、4与轮2、3方向相反时,小车会做原地旋转运动,如图2-9所示。

图2-9小车原地旋转

2.3蓝牙模块的选择

本次设计使用的蓝牙模块是hc-06型号,如图2-10所示

图2-10蓝牙模块hc-06

这里简单介绍一下其接线方式:

1.GND:

GND为电源接地口,接地或者链接电源负极;

2.5V/3.3V:

电源正极接入口;

3.RX:

RX是蓝牙传感器的读取口,接入串口的TX口;

4.TX:

TX是蓝牙传感器的写入口,接入串口的RX口;

以上为4个接线口的说明,在安卓手机端下载蓝牙SPP助手来给蓝牙模块发送指令从而达到控制小车的目的,如图2-11位SPP界面。

图2-11SPP界面

2.4L293驱动控制板

本次选用的L293驱动控制板来控制推杆步进电机,笔架与控制板一起构成绘图模块,如图2-12为L293驱动控制板的原理图。

图2-12L293驱动控制板原理图

由接线图可知L293的P4端和P5端的3号引脚连接在STC12C2052AD的P1.6和P1.7数字引脚上,所以因此我想到可以通过Arduino开发板上的数字引脚与L293控制板上的数字引脚相连接,通过Arduinoide平台通过设置开发板上的数字引脚的高低电平和STC单片机程序上通过数字引脚上的高低电平相互配合,从而达到控制电机推杆升降的目的。

第三章程序的调用及编写

3.1类库的编写及调用

3.1.1简介

Arduino之所以能成为全球流行的硬件开发平台,得益于其开放自由的特点,能大大激发开发者的创意与效率,而这是与Arduino的类库机制密切相关的。

类库可以说是作为Arduino开发平台的大脑,类库的引用可以大大提高代码的编写效率以及程序的简洁与可读性。

类库的存放地点一般在Arduino源文件的libraries文件中,在主程序的编写中可以引用。

本次所使用的类库是MotorWheel电机类库,用于控制4个直流伺服电机的运作,具体库文件如图3-1所示。

图3-1MotorWheel类库的库文件

3.1.2库文件的改用

本次毕业设计所调用的是类库中的Omni4WD库文件。

库文件因其使用的方便而受到许多开发者的欢迎,但同时也存在诸多的问题。

在库的引用时,若直接引用很容易出现硬件冲突的问题,最常见的有定时器的共用、引脚的冲突、参数的不协调等问题,所以在调用一个库文件时首先要做的就是读懂程序以及做适当的修改。

本次修改后使用的库文件详见附录1。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2