基于火焰传感器组的简易机器人设计说明.
灭火机器人的传感器使用

灭⽕机器⼈的传感器使⽤灭⽕机器⼈传感器的使⽤⼈⼯智能也称机器智能,是⼀门研究⼈类智能机理和如何⽤计算机模拟⼈类智能活动的学科。
经过50多年的发展,⼈⼯智能已形成极⼴泛的研究领域,并且取得了许多令⼈瞩⽬的成就[1]。
智能机器⼈技术综合了计算机、控制论、机构学、信息和传感技术、⼈⼯智能、仿⽣学等多学科⽽形成的⾼新技术,集成了多学科的发展成果,代表⾼技术的发展前沿[2。
智能机器⼈的研究,⼤⼤促进了⼈⼯智能思想和技术的进步,渐渐成为⼀个备受关注的分⽀领域,各种智能机器⼈⽐赛也成为国内外⼴泛推⼴和发展的⼀种竞技项⽬智能机器⼈灭⽕⽐赛是⽬前已成为全球规模最⼤、普及程度最⾼的全⾃主智能机器⼈⼤赛之⼀。
在灭⽕机器⼈中主要使⽤了三类传感器,⽕焰传感器是⽤来探测⽕焰的;红外传感器⽤来测量⼩车到墙壁的距离,⽤来定位;灰度传感器主要是⽤来识别地⾯的⽩线现代技术中,我们可以利⽤⼀些元件设计电路,它能够感受诸如⼒、温度、光、声、化学成分等⾮电学量,并能把它们按照⼀定的规律转换为电压、电流等电学量,或转换为电路的通断。
我们把这种元件叫做传感器。
它的优点是:把⾮电学量转换为电学量以后,就可以很⽅便地进⾏测量、传输、处理和控制了。
传感器在科学技术领域、⼯农业⽣产以及⽇常⽣活中发挥着越来越重要的作⽤。
⼈类社会对传感器提出的越来越⾼的要求是传感器技术发展的强⼤动⼒。
⽽现代科学技术突飞猛进则提供了坚强的后盾。
⼆⼗⼀世纪,⼈们⼀⽅⾯通过提⾼与改善传感器的技术性能;⼀⽅⾯通过寻找新原理、新材料、新⼯艺及新功能来改善传感器性能,制造出更多的传感器.⽽线传感器作为其中的⼀部分也必将得到更⼤的发展灭⽕⽐赛需要机器⼈在尽量不碰撞墙壁的基础上尽可能快地找到蜡烛并将⽕灭掉。
在完成任务的过程中⾸先需要不碰撞墙壁,然后需要判断前⽅是否有⽕焰。
在找到⽕焰后需要判断蜡烛旁边的⽩线。
如果碰撞墙壁的话,需要机器⼈能检测出来并进⾏处理,不然就会发⽣机器⼈卡死的情况,那就不能完成任何任务。
灭火机器人课程设计报告

灭火机器人课程设计报告灭火机器人课程设计报告一、引言随着技术的发展,人工智能机器人已经逐渐融入我们的日常生活,成为解决问题的重要工具。
在这个课程设计中,我们将开发一款基于机器学习技术的灭火机器人。
通过模拟真实的火灾救援场景,机器人需要学会识别火源、规划安全路径,并采取正确的灭火策略。
这个项目将综合运用机器学习、路径规划、机械设计等多方面的知识,旨在提高学生的创新思维和实践能力。
二、机器人硬件设计1、移动平台:为了能让机器人移动到指定的位置,我们选择使用轮式移动平台。
通过配置多个传感器,机器人可以感知周围环境,确保在复杂地形中稳定移动。
2、机械臂与灭火装置:为了实现抓取和操作灭火设备的功能,我们设计了一款具有多个自由度的机械臂。
在机械臂的末端,安装了一个可以喷射灭火剂的装置。
3、传感器系统:机器人配备了火焰传感器、温度传感器和烟雾传感器,以检测火灾位置和程度。
此外,还安装了红外摄像头,用于识别和避开障碍物。
三、机器学习算法我们采用深度学习算法来训练机器人的火灾识别模型。
首先,我们从大量火灾图片中提取出特征,然后使用卷积神经网络(CNN)进行训练。
通过训练,模型能够根据摄像头捕捉的图像,准确判断是否存在火源。
四、路径规划算法机器人需要从起点到达火灾地点,期间需要避开障碍物。
为此,我们采用了基于A算法的路径规划方法。
A算法是一种启发式搜索算法,能够根据当前状态和启发式信息,寻找最短路径。
通过定义每个节点的代价,算法能够计算出从起点到目标点的最短路径。
五、控制系统机器人的行为由嵌入式控制系统控制。
该系统包括一个主控制器和多个从控制器。
主控制器负责接收用户的指令和传感器数据,从控制器负责执行主控制器的命令,控制机器人的移动和机械臂的操作。
主控制器通过无线通信与从控制器进行数据交换。
六、实验与结果为了验证机器人的性能,我们在实验室环境下进行了一系列测试。
测试中,机器人成功识别了火源,并根据路径规划算法避开了障碍物,最终到达火灾地点,成功执行了灭火任务。
家庭灭火机器人设计报告设计

名称:家庭灭火机器人设计报告学院:电子与信息工程学院目录第一章绪论 (1)1.1课题背景 (1)1.2实现功能 (1)第二章系统整体方案设计 (1)2.1系统硬件设计 (1)2.2系统软件设计 (1)第三章硬件设计 (2)3.1电源管理模块 (2)3.1.1电源模块电路原理图 (2)3.2电机驱动芯片L298N (2)3.2.1.L298N电路原理图: (3)3.3避障检测传感器HS0038 (4)3.3.1 HS0038简介: (4)3.3.3 检测原理: (4)3.3.4 HS0038与单片机连接原理图: (4)3.4地面灰度检测传感器ST188 (4)3.4.2 检测原理: (5)3.4.3 应用范围: ............................................................................................ 错误!未定义书签。
3.4.5 ST188原理图: (5)3.5火焰传感器 (5)3.5.1火焰传感器使用 (6)第四章软件设计 (6)4.1灭火机器人行进路线分析 (6)4.2软件流程图 (8)第五章调试记录 (9)5.1调试记录 (9)第六章实验心得 (9)参考文献 (10)附录1: 程序清单 (11)附录2: 灭火机器人实物图及灭火场地 (18)第一章 绪论1.1课题背景随着社会的进步,机器人技术的不断发展使得机器人的应用领域不断扩展,从以往多应用于工业领域而渐渐融入人们的生活。
灭火机器人作为消防部队中的新兴力量,加入了抢险救灾的行列。
灭火机器人是一个集信号检测、传输、处理和控制于一体的控制系统,代表了智能机器人系统的发展方向。
1.2 实现功能制造一个自主控制的机器人在一间平面结构房子模型里运动,找到一根蜡烛并尽快将它熄灭,这个工作受地面摩擦、机器人惯性、机器人电机的转数差、齿轮箱与轮子的摩擦、电压变化等多个因素影响,它模拟了现实家庭中机器人处理火警的过程,蜡烛代表家里燃起的火源,机器人必须找到并熄灭它。
火灾援救机器人系统设计与实现

火灾援救机器人系统设计与实现火灾援救机器人系统设计与实现一、引言近年来,火灾灾害频发,对于火灾的救援工作,人员的安全一直是最首要的问题。
传统的火灾救援工作主要依靠消防员的勇敢与智慧,然而会受到火势、烟雾等因素的限制,很难做到100%的安全。
随着机器人技术的发展,利用机器人进行火灾救援成为一种可行的解决方法。
本文将介绍一种火灾援救机器人系统的设计与实现。
二、系统设计火灾援救机器人系统主要由机器人、传感器、通信模块、控制算法和外部控制终端组成。
下面将对每个部分进行详细描述。
1. 机器人火灾援救机器人应具备较强的机动性与敏捷性,能够在火灾现场自主地进行搜索和救援任务。
机器人应搭载精密的传感器和执行器,能够感知环境和执行各种动作。
2. 传感器传感器对于机器人系统至关重要,能够提供环境信息,包括火势大小、烟雾浓度、温度等。
常用的传感器包括烟雾传感器、红外传感器、温度传感器等。
3. 通信模块通信模块主要用于机器人与外部控制终端的通信,实现远程监控、指令传输等功能。
常见的通信方式包括Wi-Fi、蓝牙、4G 等。
4. 控制算法控制算法是火灾援救机器人系统的核心,决定机器人如何进行搜索和救援任务。
控制算法需要具备判断火势大小、选择最优路径、避开障碍物等能力。
5. 外部控制终端外部控制终端可以是电脑、手机等设备,用于对机器人系统进行远程控制和实时监控。
外部控制终端应具备友好的用户界面和实时数据显示功能。
三、系统实现火灾援救机器人系统的实现需要多个方面的技术支持,包括机器人设计与制造、传感器选择与应用、通信模块选型、控制算法开发等。
1. 机器人设计与制造机器人的设计需要考虑到灵活性、可靠性和稳定性。
应选用轻巧的材料,并合理布置传感器和执行器。
机器人的制造需要确保机器人能够适应火灾现场的环境,同时需要保证机器人能够承受高温和烟雾等因素的影响。
2. 传感器选择与应用传感器的选择要根据实际需求,确保能够准确感知火势、烟雾和温度等信息。
履带式双控灭火移动机器人的设计与实现

通 过 以上硬 件 电路对 灭火机 器人 进行 运动控 制 。程
序 开始 后首先 进行数 据初始 化 ,然后 灭火机 器人根 据 三 种 不 同情 况 执 行 相 应 的动 作 ,若 检 测 到 障 碍 物 ,则进 入避 障子程 序 ;若 无 障碍物 ,则进 入寻 迹
子 程序 ;若找 到火源 ,则选 择控 制模 式 ,进 入喷 灭
图2 灭 火 执 行 机 构 简 图
火 剂灭火 子程序 。灭 火完成 后 ,整 个程序 结束 。
2 控 制系统设计
21 硬 件设计 .
本 系统 硬 件 部 分 由主 控 制 器 模 块 、运 动 控 制
模 块 、 电源 模块 、火焰 检 测模 块 、舵机 控 制模 块 、
直 流 电机 驱动 模 块 、无 线 射频 收发 模块 和 GS 模 M
块 ,通过 GS 技 术进 行人 机 交流 ,同时主 控 制器 M
模 块 启 动 自动 灭火 模 式 ,驱 动 机 器 人 的 电机 ,使
【 转 第 1 页】 下 9
22 软件设 计 .
根据灭 火过 程要 求和 系统 硬件 电路组 成 ,采用
【2 第 3 卷 1】 4 第9 期 21- ( ) 02 9上
时 ,根 据 火 点火 势 的大 小 控 制 灭 火 器 阀 门的 开 度 以及 喷头摆 动 的角度 ,实施 灭 火作业 。 在 远 距 离或 强 火 势 、火 场 的能 见 度 低 ,不 便 于操 控 者 对 灭 火 机 器 人 实 行 遥 控 的 情 况下 ,可 以 切 换 到 自动 灭 火 模 式 。 自动 模 式 下 灭 火 机 器 人 可
2.7设计灭火机器人 教案

第七节设计灭火机器人一、教学目标1.知识与技能(1)掌握火焰传感器的使用方法。
(2)了解机器人灭火的工作原理。
(3)掌握子程序的新建、修改、删除及保存,了解“break”模块的作用。
2.过程与方法(1)通过对机器人灭火任务的需求分析与讨论,明确灭火机器人应该具备的功能与硬件组成,并重点掌握火焰传感器的功能、特性及使用方法。
(2)通过对机器人灭火任务的分解,掌握子程序的概念,并在此基础上了解“自上而下、逐步细化”的程序设计原则。
3.情感态度与价值观(1)培养学生的动手能力、创新能力,使学生养成良好的思维习惯。
(2)培养学生的团队合作精神,让学生体会学习和探究的乐趣。
二、教材分析1.本节的作用和地位本节是在循迹机器人和走迷宫机器人基础上增加了火焰传感器应用的一节综合应用课,主要让学生掌握火焰传感器使用方法、“自上而下、逐步细化”的程序设计原则以及子程序的概念。
2.本节主要内容介绍本节主要任务是设计一个能在模拟火灾现场中灭火的机器人。
首先,通过对任务的分析,明确灭火机器人应该具备的功能及硬件组成,并重点介绍新硬件—火焰传感器的功能特性及使用方法;随后,对灭火过程进行分解,并引入子程序的概念,介绍子程序的新建、修改、删除及保存方法,在此基础上进行程序编写,尝试采用“自上而下、逐步细化”的设计原则;最终,在虚拟环境下完成灭火程序的仿真运行。
3.重点和难点分析教学重点:(1)火焰传感器的使用方法。
(2)灭火的工作原理及子程序的编写。
教学难点:(1)“自上而下、逐步细化”的编程原则。
(2)灭火程序的编写及优化。
三、教学建议1.学情分析在本节课之前,学生已经掌握了顺序、选择、循环结构,本节引入了“主程序”和“子程序”概念,虽然程序比较复杂,但除了“break”模块,没有新的语法;硬件方面,涉及到红外避障传感器、轨迹识别传感器、火焰识别传感器和风扇等,其中只有火焰传感器是新学硬件。
新知识点并不多,主要是对以前所学知识加以综合运用。
智能灭火机器人自动避障和火焰搜索的设计方案
智能灭火机器人自动避障和火焰搜索的设计方案摘要智能灭火机器人在实际中的工作需要系统的合作,本文主要对智能灭火机器人的火焰搜索和自动避障进行了分析,分析的角度从软件和硬件两个方面入手。
本文对智能灭火机器人两个系统的分析采用了实例分析的方法进行,通过实验表明火焰搜索系统以及自动避障系统都能够很好的实现系统功能。
【关键词】智能灭火机器人自动避障火焰搜索设计方案微电子与人工智能技术的发展让我们的生活发生了很大的改变,尤其是智能机器人的出现更是大大提高了生产力,代替了人类进行很多人类难以完成的工作。
灭火智能机器人一直是人们讨论的话题,如果灭火机器人能够顺利完成,那么灭火作业就可以用机器人代替消防队员进行作业。
本文的研究主要从软件和硬件两个方面入手并进行了相关的实验进行验证,通过验证证明了灭火智能机器人问世的可能性。
1 灭火智能机器人系统设计分析智能灭火机器人运用四驱小车主体结构,通过转动四个轮子控制速度,进而对小车前进速度与后退速度进行控制。
将红外避障传感器安装在车体中间,一旦距离墙壁较近,就能及时转弯,避免撞墙,充分发挥灭火机器人的防撞墙作用。
同时,将舵机控制的机械手臂、超声波模块安装在车身上,一旦有障碍物,可使用机械手臂将障碍物清除,在小车前方装有火焰传感器,能实现多角度、全方面的寻找火焰信号,并将信号传送给控制模块,由控制模块对机器人的动作进行控制,在达到火源边缘后,传感器把信号传输给控制模块,并将灭火程序启动,小车使用一系列灭火方式,在最短的时间内完成灭火任务。
同时还要在机器人身上安装一个全方位的摄像头,这样就可以将现场的实际情况马上进行传输,通过使用NRF2401无线模块让智能灭火机器人实现远程控制,让远离火灾现场的技术人员可以通过远程控制对智能灭火机器人进行控制。
2 智能灭火机器人的系统硬件介绍2.1 控制模块功能智能灭火机器人系统硬件中的控制模块主要由电源模块、风扇模块、直流电机驱动模块、传感器模块、STM32F411RE等具体的模块构成,具体框架如图1。
6-11 第11课 灭火机器人
课题第11课灭火机器人主备人复备人课时 1教学目标1、了解机器人灭火程序的编写流程。
2、理解开源机器人中火焰传感器的工作原理。
教学重难点重点:学会设置火焰传感器的参数难点:理解机器人灭火活动的流程教学准备多媒体网络教室、传动设备、实体机器人教学过程个人复备一、情境导入播放视频,由消防员的伤亡展开讨论,引出本课课题——《机器人灭火》。
功能一:侦测火源。
功能二:熄灭火焰。
二、新授:灭火机器人工作原理基于灭火机器人的两项功能,教师指出,侦测火源的传感器为火焰传感器,可以灭火的机械装置为风扇,并给出相应的思考问题,供学生对认知过程进行反思。
问题一:火焰传感器是如何侦测火源的?(使用特制的红外线接收管,接收火焰发出的特殊波长的红外线)问题二:风扇为何能够灭火?(将空气高速吹向火焰,使燃烧的物体表面温度迅速降至燃点以下,即强风灭火)三、任务一:搭建灭火机器人在了解了灭火机器人中火焰传感器和风扇的作用之后,尝试将它们搭建到机器人上。
(选择合适位置进行搭建,注意灭火机器人结构的合理性)搭载火焰传感器:搭载风扇:学生分小组合作完成。
四、任务二:编写灭火机器人程序在搭建好灭火机器人之后,出示一组语句的文字表述——“如果火焰传感器侦测到火焰,那么机器人停止、风扇启动,否则风扇停止、机器人前进”,以此让学生了解火焰传感器语句的实际含义。
学生明晰了灭火机器人程序的逻辑结构之后,教师分步演示程序的编写过程,在演示过程中再次帮助学生树立程序逻辑。
基于“如果那么否则”的条件语句,搭建灭火机器人程序。
1.新建程序并设置火焰传感器的接口。
2.设置检测火源的程序。
3.设置风扇的转动和机器人行走程序。
学生分小组,合作完成灭火机器人程序。
五、评价总结学生完成灭火机器人程序并下载到机器人主板后,教师引导学生进行实验,强调实验规则:1.规范操作:实验时有序排队,完成后尽快取走小车,不要用手直接触碰蜡烛,以免烫伤!2.距离适当:火焰传感器与火焰的距离要适当,太远侦测不到火焰,太近则易被火焰损坏。
基于多传感器的智能自主灭火机器人的设计
基于多传感器的智能自主灭火机器人的设计DOI :10.19557/ki.1001-9944.2020.12.008贾佳(西安航空职业技术学院人工智能学院,西安710089)摘要:当前应用于消防的方法效果较差,而采用机器人替代人类来处理火灾为现代流行趋势。
设计开发了一种新型自主消防机器人,通过使用微控制器实现的自动过程来缓解紧急灭火的问题。
该机器人还可以由用户通过它的蓝牙控制功能来控制,在需要的时候也可以自己运行;它会自行探测火源并喷水灭火,直至火灭为止。
该机器人设计简单,廉价,便于携带,有很好的商业用途。
关键词:消防机器人;微控制器;火焰传感器;超声波传感器;蓝牙模块中图分类号:TP242.3;TP212.9文献标志码:B文章编号:1001⁃9944(2020)12⁃0035⁃05Design of Intelligent Autonomous Fire Fighting Robot Based on Multi ⁃sensorJIA Jia(School of Artificial Intelligence ,Xi ’an Aeronautical Polytechnic Institute ,Xi ’an 710089,China )Abstract :At present ,the methods used in fire fighting have poor effect ,but it is a popular trend to use robots to deal with fire instead of human beings.A new type of autonomous fire fighting robot was designed and developed to alleviate the problem of emergency fire fighting through the au tomatic process realized by using a microcontroller.The robot can also be controlled by the user through its Bluetooth control function ,and can run by itself when need ⁃ed.It can detect the fire source by itself and spray water to extinguish the fire until the fire is extinguished.The robot is simple ,inexpensive ,portable and has good commercial applications.Key words :fire fighting robot ;microcontroller ;flame sensors ;ultrasonic sensors ;bluetooth module收稿日期:2020-09-07;修订日期:2020-10-12基金项目:陕西省中华职业教育社项目(ZJS202016);西安航空职业技术学院校级项目(20XHJG ⁃007)作者简介:贾佳(1980—),女,硕士,副教授,研究方向为电子电路、自动化仪器等。
感应式火炬接力机器人设计与制作
物 。把 不干胶铝 箔粘 贴在赛道上 作为轨 L o t l L o t O 此 时 , 机 器 人 工 3u= 、 4u= 。 道 ,就 可 以通 过 电感 线 圈 与 铝 箔 的 位 置 作 在 前 进 状 态 。 图5 b - ,机 器 人 出现 右 1 感应式火炬接力机器人结构 . 机 器 人 包 括 循 迹 传 感 器 、 传 感 器 电 了 解 机 器 人 的 运 行 状 态 并 进 行 方 向 控 偏 ,传 感 器 L 向右 脱 离 铝 箔 线 ,4 3 个 传 感 器 对 应 输 出状 态 为 :L O t 0 1H = ,
析 说 明。
【 关键词 】感应 式机器人 ;传 感器 ;循迹 ;铝 箔;火炬接 力
感 应 式 机 器 人 是 采 用 感 应 循 迹 的方 线 圈 。传 感 器 电路 是 一 个 电感 三 点 式 振 法 制作 的一种 循迹机器人 ,机器人 的轨 荡 电路 ,这 实 际 上是 一 个 金 属探 测 器 道被 隐藏起来 ,循迹方式 与传统 的光 电 电路 , 见 图 2 a 一 ,工 作 原 理 是 , 电感 线 与 1 2 3 T 等构 成 循 迹 机 器 人 完 全 不 同 , 由 于 这 种 循 迹 方 圈L 电路 中c 、C 、C 、V 1 个 电 感 三 点 式 振 荡 电 路 , 正 常 工 作 式 不 受 光 线 的 干 扰 , 因而 大 大 扩 展 了 这
一
接 口,P . 、P . 为火炬交接时 ,碰撞 32 33 开关连接 口,在 电路板 上焊装两个按钮 开 关 , 可 以 对 碰 撞 效 果 进 行 检 验 、 调
种 循 迹 机 器 人 活 动 空 间 ,特 别 方 便 在 室
外进行这样 的竞赛活动 。竞赛 时,三个 机 器人组成 一个竞赛 队,分别放置在 赛 道 的不 同位置 ,在裁判一 声哨响之后 ,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
温州中学自主足球机器人系统 1 基于火焰传感器组的简易机器人设计说明
一、文档概要 1. 本文档是对温州中学自主足球机器人系统攻防机器人硬件架构简易原型的说明。 2. 该原型基于火焰传感器组的原型构建。 3. 该原型可独立工作、可外接传感器、可代替机器人厂商提供的控制板。 4. 该原型具备可扩展性,通过软件及外围硬件的扩充,可适应更多功能的需要。 5. 本文档最后修订于2010年3月25日。 6. 基于火焰传感器组的简易机器人可代替机器人厂商提供的硬件。 二、设计说明 1. 本原型通过光敏接收管,接收来自各个方向的热光源光强度,来定位发光球体。 2. 本原型通过PWM输出控制电机运转。 3. 本原型通过用户编写应用程序,实现机器人的智能动作。 4. 本原型由单片机、模拟复用器、光敏接收管以及周边器件组成。 a) 单片机:Atmel公司的ATmega32单片机,外部8MHz晶振。 b) 模拟复用器:8选1开关,STMicroelectronics(意法半导体)公司的HCF4051芯片或其余兼容的通用芯片。 c) 光敏接收管:工作波长包含700-840nm的光敏接收管。 d) 接口:SPI接口、TWI接口、JTAG接口。 5. 火焰传感器组连接说明 a) 采用控制板与传感器分离的设计。每个传感器上安装一个模拟开关以及8个红外接收管。 b) 传感器板的组成:8选1模拟开关、8个红外接收管、滤波电容、电阻、接口插针。电容、电阻均用0805封装的贴片元件。 c) 传感器板的接口:引出5/6线接口。5线接口为:电源、地以及三条地址选择线。6线接口比5线接口多出个输出口。传感器应用时,可以两两间通过5针接口相连接。每个传感器通过1线与控制板相连接。 d) 控制板的组成:单片机、晶振电路、复位电路、ADC稳定电路、I2C接口上拉电阻。电容、电阻均使用贴片元件。 6. 周边器件连接说明 a) 周边器件还包括:供电电源板、电机驱动器、电机、电池等。 b) 周边器件通过火焰传感器组控制板预留的接口连接:预留的SPI接口用于连接驱动板,预留的TWI接口配置为主模式来连接其余TWI器件。预留的扩展9线通用IO接口用于连接以调试为目的的无线遥控以及超声波传感器等需要数字IO口的器件。 三、设计文档 1. 参考的电路连接方法。 2. 参考的驱动程序代码。 四、测试说明 1. 使用JTAG仿真器检查控制板是否工作正常、是否能正确返回模数转换器的结果。 2. 使用示波器观察PWM输出波形是否正常。 3. 使用串口调试工具观察运行时返回值。 温州中学自主足球机器人系统 2 五、复审结论 1. 经测试,火焰传感器组各功能正常。 2. 经测试,电机驱动功能正常。 3. 经测试,通用IO口工作正常,TWI接口工作正常。可用于以后的扩展。 4. 其余结论见火焰传感器组设计说明。 六、使用说明 1. 接线方法 a) 以不干胶标签的2为上方、4为下方观察控制板。 b) 左上角标注着SPI字样的4针接口用于连接电机驱动板。根据我们选择的型号,SPI处从上往下数,分别为ALPWM、ARPWM、BLPWM、BRPWM。 c) 左侧DC处为稳压后的电源入口,上正下负。 d) 左下角标注着SPI字样的9针接口为通用IO口。第一针用于以调试为目的的无线遥控。连接至无线遥控模块的接收有效脚。其余可作以后的扩展需要。 e) 左上角标注着FBUS字样的5针接口用于连接火焰传感器组传感器板。从右到左分别为V/G/A/B/C。 f) 右上角标注着ADCIN1字样的8针接口为模拟输入口。前4针接火焰传感器组传感器板的信号线。按1、2、3、4的顺序接4个方向的4片火焰传感器组传感器板。 g) VCC、GND接电源即可。 2. 其余请参考火焰传感器组设计说明的使用说明。 3. 驱动程序说明: a) 考虑到ATmega32芯片没有足够的定时器资源来输出PWM波形,采用中断匹配模拟PWM的方法产生波形。8位定时器0用于A组(左侧)、8位定时器2用于B组(右侧),匹配时置高电平、溢出时清零。 b) 运行initDriver()初始化驱动器。 c) 运行initADC()初始化模数转换器和复眼总线。 d) 运行initRF()初始化用于调试的无线遥控。 e) motorL、motorR为电机驱动调速函数。motorL(FORWARD, 255)表示将左侧电机向前
全速运转、motorL(REVERSE, 100)向后以100/255的有效时间运转。若速度为0即为刹车。 f) testRF用于检测调试的无线遥控是否被按下。非0值表示被按下。 g) setAddr表示选择火焰传感器组传感器板的某个端口。 h) adcChar返回模数转换器的值,范围0~255。 i) adcInt返回模数转换器的值,范围0~1023。 七、参考驱动程序代码
头文件 #pragma once #include #include #include #include
#define FORWARD 0 #define REVERSE 1 #define MAXSPD 0xFA 温州中学自主足球机器人系统 3 void motorL(uint8_t drct, uint8_t spd); void motorR(uint8_t drct, uint8_t spd); void initDriver();
uint8 testRF(); void initRF();
void setAddr(uint8_t addr); uint8_t adcChar(uint8_t channel); int adcInt(uint8_t channel); void initADC();
程序文件 #include "driver.h"
uint8_t pwmOutA, pwmOutB; ISR(TIMER1_COMPA_vect) { PORTB |= pwmOutA; }
ISR(TIMER1_COMPB_vect) { PORTB |= pwmOutB; }
ISR(TIMER1_OVF_vect) { if (OCR1A == 0x0000) { PORTB |= pwmOutA; } else { PORTB &= ~pwmOutA; } if (OCR1B == 0x0000) { PORTB |= pwmOutB; } else { PORTB &= ~pwmOutB; } }
void motorL(uint8_t drct, uint16_t spd) { if (spd > MAXSPD) spd = MAXSPD; OCR1A = spd; if (drct == FORWARD) { pwmOutA = 1 << 5; PORTB |= 1 << 4; } else { pwmOutA = 1 << 4; PORTB |= 1 << 5; } }
void motorR(uint8_t drct, uint16_t spd) { if (spd > MAXSPD) spd = MAXSPD; 温州中学自主足球机器人系统 4 OCR1B = spd; if (drct == FORWARD) { pwmOutB = 1 << 7; PORTB |= 1 << 6; } else { pwmOutB = 1 << 6; PORTB |= 1 << 7; } }
void initDriver() { PORTB |= 0xF0; DDRB |= 0xF0; TCCR1A = 0x00; TCCR1B = 0x01; TIMSK = 0x1C; motorL(FORWARD, 0); motorR(FORWARD, 0); sei(); }
uint8_t testRF() { return PINB & (1 << 3); }
void initRF() { DDRB &= ~(1 << 3); PORTB &= ~(1 << 3); //internal pullup disabled }
const uint8_t seq[8] = {5,7,6,4,2,1,0,3}; void setAddr(uint8_t addr) // addr in [1, 8] { addr -= 1; PORTB |= seq[addr]; _delay_us(20); }
uint8_t adcChar(uint8_t channel) { uint8_t rtn; ADMUX = 0x40 | (1 << ADLAR) | (channel & 0x07); ADCSRA |= 1 << ADSC; while ((1 << ADSC) & ADCSRA); rtn = ADCH; return rtn; }
int adcInt(uint8_t channel) { int rtn = 0; ADMUX = 0x40 | (channel & 0x07); ADCSRA |= 1 << ADSC; while ((1 << ADSC) & ADCSRA);