智能小车控制系统设计
《2024年自循迹智能小车控制系统的设计与实现》范文

《自循迹智能小车控制系统的设计与实现》篇一一、引言随着人工智能与自动控制技术的快速发展,智能小车已经广泛应用于各种领域,如物流配送、环境监测、智能家居等。
本文将详细介绍一种自循迹智能小车控制系统的设计与实现过程,该系统能够根据预设路径实现自主循迹、避障及精确控制。
二、系统设计(一)系统概述自循迹智能小车控制系统主要由控制系统硬件、传感器模块、电机驱动模块等组成。
其中,控制系统硬件采用高性能单片机或微处理器作为主控芯片,实现对小车的控制。
传感器模块包括超声波测距传感器、红外线测距传感器等,用于感知周围环境并实时传输数据给主控芯片。
电机驱动模块负责驱动小车行驶。
(二)硬件设计1. 主控芯片:采用高性能单片机或微处理器,具备高精度计算能力、实时响应和良好的可扩展性。
2. 传感器模块:包括超声波测距传感器和红外线测距传感器。
超声波测距传感器用于测量小车与障碍物之间的距离,红外线测距传感器用于检测小车行驶路径上的标志线。
3. 电机驱动模块:采用直流电机和电机驱动器,实现对小车的精确控制。
4. 电源模块:为整个系统提供稳定的电源供应。
(三)软件设计1. 控制系统软件采用模块化设计,包括主控程序、传感器数据处理程序、电机控制程序等。
2. 主控程序负责整个系统的协调与控制,根据传感器数据实时调整小车的行驶状态。
3. 传感器数据处理程序负责对传感器数据进行处理和分析,包括距离测量、方向判断等。
4. 电机控制程序根据主控程序的指令,控制电机的运转,实现小车的精确控制。
(四)系统实现根据设计需求,通过电路设计与焊接、传感器模块的安装与调试、电机驱动模块的安装与调试等步骤,完成自循迹智能小车控制系统的硬件实现。
在软件方面,编写各模块的程序代码,并进行调试与优化,确保系统能够正常运行并实现预期功能。
三、系统功能实现及测试(一)自循迹功能实现自循迹功能通过红外线测距传感器实现。
当小车行驶时,红外线测距传感器不断检测地面上的标志线,并根据检测结果调整小车的行驶方向,使小车始终沿着预设路径行驶。
智能小车速度测量控制系统设计

智能小车速度测量控制系统设计1.引言在现代工业和交通领域,智能小车被广泛应用于自动化物流、智能仓储以及移动机器人等场景。
为了保证智能小车的正常运行和安全性,速度测量和控制是至关重要的一环。
本文将重点介绍智能小车速度测量控制系统的设计原则和实现方法。
2.设计原则2.1精度和稳定性智能小车速度的精确测量和控制是保证小车运行安全和稳定的基础。
因此,在设计速度测量控制系统时,应优先考虑精度和稳定性的要求。
为了提高精度,可以采用高精度的传感器来测量小车的实时速度;为了提高稳定性,可以采用滤波算法对速度信号进行平滑处理。
2.2实时性和响应性智能小车的速度测量和控制必须具备良好的实时性和响应性。
实时性是指系统能够及时获得小车的速度信息,响应性是指系统能够迅速对速度变化作出调整。
在设计时,可以采用高频率的采样和控制周期来提高实时性和响应性。
2.3可扩展性和灵活性智能小车的需求和环境可能发生变化,因此,速度测量控制系统必须具备良好的可扩展性和灵活性。
可扩展性是指系统能够方便地扩展和添加新的功能;灵活性是指系统能够适应不同的小车和场景。
在设计时,可以采用模块化和接口化的设计方法,并使用可编程的控制器,以便系统可以方便地进行功能升级和扩展。
3.系统组成3.1速度传感器智能小车的速度测量需要使用速度传感器。
常用的速度传感器包括编码器和激光测距仪。
编码器可以通过检测轮轴的旋转来测量速度,激光测距仪可以通过测量激光到达和返回的时间来计算速度。
在选择速度传感器时,需要根据具体的应用场景和要求来确定。
3.2控制器智能小车的速度控制可以使用PID控制器或者模糊控制器。
PID控制器是一种经典的控制方法,通过调节比例、积分和微分参数来实现控制;模糊控制器则是一种基于模糊逻辑的控制方法,通过对输入和输出之间的关系进行模糊化和解模糊化来实现控制。
在选择控制器时,需要根据系统要求和控制效果来确定。
3.3控制算法智能小车的速度控制需要使用合适的控制算法。
智能小车控制系统设计实现

