遥控智能小车(课程设计)
- 格式:doc
- 大小:174.50 KB
- 文档页数:24
物联网智能小车课程设计一、课程目标知识目标:1. 让学生理解物联网的基本概念,掌握智能小车的主要组成部分及其工作原理;2. 使学生掌握编程语言控制智能小车的基本方法,了解传感器在物联网中的应用;3. 帮助学生了解物联网技术在现实生活中的应用案例,提高对物联网技术发展的认识。
技能目标:1. 培养学生动手操作能力,能够独立完成智能小车的组装和编程;2. 提高学生问题解决能力,能够运用所学知识对智能小车进行调试和优化;3. 培养学生团队协作能力,能够在小组合作中发挥个人特长,共同完成项目任务。
情感态度价值观目标:1. 培养学生对物联网技术的兴趣,激发其探索精神和创新意识;2. 培养学生关注社会发展,认识到物联网技术对社会进步的推动作用;3. 引导学生树立正确的价值观,认识到科技发展应服务于人类福祉,增强社会责任感。
课程性质:本课程为实践性较强的学科课程,旨在通过智能小车的制作和调试,帮助学生将理论知识与实际应用相结合,提高学生的实践操作能力和创新能力。
学生特点:学生具备一定的电子技术基础和编程能力,对新鲜事物充满好奇心,喜欢动手实践,但部分学生可能缺乏团队合作经验和问题解决能力。
教学要求:注重理论与实践相结合,充分调动学生的积极性,引导学生主动探究,注重培养学生的动手能力、创新意识和团队协作精神。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 物联网基本概念与智能小车概述- 物联网的定义、特点与应用领域- 智能小车的发展历程、分类及基本组成2. 智能小车硬件组成与工作原理- 主控模块、传感器模块、驱动模块等功能介绍- 各模块之间的协同工作原理3. 编程语言与智能小车控制- 常用编程语言(如Python、C等)介绍- 编程控制智能小车的步骤和技巧4. 传感器在物联网中的应用- 介绍常见传感器(如红外传感器、超声波传感器等)的工作原理- 传感器在智能小车中的应用案例5. 智能小车组装与调试- 指导学生按照教学要求组装智能小车- 教授调试方法,分析并解决常见问题6. 物联网智能小车项目实践- 设计具有实际应用场景的项目任务- 学生分组进行项目实践,教师提供指导与支持7. 物联网技术在实际应用案例分析- 分析国内外物联网技术在实际应用中的成功案例- 引导学生关注物联网技术发展趋势及其对社会的影响教学内容安排与进度:第1-2周:物联网基本概念与智能小车概述第3-4周:智能小车硬件组成与工作原理第5-6周:编程语言与智能小车控制第7-8周:传感器在物联网中的应用第9-10周:智能小车组装与调试第11-12周:物联网智能小车项目实践与案例分析本教学内容紧密围绕课程目标,注重理论与实践相结合,以培养学生的动手能力、创新意识和团队协作精神为核心。
多功能智能小车课程设计一、课程目标知识目标:1. 学生能理解多功能智能小车的基本构造,掌握其工作原理。
2. 学生能描述智能小车的主要组成部分,如传感器、驱动器、控制器等,并了解各部分的功能。
3. 学生能了解并运用基础的编程知识,实现对智能小车的控制。
技能目标:1. 学生能独立完成智能小车的组装,提高动手实践能力。
2. 学生能运用编程软件,编写程序,实现对智能小车的控制,培养编程技能。
3. 学生能通过团队合作,解决智能小车在实际运行中遇到的问题,提高问题解决能力。
情感态度价值观目标:1. 学生对科学探索保持好奇心和热情,激发创新意识。
2. 学生在团队协作中,学会互相尊重、支持和沟通,培养合作精神。
3. 学生通过多功能智能小车课程,认识到科技在生活中的应用,增强科技意识和社会责任感。
课程性质:本课程为实践性课程,结合理论知识与动手操作,培养学生的创新能力和实践能力。
学生特点:五年级学生,具备一定的认知能力、动手能力和团队协作能力,对新鲜事物充满好奇心。
教学要求:教师应注重理论与实践相结合,引导学生主动探索,关注学生的个体差异,鼓励团队合作,提高学生的综合能力。
通过本课程,使学生达到以上设定的课程目标,为后续学习奠定基础。
二、教学内容本课程教学内容围绕多功能智能小车的组装、编程与控制展开,包括以下部分:1. 智能小车基础知识:- 智能小车的基本构造与工作原理;- 主要组成部分(传感器、驱动器、控制器)的功能与原理;- 相关物理知识,如电路原理、电机工作原理等。
2. 智能小车组装:- 组装工具的使用与维护;- 智能小车各部件的安装方法;- 组装过程中的安全事项。
3. 编程与控制:- 编程软件的使用与基本操作;- 控制程序编写,实现智能小车的基本运动控制;- 传感器数据的读取与处理。
4. 实践应用:- 团队合作,完成智能小车的组装与调试;- 设计并实施智能小车在不同场景下的应用任务;- 问题分析与解决。
教学内容安排与进度:第一课时:智能小车基础知识学习;第二课时:智能小车组装与工具使用;第三课时:编程软件学习与基本控制程序编写;第四课时:智能小车调试与问题解决;第五课时:实践应用与展示。
人工智能小车课程设计一、课程目标知识目标:1. 学生能理解人工智能基础概念,掌握人工智能小车的基本工作原理。
2. 学生能描述编程控制人工智能小车的基本步骤和方法。
3. 学生能了解人工智能在现实生活中的应用,认识到科技发展的意义。
技能目标:1. 学生能通过动手实践,组装并调试人工智能小车。
2. 学生能运用所学的编程知识,编写简单的程序来控制人工智能小车。
3. 学生能通过小组合作,解决人工智能小车在实际运行中遇到的问题。
情感态度价值观目标:1. 学生对人工智能产生浓厚的兴趣,培养主动探究科学技术的热情。
2. 学生在团队合作中,学会互相尊重、沟通与协作,培养团队精神。
3. 学生通过了解人工智能的广泛应用,增强创新意识,认识到科技对生活的改变。
课程性质:本课程为实践性强的科技课程,注重理论知识与实践操作相结合。
学生特点:六年级学生具备一定的逻辑思维能力和动手操作能力,对新鲜事物充满好奇。
教学要求:教师应注重引导学生主动探究,关注学生的个体差异,鼓励团队合作,提高学生的实践和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
1. 人工智能基础概念:介绍人工智能的定义、发展历程及分类,结合课本相关章节,使学生了解人工智能的基本知识。
2. 人工智能小车结构:讲解人工智能小车的硬件组成,如传感器、电机、控制器等,以及各部分功能,让学生了解小车的工作原理。
3. 编程控制方法:教授编程语言基础,如Scratch或Python,指导学生编写简单的程序,实现对人工智能小车的控制。
4. 实践操作:安排学生动手组装和调试人工智能小车,学会使用相关工具和仪器,培养实际操作能力。
5. 团队合作与问题解决:分组进行实践活动,让学生在团队合作中解决实际问题,提高沟通与协作能力。
6. 人工智能应用案例:介绍人工智能在现实生活中的应用实例,如自动驾驶、智能家居等,拓宽学生的视野。
教学大纲安排:第一课时:人工智能基础概念,介绍课本相关章节内容;第二课时:人工智能小车结构,分析小车各部分功能;第三课时:编程控制方法,学习编程语言基础;第四课时:实践操作,分组组装和调试人工智能小车;第五课时:团队合作与问题解决,解决实际操作中遇到的问题;第六课时:人工智能应用案例,了解科技发展的前沿动态。
第1篇摘要:随着科技的飞速发展,教育领域也在不断探索新的教学模式。
智能小车作为一种新兴的教育工具,不仅能够激发学生的学习兴趣,还能培养学生的创新实践能力。
本文将介绍智能小车的背景、创新实践教学的意义、智能小车的设计与实现,以及其在教育中的应用。
一、背景近年来,我国教育部高度重视创新实践教育,提出“培养具有创新精神和实践能力的人才”的教育目标。
智能小车作为一种融合了机械、电子、计算机、控制等多学科知识的综合性实践项目,具有很高的教学价值和应用前景。
二、创新实践教学的意义1. 激发学生学习兴趣智能小车项目将理论知识与实际操作相结合,让学生在动手实践中感受科技的魅力,从而激发学生的学习兴趣。
2. 培养学生的创新意识智能小车的设计与实现过程中,学生需要不断思考、探索、创新,从而培养学生的创新意识。
3. 提高学生的实践能力通过智能小车项目,学生可以学习到电路设计、编程、控制算法等实践技能,提高学生的动手能力和解决实际问题的能力。
4. 培养学生的团队协作精神智能小车项目通常需要多人合作完成,这有助于培养学生的团队协作精神和沟通能力。
三、智能小车的设计与实现1. 硬件设计智能小车硬件主要包括以下部分:(1)主控板:选用Arduino、STM32等主流开发板作为主控板,负责整个系统的控制。
(2)传感器:包括红外传感器、超声波传感器、光电传感器等,用于获取小车周围环境信息。
(3)驱动模块:选用L298N等驱动模块,用于控制电机转动。
(4)执行器:包括电机、舵机等,用于实现小车行走、转向等功能。
2. 软件设计智能小车软件主要包括以下部分:(1)主程序:负责控制整个系统的运行,包括传感器数据处理、电机控制等。
(2)驱动程序:负责电机、舵机等执行器的控制。
(3)算法程序:根据传感器数据,实现避障、循线、跟随等功能。
四、智能小车在教育中的应用1. 课程教学智能小车可以应用于各种课程教学,如机械设计、电子技术、计算机编程等,帮助学生将理论知识与实践相结合。
遥控小车毕业设计遥控小车毕业设计随着科技的不断进步,遥控小车成为了人们生活中常见的一种智能设备。
它不仅可以提供娱乐,还可以应用于各种领域,如工业、医疗等。
本文将探讨一种遥控小车的毕业设计方案。
一、设计目标在开始设计之前,我们首先需要明确设计的目标。
本设计旨在开发一款功能强大、操作简便的遥控小车,以满足用户对于远程控制的需求。
该小车应具备较高的机动性和稳定性,能够适应各种地形和环境。
二、硬件设计1. 控制模块遥控小车的核心是控制模块。
我们可以选择使用Arduino等单片机作为控制模块,通过编程实现对小车的控制。
此外,还需要配备无线通信模块,以实现与遥控器之间的数据传输。
2. 电源系统为了保证小车的正常运行,我们需要设计一个稳定可靠的电源系统。
可以选择使用锂电池作为小车的电源,通过充电器进行充电。
此外,还需要考虑电源管理模块,以避免电池过放或过充的情况。
3. 传感器为了增加小车的智能化程度,我们可以添加一些传感器,如红外线传感器、超声波传感器等。
这些传感器可以用于检测障碍物、测量距离等功能,从而实现小车的自主避障和定位。
4. 机械结构小车的机械结构应该具备足够的稳定性和灵活性。
我们可以选择使用金属或塑料材料制作车身,同时考虑到小车的重量和外形设计。
此外,还需要设计合适的轮子和悬挂系统,以提供良好的行驶性能。
三、软件设计1. 远程控制程序为了实现对小车的远程控制,我们需要编写一套远程控制程序。
可以选择使用C/C++等编程语言,通过串口或无线通信模块与小车进行数据交互。
在程序中,可以定义各种指令,如前进、后退、转向等,以实现对小车的精确控制。
2. 自主避障算法为了增加小车的智能化程度,我们可以编写一套自主避障算法。
该算法可以根据传感器的数据判断前方是否有障碍物,并采取相应的措施进行避障。
例如,当传感器检测到障碍物时,小车可以自动停下或改变方向,以避免碰撞。
3. 数据处理与显示为了方便用户对小车的控制和监控,我们可以设计一个数据处理与显示模块。
智能循迹小车课程设计报告一、课程设计目标:本次智能循迹小车课程设计的目标是让学生了解智能硬件的基础知识,掌握基本电子元器件的原理及使用方法,学习控制系统的组成和运行原理,并通过实践操作设计出一款功能齐全的智能循迹小车。
二、课程设计内容及步骤:1. 调研与分析——首先要对市面上现有的智能循迹小车进行调研与分析,了解各种类型的循迹小车的特点和优缺点,为后续的设计提供参考。
2. 硬件选型——根据课程设计目标和实际需要,选择合适的主控芯片、电子元器件和传感器等硬件。
3. 原理图设计——根据硬件选型,设计出对应的原理图,并在硬件上进行布局与焊接。
4. 程序设计——先在电路板上测试硬件是否正常,随后进行程序设计,根据传感器的反馈控制小车的运动,让小车能够沿着黑线自动循迹行驶,同时加入避障功能和自动寻迹功能。
5. 调试与优化——完成程序设计后,要对小车进行全面验收测试,发现问题及时解决并优化相关程序。
三、设计思路:本次课程设计基于树莓派电路板,利用循迹模块实现小车的自动循迹和自动寻迹。
同时将超声波模块结合避障算法实现小车的自动避障。
小车的外壳采用3D打印技术制作,操作简单实用。
四、课程设计效果:通过本课程设计,学生们从理论到实践,了解了智能硬件的基础知识,掌握了基本电子元器件的原理及使用方法,学习了控制系统的组成和运行原理。
同时,实践操作过程中,学生们培养了动手能力和实际操作的技能。
通过制作一台智能循迹小车,学生们对智能硬件的认识更加深入,并获得了较高的设计满足感。
五、课程设计展望:智能循迹小车是智能硬件应用领域的一项重要发明,具有广泛的应用前景。
未来,可以将循迹小车应用于快递、物流等行业,实现自动化送货、配送。
同时可以将遥控技术与循迹技术相结合,设计出更加高效、实用的智能循迹小车,推动智能化生产和工作环境。
智能小车设计活动方案活动目标本次设计活动旨在通过智能小车设计,培养学生的逻辑思维、创新能力和动手实践能力,让学生在设计过程中深入了解机械、电子、编程等多个领域知识,并通过合作与交流提高团队协作能力。
活动时间和地点•时间:活动预计持续2周时间,每天2小时,共计10节课时。
•地点:校内实验室或者教室,确保有足够的操作空间和设备支持。
活动内容第一周1. 智能小车概述在本节课中,学生将了解智能小车的定义、功能和应用领域。
老师通过采用简明的讲解方式,让学生快速了解智能小车的背景知识。
2. 零部件介绍本节课学生将学习智能小车所需零部件的名称、功能和使用方法,如:电机、传感器、控制面板等。
并介绍如何选择合适的零部件以及选择的依据。
3. 小车底盘组装学生在这节课中会亲手进行小车底盘的组装。
老师提前准备好各种零部件和工具,引导学生进行组装操作。
在此过程中,学生能够熟悉各类零部件的使用方法和相互之间的关联。
4. 小车传感器应用学生学习传感器的作用与分类,并进行传感器的连接与测试。
通过实际操作,学生能够更好地理解传感器的原理和功能,为智能小车的后续功能拓展做好准备。
5. 小车电路连接在这节课上,学生将学习如何进行小车电路的连接。
包括电机与驱动器的连接、传感器与控制面板的连接。
通过实际操作,学生能够掌握电路连接的方法和技巧。
第二周6. 小车控制程序编写学生将学习如何使用编程语言编写小车的控制程序。
从简单的动作控制开始,逐步引导学生实现更复杂的功能,如避障、跟随等。
学生可以发挥自己的创造力进行功能的扩展。
7. 小车遥控功能在这一节课上,学生将学习如何给小车添加遥控功能。
学生将自行设计遥控器,并通过编程与小车进行通信。
学生可以通过亲自控制小车来验证他们的设计和程序是否正确。
8. 小车赛道设计学生将分组进行小车竞速设计。
每个小组设计一个赛道,包括直线、弯道等。
学生需要考虑赛道的难度和安全性,并使用传感器和控制程序来实现小车在赛道上快速而稳定地行驶。
单片机智能小车课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其在智能小车控制中的应用。
2. 学习并掌握智能小车的基本电路连接和编程方法,能够实现小车的基本运动控制。
3. 了解传感器的工作原理,学会使用传感器对智能小车进行环境感知和路径规划。
技能目标:1. 培养学生动手操作能力,能够独立完成智能小车的组装和调试。
2. 培养学生编程思维,能够运用所学知识解决实际问题,实现智能小车的功能拓展。
3. 提高学生团队协作能力,学会在项目中进行沟通与分工合作。
情感态度价值观目标:1. 培养学生对单片机及智能硬件的兴趣,激发创新意识,提高学习积极性。
2. 培养学生勇于尝试、克服困难的精神,增强自信心。
3. 培养学生关注社会热点问题,了解智能技术在现实生活中的应用,提高社会责任感。
本课程针对初中年级学生,结合单片机及智能小车相关知识,注重实践操作和创新能力培养。
在教学过程中,教师需关注学生的个体差异,因材施教,确保课程目标的达成。
课程目标分解为具体学习成果,便于后续教学设计和评估,以提高课程的实用性和针对性。
二、教学内容1. 单片机原理:介绍单片机的组成、工作原理,重点讲解内部寄存器、I/O 口、定时器等基本功能。
相关教材章节:第三章单片机原理及其应用。
2. 智能小车电路连接:讲解智能小车的基本电路组成,包括电机驱动、电源管理、传感器接口等。
相关教材章节:第四章智能小车电路设计与实践。
3. 编程基础:学习单片机编程语言(如C语言),掌握基本编程语法和逻辑控制,实现小车运动控制。
相关教材章节:第五章单片机编程基础。
4. 传感器应用:介绍常用传感器(如红外、超声波、光电等)的工作原理,学会使用传感器进行环境感知和路径规划。
相关教材章节:第六章传感器及其应用。
5. 智能小车组装与调试:指导学生进行智能小车的组装,学会使用调试工具,如示波器、逻辑分析仪等。
相关教材章节:第七章智能小车组装与调试。
6. 创新实践:鼓励学生进行功能拓展,如增加避障、循迹、远程控制等功能。
<<计算机控制技术综合训练>>任务书年季学期附录:电信学院课程设计报告要求1、设计题目;2、目录;3、本设计的基本原理;4、简要说明本设计内容、用途及特点;5、本设计达到的性能指标;6、设计方案的选择;7、写出各部分设计过程、工作原理、元器件选择;8、绘制图纸(手绘2号图纸);9、设计参考文献;10、附录;11、设计总结体会;12、设计说明书不得少于10000字。
智能小车运行图经过调试,小车完美实现了如下功能1.小车具有无线遥控功能,小车可完成前进、后退、左转、右转等动作,并且可以正确显示当前的速度及行进位移。
2.小车具有循迹及避障功能,实现了舵机转动下的超声波壁障功能,并且可以正确有序显示小车位移、速度及与前方障碍物距离。
3.与其它组的小车模型配合可以完成交替领跑任务。
4.小车所有模式切换均由遥控器控制。
流程图硬件原理图附件一:智能小车系统程序#include <AT89x51.H>#include <intrins.h>sbit AA=P3^0;sbit DD=P3^1;sbit BB=P3^2;sbit CC=P2^2;sbit LCM_RW=P2^4; //定义LCD引脚sbit LCM_RS=P2^3;#define RX P2_0#define TX P2_1#define LCM_E P2_5#define Sevro_moto_pwm P2_7 //接舵机信号端输入PWM信号调节速度#define LCM_Data P0#define Busy 0x80 //用于检测LCM状态字中的Busy标识#define Left_1_led P3_7 //P3_7接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1#define XUNJI_left_led P3_6 //P3_6接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2#define XUNJI_right_led P3_5 //P3_5接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3#define Right_2_led P3_4 //P3_4接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4#define Left_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //左边两个电机向前走#define Left_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //左边两个电机向后转#define Left_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //左边两个电机停转#define Right_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //右边两个电机向前走#define Right_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //右边两个电机向后走#define Right_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //右边两个电机停转void LCMInit(void); //LCD初始化函数void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);//LCD显示一个字符函数void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);//LCD显示一个字符串函数void Delay5Ms(void); //延时5毫秒函数void Delay400Ms(void); //延时400毫秒函数void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM); //LCD1602写数据函数void WriteCommandLCM(unsigned char WCLCM,BuysC);//LCD写命令函数unsigned char ReadStatusLCM(void);unsigned char code Range[] ="V= cm/s S= . m"; //LCD1602显示格式unsigned char code welcome[] ="=== Welcome === ";unsigned char code key[]="Press any key...";unsigned char code ASCII[13] = "0123456789.-M";unsigned char code table[]="Distance:000.0cm";unsigned char code table1[]="YAO KONG MO SHI ";unsigned char code table2[]="=XUN JI MO SHI= ";unsigned char pwm_val_left = 0;//变量定义unsigned char push_val_left =14;//舵机归中,产生约,1.5MS 信号unsigned int CH0=0; //循迹模式标志unsigned int CH1=0; //超声波模式标志unsigned int t=0; //速度基准变量unsigned int timer=0; //延时基准变量unsigned int time=0;unsigned int pwm=250;unsigned int count1=0; //计左电机码盘脉冲值unsigned char timer1=0; //扫描时间变量unsigned long S1=0;unsigned long S2=0;unsigned long S3=0;unsigned long S4=0;unsigned long S=0;unsigned long V=0; //定义其速度unsigned long SS=0;unsigned char disbuff[4]= { 0,0,0,0,};unsigned char disbuff1[4]={ 0,0,0,0,};void WriteDataLCM(unsigned char WDLCM) //写数据{ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //若晶振速度太高可以在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}void WriteCommandLCM(unsigned char WCLCM,BuysC) //写指令,BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}unsigned char ReadStatusLCM(void) //读状态{LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); //检测忙信号return(LCM_Data);}void LCMInit(void) //LCM初始化{LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0c,1); // 显示开及光标设置}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码WriteCommandLCM(X, 1); //发命令字WriteDataLCM(DData); //发数据}//按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData){unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>0x19) //若到达字串尾则退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]);//显示单个字符ListLength++;X++;}}}//5ms延时void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}//400ms延时void Delay400Ms(void){unsigned char TempCycA = 5;unsigned int TempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}/********************************************************/ void Conut(void) //超声波距离计算函数{while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为零时等待TR0=0;time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/10+10;disbuff1[0]=V%10;disbuff1[1]=V/10;DisplayListChar(0, 0, Range);DisplayOneChar(2, 0, ASCII[disbuff1[1]]);DisplayOneChar(3, 0, ASCII[disbuff1[0]]);disbuff1[0]=SS/10%10;disbuff1[1]=SS/100%10;disbuff1[2]=SS/1000;DisplayOneChar(11, 0, ASCII[disbuff1[2]]);DisplayOneChar(12, 0, ASCII[disbuff1[1]]);DisplayOneChar(13, 1, ASCII[10]);DisplayOneChar(14, 0, ASCII[disbuff1[0]]);disbuff[0]=S%10;disbuff[1]=S/10%10;disbuff[2]=S/100%10;disbuff[3]=S/1000;DisplayOneChar(9, 1, ASCII[disbuff[3]]);DisplayOneChar(10, 1, ASCII[disbuff[2]]);DisplayOneChar(11, 1, ASCII[disbuff[1]]);DisplayOneChar(12, 1, ASCII[10]);DisplayOneChar(13, 1, ASCII[disbuff[0]]);}/********************************************************/ void Conut0(void) //循迹模式显示{disbuff1[0]=V%10;disbuff1[1]=V/10;DisplayListChar(0, 0, Range);DisplayOneChar(2, 0, ASCII[disbuff1[1]]);DisplayOneChar(3, 0, ASCII[disbuff1[0]]);disbuff1[0]=SS/10%10;disbuff1[1]=SS/100%10;disbuff1[2]=SS/1000;DisplayOneChar(11, 0, ASCII[disbuff1[2]]);DisplayOneChar(12, 0, ASCII[disbuff1[1]]);DisplayOneChar(13, 0, ASCII[10]);DisplayOneChar(14, 0, ASCII[disbuff1[0]]);}/********************************************************/ void StartModule() //启动模块{TX=1; //启动一次模块_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}/********************************************************/ /*void delayms(unsigned int ms){unsigned char i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}}*/void Timer_Count(void) //超声波高电平脉冲宽度计算函数{TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算}/******************************************************************** ****///前速前进void run(void){Left_moto_go ; //左电机往前走Right_moto_go ; //右电机往前走}/******************************************************************** ****///前速后退void backrun(void){Left_moto_back ; //左电机往前走Right_moto_back ; //右电机往前走}/******************************************************************** ****///左转void leftrun(void){Left_moto_back ; //左电机往前走Right_moto_go ; //右电机往前走}/******************************************************************** ****///右转void rightrun(void){Left_moto_go ; //左电机往前走Right_moto_back ; //右电机往前走}/******************************************************************** ****///STOPvoid stoprun(void){Left_moto_Stop ; //左电机停走Right_moto_Stop ; //右电机停走}/******************************************************************** ****/void COMM( void ){V=0;push_val_left=5; //舵机向左转90度timer=0;while(timer<=4000); //延时400MS让舵机转到其位置 4000StartModule(); //启动超声波测距Conut(); //计算距离S2=S;push_val_left=23; //舵机向右转90度timer=0;while(timer<=4000); //延时400MS让舵机转到其位置StartModule(); //启动超声波测距Conut(); //计算距离S4=S;push_val_left=14; //舵机归中timer=0;while(timer<=4000); //延时400MS让舵机转到其位置StartModule(); //启动超声波测距Conut(); //计算距离S1=S;if((S2<300)||(S4<300)) //只要左右各有距离小于,30CM小车后退 {backrun(); //后退timer=0;while(timer<=1000);}if(S2>S4){rightrun(); //车的左边比车的右边距离小右转 timer=0;while(timer<=800);}else{leftrun(); //车的左边比车的右边距离大左转timer=0;while(timer<=800);}}/****************************************************/void pwm_Servomoto(void){if(pwm_val_left<=push_val_left)Sevro_moto_pwm=1;else Sevro_moto_pwm=0;if (pwm_val_left>=100)pwm_val_left=0;}/***************************************************////*TIMER1中断服务子函数产生PWM信号*/void time1()interrupt 3 using 2{TH1=(65536-100)/256; //100US定时TL1=(65536-100)%256;timer++; //定时器100US为准。
编号:Z04611034学号:0108 Array课程设计教学院计算机学院课程名称单片机课程设计题目智能小车专业计算机应用技术班级12计算机应用姓名同组人员指导教师2014 年 6 月20 日课程设计任务书2013~2014学年第二学期学生姓名:专业班级: 12计算机应用指导教师:工作部门:计算机学院一、课程设计题目单片机遥控智能小车的设计二、课程设计内容(含技术指标)1.要求学生按照设计要求用PROTEUS做出智能小车原理图。
2.在KEIL-C环境下完成程序设计,并且调试成功,将仿真功能实现。
3.按照要求完成课程设计论文并且答辩。
三、进度安排第一周前1天进行系统功能分析与设计;(2学时)PROTEUS软件的学习和设计分析;(2学时)KEIL-C软件的学习和设计;(2学时)第一周第2天用PROTEUS软件进行原理图的设计;(2学时)KEIL-C软件进行驱动程序的编写和调试;(2学时)第二周第1天进行驱动程序和烧写;(2学时)将写好的驱动程序对仿真原理图进行仿真驱动;(4学时)第二周第2天演示程序并且调试成功;(2学时)论文的撰写准备和答辩答疑等;(2学时)四、基本要求1.按照本组分工完成自己的设计内容。
2.完成仿真原理图的设计。
3.原理图与代码顺利连接。
摘要51系列单片机是各单片机中最为典型和最有代表性的一种。
由RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。
本次设计的智能遥控小车采用了AT89C52芯片,主要有单片机模块、驱动模块、电池模块、遥控模块、液晶显示屏模块组成,从而实现了一个四驱小车的前后左右转弯和液晶显示屏上能显示Intelligent car love you。
这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
应用Proteus软件实现了单片机智能小车系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
关键词:51单片机、L298N、液晶显示屏、遥控器等等。
《 嵌入式系统原理 》 课程设计说明书
题 目: 遥控智能小车 院 (系): 计算机与电子系 专业班级: 电子科学与技术0902班 学生姓名: 黄 占 威 学 号: 20091185045 指导教师: 黄 向 宇
20 11 年 12 月 30 日至20 12 年 1 月 13 日 华中科技大学武昌分校制 嵌入式系统原理 课程设计任务书
一、设计题目 遥控智能小车
二、设计主要内容 (1) 广泛查找文献资料,认真研究,反复论证,精心设计技术方案。 (2) 严格遵守各项纪律,勤奋学习,认真思考,敢于挑战困难并勇于创新。 (3) 较为深入的掌握ARM处理器的体系结构、指令系统、编程方法,初步了解ARM应用系统的软硬件开发方法及手段,较熟练地掌握ARM处理器几种重要的片内外设(定时器、PLL、I2C、RTC等)的基本原理及编程方法,初步掌握ARM处理器外围电路的扩展方法。 (4) 在现有车模的基础上,以嵌入式ARM微处理器构成小车控制核心,同时加装声光电、红外线、超声波传感器、LED显示等外围设备,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至处理器进行处理,然后由处理器根据所检测的各种数据实现对电动车的智能控制; (5) 设计的智能小车应该能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。并有相应的声光电设备发出相关的提示或警示信息。 (6) 遥控方式可自选,系统通过遥控器可以控制小车的行驶方向、速度、起停等运行状态,要求要达到一定的控制精度、距离及范围,小车行驶速度应达到3m/s以上。 (7) 分析结果,独立撰写设计总结报告陈述自己的观点,格式应严格遵守学校规范。内容尽量翔实,其中必须要有自己独立的见解和认识。
三、原始资料 硬件资源:四驱小车车模、STM32系统板、用于ARM处理器的JTAG仿真器、PC机Pentium100以上。 设计指导书:STM32系统板配套光盘 四、要求的设计成果 (1)在现有车模的基础上,以嵌入式ARM微处理器构成小车控制核心,同时加装声光电、红外线、超声波传感器、LED显示等外围设备,实现对小车的速度、位置、运行状况的实时测量,并将测量数据传送至处理器进行处理,然后由处理器根据所检测的各种数据实现对电动车的智能控制。
(2)撰写课程设计说明书,要求简洁、通顺,格式规范,设计方案正确,实现技术路线明确,论述内容完整、清楚、规范,数据、资料真实可靠,软件程序运行良好。 (3)要求有完整的电路设计原理图及软件源代码。
五、进程安排 (1)第 1 天:任务布置及相关知识讲解 (2)第2-3天:资料查阅与方案制定 (3)第4-8天:硬件设计、程序编制与调试阶段 (4)第 9 天:撰写设计报告 (5)第 10 天:答辩与考核阶段
六、主要参考资料 [1] 田泽. 嵌入式系统开发与应用实验教程. 北京航空航天工业大学出版社,2005. [2] 郭荣佐,王霖. 《嵌入式系统原理》.北京航空航天大学出版社,.2008. [3] 周根林.嵌入式系统原理与应用.南京大学出版社, 2006. [4] 谭浩强. C语言程序设计(第2版).清华大学出版社,2008 [5] 丁峰. ARM系统开发——从实践到提高. 中国电力出版社,2007. [6] 游雨云. 单片机PWM信号控制智能小车的实现方法.技术与市场, 2009,(12) [7] 袁新娜,余红英,超声波传感器在智能小车避障系统中的应用. 大众商务教育版(民办教育研究),2009,(8)
指导教师(签名):
20 年 月 日 目 录 1. 总体思想 ............................................................................................................................. 1
2. 电机驱动 ............................................................................................................................. 2
2.1 简介 .................................................................................................................................................2
2.2 具体实现 .........................................................................................................................................2
2.3 功能函数设计 ................................................................................................................................2
3. 遥控系统 ............................................................................................................................. 7
3.1 遥控器简介 ....................................................................................................................................7
3.2 接收探头与解码 ............................................................................................................................7
3.3 红外控制 .....................................................................................................................................8
4. 超声波 ............................................................................................................................ 12
4.1 简介 .............................................................................................................................................. 12
4.2 超声波测距具体实现 ................................................................................................................. 12
4.3 超声波程序设计 ......................................................................................................................... 12
5. 红外寻迹 ............................................................................................................................ 14
5.1 反射式红外传感器 ..................................................................................................................... 14
5.2 具体实现方法 ............................................................................................................................. 14
5.3 寻迹程序设计 ............................................................................................................................. 15
6. 总结 .................................................................................................................................... 17