智能小车单片机课程设计报告剖析

合集下载

智能小车控制实验报告

智能小车控制实验报告

一、实验目的本次实验旨在通过设计和搭建一个智能小车系统,学习并掌握智能小车的基本控制原理、硬件选型、编程方法以及调试技巧。

通过实验,加深对单片机、传感器、电机驱动等模块的理解,并提升实践操作能力。

二、实验原理智能小车控制系统主要由以下几个部分组成:1. 单片机控制单元:作为系统的核心,负责接收传感器信息、处理数据、控制电机运动等。

2. 传感器模块:用于感知周围环境,如红外传感器、超声波传感器、光电传感器等。

3. 电机驱动模块:将单片机的控制信号转换为电机驱动信号,控制电机运动。

4. 电源模块:为系统提供稳定的电源。

实验中,我们选用STM32微控制器作为控制单元,使用红外传感器作为障碍物检测传感器,电机驱动模块采用L298N芯片,电机选用直流电机。

三、实验器材1. STM32F103C8T6最小系统板2. 红外传感器3. L298N电机驱动模块4. 直流电机5. 电源模块6. 连接线、电阻、电容等7. 编程器、调试器四、实验步骤1. 硬件搭建:- 将红外传感器连接到STM32的GPIO引脚上。

- 将L298N电机驱动模块连接到STM32的PWM引脚上。

- 将直流电机连接到L298N的电机输出端。

- 连接电源模块,为系统供电。

2. 编程:- 使用Keil MDK软件编写STM32控制程序。

- 编写红外传感器读取程序,检测障碍物。

- 编写电机驱动程序,控制电机运动。

- 编写主程序,实现小车避障、巡线等功能。

3. 调试:- 使用调试器下载程序到STM32。

- 观察程序运行情况,检查传感器数据、电机运动等。

- 调整参数,优化程序性能。

五、实验结果与分析1. 避障功能:实验中,红外传感器能够准确检测到障碍物,系统根据检测到的障碍物距离和方向,控制小车进行避障。

2. 巡线功能:实验中,小车能够沿着设定的轨迹进行巡线,红外传感器检测到黑线时,小车保持匀速前进;检测到白线时,小车进行减速或停止。

3. 控制性能:实验中,小车在避障和巡线过程中,表现出良好的控制性能,能够稳定地行驶。

遥控智能小车课程设计报告书

遥控智能小车课程设计报告书

摘要介绍了语音遥控的电动小车的机械结构与控制部分.在机械结构上,对普通的玩具小车做了改进,使小车的转向更加灵活,并且在设计围可以实现任意角度转弯和任意速度移动;而在控制系统部分,则采用语音控制方式,使小车可以"听懂"人的命令,娱乐性和互动性更强.该小车各部分采用模块化设计,各个模块之间独立性强。

控制部分采用可编程微处理哭器,可以在不增加系统硬件的情况下方便地对系统进行二次开发。

本文对一辆小车进行了实验,实验结果表明,语音识别系统在低噪声环境中识别率很高,在噪声水平较高的场合,识别率有所下降。

小车反应灵敏。

关键词:语音识别单片机智能小车电机驱动目录绪论31总体方案41.1方案论证41.2总体方案图41.3系统工作原理42硬件设计52.1 语音识别模块52.2 电机驱动模块102.3 红外检测模块112.4 键盘电路122.5 主控芯片8051模块132.5.1单片机的电源设计132.5.2单片机复位电路143.软件设计143.1主程序143.2监控程序153.3 延时程序19结论20参考文献21绪论在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。

无论是在工农业生产、交通运输、医疗卫生、办公,还是在日常生活中,都大量的使用着各种电动机。

而微处理器取代模式电路作为电动机控制的技术也日渐成熟。

单片机介于工业控制计算机和可编程控制器之间,他有较强的控制能力、低价的成本。

人们在选择电动机控制器时,常常是在先满足功能需要的同时,优先选择成本低的控制器。

语音遥控的电动小车的机械结构与控制部分有了新的改进。

在机械结构上,对普通的玩具小车做了改进,使小车的转向更加灵活,并且在设计围可以实现任意角度墨迹和任意速度移动;而在控制系统部分,则采用语音控制方式,使小车可以“听懂”人的命令,娱乐性和互动性更强。

1总体方案1.1方案论证本系统采用芯片TSG110进行语音识别过程,通过语音的识别完成对小车的控制,通过对红外的检测完成对小车的避障,该设计可以达到系统要求的各项指标,设计方案是可行的。

智能小车实验报告心得(3篇)

智能小车实验报告心得(3篇)

第1篇一、引言随着科技的不断发展,人工智能技术逐渐渗透到我们生活的方方面面。

作为人工智能的一个典型应用,智能小车实验为我们提供了一个将理论知识与实践操作相结合的平台。

在本次智能小车实验中,我深刻体会到了理论知识的重要性,同时也感受到了动手实践带来的乐趣和成就感。

以下是我对本次实验的心得体会。

二、实验目的本次实验旨在通过设计、搭建和调试智能小车,让学生掌握以下知识:1. 传感器原理及在智能小车中的应用;2. 单片机编程及接口技术;3. 电机驱动及控制;4. PID控制算法在智能小车中的应用。

三、实验过程1. 设计阶段在设计阶段,我们首先对智能小车的功能进行了详细规划,包括自动避障、巡线、遥控等功能。

然后,根据功能需求,选择了合适的传感器、单片机、电机驱动器等硬件设备。

2. 搭建阶段在搭建阶段,我们按照设计图纸,将各个模块连接起来。

在连接过程中,我们遇到了一些问题,如电路板布局不合理、连接线过多等。

通过查阅资料、请教老师,我们逐步解决了这些问题。

3. 编程阶段编程阶段是本次实验的核心环节。

我们采用C语言对单片机进行编程,实现了小车的基本功能。

在编程过程中,我们遇到了许多挑战,如传感器数据处理、电机控制算法等。

通过查阅资料、反复调试,我们最终完成了编程任务。

4. 调试阶段调试阶段是检验实验成果的关键环节。

在调试过程中,我们对小车的各项功能进行了测试,包括避障、巡线、遥控等。

在测试过程中,我们发现了一些问题,如避障效果不稳定、巡线精度不高、遥控距离有限等。

针对这些问题,我们再次查阅资料、调整程序,逐步优化了小车的性能。

四、心得体会1. 理论与实践相结合本次实验让我深刻体会到了理论与实践相结合的重要性。

在实验过程中,我们不仅学习了理论知识,还通过实际操作,将所学知识应用于实践,提高了自己的动手能力。

2. 团队合作在实验过程中,我们充分发挥了团队合作精神。

