tceic.com
简单学习网 让学习变简单
当前位置:首页 >> 学科竞赛 >>

1小时学会Aduino第一讲创意机器人入门


? 视频欣赏:美国军方的尖端机器人

基于Arduino单片机的 创意机器人培训辅导
授课人:中山纪念中学 冯庆

? 技术支持: 中山市大谷科技有限公司
http://www.arexx.com.cn/ QQ 32506476 Tel 88811951 ? 材料供应:http://arexx.taobao.com/<

br />
学情调查
? ? ? ? A、是学校机器人方面的教练 B、是信息技术、通用技术或科技教师 C、接触过机器人 D、从未接触过机器人和编程

关注新赛事——创意机器人比赛
2012年6月,在广东省首届创意机器人比赛 的成功举办表明这种机器人初具影响,中山教 师应该关注。 Arduino这种开源积木式单片机也值得广 大科技教师学习。

比赛规则分析
? 大赛分为“龙舟争霸赛(非智能型)”和“龙舟挑 战赛(智能型)”两种赛事,“龙舟争霸赛”比拼 的是速度和结构设计创意;“龙舟挑战赛”比拼的 是速度和机器人编程避障。大赛以小组为单位报名 ,每一组2-4名学生,比赛过程中,主办方只为参赛 队提供马达、木板、齿轮等简单的材料,参赛队需 在此基础上充分发挥创新能力、团队协作能力、专 业知识和动手能力制作作品。

赛况及作品

什么是创意机器人
? 开源机器人(Open Source Robot)
? 是一种应用于科学研究和教学的资源开放型机器人。 其主要特点体现在机器人硬件或软件的开放性。由于 硬件和软件资源的对外开发,极大地方便了机器人技 术开发人员的技术交流及二次开发。相信随着开源机 器人的逐步普及,机器人技术的发展将会被推到新的 高潮。

? 国外开展情况

一篇博客反应的美国高中机器人比赛
? 我儿子学校的这个机器人俱乐部,是他们学校众多俱乐部里的一个。自 愿参加(但一般要求在9年级是就要加入,不能半路加入)(美国高中 阶段是9年级到12年级)。只有一名老师义务指导他们的活动。每年全 美(包括加拿大)高中生机器人俱乐部都举行比赛。由全美俱乐部每年 这个时期统一发布一个机器人比赛内容和规则(每年都不一样),统一 购臵并发放一批器件材料(价值4千美元,参赛队自筹购买)。发布比 赛规则后,要在6周时间里将机器人建造好,先开始在学校所在州里进 行选拔赛,选上以后,再参加地区赛,最后进入全美赛。 ? 这个活动,全部是自筹资金。 4千美元的指定材料,使大家的起点一致 。但实际建个机器人,至少还要需要另外几千美元。去年儿子所在俱乐 部最后用了1万2千美元,都是一家叫BOSCH的公司赞助的。 因为每年的规则都不一样,机器人的行为,动作,功能也就不一样。譬如去年的机 ? 这次比赛是今年赛季的热身赛( KICK OFF),用的是去年的机器人和比 器人,机器人自控比赛,在 15秒内,机器人成能自动按赛场跑道,根据赛场情况控 赛规则。 制一定的行动,跑出的距离越远越好(一个和羽毛球场大小差不多的比赛场地,竖
向分成双向跑道,六个机器人一起跑,所以要防止能规避碰撞,能自动根据情况选 择合适的拐弯,掉头等)。然后是两分钟的遥控机器人比赛,机器人能将高处的球 打下来(1分),能将球捡起,并抛过场地里横杆(2分),将球放在横栏上(6分)。 还有一些细节,犯规等要求。

? “FIRST”科学兴趣系统分得很详细,按照孩子的年龄分为不同 组,最小的6-9岁组,果果已经可以参加。但是这个年龄段的科 技项目主要以LEGO为平台,还没有上升到机器人的层面。 ? 中级组也是类似,可能难度更大些。

? 高级组的大孩子才会动手自己设计组装机器人,就 是我们今天看到的这种比赛。

? 将小车开到杆顶

? 日本中学生举行机器人搭建“金字塔”比赛 参加当天比赛的中学生要在30分钟内操作自己制造的 机器人,

推广开源机器人的意义
? 1、当前国内机器人出现了一些问题。 ? 2、开源机器人优势:
? 有助于学生亲身参与,从最底层获得硬件制作的经验 ,培养空间思维、创新意识; ? 廉价质优,容易普及,适合在教学中使用; ? 软硬件结合,可以更加直接地接触到电子电路,了解 元器件运行原理,对电学学习带来帮助; ? 有助于科技创新活动开展。