智能小车控制系统设计实现提纲:1. 设计智能小车控制系统的必要性与意义2. 智能小车控制系统设计的原则和方法3. 智能小车控制系统实现的技术和难点4. 智能小车控制系统在未来的发展趋势5. 智能小车控制系统在实际应用中的案例分析和评价1. 设计智能小车控制系统的必要性与意义智能小车控制系统的设计是基于对于小车的运动控制,使其能够有效地行驶,在各种环境和道路状况下,能够保证稳定性和安全性。
同时,智能小车还需要自主感知灰尘、空气质量等数据,能够对各种交通或人员行为进行判断或预测,从而为行驶安全保驾护航,加强人类对环境的认知。
2. 智能小车控制系统设计的原则和方法打造高品质的智能小车控制系统,一定要遵循以下设计原则:(1)全面的模块化设计:该系统设计需要专业的人才,将系统模块化。
只有合理地划分模块,才能保证安全可靠的系统。
(2)充分的数据支持:智能小车控制系统的打造需要精准的行走数据支持。
在系统设计的过程中需要引入传感器、激光雷达、GPS系统等仪器,收集数据并反馈给控制器,以实现更好的检测和行车控制。
(3)稳定性和可靠性:设计过程中需要在系统中引入错误处理模块,保证系统在出现错误的情况下可以正确处理,从而保证系统的稳定性和可靠性。
(4)简洁和高效:在系统设计中需要保证系统的结构简单,在乱糟糟的交通情况下更容易实现长时间稳定运行。
(5)逐步优化和改进:设计过程中需要不断地优化和改进,跟上前沿的科技发展,提高系统的性能和校准数据。
3. 智能小车控制系统实现的技术和难点智能小车控制系统是一个由传感器、激光雷达、网络通信系统、操作系统、控制算法、安全设计等多个组成部分构成的庞大系统,实现上的难点主要在以下几个方面:(1)多种传感器测试数据的整合和处理,从而精准反馈给控制器让智能小车做出合理的运行决策。
(2)软件计算量的大增量,需要在有限的时间内获得足够的CPU和其他计算性能支持。
(3)为了提高系统的灵活性和可扩展性,整体上采用了优化算法和多策略集合的形式,以保证智能小车可以适合各种复杂的驾驶环境。
智能小车控制系统设计实现

关键词:智能小车;控制系统;设计和实现1智能小车控制系统概述智能小车控制系统是一个综合、复杂的系统,其既有多种技术,也含有嵌入式的软件设备和硬件设备、图像识别、自动控制和电力传动、机械结构等技术知识,智能小车的控制系统主要是围绕嵌入式控制系统进行的,将其作为操控的中心,并借助计算机系统,最终完成自动造作和控制的过程[1]。
智能小车的控制系统流程图见图1所示。
2智能小车的设计和实现2.1智能小车的硬件设计硬件设计是保证智能小车平稳运行的必要条件,它关系着控制系统的精度和稳定性,因此在设计时需要用在模块化设计思想,该研究是通过采取硬件系统K60芯片作为核心控制器,并通过图像采集模块和电机、舵机驱动模块、测速模块、电源模块等组成硬件设计系统图,见图2。
首先,电源电路设计,该设计时智能小车的动力来源,为小车运行提供不断的电力,一般采取7.3V、容量为2000mAh的可充电型的镍铬电池作为电源,但是其不能直接为控制器传输电力,需要在转变电路后才可以进行传输。
转变电路可以保证控制器直接对电池内的电压进行调节,保证不同模块可以正常工作和运行,智能小车主要是依靠控制电力和电机驱动进行转变的。
其次是K60最小系统板,在设计时需要将K60的管脚部分做成最小系统的单独电路板,这样可以简化电路板的设计,促使调试更加顺利,K60系统板主要由K60芯片、复位电路、时钟电路、JTAG下载电路、电源滤波电路组成。
再其次是电机驱动电路,该电路是在集成芯片的驱动下进行的,可以为控制器更其他模块提供较大的电流最终集成电机驱动芯片,但是要特别注意这部分因为在电机驱动过程中有较大的分功率,会导致小车在进行调试时因为过大的电流导致小车电路发生堵塞现象,而使小车电路被烧毁,因此需要设计者避免这种现象,可以将驱动电路做成驱动板[2]。
最后是舵机接口电路。
在智能小车设计中,舵机主要保证小车可以顺利转向,因此舵机的运行电压、转向动作、转向速度都是需要考虑的因素,一般选择舵机时主要选择Futaba3010,选择供电电压为6V。
基于树莓派的智能小车控制系统设计