在遇到问题时,我们互相帮助、共同探讨解决方案,最终完成了实验任务。

单片机智能小车课程设计

单片机智能小车课程设计

单片机智能小车课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其在智能小车控制中的应用。

2. 学习并掌握智能小车的基本电路连接和编程方法,能够实现小车的基本运动控制。

3. 了解传感器的工作原理,学会使用传感器对智能小车进行环境感知和路径规划。

技能目标:1. 培养学生动手操作能力,能够独立完成智能小车的组装和调试。

2. 培养学生编程思维,能够运用所学知识解决实际问题,实现智能小车的功能拓展。

3. 提高学生团队协作能力,学会在项目中进行沟通与分工合作。

情感态度价值观目标:1. 培养学生对单片机及智能硬件的兴趣,激发创新意识,提高学习积极性。

2. 培养学生勇于尝试、克服困难的精神,增强自信心。

3. 培养学生关注社会热点问题,了解智能技术在现实生活中的应用,提高社会责任感。

本课程针对初中年级学生,结合单片机及智能小车相关知识,注重实践操作和创新能力培养。

在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的达成。

课程目标分解为具体学习成果,便于后续教学设计和评估,以提高课程的实用性和针对性。

二、教学内容1. 单片机原理:介绍单片机的组成、工作原理,重点讲解内部寄存器、I/O 口、定时器等基本功能。

相关教材章节:第三章单片机原理及其应用。

2. 智能小车电路连接:讲解智能小车的基本电路组成,包括电机驱动、电源管理、传感器接口等。

相关教材章节:第四章智能小车电路设计与实践。

3. 编程基础:学习单片机编程语言(如C语言),掌握基本编程语法和逻辑控制,实现小车运动控制。

相关教材章节:第五章单片机编程基础。

4. 传感器应用:介绍常用传感器(如红外、超声波、光电等)的工作原理,学会使用传感器进行环境感知和路径规划。

相关教材章节:第六章传感器及其应用。

5. 智能小车组装与调试:指导学生进行智能小车的组装,学会使用调试工具,如示波器、逻辑分析仪等。

相关教材章节:第七章智能小车组装与调试。

6. 创新实践:鼓励学生进行功能拓展,如增加避障、循迹、远程控制等功能。

智能小车课程设计总结心得

智能小车课程设计总结心得

智能小车课程设计总结心得一、课程目标知识目标:1. 让学生掌握智能小车的基本原理,包括电机控制、传感器使用等;2. 引导学生了解编程语言,如Python或C++,并能够运用到智能小车的控制中;3. 帮助学生理解智能小车在不同环境下的行为策略和决策过程。

技能目标:1. 培养学生动手操作能力,能够独立完成智能小车的组装和调试;2. 提高学生编程能力,使其能够编写简单的控制程序,实现智能小车的基本功能;3. 培养学生团队协作能力,通过项目实践,学会与他人共同解决问题。

情感态度价值观目标:1. 激发学生对科技创新的兴趣,培养其探索精神和创新意识;2. 引导学生关注智能小车在现实生活中的应用,认识到科技与生活的紧密联系;3. 培养学生积极向上的学习态度,增强自信心,勇于面对挑战。

本课程针对五年级学生设计,结合学生好奇心强、动手能力强、合作意识逐渐增强等特点,注重实践性和趣味性。

在教学过程中,要求教师以学生为主体,关注个体差异,鼓励学生积极参与,充分调动学生的主观能动性。

通过本课程的学习,旨在培养学生具备一定的科技创新能力,为我国培养更多具备创新精神和实践能力的优秀人才。

二、教学内容本课程教学内容分为五个部分:1. 智能小车原理介绍:讲解智能小车的基本结构、功能及工作原理,包括电机控制、传感器、电池等组成部分。

2. 编程语言基础:介绍Python或C++编程语言的基本语法、数据类型、控制结构等,为编写智能小车控制程序奠定基础。

3. 智能小车组装与调试:指导学生进行智能小车的组装,学习使用螺丝刀、扳手等工具,并熟悉各类传感器和电机的安装。

4. 控制程序编写:根据项目需求,引导学生编写智能小车的控制程序,实现前进、后退、转向等功能。

5. 项目实践与展示:组织学生进行小组合作,完成智能小车在不同场景下的任务挑战,如避障、追踪等,并进行成果展示。

教学内容与课本关联性如下:1. 教科书第五章:《走进机器人》,涉及智能机器人的基本原理和编程。

实现智能小车的设计报告

实现智能小车的设计报告

实现智能小车的设计报告
一、项目背景
智能小车是一款结合了机械、机电、计算机等多种技术的智能机器人,能够获取环境信息、自主探索并完成各种任务。

智能小车在工业自动化、智能家居、物流配送等领域有着广泛地应用,在科研和商业领域都有着重要的地位和作用。

二、项目目的
本项目旨在通过设计制作智能小车,探索机器人控制、机械设计及电路控制等多方面知识,并应用到实际中,提高学生工程设计能力和动手能力。

三、设计方案
本智能小车采用树莓派单片机控制,配合多种传感器实现环境感知、路径规划和控制等功能。

车身采用3D打印技术制作,机身外型为椭圆形,具有一定的稳定性和降低空气阻力的特点。

底盘采用两轮驱动设计,其中一轮为万向轮,以提高小车的灵活性和控制性能。

四、技术方案
1.单片机控制
树莓派作为本项目的主控制器,采用GPIO输出信号控制各种功能模块,包括机械模块、传感器模块和电路模块等。

2.传感器模块
小车的传感器模块包括超声波传感器、巡线传感器、红外避障传感器等,这些传感器用于获取小车周围环境信息,提高小车的自主探索和避障能力。

3.路径规划
小车的路径规划采用A*算法,根据当前位置、目标位置以及环境地形等因素制定最优路径,并实时更新路径信息。

4.电路控制
小车的电路控制采用PWM技术,控制小车速度和方向,配合电池电量检测和保护电路等技术,保证小车的安全和稳定性。

五、结论
通过本项目的实践设计,掌握了机器人控制、机械设计和电路控制等技术,加深了对工程设计的理解,提高了动手操作能力。

同时,本项目的可拓展性和适用范围广泛,具有较高的应用价值和发展前景。

智能小车报告分析

智能小车报告分析

智能小车(红外版)项目报告目录一、引言------------------------------1二、总体方案------------------------------1三、电路与程序设计------------------------------4四、小车调试方案和调试结果------------------------------8五、遇到的问题和解决方案-------------------------------9 六、工程管理方案-------------------------------10七、总结和体会-------------------------------10一、引言智能,即可以按照预先设定的模式在一个环境中运行,不需要人为的管理。

