第一章欢迎进入个人机器人时代.doc_第1页
第一章欢迎进入个人机器人时代.doc_第2页
第一章欢迎进入个人机器人时代.doc_第3页
第一章欢迎进入个人机器人时代.doc_第4页
第一章欢迎进入个人机器人时代.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录目录 第一章第一章欢迎进入个人机器人时代欢迎进入个人机器人时代 1 1 1 个人机器人时代 1 1 2 在学校应用能力风暴个人机器人 1 第二章第二章让你的个人机器人动起来让你的个人机器人动起来 3 2 1 打开包装 3 2 2 了解能力风暴个人机器人 3 2 3 检测能力风暴 4 2 4 连接能力风暴 6 2 5 使用 JC 编程环境 7 2 6 让能力风暴跳舞 9 第三章第三章感觉 大脑与驱动器感觉 大脑与驱动器 10 3 1 个人机器人的三大要素 10 3 2 能力风暴的传感器及其处理电路 11 3 2 1 碰撞传感器 11 3 2 2 红外传感器 13 3 2 3 光敏传感器 16 3 2 4 麦克风 19 3 2 5 光电编码器 20 3 2 6 其他传感器 23 3 3 能力风暴的计算机硬件 25 3 3 1 微控制器 25 3 3 2 外部存储器 28 3 3 3 电源与复位电路 30 3 3 4 通信 30 3 4 驱动器 31 3 4 1 电机驱动电路 31 3 4 2 喇叭 33 3 5 硬件扩展总线 ASBUS 33 3 5 1 扩展2个光敏传感器 34 3 5 2 扩展2个红外接收传感器 34 3 5 3 扩展8个数字输出口 35 第四章第四章编程编程 赋予能力风暴智慧赋予能力风暴智慧 36 4 1 第一个 JC 程序 HELLO ROBOT 36 4 2 控制你的能力风暴 36 4 2 1 校正能力风暴的电机 36 4 2 2 走出规则轨迹 37 4 3 让能力风暴获得感知周围环境的能力 38 4 3 1 能力风暴的基本程序结构 38 4 3 2 一个 台球 程序 38 4 3 3 红外和光敏的使用 40 4 3 4 编码器的使用 41 4 4 能力风暴的高级编程 41 4 4 1 第一个多进程程序 41 4 4 2 添加一个新进程 42 4 4 3 JC进程同步的基本方法 45 第五章第五章尝试迷人的机器人项目 参加精彩的机器人比赛尝试迷人的机器人项目 参加精彩的机器人比赛 46 5 1 机器人的行为控制 46 5 2 迷人的机器人项目 48 5 3 机器人比赛 49 附录附录 1 能力风暴库函数 能力风暴库函数 51 附录附录 2 2 下载操作系统 下载操作系统 53 附录附录 3 能力风暴控制板能力风暴控制板 PCB 布局图布局图 54 附录附录 4 4 能力风暴个人机器人性能指标 能力风暴个人机器人性能指标 54 附录附录 5 能力风暴常见问题列表 能力风暴常见问题列表 55 第一章第一章 欢迎进入个人机器人时代欢迎进入个人机器人时代 1 1 个人机器人时代个人机器人时代 感谢你购买能力风暴个人机器人 你是全世界拥有个人机器人 P Personal R Robot 的先驱 如同在 1975 年拥有一台个人电脑 P Personal C Computer 能力风暴是面向教育的个人机器人 作为革命性的能力培养开放平台 能 力风暴个人机器人能用于培养动手能力 创造力 综合能力 合作能力和进取 精神 借助于交互 C 语言和开放式接口 能力风暴个人机器人还可以作为通用 的综合实验平台 二十一世纪 个人机器人时代即将来临 PC 技术和 Internet 应用的飞速 发展 为个人机器人的存在和发展提供了广阔的空间 机器人的核心 智能 技术是技术领域的最后一个学术前沿 许多世界级的科学家在此探索研究 能力风暴个人机器人将引导你进入这个激动人心的前沿领域 通过亲手装 配 实验 编程和实施机器人项目 参加机器人比赛 你将获得发自内心的快 乐 面对新世纪的挑战 你会忽然觉得 很自信很从容 掌握了能力风暴个人 机器人各方面的原理 你甚至可以设计出自己的独特的机器人伙伴 欢迎你进入个人机器人时代 愿能力风暴个人机器人成为你心爱的伙伴 1 2 在学校应用能力风暴个人机器人在学校应用能力风暴个人机器人 能力风暴个人机器人是最优秀的科技类探索性课程及课外活动的教具 它 融合了光学 机械 电子 计算机等学科的高科技知识 集辅助教学和娱乐于 一身 它具有三方面的特点 1 它提供强大的交互式 C 语言 该语言具有出色的交互式功能 便于学 生学习 软件高度开放 学生可以方便地在机器人上做发明创新 2 采用模块化结构 学生可以把它的各个部分分解组合 培养动手能力 各个模块采用交互式语言来驱动 可以从中了解掌握光学 机械 电子 计算 机等各个学科的知识 3 能力风暴运用开放式接口 达到了硬件的高度开放 你可以从各个方面 扩展增强它的功能 使它能够完成许多极具挑战性的任务 基于以上三点可知 能力风暴的软件硬件开放性 使学生的动手能力在娱 乐中得以提高 又由于她是多种高科技的融合 学生的综合能力也不容质疑地 得以提高 用能力风暴可以完成电工 电子 单片机 机械设计 传感器 人 工智能 C 语言 数字信号处理 机器人学 机电控制等众多课程的几百个实 验 模糊控制 行为控制 人工智能 机器人学 多生命体 导盲机器人 智 能家用电器 神经网络控制等学科领域 在能力风暴的实验中可以得到更好理 解和掌握 这些对于富于活力的年轻人而言 正是培养创造力 合作能力 进 取精神的绝好机会 技术支持技术支持 有问题请访问 http 其中有常见问题解答 需要进 一步的技术支持 请发 Email abilitystorms 技术支持电话 021 64953936 812 有任何好的建议和设想也请随时告诉我们 我们的网站上 有许多机器人方面的资源 请经常访问 http 第二章第二章 让你的个人机器人动起来让你的个人机器人动起来 本章描述了如何打开和连接能力风暴 和有关能力风暴的基本操作 开机和关机 与电脑连接 下载应用程序 运行能力风暴 能力风暴的工作状态 2 1 打开包装打开包装 首先打开包装 核对装箱清单上的物品 下面是能力风暴大学版 ASU 标准套件 其他版本可能与此略有不同 1 能力风暴 整机一台 包括 6V 1200mAh 镍氢电池一个 2 操作手册一本 3 JC1 0 手册一本 4 JC1 0 光盘一盒 5 充电器一只 6 串口线一根 7 扩展件一包 5 套传感器套件和一片 ASDIY 实验板卡 8 合格证 保修卡 应保存所有的包装材料 以备将来装运能力风暴 2 2 了解能力风暴个人机器人了解能力风暴个人机器人 拿出能力风暴个人机器人 不要急于开机 先仔细观察一下它的结构 下面是介绍能力风暴个人机器人的各个部件 前 后 图 2 1 能力风暴侧视图 后 前 图 2 2 能力风暴俯视图 你已经看到能力风暴个人机器人是 麻雀虽小 五脏具全 作为自主机器人所 应有的 它都具备 2 3 检测能力风暴检测能力风暴 新的能力风暴在出厂时都已经充过电 并且下载了自检程序 在你没有把 能力风暴和电脑连起来之前 你可以运行自检程序 看看能力风暴各部分的功 能 在能力风暴个人机器人后部 有电源开关 充电插孔 复位键和串行通讯 口 见图 2 3 其中开关是一个三态开关 停 关闭电源 运行 是运行能 力风暴和下载用户程序用 下载 是在系统被破坏后恢复操作系统用 图 2 3 能力风暴后视图 首先把电源开关拔向运行位 会听到 嘟 一声 液晶显示器上显示出 JC V1 0 Grandar Abilitystorms 和 AS U Personal Robot self test 同时右下角有太极图在跳 表示能力风暴个人机器人的系统运行正常 按 Reset 键运行自检程序 内容如下 一项内容自检完成后 再按 Reset 键 将 进行下一项检测内容 1 LCD 液晶显示器显示是否正常 Yes No 2 喇叭是否正常 声音是否清晰响亮 Yes No 放的是一首名曲 什么名字 3 光敏传感器是否正常 Yes No 挡一下左边光敏传感器 左边光敏传感器的值会上升 越暗 值越大 photo L210 R172 表示右边的光线强 4 红外传感器是否正常 Yes No 把手放在红外传感器左前方 LCD 上显示 IR Test 表示红外传感器左前方有障碍 5 麦克风是否正常 Yes No 对着 LCD 液晶显示器左上方的麦克风圆孔的地方说话 看 LCD 上的 是否 增加 6 碰撞传感器是否正常 Yes No 机器人下部的圆环是碰撞环 按碰撞环左前方 LCD 上显示 Front Left 按右前方 LCD 显示 Front Right 按左后方 显示 Back Left 按右后方 显示 Back Right 按正前方 前左前右两个碰撞开关将同时闭合 LCD 上 显示 Front 7 光电编码器是否正常 Yes No 转动右轮 注意轮胎上的标记 使右轮正好转一圈 LCD 上右编码器的计数 值应大致增加 33 能力风暴的光电编码器的分辨率为 33 脉冲 转 即 10 9 度 8 检测直流电机是否正常 Yes No LCD 上显示的信息为 光电编码器累计计数值和瞬时电机转速 Motor 45L100 Test 40R100 电机相对转速 可用此检测左右电机的转速差异 通过以上 8 项检测 你可以了解能力风暴各部分的状态 如果你拿到的能力风暴已经被使用过 可能内存里已经没有了自检程序 请 参见后面使用 JC 一节 下载自检程序 libs ASU selftest lis 2 4 连接能力风暴连接能力风暴 除了运行能力风暴的情况外 很多情况下能力风暴个人机器人是要和计算 机连接以后使用的 连接能力风暴是一项基本操作 下面是连接的标准步骤 1 取出串口连接线 一头接能力风暴的通讯插口 另一头接 PC 机箱后的 9 针串口 如果你的电脑后面没有空余 9 针串口 请咨询电脑维护人员 可 以把暂时不用的设备移开 腾出一个串口 图 2 4 能力风暴 PC 机 2 打开能力风暴 开关拨到 运行 位 如果能力风暴开机就运动 注意 不要让它从高处摔下来 请把它托在手上 3 开机后液晶屏会显示右边的文字 如果下 载了其他程序 显示的文字可能会不一样 但 在右下侧都会有微微跳动的小太极图案 表示 系统正常 如果液晶屏是空白的 检查电池是 否有电 接触是否良好 请充电或更换电池 如果没有小太极图或者小太极图不跳动 说明 操作系统没有正常运行 按复位键重启系统 如果系统还不能正常运行 参见附录问题解答 和下载操作系统方法 4 运行 JC 如果还没有安装 请现在用光盘安装 如 JC 窗口里出现 连接并刷新能力风暴 表明能力风暴已经连接成功 OK 你可以在交互 式命令行输入语句或下载用户程序 否则转到下一步 5 如果出现下图 能力风暴没有响应 对话框 选择 是 图 2 5 能力风暴液晶正常显示 图 2 6 JC 对话框一 6 出现下面的对话窗口 请检查串口设置 通常是在电脑 COM1 和 COM2 中选择一个 按 检测 钮测试能力风暴连接状态 如果还无法连接 参 见附录问题解答 图 2 7 JC 对话框二 要使能力风暴与电脑正常连接 两者必须都运行正常 而且串口连接线也要接 触良好 2 5 使用使用 JC 编程环境编程环境 交互式 C 语言 简称 JC 是用于能力风暴个人机器人的专用开发系统 JC1 0 运行在 Windows 95 98 和 Windows NT 4 0 以上版本的操作系统上 如 果还没有安装 JC 请现在安装 放入能力风暴配套光盘 Windows 95 将自动安 装 JC1 0 当能力风暴和电脑连接成功后 JC已经正常运行了 JC1 0JC1 0主界面主界面见下图 图2 8 JC1 0窗口 交互式窗口 菜单 工具栏 状态栏 交互式命令行输入区 新建程序窗口 交互式命令行 交互式命令行 C语言表达式 函数调用和JC命令都可以在交互式命令行输 入 例 要计算算术表达式1 2的值 你可以键入 1 2 表达式键入后 JC先在电脑上编译它 然后通过串口传给能力风暴操作系统 能力风暴计算后返回结果 3 显示在电脑上的JC交互式窗口里 也可以在命令行输入函数直接驱动能力风暴机器人 例 键入 beep 能力风暴将发出 嘟 的一声 编辑程序 编辑程序 如果要编写自己的 JC 程序 请选菜单上 文件 新建 然后在新建的窗口里编写程序 可以选菜单上 文件 打开 来查看以前保存的 JC 程序 在 JC1 0 的 samples 目录下有一些演示程序 下载程序下载程序 写好的应用程序必须下载到能力风暴个人机器人上运行 可以 选择菜单上 下载 下载当前程序 来下载当前窗口里的应用程序 JC 会在交互式窗口里显示你的应用程序的编译下载的过程 如果编译下载都正确 JC 会在最后一行显示 完成 表明下载成功 下载过程中 你可以看到控制 板前面的黄色 LED 在闪动 表示数据在传送 调试程序 调试程序 你编写的 JC 程序有可能会有语法错误 那么 JC 编译就不会通 过 也不能下载 JC 会在交互式窗口里显示程序的语法错误 提示错误可能在 程序的第几行 用括号注明 并提示可能的错误原因 请回到原程序窗口 可以在菜单 窗口 里找到你的程序窗口 修改有关错误 再次编译下载 直到没有编译错误下载成功为止 工具栏有菜单命令的按钮 可以加快调试过 程 下图中 跳转 按钮能直接跳到指定错误行 下载当前程序 按钮等同 菜单命令 图 2 9 JC 工具栏 重新连接 重新连接 如果能力风暴机器人前面已经下载过一个应用程序 现在要下 载另外一个程序 两个不同程序可能会发生冲突 第二个程序不允许下载 解 决这个问题的最简便的方法是先退出 JC 编程环境 然后再运行 JC 使 JC 重新 连接能力风暴 由于 JC 每次连接能力风暴都会自动刷新能力风暴个人机器人的 内存 清掉原来的应用程序 这时你就可以下载第二个程序了 注意 大部分 JC 的功能都要在正常连接能力风暴后才能使用 JC 的详细 操作方法请参见 JC 手册或直接查询 JC 的帮助 2 6 让能力风暴跳舞让能力风暴跳舞 JC1 0 提供了一些有趣的能力风暴例程 它们都在 samples 目录下 下 面我们就让能力风暴跳一个三步舞 连接好能力风暴 用菜单 文件 打开 打开 JC10 samples dance c 文件 读一 下 dance c 主要是跳三步舞的动作和声音序列 按 下载 下载当前程序 JC 首先编译所有文件 然后下载程序至控 制板 把能力风暴个人机器人放在地上 按一下 复位 键 他就开始跳起优雅 的华尔兹 你会发现 现在你的能力风暴不会避障 这是因为他需要你改进他的程序 不断增强他的能力 做到一边跳舞 一边避障 运行能力风暴 运行能力风暴 用户程序下载后 按下能力风暴的 复位 键就能立即运 行 也可以先关机 拔掉串口线 带到其他场地 开机就能运行原来下载的程 序 能力风暴的工作状态 能力风暴的工作状态 取决于电源开关的位置 电源开关用法说明能力风暴系统状态用户程序状态 停 关闭控制板电源 可 以充电 停止运行 操作系 统不丢失 停止运行 持久变量 值维持在关机前的状 态 用户程序不丢失 运行 运行用户程序 连接 时交互下载用户程序 开机后 开始计时 毫秒 连接时 检测串口 执行用户输入的交 互式命令 接受用 户下载的程序 全局变量初始化 运 行 main 注意 注意 JCJC 和能力风暴第一和能力风暴第一 次连接时 会清除原次连接时 会清除原 来的用户程序 恢复来的用户程序 恢复 库函数 库函数 下载 系统被破坏后恢复操 作系统 原操作系统被清除 重新更新操作系统 清除用户程序 恢复 库函数 第三章第三章 感觉 大脑与驱动器感觉 大脑与驱动器 3 1 个人机器人的三大要素个人机器人的三大要素 人对周围环境的反应过程主要是感觉 大脑思考 作出反映 机器人的信 息处理流程也是如此 能力风暴个人机器人的配有 5 种十几个传感器 另外还可以根据需要扩展 其他传感器 对环境的感知能力很强 感知环境的能力是产生智能行为的前提 因此能力风暴能产生许多智能性行为 能力风暴通过微控制器 microcontroller 来思维 我们采用的是 8 位 单片机中功能最强 集成功能最全的机种之一 它的可靠性很高 有程序自下 载功能 能力风暴连上串口线就可自主下载程序 计算机硬件决定了机器的极限潜能 去开发这种潜能是软件的工作 我们 为用户提供了交互式 C 语言 它使开发能力风暴的高层行为充满了乐趣 有的 低层的驱动软件与硬件相关太紧密或实时要求很高 需要用汇编语言来处理 能力风暴个人机器人的执行器有 二只高性能直流电机 一只喇叭 一只 2 16 字符的液晶显示器 4 2 2 2 1 2 LCD 1 BUS ASBUS PC 图 3 1 能力风暴个人机器人的大脑结构 3 2 能力风暴的传感器及其处理电路能力风暴的传感器及其处理电路 3 2 1 碰撞传感器碰撞传感器 碰撞传感器是使能力风暴个人机器人有感知碰撞环上的碰撞信息能力的传感 器 在能力风暴个人机器人的左前 右前 左后 右后设置有四个碰撞开关 常开 它们与碰撞环共同构成了碰撞传感器 见图 3 2 碰撞环与底盘柔性 连接 在受力后与底盘产生相对位移 触发固连在底盘上相应的碰撞开关 使 之闭合 我们把来自四周的碰撞分为八个方向 见图 3 3 图 3 2 碰撞开关及碰撞环 图 3 3 碰撞传感器方位 应用 在 JC 中 碰撞传感器的库函数是 bumper 在程序运行过程中此库函数此库函数 仅在被调用到时执行一次 即采集数据一次 仅在被调用到时执行一次 即采集数据一次 在 JC 对话窗口中输入如下程序块 while 1 printf bump b n bumper sleep 0 1 按回车 JC 能立即编译这一段程序并下载运行 LCD 上显示 bump 0000 表示此时没有碰撞 JCJC 的这种交互式能力特别便于调试 测试和学习 的这种交互式能力特别便于调试 测试和学习 按左前碰撞环 LCD 上显示 bump 0010 在其他方向施加碰撞 显示的值 将不同 四个基本方向发生碰撞时返回值 二进制 对应关系如下 左前 右前 左后 右后 0010 0001 1000 0100 四个派生方向发生碰撞时返回值可经过计算得到 如前方有碰撞时返回值 为旁边两个方向的返回值相加 0b0010 左前 0b0001 右前 0b0011 前 前方即是 0011 0b 是 C 语言中说明二进制常数的前缀 其他三个方向同理可得 分别是 前 后 左 右 0011 1100 1010 0101 安装 以下是碰撞传感器的接线图 左后 右后 左前 右前 图 3 4 碰撞传感器的接线图 用户在使用时只需将碰撞开关的组合插针以正确的方向插入相应的位置即 可 图 3 5 碰撞传感器的插针位置图 原理 到此 碰撞传感器已经能够被用户直接使用 但是 对应于每一个方向的 碰撞 用户是怎样得到一个二进制数值的呢 在能力风暴个人机器人里 四个碰撞开关接在一个电阻网络里 通过采集 碰撞开关 模拟口 PE3 上电压值的变化 来识别出哪个或哪些碰撞开关闭合 从而判断出 哪个方向有碰撞 同样 在 JC 对话窗口中输入如下程序块 while 1 printf pe3 d n analog 3 sleep 0 1 按回车 JC 能立即编译这一段程序并下载运行 LCD 上显示 pe3 1 表示此时无碰撞 碰撞一下各个方向 pe3 返回值各不相同 这些值是 pe3 上电压值通过模 数转换 模拟量转化为数字量 得到的结果 它们不直观 也不方便记忆 对 此在库函数中进行了变换 将模拟口上采得的电压值变为直观表示各个方位的 四位二进制数 参看 JC10 libs lib ASU c 中的子程序 int bumper 这样就 得到了在应用中的对应关系 计算方式和调用方法 图 3 6 碰撞传感器的电路图 范例 void main int bumpvalue 定义整形变量 while 1 bumpvalue bumper bumper 将返回碰撞检测值 printf bump b n bumpvalue 以二进制形式打印出碰撞传感器的检测值 sleep 0 5 等待0 5秒 运行以上程序 前后左右按碰撞环 可直接从显示屏上读出显示值 3 2 2 红外传感器红外传感器 能力风暴运用了 2 只红外发射管 970nm 和一只红外接收模块构成红外 传感系统 见图 3 7 主要用来检测前方 左前方和右前方的障碍 检测距离 范围为 10 80cm 用户可以通过调节 IRLEFT 和 IRRIGHT 两个电位器来调节左 右两个红外的检测距离 主板中的 R5 为 24K 电阻 它将红外光发射的调制频率 固化在 38KHz 左右 这是红外接收模块中带通滤波器的中心频率 红外光发射器 红外接收器 图 3 7 红外传感器 图中可以看出红外发射管的头部象一个发光二极管 它是两针的 红外接 收器的头部是个集成块 它是三针的 安装 红外传感器的插针是有方向性的 用户自己拆卸 安装时应注意方向 装 好以后可用下面介绍的语句检测一下 图 3 8 红外传感器插针位置图 应用 在 JC 中 红外传感器的库函数是 ir detect 在程序运行过程中此库函此库函 数仅在被调用到时执行一次 即采集数据一次 数仅在被调用到时执行一次 即采集数据一次 在 JC 对话窗口中输入如下程序块 while 1 printf ir b n ir detect sleep 0 5 按回车 JC 能立即编译这一段程序并下载运行 LCD 上显示 ir 00 表示此时没有障碍 用一张白纸分别挡在能力风暴个人机器人的前方 左方和右方 液晶显示器上 显示的 ir 的值都不一样 可总结如下 前方 左方 右方 无障碍 二进制表示 11 10 01 00 十进制表示 3 2 1 0 从二进制的表示方法可以看出前方 0b11 0b10 0b01 即是当左右两方向都有障 碍时 就认为前方有障碍 原理 红外接收模块集成了红外接收管 前置放大器 限幅放大器 带通滤波器 峰值检波器 整前电路和输出放大电路 灵敏度很高 有时从红外管侧面和后 面漏出的红外光也会被接受模块探测到 在能力风暴个人机器人上 两个红外 发射管和一个红外接收器都是先装在套管里再固定在外壳上的 有效的避免了 这种情况的发生 用户在自己扩展红外传感器时 如果遇到这种情况 只需用 黑胶布把发射管的侧面和后部包住即可 红外传感器是靠发射并接收由障碍物反射回来的红外光来判断是否有障碍 如图 3 9 图 3 9 红外测障原理图 图 3 9 中所示即为前方有障碍时的情况 红外光以 60 度的散角向外发射 阴影 区域分别是左右两个红外的反射光区域 而红外的接收模块正好处于左右两个 反射光区域内 能接收到左右两个红外发射管的反射光 由前所述即认为此时 前方有障碍 事实也是如此 在此 应特别注意红外接收模块只是在接收到了一定强度的红外光时才起 到质的变化 认为有障碍 所以 当障碍物太细时 能力风暴个人机器人会检 测不到 当障碍物是黑色或深色时 会吸收大部分的红外光 而只反射回一小 部分 有时会使接收模块接收到的红外光强度不够 不足以产生有障碍的信号 下面是红外传感器的电路图 图 3 10 红外传感器电路图 从图 3 10 中可以看出 I O 口 PD2 PD3 分别控制左右红外光发射管的关闭和 打开 红外传感器检测障碍的过程如下 1 左右发射管均关闭 红外探测器探测一次当前信号 并保存下来以跟后 面采集到的数据比较 2 当程序中调用 ir detect 时 启动红外发射探测系统 首先 左红外 发射管发射一次 延时 1ms 后红外探测器探测一次信号 然后 右红外 发射管发射一次 延时 1ms 后红外探测器探测一次信号 红外探测器探 测一次信号的时间为 0 064ms 红外探测器通过 PE4 口采样当前值 并 保存下来 由于先后时间的不同 就可以分别探测左右两边的红外信号 3 调用一次 ir detect 函数 红外探测系统开启一次 完成后 左右发 射管关闭 根据采集的数据可以判别是否有反射 只有在初始探测无反射而第二次探 测有反射时 左反射管才是有反射的 这样系统才认为左方有障碍 同理 初 始探测无反射而第三次探测有反射时 右反射管才是有反射的 右方被认为有 障碍 采用这种方法可以抑制许多环境红外噪音 硬件的检测过程与软件的配 合可以参见 JC10 libs lib ASU c 中的子程序 int ir detect 范例 void main int ir while 1 ir ir detect if ir 0b00 判断有否障碍 drive 80 40 执行语句 即倒退0 5秒 sleep 0 5 drive 100 0 前进 运行此程序可知当前方有障碍时 能力风暴个人机器人有反应 3 2 3 光敏传感器光敏传感器 能力风暴个人机器人上有 2 只光敏传感器 见图 3 11 它可以检测到光 线的强弱 图 3 11 光敏传感器 光敏传感器其实是一个光敏电阻 它的阻值受照射在它上面的光线强弱的 影响 能力风暴个人机器人所用的光敏电阻的阻值在很暗的环境下为几百 室内照度下几 阳光或强光下几十 安装 光敏传感器是一个可变的电阻 它的接插方式没有方向性 它在主板上的 位置如图 3 12 图 3 12 光敏传感器插针位置图 应用 在 JC 中 光敏传感器的库函数是 左光敏 analog 0 或 analog photo left 右光敏 analog 1 或 analog photo right 在程序运 行过程中库函数仅在被调用到时执行一次 即采集数据一次 库函数仅在被调用到时执行一次 即采集数据一次 在 JC 对话窗口中输入如下程序块 while 1 printf photoleft d n analog 0 sleep 0 5 仅采集左光敏的读数 按回车 JC 能立即编译这一段程序并下载运行 LCD 上显示 photoleft 180 表示此时照射在左光敏上的光线强弱 改变照射在左光敏电阻上的光线强弱 可观察到读数的变化 可发现光越暗 数字越大 光越强 数字越小 光敏传感器很灵敏 若需要左右两个光敏传感器对光强的反应非常一致 则把光敏传感器对准照度均匀的白墙进行调节 数字较小的一边 在光敏传感 器上贴一小片黑胶布 或者通过软件进行偏差值调整 原理 以下是光敏电阻自身的结构及工作原理图 图 3 13 光敏电阻的电极图案 1 电极 2 光导体 图 3 14 光敏电阻的工作原理图 光敏传感器在能力风暴个人机器人里表现出的光越暗 数值越大 光越强 数字越小是因为 光敏电阻和 10K 的电阻 R8 R10 相连后构成分压器 左右两 个光敏电阻分别与模拟输入口 PE0 PE1 相连 在系统中采集的是光敏电阻上的 电压值 光暗时 光敏电阻上的电压接近 5V 光强时 接近 0V 模数转换为 8 位数字量后的范围为 0 255 光敏传感器的线路图如下 图 3 15 光敏传感器的电路图 范例 void main int right while 1 right analog 1 if right 200 beep beep 运行此程序可知当光线暗于一定值时 能力风暴个人机器人叫两声 3 2 4 麦克风麦克风 能力风暴个人机器人上的麦克风 microphone 是能够识别声音声强大小的 声音传感器 见图 3 16 图 3 16 麦克风 图 3 17 麦克风位置图 应用 在 JC 中 声音传感器的库函数是 analog 2 或 analog microphone 在程 序运行过程中此库函数仅在被调用到时执行一次 即采集数据一次 此库函数仅在被调用到时执行一次 即采集数据一次 在 JC 对话窗口中输入如下程序块 while 1 printf mic d n analog 2 sleep 0 1 按回车 JC 能立即编译这一段程序并下载运行 如果周围的环境很静 LCD 上显示 mic 127 表示此时很安静 对着 microphone 发出一些声音 可以看到 microphone 的值不断变化 它的变 化范围是 0 255 原理 麦克风采集到的信号通过 LM386 IC5 进行放大 放大倍数为 200 由 C13 确定 输出信号接至 PE2 没有声音时 电压为 2 5V 左右 转换为 8 位 二进制数后得到的十进制整数为 127 左右 如图 3 18 图 3 18 麦克风电路图 当有声音时 LM386 的输出电压在 2 5V 上下波动 PE2 测得的电压和 2 5 V 相减的绝对值越大 则声音越大 如 mic 100 127 27 与 mic 154 127 27 表 示两次采集时的瞬时声强是相同的 只是波动的方向不同 R1 C12 构成高频滤 波 滤去线路板其他元器件产生的高频噪声 范例 void main int b 1 状态标志位 int mic while 1 mic analog 2 检测麦克风 printf mic d n mic 显示检测值 sleep 0 5 延时0 5秒 可调整 if mic 180 b b 1 条件满足 改变运动状态 if b 1 drive 100 0 前进 if b 1 stop 停止 运行上面的程序 第一次声音大于一定值 范例中为 180 可根据具体情况调整 时 能力风暴个人机器人全速前进 第二次声音大于一定值时能力风暴个人机器人 停止运动 如此循环 3 2 5 光电编码器光电编码器 光电编码器是一种能够传递位置信息的传感器 它由光电编码模块及码盘 组成 见图 3 19 能力风暴个人机器人有 2 只光电编码器 运用红外发射接 收模块 反射器 即码盘 是黑白相间的铝合金制成的圆片 66 等分 当码盘随 轮子旋转时 黑条和白条交替经过光电编码器 反馈的信号状态不同 即构成一 个脉冲 因此 360 度共产生 33 个脉冲 每个脉冲的分辨率约为 10 91 度 轮子 直径为 65mm 则周长方面的分辨率约为 6 19mm 图 3 19 码盘及光电编码模块外形 安装 码盘装在轮子的内侧 光电编码芯片的插针位置如下图所示 图 3 20 光电编码芯片的插针位置示意图 应用 检测左右编码器当前状态的库函数为 left shaft right shaft 运行 一下 JC 中的 ASU selftest lis 程序中的 encoder test 看一下转一圈是否 是 33 个脉冲 同时注意看 R 或 L 右边的 和 变化 表示当前无 反射信号 码盘片的黑格应正对编码器 库函数 get left clicks get right clicks 可以读出经过左右光电编码器脉 冲累计值 调用前两个函数必须先初始化脉冲采样中断驱动 init velocity 原理 光电编码器原理上也是靠发射与接收红外光来工作的 能力风暴个人机器 人上用的光电编码器芯片集成了发射与接收功能 无返回信号 有返回信号 码盘和 电机插 座 图 3 21 光电编码器的工作原理图 从图中可以看出 红外光射在黑色辐条上时没有反射信号 因为红外光大 部分已经被黑色辐条吸收 当红外光射在白色辐条上时有反射信号 因为红外 光在白辐条上反射强烈 下面是光电编码器在能力风暴个人机器人上的电路图 图 3 22 光电编码器电路图 1 12 2 3 3 4 4 5 56 6 7 78 8 9 91 10 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 10 0 3 3 1 1 2 2 V Vc cc c G Gn nd d V Vo ou ut t 3 3 1 1 2 2 V Vc cc c G Gn nd d V Vo ou ut t 左左编编码码器器 右右编编码码器器 图 3 23 光电编码器和 motor encoder 插座的接线图 范例 void main int encoder state while 1 encoder state left shaft 返回左编码器的当前状态 printf encoder d n encoder state sleep 0 1 延时0 1秒 可调整 以上是 left shaft 函数的应用 运行程序 旋转左轮胎 观察 LCD 上显示值 的变化 码盘上的白条对红外发射接受芯片时 encodar state 的值为 1 黑条对 着芯片时 encoder state 的值为 0 范例 void main init velocity 始化脉冲采样中断驱动 drive 70 0 前进 sleep 2 0 延时2秒 printf left f n float get left clicks 33 0 读出的脉冲数值除以33即得左轮旋转圈数 stop 停止 以上是 get left clicks 函数的应用 运行此程序 不同的速度值 在此为 70 可观测到不同的结果 3 2 6 其他传感器其他传感器 能力风暴还能集成很多其他的传感器 插在 ASBus 参见 3 5 节 上即可 使用 下面作简单介绍 人体热释片传感器人体热释片传感器 人体热释片传感器对移动的人体热源敏感 加上菲涅耳透镜后可以探测 10 米外的人体 能力风暴装上 1 个或几个人体热锋电传感器后 你可以让他一看 见你 就向你迎过来 让他跟着你走 超声传感器超声传感器 超声传感器是机器人测距的专业传感器 测量距离一般为 20cm 6m 测量精 度为 1 是测量声波发射与收到回波之间的时间差来测量距离的 运用能力风 暴本体上带的传感器在房间里找到门不容易 但运用声纳对房间扫描一周后 就能较方便找到房门 连续测距红外传感器连续测距红外传感器 SHARP 公司推出了创新的 GP2D02 GP2D12 连续测距红外传感器 测量范围 为 10cm 80cm 参加灭火比赛时 用它来找房间门非常棒 数字指南针数字指南针 自主机器人的导航至今仍是世界性难题 借助数字指南针 可以使能力风 暴辨别方向 温度传感器温度传感器 想让机器人动态告诉你气温吗 加一个温度传感器是个好方法 视觉视觉 让能力风暴处理视觉是有些力不从心了 但你可以用它来作移动的监视平 台 你可以在能力风暴上装微型摄像头 把视频信号发射出来 用 PC 机接收后 进行图象处理 火焰传感器火焰传感器 用来发现火焰 参加机器人灭火比赛最好使用火焰传感器 还有许多传感器 可以让能力风暴拥有有特殊本领 大部分传感器可以方 便地运用 ASBus 接在能力风暴上 并用 JC 来编驱动程序 个别传感器需要用汇 编编写驱动 详细信息请看广茂达网站 能力风暴的魅力在于你能控制所有的资源 直接领悟信息采集与处理的机 制 以及如何处理现实情况的复杂性和难以预测性 3 3 能力风暴的计算机硬件能力风暴的计算机硬件 能力风暴计算机硬件的设计策略是尽量选择功能齐全 可靠 周边设备集 成度高的微控制器 价格也需控制 能让中国的学生以可以承受的价格获得世 界上先进的智能机器人计算平台 Motorala 生产的 68HC11 使我们以极少的周 边芯片获得了齐全的功能 8 个模拟口 5 个输入捕捉 3 个 PWM 输出 16 位地 址 8 位数据总线 串口 以及 4 个通用 I O 同时 充分考虑到软件开发工具问题 因为没有优秀方便的软件开发工具 硬件只能成为专有系统 而无法成为开发平台 68HC11 的自下载功能 使我们 拥有了纯软件开发调试的优秀工具 JC JC 即可用于开发高层应用软件 又便于 开发低层驱动 还能交互调试 在观察能力风暴控制板时要注意识别芯片管脚 特别是 1 脚位置 常见芯 片的封装形式有两种 双列直插 DIP 和塑料扁平封装 PLCC 参见下图 图 3 24 DIP 芯片管脚 图 3 25 PLCC 芯片管脚和插座引脚 3 3 1 微控制器微控制器 68HC11A1 有 CPU 片内存储器 定时器系统 串行口 A D 并行 I O 口 中断和复位系统组成 见图 3 26 CPU 计算机的计算原理是什么 68HC11 的 CPU 有两个 8 位累加器 两个 16 位 变址寄存器 一个 8 位条件寄存器 一个 16 位堆栈指针和程序计数器 M6800 M6801 指令系统 共 300 多条指令 16 位加 减 乘 除指令 学习使 用单片机 可以真切感受计算原理 指令的构成 时钟周期 指令周期等等 图 3 26 68HC11A1 原理结构图 片内存储器片内存储器 68HC11A1 无内部 ROM 有 512 字节 EEPROM 可重定位的 256 字节 RAM 定时器和脉冲电路定时器和脉冲电路 16 位高性能定时器系统 8M 晶振 定时器频率为 2MHZ 周期 0 5 s 3 个输入捕捉 可测量脉冲数量 脉冲周期 宽度和相位等 5 个输出比较 可 输出 PWM 信号 可以完成各种定时控制功能 有定时器溢出中断功能 高性能 定时器是 68HC11 的特色 能力风暴中用输入捕捉计码盘信号 用输出比较功能 控制直流电机 串行口串行口 串行通讯接口 SCI 能力风暴用于和 PC 机通信 全双工同步串行外围接口 SPI 图 3 27 Motorala 单片机独有的串口标准 速度可达 2Mbps 以上 用于 扩展外围芯片和多机通讯 能力风暴中已将其用于其他设备驱动中 图 3 27 A DA D 转换器转换器 8 个输入通道和四个转换结果寄存器 具有一次完成四路 A D 转换或连续 对同一路采样转换 4 次的功能 后一种功能可以方便实施去掉最大 最小 取 均位的滤波方法 能力风暴中碰撞传感器 声音均使用 A D 转换器 非常方便 这也是 68HC11 的特色 中断中断 有 16 个硬件中断和两个软件中断 它们各有独立的中断向量和中断允许 位 响应中断时能自动保护所有的 CPU 寄存器 另外具有实时中断电路 可每 隔指定的时间产生一次中断 而 8051 单片机则只有 5 个硬件中断 并行并行 I OI O 口口 单片方法工作时 有 38 个 I O 扩展方式时 有 8 位数据单线和 16 位地 址总线 可扩展 64K 存储器 另有 2 个 8 位 I O 口和一个 I O 口 复位系统和电源复位系统和电源 计算机有多种复位方式 上电自动复位 外部 RESET 复位 看门狗复位 软件工作不正常时 时钟监视复位 能力风暴采用前两种复位方式 68HC1168HC11 的管脚的管脚 68HC11 的一大特色是功耗低 工作电流小于 15mA 有 WAIT 和 STOP 两种 方式进行省电 68HC11 的管脚图见图 3 28 图 3 28 68HC11 的管脚 VDD VSS 电源脚 VDD 为 VSS 为 MODB VSTBY MODA LIR 运行方式选择输入脚 备用电源供给脚 EXTAL EXTAL 晶振脚 能力风暴接 8M 晶振 E 总线时钟输出脚 能力风暴中为 2MHZ RESET 复位脚 低电压复位 XIRQ IRQ XIRQ 不可屏蔽中断请求输入 IRQ 外部中断输入脚 VREFL VREFH A D 参考电压输入 能力风暴中 VREFL 0 VREFH 5V PE PEO PE7 A D 模拟输入或通用输入 PA PAO PA7 PA0 PA2 输入捕捉脚 PA3 PA6 定时器输出比较脚 PA7 能作通用 I 0 或脉冲累加器输入或比 较输出 PD0 PD5 可作通用 I 0 脚 或者 PDO 为串口 RXD 输入 PD1 串口 TXD 输出 PD2 P5 分别为 MISO MOSI SCK SS 构成 SP2 串口总线 STRA STRB PB PCD 单片时 可作通用 I O 口 扩展方地址选择 AS 和读 R W 控制线 能力风暴运行于扩展工作方式 扩展了 32K 静态 RAM 和 8 个 I O 口 注意 为了省引脚 单片机中一般以低 8 位地址和 8 位数据以时分多路方式合用 PC 的 8 只引脚 能力风暴充分利用了 68HC11A1 的全部硬件资源 3 3 2 外部存储器外部存储器 能力风暴个人机器人扩展了 32K 的静态不挥发 RAM 其优点是既有静态 RAM 的速度和方便 70ns 又有 EEPROM 或 FlashRom 的掉电不丢失性 从而能 将程序和数据合用一个芯片 AS62256 写入的数据可保存十年以上 同时具有 可靠的上电 掉电 强静电等数据保护功能 另外需注意 AS62256 在电压低于 4 5V 将自动封锁读 写操作 已保护 数据 因此电池电压过低时 单片机低电压保护没有来得及工作时 系统运行 有可能失常 选址和并行口扩展选址和并行口扩展 32KRAM 用了 AO A14 共 15 根地址线 构成 32K 的地址空间 A15 为高电平 时和 E RESET 等信号复合片选 32K RAM 因此 32K RAM 的地址空间为 OX8000 OXFFFF 另一根地址线 A15 和其余地址线及读 写线复合扩展 4 个输入控制线 4 个输出控制线 见图 3 29 图 3 29 扩展地址选择线 12 13 14 15 A 12 15 R W 1011 E 74HC14 VCC A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 GND 8 VCC 16 74HC138 地址空间与 8 个读写控制线选择对应表 写操作读操作 OX4000 OX4FFFOS0IS0 OX5000 OX5FFFOS1IS1 OX6000 OX6FFFOS2IS2 OX7000 OX7FFFOS3IS3 对地址 OX4000 进行写操作 OS0 口线被选中 OS0 作为片选信号 即把数据总 线上的数据写往 OSO 选中的并行接口芯片上 对地址 OX4000 进行读操作 IS0 口线被选中 IS0 作为片选信号 即把选中的芯片上的 8 位数据通过并行口读 至 CPU 32K 空间用来选择四对输入输出控制线 在能力风暴在 ASBUS 上能扩展 4 块平行输入卡 4 块平行输出卡 目前 PC 机上也只有 4 5 个 PCI 扩展槽 只要 使用一对输入输出选择线就可以扩展 8 个输出口 8 个输入口 能力风暴地址空间能力风暴地址空间的分配如图 3 30 图 3 30 能力风暴个人机器人的地址空间 图中地址为 16 进制 能力风暴个人机器人的操作系统 ASOS 放在高端内存 10K 左右 往下到 8000 之上有近 20K 左右是用户程序空间 在下载用户程序的时候 JC 会显示编 译后代码有多少字节 存放的位置 你可以计算一下 20K 能放多少行 JC 程序 3 3 3 电源与复位电路电源与复位电路 能力风暴控制板采用 Maxim603 稳压芯片 提供 500MA 5V 电压 该芯片自 身的功耗很低 低电压复位保护电路采用 DS1233 当电压低于 4 5V 将产生复 位信号 同时红色 BAT 发光二极管变亮 见图 3 31 图 3 31 电源与复位电路 3 3 4 通信通信 能力风暴采用 MAX232 串口驱动芯片 有 2 路输入输出 PC 发过来的信号 IC7 9 再经过一路输入去驱动 COM 发光二极管 因此 PC 传数据给能力风暴时 黄色 COM 发光二极管会闪动 见图 3 32 图 3 32 通信模块 3 4 驱动器驱动器 机器人获取环境信息 计算处理后 会作用于环境 能力风暴作用于环境 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论