不用半导体零件的机器人

面具机器人:疯狂的小鸟

探索在通用技术中的应用
? 1、可以整合《电子控制》和《机器人制作》选修模 块。 ? 2、有助于激发学生学习兴趣。 ? 3、我制定的学习路线:
? ①虚拟机器人的程序设计 ? ②实体机器人的基本结构及搭建 ? ③学习arduino单片机,用单片机控制机器人

? 4、探索阶段,期待同行的支持及提出批评和建议。

适合中学生的开源机器人构成
? 基本部件:
? 结构部件较为随意,可以使用舵机、马达、齿轮、皮 带、履带、链条等各种零部件。也可以使用其他套装 机器人的结构材料,甚至废物利用的材料。 ? 控制部分以AVR为主流的单片机进行控制(Arduino板) ,编程简单,可以用C语言编程,学习周期短(华南理 工大学还开发了图形积木式编程环境)。

? 开源的好处:
? 网上资源很多,方便学习,扩展性好。

机器人创意设计的几个关键因素
? 一、设计者的灵感、创新思维 ? 灵感来源于认知的积累。 ? 二、基本知识 ? 1、机器人躯干----机械设计 ? 2、机器人动力----电气系统 ? 3、机器人感知----传感系统 ? 4、机器人能源----供电系统 ? 5、机器人灵魂----控制系统

机器人大赛中机器人的设计流程
比赛的总体规划、 规则的制订

?
熟悉理解比赛规则

灵感

要求或者目标

初步的创意与方案

比赛机器人的创意 与提案

可行性分析

初步设计

仿真或模型验证

详细设计

初步设计与备选方 案

制作、组装、调试

试运行、实战演习

方案中常常涉及的问题
?

? 1、电机的选择。 ? 负载估算方法:有效力的估算、无效力的估算、惯性 力的计算。 ? 2、材料、构件与轻量化设计。 ? 材料与型材、金属材料和非金属材料。 ? 3、传感器与控制系统 ? 控制对象、测量对象、选择传感器、控制方法与控制 系统。 ?

创意机器人的常见机械结构

常用机械部 件

常见传动 形式
组装技巧

机械 构成

机器人的机械部分
? ? ? ? ? ? ? ? ? 机械原理 1、连续运动?间断运动 2、快速(慢速)? 慢速(快速) 3、转动(直线运动)? 直线运动(转动) 4、正向运动?反向运动 5、转动?往复(活塞式) 6、水平运动?垂直运动 7、转换转动方向 8、其他

槽轮 变速 齿轮齿条 换向器 曲柄滑块 凸轮 斜齿轮

分享: 你对创意类机器人辅导有什么心得?