智能小车就是其中一个体现。

本文的智能小车设有自动避障和自动循迹的功能。

其中避障的实现需要注意当小车与障碍物之间距离小于某一数值时,车通过电动机转向;寻迹的实现则需要通过车底部的光电传感器检测行驶方向是否偏离黑线,再通过电动机调整运行方向。

小车系统以STC89C52单片机为系统控制处理器;采用红外传感获取轨道及障碍物的信息,来对小车的方向和速度进行控制。

此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。

二、总体方案本小组设计的智能小车的控制机制是:以STC89C52单片机为控制核心的智能循迹避障小车。

采用红外探测法实现信号检测,通过红外发射管和接受管来感知给定黑色轨迹和障碍物,将感知的信号返回给单片机,然后单片机对不同信号进行区分,结合软件编程控制小车前进、后退、左转、右转,从而实现循迹避障功能,即在有轨迹的地方小车能沿轨迹行驶,当遇到障碍时小车能够自动避开。

1.实现功能(1)寻迹功能该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”一黑线。

基于51单片机的智能小车设计报告

基于51单片机的智能小车设计报告

本人保证自写文档,文档不足之处请谅解目录一、设计的目的------------------1二、设计的模块------------------1三、程序的流程------------------6四、元器件清单------------------8五、成品的制作------------------8六、注意事项--------------------9七、设计的总结------------------9设计的目的智能遥控车地目的主要突出在智能与遥控上,遥控意思明显就是通过某种控制手段使得小车能够实现由控制者控制前进后退等操作;智能可以体现为功能上的智能化。

本作的目的是实现控制小车移动时对前方所存在的威胁进行报警提醒。

设计的模块此次设计的硬件电路模块大致为五大类,分别是51单片机最小系统模块、电源模块、电机工作驱动模块、超声波报警系统模块、无线控制发射接收模块。

下图为硬件电路框图:1、单片机最小系统此模块式是本设计的控制核心模块,单片机最小系统由三部分组成:STC89C52芯片部分、复位部分(由按键开关、极性电容、10K电阻组成)、晶振部分(由12M石英晶振、两个30PF的瓷片电容组成)。

主要起程序的输入与控制、程序的复位、时间频率控制的作用。

2、无线控制模块本设计的无线控制模块是由编码芯片PT2262和解码芯片PT2272组成的电路模块组成,工作方式是编码芯片PT2262 发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272 接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。

3、电机驱动模块本设计是采用了L298N电机驱动模块来驱动减速电机工作;L298N是ST公司生产的一种高电压、大电流电机驱动芯片。

该芯片采用15脚封装。

主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。

(完整版)智能小车课程设计报告书

(完整版)智能小车课程设计报告书

课程设计报告书课题名称智能小车蓝牙操控和循迹的实现 姓 名 学 号 学 院 专 业 指导教师2019年2月15日※※※※※※※※※※※ ※※ ※※ ※※※※※※※※※2015级学生课程设计材料1设计目的通过设计进一步掌握51单片机的应用,特别是在嵌入式系统中的应用。

进一步学习51单片机在系统中的控制功能,能够合理设计单片机的外围电路,并使之与单片机构成整个系统。

2功能要求智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动运作,不需要人为的管理,可应用于科学勘探等等用途;并且能实现显示时间、速度、里程,具有自动寻迹、寻光、避障等功能,可程控行驶速度、准确定位停车,远程传输图像、按键控制加速,减速,刹停,左转和右转、实时显示运行状态等功能。

3 总体设计方案在现有玩具电动车的基础上,加了四个按键,实现对电动车的运行轨迹的启动,并将按键的状态传送至单片机进行处理,然后由单片机根据所检测的各种按键状态实现对电动车的智能控制。

这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。

本设计采用AT89C51单片机。

以AT89C51为控制核心,利用按键的动作,控制电动小汽车的状态。

加装光电、红外线、超声波传感器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动小车的智能控制,如图1所示。

简易智能电动车采用AT89C51单片机进行智能控制。

开始由手动启动小车,并复位初始化,当到达规定的起始黑线,由小车底部的红外光电传感器检测到第一条黑线后,通过单片机控制小车开始记数、显示、调速[2]。

在白纸所做轨迹道路中,小车通过超声波传感器正前方检测和光电传感器左右侧检测,由单片机控制实现系统的自动避障功能。

在电动车进驶过程中,采用双极式H型PWM脉宽调制技术,以控制小车调速;并采用动态共阴显示行驶时间和里程。

80C51单片机智能小车设计分析

80C51单片机智能小车设计分析

首先分析计时精度 , 由于计时系统所采用的是新型显示芯 片 ,所 以其 理论误差 可以控制在 1sy以内;其次,采用 电机 / 轴光 电码盘检测技术进行测速系统 的设计 , 电机车和车轮轴 在 间采用 的是齿轮箱二级减速 , 比为 1 1 ; 变 / 6 车轮周长为 1 5 m 3m , 电机轴和光 电码盘是安装在一起 的,电机轴每转会产 生 2脉 冲 ,而 车轮则有 3 2个脉冲产生 ,使得测距理论精度可 以控制 在 1 5m / 2 4 2 m 4 5 m 3 m 3 = . 2 m < . m以内;最后 由于本设计采用 了 实际测量 与软件补偿 技术 , 以可 以将定位精度 的误差控制在 所 1m 0 m以内。
【 南建辉, 7 】 熊呜, 王军茹. S 5 MC 一 1单 片机 原理及应 用实例 f . M1 北京 :清华 大学 出版社 ,20 04
[ 者简介] 作 叶伟慧 ( 9 5 ),女,广东湛江人 ,硕士研 17 一 究生 , 广东海洋大学寸金学院信息技术系讲师 , 主要研 究方向: 嵌入式系统 。
参考文献: … 陈伯 时, 电力拖动 自动控 制 系统【 , M] 北京: 机械 x J -k出版 ,
社 , 0 2 4 0
图2 :小车前行与倒车的控制 电路 4 调速 。 . 在设计过程 中一共设计 了三种调速系统方案 ,即 串电阻调速系统 、 宽调速 系统 以及静止可控整流 系统 , 脉 经过 综合 比较后决 定采用 H型双极型可逆脉宽调速变换器实现小 车 的调速功 能, 并对小车 的前行 与后退进 行控 制。 工作过程 其 上文 已做 阐述 ,此处不再赘 述 。 三、软件 设计 对 于微机 控制系统而言, 在设计过程 中硬件 系统只是其中 部分,软件 系统的设计是另外举足轻重的一部分 , 它的主要 内容就是如何根据每个生产对象的实际需要设计 出应用程序 。 具体的程序代码此处不做赘述 , 主要叙述一下程序的安装与维 护。软件 设计完成后便能够生成可执行文件 , 在测试 时点击可 执行文件程序就能正常运行 。 当系统设计完成并安装好各个功 能板卡驱动后 , 要及时进行系统备份 ,以便后续维护 软件 时更 方便 。 外,还要进行重 置功能的设 置,可 以使系统 的安全性 此 得到保证 ,如果系统启动 了重 置功 能,即可恢复到初 始状态 。 四 、系统测试 与性 能评估 在设计制作 完成 后着 重对数据 的精度进 行测试, 包括 计时 精度 以及测距精度和 定准 精度 , 对其 结果进 行分 析做 出如 下性 能评估 :