基于树莓派的智能小车控制系统设计智能小车控制系统已经成为现代科技的研究热点之一。
它使得机器人具有更好的自主感知和行为决策能力,为人类生产和生活提供了更多便利和选择。
在这篇文章中,我们将探讨基于树莓派的智能小车控制系统的设计原理、实现方法以及其在实际应用方面的优势。
一、设计原理基于树莓派的智能小车控制系统的设计原理主要包括三个方面:感知模块、控制模块和决策模块。
1.感知模块感知模块主要是通过多种传感器来感知环境,包括红外线传感器、超声波传感器、摄像头和麦克风等。
通过收集和处理感知模块所得到的数据信息,可以实现对其所处环境的自主感知。
2.控制模块控制模块主要是根据感知模块所提供的数据信息,通过控制电机、舵机和灯光等组成的执行器来实现小车的运动控制、转向控制和灯光控制。
3.决策模块决策模块主要是通过分析感知模块所提供的数据信息,从而得出连续动作序列,完成运动控制、转向控制和灯光控制等行为决策。
二、实现方法基于树莓派的智能小车控制系统的实现方法主要包括硬件实现和软件实现两个方面。
1.硬件实现硬件实现主要包括小车的机械结构设计和电路设计。
机械结构设计需要满足小车运动的必要条件,保证小车在各种情况下的稳定性和安全性。
而电路设计则包括了电源管理、传感器接口设计、执行器控制和通信接口等电路部分。
树莓派板载GPIO(General Purpose Input Output)口提供了以电平信号为基础的输入输出接口,使用树莓派适配板将这些口映射到通用接口上,即可完成与各种硬件的连接。
2.软件实现软件实现主要包括操作系统安装、驱动程序编写和应用程序开发等方面。
在树莓派上,可以安装常用的操作系统,如Raspbian 等,针对赛车所用的传感器与执行器设备编写驱动程序,并根据实际需求使用Python等编程语言进行应用程序开发。
三、实际应用基于树莓派的智能小车控制系统在现实中已经有了广泛的应用。
例如,可以用于智能家居场景中的清洁机器人、智能物流配送中的 AGV 等。
基于快速控制原型的智能小车控制系统设计与开发