积木式的单片机系统Arduino
? Arduino 是一款便捷灵活、方便上手的开源 电子原型平台,包含硬件(各种型号的 arduino板)和软件(arduino IDE) ? 1、使用低价格的微处理控制器(ATMEGA8 或ATmega168等)。 ? 2、开放源代码的电路图设计 ? 3、可依据官方提供的Eagle格式PCB和SCH 电路图,简化Arduino模组,完成独立运 作的微处理控制。 ? 可简单地与传感器,各式各样的电子元件 连接(EX:红外线,超音波,热敏电阻,光敏电 阻,伺服马达,…等 ? 刷写bootloader之后,可以通过串口或者 USB to Rs232线更新固件。
?程序开发IDE下载地址:http://arduino.googlecode.com/files/arduino-1.0.1windows.zip

Arduino积木式单片机
? Atmega8芯片的结构 ? Atmega8芯片的功能 ? Arduino最小系统的搭建 (12’) ? 用USB 连接计算机,写入闪灯程序 (20’) ? 一些常见的单片机外围电路
? 输入:电阻、光敏、热敏、超声、压感,磁敏等
? 输出:晶体管、场效应,双向电机驱动,继电器

讲解、部分练习

积木式Atmega8单片机入门
? 直列式封装的Atmega8A TQFP Top View
A5 A4 A3 A2 A1 A0

每个端口都是特殊的寄存器。单片机就是通过操作这些特殊寄存器来实现数 据的输入输出和对外控制的。 本单片机还内置了AD数模转换输入6个端口,3个PWM波形输出口

任务1:$
在面包板上搭建最小Arduino系统
1、在“任务1.doc”文档中用绘图方式完成虚拟搭建。

任务目的:了解硬件构成

按照最小系统原理图,在面包板上 连接元件(Word中完成)

贴片封装形式

MiniDriver板功能结构图

任务2:
用USB线调试程序

1、安装CP210x驱动程序,配置Arduino端口,设置电路板 类型 2、写入测试程序

任务目的:掌握最基本程序调试方法

Arduino程序开发
? ? ? ? ? ? 安装USB串口驱动程序 ISP线与BootLoader的刷写(挽救法) Arduino C语言基本结构和语法介绍 单片机与计算机通讯 数字输入输出端口的控制 模拟量的读入、PMW脉冲的输出

讲解、练习

Arduino C 语法介绍
? 常量:
? HIGH | LOW 表示数字IO口癿电平,HIGH 表示高电平 (1),LOW 表示低电平(0)。 ? INPUT | OUTPUT 表示数字IO口癿方向,INPUT 表示辒 入(高阻态),OUTPUT 表示辒出(AVR能提供5V电压 40mA电流)。 ? true | false true 表示真(1),false表示假(0)。 ?

更多语法介绍在帮助文件或 电子元件\单片机\Arduino_电子积木基础套 装中文教程.pdf 文件中

常用功能函数
数字 I/O ? pinMode(pin, mode) 数字IO口辒入辒出模式定义凼数,pin表示为0~13, mode表示为 INPUT戒OUTPUT。 ? digitalWrite(pin, value) 数字IO口辒出电平定义凼数,pin表示为0~13,value表示为HIGH 戒LOW。比如定义HIGH可以驱动LED。 ? int digitalRead(pin) 数字IO口读辒入电平凼数,pin表示为0~13,value表示为HIGH戒 LOW。比如可以读数字传感器。 ? 模拟 I/O ? int analogRead(pin) 模拟IO口读凼数,pin表示为0~5(Atmega8中用A0~A5)。比如可 以读模拟传感器(10位AD,0~5V表示为0~1023)。 ? analogWrite(pin, value) - PWM 数字IO口PWM辒出凼数,Arduino数字IO口标注了PWM癿 IO口可使用该凼数,pin表示9, 10, 11,value表示为0~255。比如可用于电机PWM调速戒音乐 播放。 ? 时间函数 ? delay(ms) 延时凼数(单位ms)。 ? delayMicroseconds(us) 延时凼数(单位us)。

任务3:
编写程序,伴随LED闪烁向计算机发 出“Hello Arduino! (后跟计数)”
1、修改Blink例子,具备上述功能 2、按Ctrl+M打开串口观察窗,观察结果。

任务目的:串口通讯可以帮助我们了解传感器的参数 ,还能进行调试、远程通讯、遥控……

外围电路及实际程序开发

根据教程内容,选择一个适合的 任务完成。 $ 任务A、B 难度 ★ ★ ★ 任务C 难度 ★ ★ ★ ☆ 任务D 难度 ★ ★ ★ ★ ☆

自选任务请参看文件: 自选任务.ppt

光说不练,假把式。又说又练,真把式!!

龙舟机器人的参考电路

上拉电阻

? 断开

按下

LED基本电路

电阻

LED

电源(正/负)

? 流水LED霓虹灯

按钮控制LED亮灭 输入输出高低电平
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int light=LOW; //=0 int LedPin=13; int KeyPin=14; void setup() { pinMode(LedPin,OUTPUT); pinMode(KeyPin,INPUT); } void loop() { if (digitalRead(KeyPin)==0) light=!light; digitalWrite(LedPin,light); delay(100); }

彩色LED
? 红/绿/蓝 三原色 ? 根据公共端的不同有共阳/共阴两种

Arduino中的模拟输出
? analogWrite(pin, value) ? pin为Arduino上的PWM引脚

? 9, 10, 11
? value取值0-255 ? PWM
? 实现模拟信号的数字化方法

Arduino控制LED淡入淡出效果 PWM可变方波输出

? 你会认管脚吗?大的倒三角为负极,如果塑封帽上有平口的一边也 是负极 ? 你知道怎么检查红外发射管是否工作吗?

模拟输入

? 通常基于分压原理 ? 电位器 ? 电子积木
? 300度 旋转角度传感器

Arduino中的模拟输入
? int analogRead(pin)
? pin: 模拟输入引脚 A0, A1, A2, A3, A4, A5
? 返回值: 0-1024 (10位精度)

例子:可变电阻调节LED亮度
? 通过读取电位器的值来控制LED灯的亮度

功能:调节电位器RPot,使输入模 拟量的变化来改变LED 闪烁的频率
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? int ledPin = 13; // 设定控制LED 的数字IO 脚 int RPotPin = 5; // 设定模拟输入IO 脚 int val = 0; //定义一个变量 void setup() { pinMode(ledPin, OUTPUT); // 设定数字IO 口的模式,OUTPUT 为输出 } void loop() { val = analogRead(RPotPin); //读模拟IO 口上的数据 digitalWrite(ledPin, HIGH); // 设定PIN13 脚为HIGH = 4V delay(value); // 延时时间为模拟输入的值 digitalWrite(ledPin, LOW); // 设定PIN13 脚为LOW delay(value); // 延时时间为模拟输入的值 }

其他积木式外围传感器

300度 旋转角度传感器

多圈 旋转角度传感器

60行程 滑动电位器 推子

游戏杆 控制杆 JoyStick

Sharp 红外距离传感器
? 30cm, 80cm, 150cm, 5.5m

三轴 加速度传感器

FlexiForce压力传感器
? 1 lb, 25 lb, 100 lb

FSR系列压力传感器
? 压力1-10kG ? 尺寸和外形不同

直流电机

? 将电能转换为机械能的一种装置 ? 两个电源接头 ? 在适当的电压下给予足够的电流时将连续旋转,旋 转方向由电流方向决定 ? 普通直流电机转速高力矩小,适用于对力矩要求小 的场合

直流减速电机
? 直流减速电机(齿轮减速电机)是在普通直流电机 的基础上,加上配套齿轮减速箱。 ? 齿轮减速箱可以提供较低的转速和较大的力矩,不 同的减速比可以提供不同的转速和力矩

常见的外围电路
? 用三极管或者MOS管驱动电机

H桥式驱动电路
? 4个三极管控制一个直流电机 ? 只让对角线上的一对三极管导通
? 否则会短路,烧坏三极管

? 能同时控制速度和方向

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

从左到右信号依次为 PwmL : 上排:PB1/Pin13/D9 MCU左路电机速度输出信号 下排: 左路电机速度输入信号(数字脉冲信号) DirL : 上排:PD7/Pin11/D7 MCU左路电机方向输出信号 下排: 左路电机方向控制输入信号(数字1或0) PwmR : 上排:PB2/Pin14/D10 MCU右路电机速度输出信号 下排:右路电机速度输入信号(数字脉冲信号) DirR : 上排:PB0/Pin12/D8 MCU右路电机速度输出信号 下排:右路电机方向控制输入信号(数字1或0) 注意: 1:电机供电固定为输入的Vin,未经过稳压器。 2:该接口上排为板载Atmega8A的相应电机控制 输出信号,故若使用板载Atmega8A控制电机, 需要用短路帽将其短路!

舵机
? 舵机也叫伺服电机(Servo),工作电压一般4.6 – 7.2V ? 由直流电机、减速齿轮组、传感器和控制电路组成 ? 主要应用在定位控制上

舵机接口
? 标准三线接口
? 电源线 ? 地线 ? 控制线
舵机的转动位置是靠控制PWM(脉冲宽 度调制)信号的占空比来实现的,
标准PWM(脉冲宽度调制)信号的周期固定 为20ms,占空比0.5~2.5ms 的正脉冲宽度和 舵机的转角-90°~90°相对应。注意,由于 舵机牌子不同,其控制器解析出的脉冲宽度 也不同,所以对于同一信号,不同牌子的舵 机旋转的角度也不同。

基于串口的电子积木(一)

串行液晶显示屏 字符型 1602 LCD

无线数据传输模块 APC220

蓝牙串口模块

USB转串口适配器

RS485串口模块

MAX232 串口模块

基于串口的电子积木(二)

串口RFID模块 10cm

串口RFID模块 6cm

XBee USB 适配器

? 不足之处,欢迎指正!

谢谢!
? 授课人:中山纪念中学 冯庆 windking_123@qq.com 18925383180 ? 特别鸣谢: 中山市大谷科技有限公司
http://www.arexx.com.cn/

敬请关注面部机器人比赛 http://www.maskrobot.org/

?球


推荐相关:

arduino从零开始学

Arduino 开发从零开始1-1 Arduino Uno R3 ...有人用它制作微博机器人,配合一些传感器监测植 物的...因为 Arduino UNO 开发板的基础构成在一个表 里...

网站首页 | 网站地图
All rights reserved Powered by 简单学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com