基于PIC单片机的智能小车设计报告

基于PIC单片机的智能小车设计报告

摘要本作品采用PIC16F886单片机作为电动车的检测和控制系统。

通过光电传感器ST178来检测路面黑色循迹线,使电动车按预定的轨道行驶,由E18-D80NK传感器检测障碍物,从而控制电动车无碰壁地通过II区和III 区的通道。

电动车的行驶状态,电动车的行驶时间,电动车的行驶路程由液晶LCD12684显示。

一、设计任务概述1.1设计任务概述设计制作一台智能电动小车,该电动小车能按照行径路线(见图示)自动运行,通过I区的黑色轨迹和II、III区的障碍物通道,并完成规定的动作。

1.2基本任务(1)从起跑线A出发,沿轨迹至B,最后经C到达停止线D,总时间要求在90秒内完成,并能实时显示时间。

(2)赛场分Ⅰ、Ⅱ、Ⅲ三个区。

到Ⅱ区入口处B点,应停留5秒,并能发出断续声光报警。

(3)到停止线D,小车车身中心点(选手可以事先在小车上标注)应对准停止线,误差控制在±2cm,并能发出断续声光报警。

1.3发挥部分(1)能实时记录并显示行驶路程。

(2)尽量缩短行驶总时间。

(3)行驶过程中不碰壁。

(4)其它。

注:智能电动小车场地图片的相关说明智能电动小车场地图二、系统方案与论证:根据题目中的设计要求,本系统主要由控制器模块、电源模块、避障模块、循迹传感器模块、直流电机及其驱动模块、液晶显示模块构成。

本系统的方框图如下图所示:系统总框图为较好的实现各模块的功能,我们分别设计了几种方案并分别进行了论证。

2.1车体方案论证与选择方案一:购买玩具电动车。

购买的玩具电动车具有组装完整的车架车轮、电机及其驱动电路。

玩具电动车的电机多为玩具直流电机,力矩小,空载转速快,负载性能差,不易调速。

而且这种电动车一般都价格不菲。

因此我们放弃了此方案。

方案二:使用现成的小车,并根据要求对其进行改装,采用直流减速电机,力矩大,空载转速快,负载性能好,易调速,这样即节省了比赛的时间,也能完成比赛的要求。

小车图示如下:小车实物综上所述,我们采取了方案二。

最新基于STM32智能抓物小车的设计-电子设计II课程报告

最新基于STM32智能抓物小车的设计-电子设计II课程报告

摘要本实验主要分析把握对象的智能车基于STM32F103的设计。

智能系统的组成主要包括STM32F103控制器、伺服驱动电路、红外检测电路、超声波避障电路。

本试验采用STM32F103微处理器作为核心芯片,速度和转向的控制采用PWM技术,跟踪模块、检测、障碍物检测和避免功能避障模块等外围电路,实现系统的整体功能。

小车行驶时,避障程序跟踪程序,具有红外线跟踪功能的汽车检测电路。

然后用颜色传感器识别物体的颜色和抓取。

在硬件设计的基础上提出了实现伺服控制功能,简单的智能车跟踪和避障功能的软件设计和控制程序,在STM32集成开发环境IAR编译,并使用JLINK下载程序。

关键词:stm32;红外探测;超声波避障;颜色传感;舵机控制ABSTRACTThis experiment mainly analyzed the grasping object intelligent car based onSTM32F103 design. The composition of the intelligent system mainly includes STM32F103 controller, servo drive circuit, infrared detection circuit, ultrasonic obstacle avoidance circuit. This test uses the STM32F103 microprocessor as the core chip, the speed and steering control using PWM technology, tracking module and detection, obstacle avoidance module for obstacle detection and avoidance function, other peripheral circuit to achieve the overall function of the system.The car is moving, obstacle avoidance procedures prior to tracking program, car tracking function with infrared detection circuit. Then use color sensor to recognize object color and grab. On the basis of the hardware design is proposed to realize the servo control function, simple intelligent car tracking and obstacle avoidance function of the software design, and the control program is compiled in the STM32 integrated development environment IAR, and download the program using Jlink.Key words: STM32; infrared detection; ultrasonic obstacle avoidance; color sensing; steering control目录第一章绪论 01.1研究意义概况 01.2研究思路 0第二章硬件设计部分 (1)2.1中央处理模块 (1)2.1.1 stm32f103内部结构 (2)2.1.2 stm32最小系统电路设计 (2)2.1.3 stm32软件设计的基本思路 (5)2.2 避障模块设计 (5)2.2.1 避障模块器件结构及其原理 (6)2.2.2 HC-SR04模块硬件电路设计 (7)2.3循迹模块设计 (8)2.3.1 循迹模块结构及其原理 (8)2.3.2 循迹模块电路设计 (10)第三章软件调试及实物展示 (11)3.1 程序仿真 (11)3.2 程序下载 (11)3.3 实物展示 (12)第四章总结 (13)致谢 (14)参考文献 (16)第一章绪论1.1研究意义概况智能小车通过各种感应器获得外部环境信息和内部运动状态,实现在复杂环境背景下的自主运动,从而完成具有特定功能的机器人系统。

单片机智能小车课程设计

单片机智能小车课程设计

单片机智能小车课程设计
一、课程的目的
本课程的目的是让学生学习如何使用单片机来构建智能小车,了解单片机的工作原理,掌握编程语言,完成智能小车的设计与制作,并将它应用到实际的解决方案当中。

二、课程的内容
本课程分为三个部分。

# 1. 单片机基础
本部分为学生提供单片机的相关理论知识,其中包括单片机工作原理、构建电路板等基础内容。

学生需要学习器件的原理、作用、施加电压的方式等。

# 2. 编程
本部分教学内容主要包括单片机的编程,需要学生掌握C语言和汇编语言的编程技巧,了解单片机的外部接口及它们的工作原理,学会使用汇编语言及相关软件操作系统等。

