移动机器人基础培训

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
移动机器人基础培训
第一节 微控制器(MCU)基础
任务1
让LED按照规定的时序闪亮
on off
0 1 2 3 4 5 t/s
完成任务的步骤
• 明确任务 • 分析任务 • 构思解决方案 • 安装硬件 • 编写程序 • 下载、运行、测试 • 总结与讨论
一、明确任务
LED
• Light Emitting Diode 发光二极管
• 让第15号I/O口输出0V电压 • LOW 15
• 延时1秒
• PAUSE 1000
• • •
让第15号I/O口输出5V电压 延时2秒 让第15号I/O口输出0V
• •
HIGH 15 PAUSE 2000
• 结束
• LOW 15
5V
• END
0V 0 1 2 3 4 5 t/s
把程序键入到编辑器
HIGH 15 PAUSE 1000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 3000 LOW 15 PAUSE 1000 RepeatNum= RepeatNum-1 LOOP END
改进方案
• 控制循环的其他方法
• 每个变量都有自己的 名字,我们要在程序
LOW 15 PAUSE 1000 HIGH 15
的前面声明这个变量, PAUSE 3000
也就是告诉编辑器我 们的程序要使用这样
LOW 15 PAUSE 1000 RepeatNum= RepeatNum-1
一个变量;
LOOP
END
变量的类型
• 每个变量都在MCU中占用一个存储数据的空间,空间的大小是用bit (比特)或者byte(字节)为单位的。
– A 阳极 (比较长的那根管脚) – K 阴极 (比较短的那根管脚) – 下面的电路可以使LED发光
A K
K
A
470欧姆 5伏
470Ω 5V
接地 电势零点
二、分析任务
• 本任务要求LED按照如下的时序图闪亮
on off
0 1 2 3 4 5 t/s
• 实际上是要求Va按照如下的时序变化
470Ω Va 5V 0V 0 1 2 3 4 5 t/s
• Duration is a variable/constant/expression* (0 - 65535) that specifies the duration of the pause. The unit of time for Duration is one millisecond.
Explanation
讨论
• 在上述过程中,PC机和BASIC Stamp软件 的作用是什么?
X – A)控制MCU执行程序,按照时序输出5V或0V 电压。
√– B)提供一个编写程序的平台,并把程序翻译 成MCU能执行的代码下载给MCU,由MCU独 立运行。
编译环境
讨论
• 什么是程序?
让第15号I/O口输出5V电压 延时1秒 让第15号I/O口输出0V电压
添加必要的 说明语句
' {$STAMP BS2} ' {$PBASIC 2.5} HIGH 15 PAUSE 1000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000 LOW 15 END
保存到你自己的文件夹
• 文件名:Task1.bs2 • 文件夹:
六、下载运行测试
在编程时接收串口数据
Pin 3: ATN
连接到串口DTR(数据终端准
备)信号线 通知可以给
Stamps编程了
P0
Pin 4: VSS
P1
信号地 (0V).
P2
P3
P4
Pins 5-20:
P5
通用输入/输出
P6
(I/O)脚 P0到脚 P15
P7
Pin 24: VIN
直流电源输入(5.5-15V)
Pin 23: VSS
' {$STAMP BS2} ' {$PBASIC 2.5} RepeatNum VAR Nib FOR RepeatNum=1 TO 10
HIGH 15 PAUSE 1000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 3000 LOW 15 PAUSE 1000 NEXT END
改进方案
• 简化程序的方法
FOR i=1 TO 3 HIGH 15 PAUSE i*1000 LOW 15 PAUSE 1000
NEXT
' {$STAMP BS2} ' {$PBASIC 2.5} RepeatNum VAR Nib FOR RepeatNum=1 TO 10
HIGH 15 PAUSE 1000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 3000 LOW 15 PAUSE 1000 NEXT
下载运行
脱机运行
• 关闭教学底板的电源 • 断开串口线 • 重新打开教学底板电源、
按一下复位键
• 观察LED的亮灭,检查 是否完成预定任务。
• 关闭教学底板的电源 (任何一个试验完成后)
复位 开关
电源开关
七、总结与讨论
完成工程任务的顺序
• 明确任务 • 分析任务 • 构思解决方案 • 安装硬件 • 编写程序 • 下载、运行、测试 • 总结与讨论
on
HIGH 15 PAUSE 1000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 3000 LOW 15 PAUSE 1000 RepeatNum= RepeatNum-1 LOOP END
off
0 1 2 3 4 5 6 7 8 9 10 11
三、构思解决方案
解决方案
开关
I/O口 470Ω
电源
MCU
接地 Vss
• Micro Control Unit 微控制器 • Input-Output Port 输入输出端口 • MCU能按顺序执行命令(程序)让I/O口按照规定
的时序输出电压。
程序
• 让指定的I/O口输出5V电压
• 延时1秒
• 让I/O口输出0V电压
off
0 1 2 3 4 5 6 7 8Baidu Nhomakorabea9 10 11
t/s
设置重复次数为10;
RepeatNum=10;
当重复次数大于0时重复执行下列命令: DO WHILE (RepeatNum>0)
让第15号I/O口输出5V电压 延时1秒 让第15号I/O口输出0V电压 延时1秒 让第15号I/O口输出5V电压 延时2秒 让第15号I/O口输出0V 延时1秒 让第15号I/O口输出5V 延时3秒 让第15号I/O口输出0V 延时1秒 重复次数减少1次 结束
结束
on
设置重复次数为10; 当重复次数大于0时重复执行下列命令:
让第15号I/O口输出5V电压 延时1秒 让第15号I/O口输出0V电压 延时1秒 让第15号I/O口输出5V电压 延时2秒 让第15号I/O口输出0V 延时1秒 让第15号I/O口输出5V 延时3秒 让第15号I/O口输出0V 延时1秒 重复次数减少1次 结束
• 构思解决方案
– 硬件与任务1相同 – 编写程序
重复执行下列命令10次: 让第15号I/O口输出5V电压 延时1秒 让第15号I/O口输出0V电压 延时1秒 让第15号I/O口输出5V电压 延时2秒 让第15号I/O口输出0V 延时1秒 让第15号I/O口输出5V 延时3秒 让第15号I/O口输出0V 延时1秒
GOTO Flash
This code causes pin 0 to go low for 100 ms, then high for 100 ms.
任务2
让LED按照规定的时序循环闪亮
on
off
0 1 2 3 4 5 6 7 8 9 10 11
t/s
重复10次
• 明确任务 • 分析任务
– 这个任务与任务1类似,可以在任务1的基础上 通过修改程序完成。
电源地 (0V)
Pin 22: RES
复位脚- 低电 平复位
Pin 21: VDD P15 整定的5V输 P14 入脚 P13 P12 P11 P10 P9 P8
外接电源插口 电源指示灯
串行接口
教学底板
5V 稳压器
三位开关
电机连接插座
电源和接地插座 I/O插座 面包板 复位开关
安装硬件 1、把Basic Stamp 2 插入教学底板上的24脚插座上,注意 BS2上的白色标志点与插座上的缺口相对应。
1 byte=8 bit。
• Basic Stamp 2 内共有32个字节的存储空间,其中只有28个字节可 以供我们的程序使用。为了节约存储空间,我们要根据变量的取值范 围告诉编译器这个变量需要多大的空间,即声明变量的类型。
• PBASIC语言把变量分为以下4种基本类型: Bit 可以用来存储0或者1 占用1bit Nib 可以用来存储0到15 占用4bit Byte可以用来存储0到255 占用8bit Word 可以用来存储0-65535 占用16bit
• 声明变量的语法:变量名 VAR 变量类型 RepeatNum VAR Nib
• 键入程序 • 保存到task2.bs2 • 下载运行 • 测试结果
' {$STAMP BS2} ' {$PBASIC 2.5} RepeatNum VAR Nib RepeatNum=10; DO WHILE (RepeatNum>0)
t/s
变量
Variable
RepeatNum=10;
DO WHILE (RepeatNum>0)
• 一个变量是程序中一 HIGH 15
个保存数据的地方, PAUSE 1000
对应MCU中一个存
储数据的地方,由编 辑器负责安排;
LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000
• 延时1秒
• 让I/O口输出5V电压
• 延时2秒
• 让I/O口输出0V 5V
• 结束
0V 0 1 2 3 4 5 t/s
四、安装硬件
Basic Stamp 2 MCU
电池盒 教学底板
电池
Basic Stamp 2 MCU
Pin 1: SOUT
在编程或者调试(DEBUG)时 传送串口数据
Pin 2: SIN
PAUSE delays the execution of the next program instruction for the specified number of milliseconds. For example:
Flash: LOW 0 PAUSE 100 HIGH 0 PAUSE 100
– 记住常用语句和语法; – 使用帮助。
LOW 15 PAUSE 1000 HIGH 15
PAUSE 2000
LOW 15
END
帮助按钮
Syntax: PAUSE Duration
• Function Pause the program (do nothing) for the specified Duration.
缺口
白色标志点
安装硬件 2、确认教学底板上的电源开关处在关闭位置(0),连接 电源。
电源开关
安装硬件
3、安装LED电路。
(1)LED阴极连接到电源和接 地插座上的Vss插孔;
(2)LED阳极连接到面包板;
(3)找出一只470Ω电阻,电 阻上的色环为黄-紫-黑-黑-棕;
(4)电阻的一端接到与LED阳 极相通的面包板插孔,另一端 连接到I/O插头上的P15插孔。
延时1秒 让第15号I/O口输出5V电压 延时2秒 让第15号I/O口输出0V 结束
程序是一系列 按照一定顺序 执行的命令。
讨论
• 什么是PBasic程序?
– 用PBasic语言书写的程序。
' {$STAMP BS2} ' {$PBASIC 2.5} HIGH 15
• 怎么看懂和编写PBasic程序? PAUSE 1000
470Ω P15
Vss
安装硬件
4、连接计算机,串口线一端连接到教学底板上的串行接口, 另一端连接到PC机上的COM口插座。
安装硬件
5、检查 、测试硬件连接。
(1)检查电源连接。打开教学底板上的电源开关(1), 电源指示灯应点亮。
(2)检查与PC机之间的通讯。
• 打开Basic Stamp 编辑器 – 第一次打开编辑器时,编辑器会询问几个问题, 只需点击OK按钮
• 使用菜单选项RunIdentify 或者直接点击ID 按钮
• COM口连接确认框应当如下图所示:
• 如果四个栏目中有任何一个的显示内容与 上图不同,都说明连接有问题,需要检查 连接。
五、编写程序
编写PBasic程序
• 让第15号I/O口输出5V电压 • HIGH 15
• 延时1秒
• PAUSE 1000
相关文档
最新文档