移动机器人基础培训
• 声明变量的语法:变量名 VAR 变量类型 RepeatNum VAR Nib
• 键入程序 •Biblioteka 保存到task2.bs2 • 下载运行 • 测试结果
' {$STAMP BS2} ' {$PBASIC 2.5} RepeatNum VAR Nib RepeatNum=10; DO WHILE (RepeatNum>0)
• 延时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
讨论
• 在上述过程中,PC机和BASIC Stamp软件 的作用是什么?
X – A)控制MCU执行程序,按照时序输出5V或0V 电压。
√– B)提供一个编写程序的平台,并把程序翻译 成MCU能执行的代码下载给MCU,由MCU独 立运行。
编译环境
讨论
• 什么是程序?
让第15号I/O口输出5V电压 延时1秒 让第15号I/O口输出0V电压
结束
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次 结束
– 记住常用语句和语法; – 使用帮助。
LOW 15 PAUSE 1000 HIGH 15
PAUSE 2000
LOW 15
END
帮助按钮
Syntax: PAUSE Duration
• Function Pause the program (do nothing) for the specified Duration.
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
• 让第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
把程序键入到编辑器
在编程时接收串口数据
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
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
改进方案
• 控制循环的其他方法
改进方案
• 简化程序的方法
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
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的基础上 通过修改程序完成。
缺口
白色标志点
安装硬件 2、确认教学底板上的电源开关处在关闭位置(0),连接 电源。
电源开关
安装硬件
3、安装LED电路。
(1)LED阴极连接到电源和接 地插座上的Vss插孔;
(2)LED阳极连接到面包板;
(3)找出一只470Ω电阻,电 阻上的色环为黄-紫-黑-黑-棕;
(4)电阻的一端接到与LED阳 极相通的面包板插孔,另一端 连接到I/O插头上的P15插孔。
下载运行
脱机运行
• 关闭教学底板的电源 • 断开串口线 • 重新打开教学底板电源、
按一下复位键
• 观察LED的亮灭,检查 是否完成预定任务。
• 关闭教学底板的电源 (任何一个试验完成后)
复位 开关
电源开关
七、总结与讨论
完成工程任务的顺序
• 明确任务 • 分析任务 • 构思解决方案 • 安装硬件 • 编写程序 • 下载、运行、测试 • 总结与讨论
t/s
变量
Variable
RepeatNum=10;
DO WHILE (RepeatNum>0)
• 一个变量是程序中一 HIGH 15
个保存数据的地方, PAUSE 1000
对应MCU中一个存
储数据的地方,由编 辑器负责安排;
LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000
电源地 (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上的白色标志点与插座上的缺口相对应。
• 每个变量都有自己的 名字,我们要在程序
LOW 15 PAUSE 1000 HIGH 15
的前面声明这个变量, PAUSE 3000
也就是告诉编辑器我 们的程序要使用这样
LOW 15 PAUSE 1000 RepeatNum= RepeatNum-1
一个变量;
LOOP
END
变量的类型
• 每个变量都在MCU中占用一个存储数据的空间,空间的大小是用bit (比特)或者byte(字节)为单位的。
移动机器人基础培训
第一节 微控制器(MCU)基础
任务1
让LED按照规定的时序闪亮
on off
0 1 2 3 4 5 t/s
完成任务的步骤
• 明确任务 • 分析任务 • 构思解决方案 • 安装硬件 • 编写程序 • 下载、运行、测试 • 总结与讨论
一、明确任务
LED
• Light Emitting Diode 发光二极管
• 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
添加必要的 说明语句
' {$STAMP BS2} ' {$PBASIC 2.5} HIGH 15 PAUSE 1000 LOW 15 PAUSE 1000 HIGH 15 PAUSE 2000 LOW 15 END
保存到你自己的文件夹
• 文件名:Task1.bs2 • 文件夹:
六、下载运行测试
三、构思解决方案
解决方案
开关
I/O口 470Ω
电源
MCU
接地 Vss
• Micro Control Unit 微控制器 • Input-Output Port 输入输出端口 • MCU能按顺序执行命令(程序)让I/O口按照规定
的时序输出电压。
程序
• 让指定的I/O口输出5V电压
• 延时1秒
• 让I/O口输出0V电压
• 构思解决方案
– 硬件与任务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秒
off
0 1 2 3 4 5 6 7 8 9 10 11
t/s
设置重复次数为10;