# 3. 实践
本部分主要让学生结合前两部分的内容,进行实践,将编程、接口等知识点应用到实际的智能小车中,实现从计划到实施的全部流程。

三、讲师及教材
本课程的讲授和教学由外聘的专业老师主讲,教材来源于国内外的单片机设计书籍及软件资料。

四、实验室设备
1. 智能小车实验室:配备了智能小车的电子元器件、电路板、外壳及测试仪器等,可以让学生进行智能小车设计与装配实验;
2. 编程实验室:配备了单片机软件开发工具、编程器及外部接口,用于学生的编程实验;
3. 课堂实验:课堂上展示完成的智能小车模型,并在学生观察的情况下,用编程语言完成小车的控制。

单片机智能车设计报告

单片机智能车设计报告

单片机智能车设计报告1. 引言单片机智能车是一种以单片机为核心控制器的智能机器人车辆,具备自主感知、决策和行动能力。

在本设计报告中,我们将介绍我们设计的单片机智能车的结构和功能,以及设计中所采用的关键技术和方法。

2. 设计目标我们的设计目标是制作一辆具备自主避障、跟随和遥控功能的单片机智能车。

具体而言,我们希望实现以下功能:- 方向控制:通过遥控器实现远程控制车辆的前进、后退、左转和右转;- 自主避障:利用超声波传感器感知前方障碍物并自动避让;- 跟随功能:通过红外传感器感知前方物体并自动跟随移动。

3. 系统组成我们的单片机智能车系统主要由以下模块组成:- 单片机:我们使用了一块功能强大的STM32单片机作为核心控制器;- 电机驱动:采用H桥电机驱动模块控制车辆运动;- 超声波传感器:用于感知前方障碍物的距离;- 红外传感器:用于感知前方物体;- 遥控器:搭配红外接收模块实现对车辆的远程控制;- 显示屏:用于显示车辆当前状态和遥控指令。

4. 系统工作原理4.1 方向控制方向控制是通过遥控器实现的,遥控器发送红外信号,被红外接收模块接收后,单片机对信号进行解码,根据解码结果来控制车辆的运动方向。

4.2 自主避障自主避障是通过超声波传感器实现的。

超声波传感器发射一定频率的超声波信号,并接收信号的反射,根据反射时间来计算障碍物与车辆的距离。

当距离小于一定阈值时,单片机通过控制电机驱动模块停止车辆运动,并自动转向避开障碍物。

4.3 跟随功能跟随功能是通过红外传感器实现的。

红外传感器发射红外信号,并接收信号的反射。

当红外传感器感知到前方物体时,单片机通过控制电机驱动模块使车辆保持一定距离跟随物体移动。

5. 实现步骤和关键技术1. 硬件搭建:将电机驱动模块、超声波传感器和红外传感器连接至单2. 编写驱动程序:编写单片机的驱动程序控制电机驱动模块,包括前进、后退、左转和右转;3. 编写红外传感器程序:编写单片机的程序读取红外传感器的信号,并根据信号进行判断和控制;4. 编写超声波传感器程序:编写单片机的程序读取超声波传感器的信号,并根据信号进行距离计算和判断;5. 编写遥控器程序:编写单片机的程序解码遥控器信号,并根据解码结果控制车辆的运动方向;6. 联调测试:将编写好的程序烧录到单片机上,并进行测试和调试,确保各功能正常运行。

单片机智能蓝牙小车课程设计报告书

单片机智能蓝牙小车课程设计报告书

单片机课程设计系别:电子信息工程班级:信10050 6 学号:信******** :徐彬彬引言制作一个基于51单片机的控制的无线控制小车。

一、系统设计由51单片机控制直流电机的正反转来控制小车的运动。

无线部分用来接收上位机(电脑或者手机)发出的信号,通过信号控制单片机调用函数程序来控制小车的运行状态。

无线部分:用蓝牙从机的TTL接口接收信号反馈给单片机,还可以通过电脑的无线局域网网卡来控制路由器的TTL串口来控制单片机的状态。

由于蓝牙模块容易得到且接口方便,电压可以用+5V控制,携带方便,便于在小车上安装。

电机驱动:电机驱动需要大电流,较高的电压,考虑到单片机的负载能力,用L298N驱动模块来驱动电机,单片机输出逻辑信号控制L298N模块输出正反向电压,由此控制电机的正反转。

小车的运动状态:小车为四轮驱动,一侧的两个电机分为一组。

二、软件设计单片机电路:由p1口输出逻辑电平驱动L298N电路L298N驱动电机电路,供给+5V和+12V电压三、系统的仿真与调试用简单程序仿真测试电路连接情况汇编程序代码:org 0000hajmp mainorg 0080hmain:mov a,#0ffhmov p1,a ;不转call delay ;延时loop: mov a,#00ah ;正转mov p1,acall delaymov a,#0ffh;停止mov p1,acall delaymov a,#005h;反转mov p1,acall delaymov a,#0ffh;停止mov p1,acall delayjmp loopdelay: mov r5,#50 ;延时。

d1: mov r6,#40d2: mov r7,#248djnz r7,$djnz r6,d2djnz r5,d1retend仿真结果:电机正反转均正常小车程序:用单片机控制小车的四个状态,前进,后退,左转,右转。

由四个函数实现,执行条件为中断。

智能小车课程设计报告(全文)

智能小车课程设计报告(全文)

引言概述
智能小车课程设计报告是对于一种智能小车的设计和开发过程的详细记录和总结。

本报告旨在介绍智能小车的设计背景、目标与需求,并详细阐述了设计过程中的各个环节以及所面临的挑战和解决方案。

通过本报告的阅读,读者可以了解到关于智能小车设计的关键技术以及相关的研究成果和应用。

正文内容
一、智能小车设计的背景与目标
1.1设计背景
1.2设计目标与需求
二、智能小车设计的硬件与软件平台
2.1硬件平台的选择与配置
2.2软件平台的选择与配置
三、智能小车的传感与感知系统
3.1传感与感知系统的设计需求
3.2传感与感知系统的设计方案
3.3传感与感知系统的实现与测试
四、智能小车的控制与决策系统
4.1控制与决策系统的设计需求
4.2控制与决策系统的设计方案
4.3控制与决策系统的实现与测试
五、智能小车的应用与展望
5.1智能小车的应用场景与效果分析
5.2智能小车设计的拓展与改进点
总结
本报告详细介绍了智能小车课程设计的全过程,包括了设计背景与目标、硬件与软件平台的选择与配置、传感与感知系统的设计与实现、控制与决策系统的设计与实现以及智能小车的应用与展望。