基于快速控制原型的智能小车控制系统设计与开发智能小车作为一种具有自主导航和自动驾驶能力的机器人系统,在日常生活和工业领域中发挥着重要的作用。
为了实现智能小车的高效控制,本文基于快速控制原型开展了智能小车控制系统的设计与开发。
首先,我们需要确定智能小车控制系统的整体架构。
该系统包括感知模块、决策模块和执行模块。
感知模块负责从环境中获取传感器数据,例如摄像头图像和距离传感器的数据。
决策模块利用感知模块获取的数据进行分析和决策,确定小车的行驶策略。
最后,执行模块根据决策模块的指令,控制小车的电机和转向机构,实现具体的运动控制。
接下来,我们使用快速控制原型的方法进行系统设计与开发。
快速控制原型是一种迭代的设计方法,能够快速验证和修改系统设计。
首先,我们采用MATLAB/Simulink工具进行建模和仿真。
通过建立小车的动力学模型,我们可以在仿真环境中验证控制算法的有效性和稳定性。
同时,我们还可以在仿真环境中模拟不同场景和障碍物,以测试系统在复杂环境下的性能。
在模型验证通过后,我们将控制算法移植到硬件平台上进行实际测试。
我们选择了Arduino作为硬件平台,它具有开源性和易于扩展的特点。
通过与Arduino的串口通信,我们可以将控制算法上传到硬件平台,并实时接收传感器数据和控制指令。
在实际测试中,我们还可以通过添加避障传感器和通信模块等扩展硬件,提升智能小车的功能和性能。
最后,我们对系统进行优化和改进。
通过不断迭代设计和测试,我们可以发现系统中存在的问题和不足之处,并进行相应的改进。
例如,我们可以优化控制算法的实时性和鲁棒性,提高智能小车在复杂环境下的导航和避障能力。
此外,我们还可以对硬件平台进行优化,例如改进传感器精度和增加电池容量,提升系统的性能和稳定性。
综上所述,本文基于快速控制原型开展了智能小车控制系统的设计与开发。
通过模型验证和实际测试,我们可以得到一个具有高效控制能力的智能小车系统。
这对于智能交通、物流运输和工业自动化等领域的发展具有重要意义。
智能车辆控制系统的设计与实现
智能车辆控制系统的设计与实现随着科技的不断发展和普及,智能化已经不再是一个陌生的概念。
无论是科技产品还是生活中的各种场景都快速地智能化了起来,其中,智能车辆也是当前比较热门的话题之一。
智能车辆控制系统是智能车辆的核心,控制着车辆的各种操作和行驶过程,是实现自动驾驶等功能的关键。
一、智能车辆控制系统概述智能车辆控制系统是指对汽车运行过程中的各种参数及其反馈信号进行监测、控制和调节的系统。
它包括了感知系统、决策系统和执行系统。
感知系统主要负责收集车辆运行过程中的各种信息,如路况、障碍物、车道等。
决策系统主要根据感知系统收集的信息进行判断和决策,如车辆的行驶路线、是否减速、换道等。
执行系统主要负责实现决策系统的指令,如驾驶员的操纵、自动驾驶等。
二、智能车辆控制系统的设计智能车辆控制系统设计的核心在于如何合理处理车辆各种信息,并根据信息做出恰当的控制决策。
当下的设计主要围绕感知系统、决策系统和执行系统三方面展开。
1. 感知系统设计感知系统是智能车辆控制系统中最基础的组成部分,它的作用是收集车辆运行过程中的各种信息。
因此,感知系统设计需要考虑各种因素,如车辆安装什么类型的传感器、传感器应该放置在哪些位置、传感器所收集到的信息如何处理等等。
当前常用的传感器包括摄像头、激光雷达等。
这些传感器可以加工出车辆周围的高清图像,在车辆自动驾驶、避免碰撞等方面都有很好的应用。
但是,这些传感器的使用也有一些缺点,比如激光雷达比较昂贵,摄像头容易受到强光、雨雾等影响,需要有一定的技术保障。
2. 决策系统设计决策系统是智能车辆控制系统的核心之一,它的作用是根据感知系统收集到的信息来做出决策。
当前一些主流的决策系统包括基于规则、神经网络和深度学习等方法。
基于规则的决策系统适用于有限且已知的情况下,可以通过前向或后向推理得到正确的决策。
神经网络决策系统采用神经网络的方法,可以对未知情况进行处理,但是需要大量的训练样本。
深度学习决策系统更接近于真正的人工智能,但是需要强大的计算能力和高质量的数据。
5、智能小车控制系统
5、智能小车控制系统一、任务:设计一个智能小车控制系统,小车行车路线图1(见后图)所示,要求控制一辆玩具模型小车能够按要求指定的路线行驶。
二、要求:(1)基本要求:小车行车路线图1所示,要求控制一辆玩具模型小车从起点1前进,通过一进一退的方式,将小车停入甲库中,完成侧方停车。
然后从甲库驶出前进至终点1。
具体要求如下:1、小车能够从起点1前进,完成要求中的“一进”;2、小车能够从后退,完成要求中的“一退”;3、小车能够在车轮不轧碰车道边线、库位边线的情况下将车停正于甲库中;4、小车能够在车轮不轧碰车道边线、库位边线的情况下将车前进至终点1。
5、小车能够在2分钟内完成要求。
(2)发挥要求:小车从终点1直线行驶到起点2,然后按图1路线所示,倒入乙库停正,再经过二进二退移位到丙库停正,前进穿过乙库至路上,倒入丙库停正,前进返回起点2。
具体要求如下:1、小车能够从终点1直线行驶到起点2;2、小车能够在车轮不轧碰车道边线、库位边线的情况下将倒入乙库停正;3、小车能够在车轮不轧车库的外边线情况下经过二进二退移位到丙库停正;4、小车能够在车轮不轧车库的外边线情况下前进穿过乙库至路上;5、小车能够在车轮不轧碰车道边线、库位边线的情况下将倒入丙库停正;6、小车能够在车轮不轧车库的外边线情况下前进至起点2;7、小车能够在3分钟内完成要求。
三、说明:1、小车的长度不得小于15cm,宽度不得小于10cm,必须是4轮小车。
不得采用遥控或者线控的方式操作小车。
2、图1中实线箭头为小车前进线,虚线箭头为小车倒车线。
场地为白底黑线,黑线宽度为1cm。
3、各线长度,线距标示如图1所示。
四、评分标准。
智能小车控制系统的设计分析
摘要随着自动控制技术的迅速发展,自动化技术已广泛应用于国计民生的各行各业。
智能汽车就是自动化技术发展的重要成果之一。
本文介绍了智能小车的研究设计背景与现状及其各个工作模块的工作原理、硬件及软件设计。
本设计中的自动循迹模块采用光电传感器循迹方法,选用RPR220型红外一体式发射接收管作为光电传感器,通过三组光电传感器识别小车的运行姿态。
避障模块利用超声波测距传感器,超声波发射部分的换能器选用TCT40-16T,接收部分选用TCT40-16R,在小车的左前右分别安装一组测距传感器实现避障功能。
设计遥控模块对小车进行启停及加减速控制,通过光电编码实现对小车的测速功能。
设计显示模块从而实时了解小车的运行状态。
选用包含H桥的L298N模块,利用PWM驱动小车行驶。
关键字:循迹,避障,遥控,显示,测速,PWM驱动ABSTRACTWith the rapid development of automatic control technology, automation technology has been widely used in various industries of the national economy and the people’s livelihood. Smart car is one of the important results of the development of automation technology. This article describes the design background and current situation of the intelligent car and the working principle, hardware and software design of the car’s modules.The automatic tracking of this design uses photoelectric sensor tracking method, and we choose RPR220 as the photoelectric sensor, which integrate the infrared transmitting and receiving tubes, three sets of photoelectric sensor distinguish the car’s running posture. Obstacle avoidance module utilizes ultrasonic distance sensor. We choose TCT40-16T as the emitting portion of the ultrasonic transducer and TCT40-16R as the receiving portion. Three distance measuring sensors are respectively fixed on the front, left and right of the car to achieve the obstacle avoidance function. Design remote control to control the start,stop,acceleration and deceleration of the car, and we utilize the optical-electricity encoder to realize the car’s speed measuring function. Design the display module to know the real-time of the car. Choose the L298N module which contains the H-bridge and utilize the PWM to drive the intelligent car running.KEYWORDS:tracking, obstacle avoidance, remote control, display, speed measurement, PWM driving目录摘要(中文) (1)摘要(外文) (2)1 绪论 (1)1.1 设计背景与意义 (1)1.2 当前国内外的研究设计现状及成果 (2)1.2.1 国外研究现状及成果 (2)1.2.2 我国研究现状及成果 (3)1.3 本设计的内容及结构 (4)1.3.1 设计内容 (4)1.3.2 本文结构 (5)2 智能小车控制系统的设计原理 (7)2.1、智能小车自动循迹原理 (7)2.1.1 小车循迹原理 (7)2.1.2 光电传感器工作原理 (8)2.1.3 光电传感器的常用类型 (9)2.2 超声波测距避障原理 (9)2.3 智能小车测速原理 (12)2.3.1直流电机测速 (12)2.3.2 光电码盘测速 (14)2.4 智能小车遥控原理 (15)2.4.1 红外遥控的实现模块 (15)2.4.2 红外遥控的工作原理 (15)2.5 智能小车的电机驱动电路工作原理 (16)3 智能小车控制系统的硬件电路图设计 (17)3.1 智能小车的电源模块设计 (17)3.2 智能小车自动循迹的硬件电路设计 (18)3.2.1 循迹传感器选择 (18)3.2.2 循迹电路图设计 (19)3.3 智能小车超声波测距的硬件电路设计 (20)3.3.1 超声波发射部分的硬件电路设计 (20)3.3.2 超声波接收部分的硬件电路设计 (20)3.4 智能小车数码显示的硬件电路设计 (21)3.4.1 LED数码显示器的结构与显示段码 (21)3.4.2 LED数码显示器的显示方法 (23)3.4.3 数码显示的硬件设计 (23)3.5 智能小车遥控的硬件电路设计 (24)3.5.1 智能小车的遥控发射模块硬件设计 (24)3.5.2 智能小车的遥控接收模块硬件设计 (25)3.6 智能小车电机驱动的硬件电路设计 (26)3.6.1 智能小车的电机驱动芯片选择 (26)3.6.2 智能小车的电机驱动电路的设计 (27)3.7 智能小车整体的硬件电路设计 (27)4 智能小车控制系统的软件设计 (29)4.1 主程序设计 (29)4.2 自动循迹模块程序设计 (30)4.3 测距避障模块程序设计 (2)4.4 数码显示模块程序设计 (3)4.5 编码测速模块程序设计 (4)4.6 红外遥控模块程序设计 (5)总结............................................... 错误!未定义书签。
智能小车系统设计(循迹-超声波-遥控)
智能小车系统设计(循迹-超声波-遥控)智能小车系统是一种通过各种传感器来控制小车行进的系统。
本文将介绍一种基于循迹、超声波和遥控的智能小车系统设计。
系统设计硬件设计本系统采用Arduino开发板和小车底盘作为硬件,以循迹模块、超声波模块和遥控器模块作为传感器,可以实现小车的智能行驶。
1.小车底盘:本系统采用智能小车底盘,主要包括两个直流电机和两个轮子,可以控制小车行进的方向和速度。
此外,小车底盘还需配有4片AA电池进行供电。
2.循迹模块:循迹模块是通过红外线传感器检测黑色轨道上的反光点实现的。
根据反光点的位置,循迹模块会控制小车的方向,使小车始终在轨道上行驶。
3.超声波模块:超声波模块可以检测小车前方的障碍物距离和方向。
如果检测到前方有障碍物,则系统会控制小车减速或停止,避免碰撞。
4.遥控器模块:遥控器模块可以通过无线信号控制小车的方向和速度,可以让小车在没有循迹和超声波控制的情况下自由行驶。
软件设计本系统的软件设计采用Arduino的开发环境进行编写,主要包括循迹控制、超声波控制和遥控控制三个部分。
1.循迹控制:循迹控制部分主要是通过循迹模块检测反光点的位置,控制小车的方向和速度。
如果小车偏离轨道,循迹控制部分会自动调整小车的方向,使其回到轨道上行驶。
2.超声波控制:超声波控制部分主要是通过超声波模块检测前方障碍物的距离和方向,如果距离过近,则超声波控制部分会控制小车减速或停止,并发出声音提示。
3.遥控控制:遥控控制部分是通过遥控器发出信号控制小车行驶。
使用者可以通过遥控器控制小车的方向和速度,可以实现小车的自由行驶。
实现效果循迹效果本系统的循迹效果非常稳定,可以实现小车在黑色轨道上高速行驶。
在循迹模块检测到偏离轨道时,系统能够及时作出调整,使小车回到轨道上行驶。
超声波效果超声波模块能够准确地检测到前方障碍物的距离和方向。
如果距离过近,则系统能够及时控制小车减速或停止,避免碰撞。
遥控效果遥控器模块可以实现小车的自由行驶。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
智能小车控制系统设计
——ARM控制模块设计
EasyARM615是一款基于32位ARM处理器,集学习和研发于一体的入门级开发套件,该套件采用Luminary Micro(流明诺瑞)公司生产的Stellaris系列微控制器LM3S615。
本系统设计是以EasyARM615开发板为核心,通过灰度传感器检测路面上的黑线,运用PWM直流电机调速技术,完成对小车运动轨迹等一系列的控制。
同时利用外扩的液晶显示器显示出各个参数。
以达到一个简易的智能小车。
本文叙述了系统的设计原理及方法,讨论了ISR集成开发环境的使用,系统调试过程中出现的问题及解决方法。
据观察,普通的玩具小车一般需要在外加条件下才能按照自己的的设想轨迹去行驶,而目前可借助嵌入式技术让小车无需外加条件便可完成智能化。
在小车行驶之前所需作的准备工作是在地面上布好黑线轨迹,设计好的小车便可按此黑线行驶,即为智能小车。
其设计流程如下:
1、电机模块
采用由达林顿管组成的H型PWM电路。
PWM电路由四个大功率晶体管组成,H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控制脉冲的占空比,精确调整电机转速。
这种电路由于管子工作只在饱和和截止状态下,效率非常没。
H型电路使实现转速和方向的控制简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的PWM调整技术。
具体电路如下图所示。
本电路采用的是基于PWM原理的H型驱动电路。
该电路采用TIP132大功率达林顿管,以保证电动机启动瞬间的8安培电流要求。
2、传感器模块
灰度测量模块,是一种能够区分出不同颜色的的电子部件。
灰度测量模块是专为机器人设计的灰度传感器。
例如:沿着黑色轨迹线行走,不偏离黑色轨迹线;沿着桌面边沿行走,不掉到地上,等等。
足球比赛时,识别场地中灰度不同的地面,以便于进行定位。
不同的物体对红外线的反射率不同,黑色最低,白色最高;它通过发射红外线并测量红外线被反射的强度来输出反映物体颜色的电压信号,有效距离3-30毫米。
其技术规格如下:
已知灰度传感器的输出电压为0-3.3V,所以可通过ARM615开发板上的ADC 模块转换成数字信号,最后通过不断测试得出黑线与白线的大概参数值,完成对小车传感器部分的设计。
在本次设计中选择二个灰度传感器,其实现效果与布局如下所示。
3、LCD显示模块
12864点阵型LCD是小型系统中很常用的显示器,目前常用的的主控芯片有KS0108、ST7920等。
KS0108是三星公司的产品,与HD61202控制器完全兼容,不带字库、不支持串口。
ST7920是台湾矽创电子公司生产的中文图形控制芯片,自带字库、支持4位、8位并行、2线、3线串行接口方式点阵型液晶因为能显示较丰富的信息,所以现在运用越来越广泛。
在本次设计中我们所用的为WINSTAR的WG12864A系列的液晶显示器,其显示原理与KS0108相同。
本次设计中WINSTAR的WG12864A系列的液晶显示器引脚分配与功能定义如下:
像LCD12864这种二值屏幕,我们习惯于用1个字节表示连续的8个点,1的对应位被点亮,0的对应位不亮,所以对图形的操作最基本的手段就是位操作。
根据此原理,编写了12864库函数,主要函数如下:
void LCD_FULL(const unsigned char *bmp);
//填充一个128*64的图片
void LCD_CLR(void);
//清屏
void LCD_INT(void);
//初始化
void Write_Data(unsigned char Rdat);
//写数据
void Write_Cmad(unsigned char Rcmd);
//写命令
void WriteMyHZ(const uchar * HZ,uchar py,uchar adrPage,int adrColumn); //显示一个汉字
void Sel_Left(void);
//选左屏
void Sel_Right(void);
//选右屏void LCD_INT(void);
4、AD转换模块
开发板上的模数转换器(ADC)是一个能将连续的模拟电压转换成离散的数字量的外设。
其模块的特点是:转换分辨率为10位,最多含8个输入通道和一个内部温度传感器。
此外,该模块还包含一个可编程的序列发生器(sequencer),无需使用控制器就可对多个模拟输入源进行采样。
每个采样序列均可被灵活的编程,其输入源、触发事件、中断的发生和序列优先级都是可配置的。
传统的ADC模块大多采用单次采样或双采样的方法收集,而StellarisADC 模块却不同,它采用的是一种基于序列(sequence-based)的可编程方法。
每个采样序列都是一系列完全程序化的连续(背对背)采样,这使ADC能够从多个输入源中收集数据,而无需控制器对它进行重新配置或处理。
对采样序列内的采样进行编程的操作包括对某些参数进行编程,如输入源和输入模块(差分输入还是单端输入),采样结束时的中断产生机制,以及指示序列最后一个采样的指示符(indicator)。
5、系统调试
在本设计中我们所选择的是开发平台是IAR EWARM编译和调试程序。
IAR Embedded Workbench for ARM(下面简称IAR EWARM)是针对ARM处理器的集成开发环境,它包含项目管理器、编辑器、C/C++编译器和ARM汇编器、连接器XLINX和支持RTOS的调试工具C-SPY。
在EWARM环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。
比较其他的ARM开发环境,IAR EWARM 具有入门容易、使用方便和代码紧凑等特点。
设计过程中问题的解决方法:
1、新建Demo工程后,如果按F7编译出现打不开#include头文件的情况,请注意检查:
demo-Debug→鼠标右击→options...→C/C++ Compiler→Preprocessor→Additional include directories里面是否为:“$TOOLKIT_DIR$\INC\Luminary”如果是,请将两端的引号去掉,再试试。
2、在用LM LINK调试的时候会出现如下警告:
正确的做法是一路选“否”,然后进入正常的调试。
每次用LM LINK进行调试都会遇到该问题。
若想彻底避免警告,请采用附件里的文件“driverlib.r79”代替目录“C:\Program Files\IAR Systems\Embedded Workbench 4.0 Kickstart\arm\lib\Luminary”下的同名文件,从此不再有警告,完成!
3、关于JTAG锁死问题
现在,调试LM3S系列单片机一般采用JTAG接口。
用户在使用过程中,可能会出现芯片的JTAG接口锁死的问题,即用LM LINK调试器(或其它JTAG
调试器)再也无法连接的情况。
一旦JTAG接口被锁死,则芯片一般只有报废处理。
因此,在编写程序时千万要引起足够的重视,必须插入预防JTAG失效的代码。
导致芯片JTAG接口被锁死的原因有多种,如与JTAG接口复用的GPI 被占用、程序中存在定时中断(或其它中断)等等,但最常见的原因还是与JTAG接口复用的GPIO被占用,从而导致上电后JTAG调试器来不及与芯片连接。
附件Demo例程是个操作GPIO的简单示例,里面自带防止JTAG失效的代码,请先参考。
该程序的工作原理是:将可以预防JTAG锁死的函数WaitJTAG()插入到main()函数的第一个可执行;芯片正常复位情况下,直接运行后面的代码,即WaitJTAG()函数不影响正常的操作;如果需要JTAG连接,则先按住KEY不松手,再复位,则程序进入一个死循环里,以等待JTAG 连接。
预防JTAG失效代码,如下程序所示。
#define KEY1 GPIO_PIN_1
Void Go2JTAG(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); //使能GPIO端口B模块 GPIODirModeSet(GPIO_PORTB_BASE,KEY1,GPIO_DIR_MODE_IN)
//设置PB1为输入
If(GPIOPinRead(GPIO_PORTB_BASE,KEY1)==0) //读写PB1的电平状态
{ while(1);} //KEY1按下程序不往下执行
}
Int main(void)
{ Go2JTAG();
PLLSet(); //执行配置PLL代码
}。