通过本次设计的实践,我们深入了解了智能小车设计的关键技术和相关研究成果,并获得了实际应用中所需要的技能和经验。

随着智能小车技术的不断发展,我们相信智能小车将在诸多领域中发挥重要作用,如自动驾驶、物流运输等。

因此,在未来的研究中,我们将继续探索智能小车设计的新思路和新方法,以实现更高的性能和更广泛的应用。

单片机课程设计报告 智能小车

单片机课程设计报告 智能小车
2.1 驱动模块 ........................................................ 2 2.2 路面探测模块 .................................................... 2 2.3 避障模块 ........................................................ 3 2.4 本设计采用方案及原理 ............................................ 3
方案二:采用红外传感器。此方案可以降低可见光的干扰,灵敏度高,同时其尺寸
2
大连民族学院 2012 级通信工程专业单片机系统课程设计报告
小。质量轻。价格也低廉。外围电路简单,安装起来方便,电源要求不高,用它作为近 距离传感器是最理想的。
方案三:利用激光。此方案虽然抗干扰性强、可靠性高,但其缺点在于体积大、功 耗大、价格高。一般用在要求非常高的场合,本系统采用方案二已经能够胜任,无须采 用此方案。
图 2.1 小车的基本模块方框图
为了使各个模块具有较好的性能,分别提出以下不同设计方案:
2.1 驱动模块
方案一:采用数控电位器 X9313 集合 NE555 多谐振荡器输出 PWM 信号。通过单片机 控制数控电位器来调整 NE555 多谐振荡器的输出方波的占空比,达到对电机速度的控制。 这个方案的优点是控制比较方便、软件资源消耗少。
2.4 本设计采用方案及原理
驱动模块提出的方案中,两方案相比较,软件控制量相当,但方案一的硬件电路较 为复杂,驱动能力不如方案二。综合考虑两种方案的优缺点,我们选择方案二来实现本 系统。
路面检测模块确定方案二的红外传感器作为循迹模块。由于它的价格和效果都可达 到我们想要的目的,并且安装方便,对其他硬件软件的要求都不高。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计题目: 智能小车设计专业: 计算机科学与技术班级: 14级2班姓名学号组长成员成员成员成员2016 年 12 月 23 日打开命令行终端的快捷方式:ctr+al+t:默认的路径在家目录ctr+shift+n:默认的路径为上一次终端所处在的路径.linux@ubuntu:~$linux:当前登录用户名.ubuntu:主机名:和$之间:当前用户所处在的工作路径.windows下的工作路径如C:\Intel\Logslinux下的工作路径是:/.../..../~:代表的是/home/linux这个路径.(家目录).ls(list):列出当前路径下的文件名和目录名.ls -a(all):列出当前路径下的所有文件和目录名,包括了隐藏文件. .:当前路径..:上一级路径ls -l:以横排的方式列出文件的详细信息total 269464(当前这个路径总计所占空间的大小,单位是K)drwxr-xr-x 3 linux linux 4096 Dec 4 19:16 Desktop第一个位置:代表的是文件的类型.linux系统下的文件类型有以下几种.b:块设备文件c:字符设备文件d:directory,目录-:普通文件.l:连接文件.s:套接字文件.p:管道文件.rwxr-xr-x:权限r:读权限 -:没有相对应的权限w:写权限x:可执行权限修改权限:chmod u-或者+r/w/x 文件名chmod g-或者+r/w/x 文件名chmod o-或者+r/w/x 文件名第一组:用户权限第二组:用户组的权限第三组:其他用户的权限.chmod 三个数(权限) 文件名首先根据你想要的权限生成二进制数,再根据二进制数转换成十进制的三位数rwxr-x-wx1111010117 5 3chmod 753 文件名rwx--xr-x第二个位置上的数字:对应目录下的子文件个数,如果是非目录,则数字是1 第三个位置:用户名(文件创造者).第四个位置:用户组的名字(前边的用户所处在的用户组的名字).第五个位置:对应文件所占的空间大小(单位为b)第六~八个位置:Dec 4 19:16时间戳(最后一次修改文件的时间)最后一个位置:文件名操作文件:1.创建一个普通文件:touch 文件名2.删除一个文件:rm(remove) 文件名3.新建一个目录:mkdir(make directory) 目录名递归创建目录:mkdir -p 目录1/目录2/目录34.删除一个目录:rmdir 目录名.//仅删除一个空目录rm -rf 目录名//删除一个非空目录5.切换目录(change directory):cd 路径linux下的路径分两种相对路径:以.(当前路径)为起点.绝对路径:以/(根目录)为起点,用相对路径的方式进入Music:cd ./Music用绝对路径的方式进入Desktop:cd /home/linux/Desktop返回上一级:cd ..返回加家目录的三种方式(1).cd(2).cd ~(3).cd /home/linux进入到1目录里并创建一个2普通文件,再退回上一级,并且删除1目录6.拷贝文件.cp(copy) 路径1/源文件路径2:把路径1下的文件拷贝到路径2下cp 路径1/源文件路径2/目标文件:把路径1下的文件拷贝到路径2下并且重命名位目标文件.cp(copy) -r 路径1/目录名路径2:把路径1下的目录拷贝到路径2下7.剪切文件mv(move) 路径1/源文件路径2:把路径1下的文件剪切到路径2下mv 路径1/源文件路径2/目标文件:把路径1下的文件剪切到路径2下并且重命名位目标文件mv 源文件目标文件:重命名文件mv 路径1/目录名路径2:把路径1下的目录剪切到路径2下8.clear:清屏9.exit 退出终端vi编辑器.vi 文件名:如果文件不存在则创建并打开如果文件已存在,则直接打开VI编辑器的三种模式1.命令行模式:刚进入编辑器的时候,默认处在这种模式下2.编辑模式(插入模式):输入a/i/o即可进入,按下esc键退回命令行模式,再输入冒号,即可进入底行模式.3.底行模式下:w(保存),q(退出),wq(保存并退出),q!(强制退出不保存)按下退格键,删除冒号,即可进入命令行模式.终极保存法;w! sudo tee %d回车再回车即可命令行模式下的快捷操作:1.整行复制:光标移动想要复制的那一行,输入yy即可,再把光标移动到你想要粘贴位置的上一行,输入p即可2.多行复制:光标移动想要复制的那几行的第一行,输入数字yy即可,再把光标移动到想要粘贴的那几行的第一行,输入p即可,3.整行删除:光标移动想要删除的那一行,输入dd即可,4.多行删除:光标移动想要删除的那几行的第一行,输入数字dd即可,5.整行剪切:光标移动想要剪切的那一行,输入cc即可,这个时候进入到了编辑模式,按下esc键退回到命令行模式,再把光标移动到想要粘贴位置的上一行,输入p即可,6.多行剪切:光标移动想要剪切的那几行的第一行,输入数字cc即可,这个时候进入到了编辑模式,按下esc键退回到命令行模式,再把光标移动到想要粘贴位置的上一行,输入p即可.7.撤销上一步:u底行模式下的快捷操作1,对第a行到第b行进行复制:航标a,行标by,enter回车,再把光标移动到你想要粘贴位置的上一行,输入p即可2,对第a行到第b行进行删除:航标a,行标bd,enter回车3.对第a行到第b行进行剪切:航标a,行标bd,enter回车,再把光标移动到你想要粘贴位置的上一行,输入p即可编辑一个最简单的hello world程序,保存并退出gcc编译器.gcc 文件名:编译成功的话,会在当前目录生成一个a.out可执行程序执行程序: ./a.out当然也可以指定可执行程序的名字,命令如下:gcc 文件名 -o 可执行程序名编译步骤:1.预处理:gcc -i test.c -o test.i(宏定义的替换,头文件包含)2.汇编:gcc -s test.i -o test.s(c代码转换成汇编代码)3.编译:gcc -c test.s -o test.o(把汇编转换成二进制的目标程序)5.连接:gcc test.o -o test(连接库函数)linux系统的库文件:静态库:.a结尾动态库:.so结尾自己制作一个动态库.首先写一个简单的c功能函数编译成动态库:gcc -fPIC -shared 文件名 -o lib库文件名.so在linux系统下.程序运行时默认搜素库的路径是/lib把库拷贝到/lib下:cp lib库文件名.so /lib 错误提示":permission denied(权限不足)方法:sudo cp lib库文件名.so /lib 提示让你输入密码1:sudo暂时将普通用户的权限提高到root用户权限再编译一个c应用程序,在程序中来调用库里实现的函数gcc 应用程序名 -l库名(注意是去掉lib和.so的库名)文件IOlinux系统下一切设备皆文件操作文件:open():打开一个文件read()://从文件里边读出数据write()//向文件里写入数据close()//关闭文件man手册:man 2 函数名open:头文件#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>1.int open(const char *pathname, int flags);//仅限于打开一个已存在文件参数1:文件的路径参数2:打开方式的标志O_RDONLY,//只读方式打开O_WRONLY,//只写方式打开O_RDWR.//可读可写方式打开返回值:打开成功:返回一个正数(文件描述符)打开失败:-12.int open(const char *pathname, int flags, mode_t mode);//可以打开一个不存在的文件参数1:文件的路径参数2:打开方式的标志O_RDONLY,//只读方式打开O_WRONLY,//只写方式打开O_RDWR.//可读可写方式打开如果文件不存在必须|O_CRAET,创建该文件参数3:权限数比如:0666返回值:打开成功:返回一个正数(文件描述符)打开失败:-1write:头文件: #include <unistd.h>typedef int ssize_tssize_t write(int fd, const void *buf, size_t count);参数1:就是open函数的返回值,文件描述符参数2:你想要写入的数据参数3:你想要写入的数据的字节大小返回值:写入成功:返回的是写入的字节大小写入失败:-1strlen:实际长度sizeof:数组的大小arduinoviod setup(){端口的配置;}void loop(){任务的执行;}arduino之呼吸灯实验:int led=13;void setup(){pinMode(led,OUTPUT);}void loop(){digitalWrite(led,HIGH);delay(1000);digitalWrite(led,LOW);delay(1000);}渐变灯:暗->亮->暗PWM波:可调脉冲宽度波.3,5,6,9,10,11这几个端口可以输出pwm波analogWrite(pin, value)//输出pwm波pin:管脚号:3,5,6,9,10,11中的任意一个value:0~255中的任何一个数:0:占空比为0%255:占空比位100%远程视频监控步骤:1.将jpegsrc.v8b.tar.gz(图片库)和mjpg-streamer-code-182.tar.gz(视频查看软件) 拷贝到ubuntu的家目录2.解压缩tar xvf jpegsrc.v8b.tar.gz3. cd jpeg-8b4. ./configure //创建Makefile文件5. make6. sudo make install //安装程序运行时,默认寻找的头文件的路径在/usr/include,库文件的路径/libcd /usr/local/includesudo cp * /usr/includecd /usr/local/libsudo cp libjpeg* /lib7.切换到家目录:cd移植查看视频的软件:tar xvf mjpg-streamer-code-182.tar.gzcd mjpg-streamer-code-182cd mjpg-streamermake clean //清除已经编译过的程序make运行查看视频的软件:sudo ./start.sh打开火狐浏览器在地址栏输入127.0.0.1:8080若发现视频绿屏先强制结束程序运行:ctl+c.解决方法:修改start.sh将第30行的 -y 删除看看是否虚拟机识别到摄像头:ls /dev/video0地址栏输入:127.0.0.1:8080/?action=stream 查看视频信息 127.0.0.1:8080/?action=snapshot 截屏图片,点击save image as可以保存图片A8开发板:cpu:三星s5pc100内存:256Mflash:256Mwindows运行之前会有一个系统的引导代码叫BIOS与windows类似,linux启动之前也有这样的一段代码叫做bootloader bootloader有很多种,我们选用其中的一种叫做uboot.linux系统的启动步骤1.运行uboot(初始化硬件,引导系统内核的加载)2.内核的运行(zImage,linux的内核).3.识别文件系统(类似于C盘,D盘,E盘).是rootfs.tgz系统=内核+文件系统.挂载系统.要对uboot环境信息进行设置首先把拨码开关拨到0000位置.选择uboot的启动方式.uboot从外存启动.1.找到自己的COM端口号;打开putty2.选中Serial,把波特率改为115200,端口号改为自己的端口号,Flow contrlo选择none3.开启电源,会出现一个倒计时,在倒计时完成之前,随便敲一个键盘.4.输入命令print可以显示uboot的打印信息确保:ipaddr=192.168.1.100//代表开发板的ip地址serverip=192.168.1.200//代表ubuntu的IP地址bootargs=root=nfs nfsroot=192.168.1.200:/source/rootfs ip=192.168.1.100 init=/linuxrc console=ttySAC0,115200//打开虚拟机:1.进入到/tftpboot目录下.把zImage拖到虚拟机,前加cp ,后加 ./使用ls查看一下是否出现zImage2.cd /source把rootfs这个压缩包拖到虚拟机,前加cp ,后加 ./使用ls查看一下是否出现rootfs.tgz3.解压命令:sudo tar -xvf rootfs.tgz要让你输入密码;输入1回车即可,密码是不可见的.再用ls查看是否多了一个蓝色的文件rootfs.4.修改ubuntu的ip地址.找到wiffi图标,点击选中edit connection->IPV4 seting->manual->add ip netmask gateway192.168.1.200 255.255.255.0 192.168.1.1点击保存.关闭窗口.再打开图标选中wired connection1 再看ip是否改回来了.5.网线连接开发板和电脑在putty界面输入:ping 192.168.1.200如果host 192.168.1.200 is alive,这是挂载系统很好的征兆.not alive的话需要关闭电脑的无线网输入boot或者重启开发板不要再按下任何键了,如果出现##################很快就要挂载成功了如果出现TTTTTTTTTTTTTT在ubuntu输入命令:sudo service tftpd-hpa restart其中sudo的作用是暂时将用户的权限提升到超级用户(root)的权限.如果出现Please press Enter to activate this console.代表系统挂载成功.通过gcc编译生成的程序不能在开发板上运行.通过命令file a.out看到文件的格式为intel 30386,说明这是X86格式的程序,只能PC上运行而不能在arm板上运行,解决措施,使用交叉编译器来编译.交叉编译器的配置:将arm-cortex_a8-linux-gnueabi.tar.bz2拖到ubuntu的家目录解压命令tar -xvf arm-cor+tab键自动补齐,用ls查看是否生成arm-cortex_a8个目录.配置交叉编译器:sudo vi /etc/bash.bashrc文件在最后一行添加export PATH=$PATH:/home/linux/arm-cortex_a8/bin保存并退出文件保存完成后重启文件:source /etc/bash.bashrc重启成功后输入arm-cor+tab键会自动补齐成arm-cortex_a8-linux-gnueabi-代表交叉编译器配置成功.利用交叉编译器编译程序:arm-cortex_a8-linux-gnueabi-gcc 文件名,并将生成的可执行程序拷贝到/source/rootfs下然后再到putty上执行./a.out就可以在开发板上运行程序了.相关代码Che.c#include "cgic.h"#include <termios.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>void zigbee_serial_init(int fd){struct termios options;tcgetattr(fd, &options);options.c_cflag |= (CLOCAL | CREAD);options.c_cflag &= ~CSIZE;options.c_cflag &= ~CRTSCTS;options.c_cflag |= CS8;options.c_cflag &= ~CSTOPB;options.c_iflag |= IGNPAR;options.c_iflag &= ~(BRKINT | INPCK | ISTRIP | ICRNL | IXON);//options.c_cc[VTIME] = 2;options.c_cc[VMIN] = 12;options.c_oflag = 0;options.c_lflag = 0;cfsetispeed(&options, B115200);cfsetospeed(&options, B115200);tcsetattr(fd,TCSANOW,&options);}int cgiMain(){int fd;char a='1';cgiHeaderContentType("text/html\n\n");fprintf(cgiOut,"<html>\n");fprintf(cgiOut,"<head>\n");fprintf(cgiOut,"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n");fprintf(cgiOut,"<title>\n");fprintf(cgiOut,"SMART CAR\n");fprintf(cgiOut,"</title>\n");fprintf(cgiOut,"<meta http-equiv=\"refresh\" content=\"0;url=../index.html\">");fprintf(cgiOut,"</head>\n");fprintf(cgiOut,"<body>\n");fprintf(cgiOut,"<div align=\"center\">\n");fprintf(cgiOut,"<br /><br /><br /><br />\n");fprintf(cgiOut,"<form action=\"./cgi-bin/keyi.cgi\" method=\"post\" >\n");fprintf(cgiOut,"<input type=\"submit\" name=\"up\" value=\"前进\" /><br /><br />\n");fprintf(cgiOut,"<input type=\"submit\" name=\"left\" value=\"左转\" />\n");fprintf(cgiOut,"&nbsp;&nbsp;&nbsp;&nbsp;\n");fprintf(cgiOut,"<input type=\"submit\" name=\"stop\" value=\"停止\" />");fprintf(cgiOut,"&nbsp;&nbsp;&nbsp;&nbsp;\n");fprintf(cgiOut,"<input type=\"submit\" name=\"right\" value=\"右转\" /><br /><br />\n");fprintf(cgiOut,"<input type=\"submit\" name=\"down\" value=\"后退\" />\n");fprintf(cgiOut,"</form>\n");fd=open("/dev/ttyUSB0",O_RDWR);if(-1==fd)fprintf(cgiOut,"open usart failed\n");zigbee_serial_init(fd);if(cgiFormSuccess==cgiFormSubmitClicked("up")){a='2';write(fd,&a,1);}if(cgiFormSuccess==cgiFormSubmitClicked("down")){a='1';write(fd,&a,1);}if(cgiFormSuccess==cgiFormSubmitClicked("right")){a='4';write(fd,&a,1);}if(cgiFormSuccess==cgiFormSubmitClicked("left")){a='3';write(fd,&a,1);}if(cgiFormSuccess==cgiFormSubmitClicked("stop")){a='0';write(fd,&a,1);}fprintf(cgiOut,"</body>\n");fprintf(cgiOut,"</html>\n");close(fd);return 0;}Test.c#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc, const char *argv[]) {int fd;char buff[20]={0};fd=open("/dev/ttyUSB0",O_RDWR);if(-1==fd){printf("open failed\n");return -1;}while(1){read(fd,buff,sizeof(buff));}return 0;}单片机代码void setup(){pinMode(2,OUTPUT);pinMode(4,OUTPUT);pinMode(6,OUTPUT);pinMode(8,OUTPUT);Serial.begin(115200);}void loop(){char c;c=Serial.read();if(c=='1'){digitalWrite(2,LOW);digitalWrite(4,HIGH);digitalWrite(6,LOW );digitalWrite(8,HIGH); Serial.println("qianjin"); }if(c=='2'){digitalWrite(2,HIGH);digitalWrite(4,LOW);digitalWrite(6,HIGH);digitalWrite(8,LOW); Serial.println("daotui"); }if(c=='3'){digitalWrite(2,LOW);digitalWrite(4,HIGH);digitalWrite(6,LOW);digitalWrite(8,LOW); Serial.println("youzuan"); }if(c=='4'){digitalWrite(2,LOW);digitalWrite(4,LOW);digitalWrite(6,LOW);digitalWrite(8,HIGH); Serial.println("zuozuan"); }if(c=='0'){digitalWrite(2,LOW);digitalWrite(4,LOW);digitalWrite(6,LOW);digitalWrite(8,LOW); Serial.println("0");}}。

相关文档
最新文档