【文档说明】工程设计实践最新课件.pptx,共(117)页,14.507 MB,由精品优选上传
转载请保留链接:https://www.ichengzhen.cn/view-290665.html
以下为本文档部分文字说明:
第一节微控制器(MCU)基础1任务1让LED按照规定的时序闪亮021435t/sonoff2完成任务的步骤•明确任务•分析任务•构思解决方案•安装硬件•编写程序•下载、运行、测试•总结与讨论3一、明确任务4LED•Light
EmittingDiode发光二极管–A阳极(比较长的那根管脚)–K阴极(比较短的那根管脚)–下面的电路可以使LED发光AKAK470欧姆5伏470Ω5V接地电势零点5二、分析任务•本任务要求LED按照如下的时序图闪亮•实际上是要求V
a按照如下的时序变化021435t/s5V0V021435t/sonoff470ΩVa6三、构思解决方案7解决方案•MicroControlUnit微控制器•Input-OutputPort输入输出端口•MCU能按顺序
执行命令(程序)让I/O口按照规定的时序输出电压。470Ω接地VssI/O口电源MCU开关8程序•让指定的I/O口输出5V电压•延时1秒•让I/O口输出0V电压•延时1秒•让I/O口输出5V电压•延时2秒•让I/O口输出0V•结束021435t/s5V0V9四、安
装硬件10教学底板BasicStamp2MCU电池盒电池11Pin1:SOUT在编程或者调试(DEBUG)时传送串口数据Pin2:SIN在编程时接收串口数据Pin3:ATN连接到串口DTR(数据终端准备)信号线通知可以给Stamps编程了Pin4:
VSS信号地(0V).P0P1P2P3P4P5P6P7P8P9P10P11P12P13P14P15Pins5-20:通用输入/输出(I/O)脚P0到脚P15Pin21:VDD整定的5V输入脚Pin22:RES复位脚-低电平复位Pin23:VSS
电源地(0V)Pin24:VIN直流电源输入(5.5-15V)BasicStamp2MCU12教学底板面包板电机连接插座5V稳压器外接电源插口串行接口三位开关复位开关电源指示灯I/O插座电源和接地插座13安装硬件1、把BasicStamp
2插入教学底板上的24脚插座上,注意BS2上的白色标志点与插座上的缺口相对应。白色标志点缺口14安装硬件2、确认教学底板上的电源开关处在关闭位置(0),连接电源。电源开关15安装硬件3、安装LED电路。(1)LED阴极连接到电源和接地插座上的Vss插
孔;(2)LED阳极连接到面包板;(3)找出一只470Ω电阻,电阻上的色环为黄-紫-棕;(4)电阻的一端接到与LED阳极相通的面包板插孔,另一端连接到I/O插头上的P15插孔。470ΩP15Vss16安装硬件4、连接计算机,串口线
一端连接到教学底板上的串行接口,另一端连接到PC机上的COM口插座。17安装硬件5、检查、测试硬件连接。(1)检查电源连接。打开教学底板上的电源开关(1),电源指示灯应点亮。(2)检查与PC机之间的通讯。•打开BasicStamp编
辑器–第一次打开编辑器时,编辑器会询问几个问题,只需点击OK按钮•使用菜单选项Run→Identify或者直接点击ID按钮18•COM口连接确认框应当如下图所示:•如果四个栏目中有任何一个的显示内容与上图不同,都说明连接有问题,需要检查连接。19五、编
写程序20编写PBasic程序•让第15号I/O口输出5V电压•延时1秒•让第15号I/O口输出0V电压•延时1秒•让第15号I/O口输出5V电压•延时2秒•让第15号I/O口输出0V结束021435t/s5V0V•HIGH15•PAUSE1000•LOW15•PAUSE1000•
HIGH15•PAUSE2000•LOW15•END21把程序键入到编辑器22添加必要的说明语句'{$STAMPBS2}'{$PBASIC2.5}HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15END23保存到你自己的文件
夹•文件名:Task1.bs2•文件夹:24六、下载运行测试25下载运行26脱机运行•关闭教学底板的电源•断开串口线•重新打开教学底板电源、按一下复位键•观察LED的亮灭,检查是否完成预定任务。•关闭教学底板的电源(任何一个试验完成后)电源开关复位开关27七、总结与讨论28
完成工程任务的顺序•明确任务•分析任务•构思解决方案•安装硬件•编写程序•下载、运行、测试•总结与讨论29讨论•在上述过程中,PC机和BASICStamp软件的作用是什么?–A)控制MCU执行程序,按照时序输出5V或0V电压。–B
)提供一个编写程序的平台,并把程序翻译成MCU能执行的代码下载给MCU,由MCU独立运行。X√编译环境30讨论•什么是程序?让第15号I/O口输出5V电压延时1秒让第15号I/O口输出0V电压延时1秒让第15
号I/O口输出5V电压延时2秒让第15号I/O口输出0V结束程序是一系列按照一定顺序执行的命令。31讨论•什么是PBasic程序?–用PBasic语言书写的程序。•怎么看懂和编写PBasic程序?–记住常用语句和语法;–使用帮助。'{$STAMPBS2
}'{$PBASIC2.5}HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15END帮助按钮3233Syntax:PAUSEDuration•FunctionPausetheprogram(donothing)forthespecifiedD
uration.•Durationisavariable/constant/expression*(0-65535)thatspecifiesthedurationofthepause.Theunitoftimef
orDurationisonemillisecond.34ExplanationPAUSEdelaystheexecutionofthenextprograminstructionforthespecif
iednumberofmilliseconds.Forexample:Flash:LOW0PAUSE100HIGH0PAUSE100GOTOFlashThiscodecausespin0togolow
for100msthenhighfor100ms35任务2让LED按照规定的时序循环闪亮021435t/sonoff68710911重复10次36•明确任务•分析任务–这个任务与任务1类似,可以在任务1的基础上通过修改程序完成。•构思解决方案–硬件与任务1相同–编写程序37重
复执行下列命令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秒结束021435t/sonoff68710911设置重复次数为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次结束38021435t/sonoff68710911设置重复次数为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次结束RepeatNum=10;DOWHILE(R
epeatNum>0)HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000RepeatNum=RepeatNum-1LOOPEND39
RepeatNum=10;DOWHILE(RepeatNum>0)HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE
3000LOW15PAUSE1000RepeatNum=RepeatNum-1LOOPEND变量Variable•一个变量是程序中一个保存数据的地方,对应MCU中一个存储数据的地方,由编辑器负责安排;•每个变量都有自己的名字,我们要在程序的前面声明这个变量,也就是告诉编辑器我们的程序要
使用这样一个变量;40变量的类型•每个变量都在MCU中占用一个存储数据的空间,空间的大小是用bit(比特)或者byte(字节)为单位的。1byte=8bit。•BasicStamp2内共有32个字节的存储空间,其中只有28个字节可以供我
们的程序使用。为了节约存储空间,我们要根据变量的取值范围告诉编译器这个变量需要多大的空间,即声明变量的类型。•PBASIC语言把变量分为以下4种基本类型:Bit可以用来存储0或者1占用1bitNib可以用来存储0到15占用4bitByte可以用来存储0到255
占用8bitWord可以用来存储0-65535占用16bit•声明变量的语法:变量名VAR变量类型RepeatNumVARNib41'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibRepeatNum=10;DOWHILE(RepeatNum>0)HIGH15PA
USE1000LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000RepeatNum=RepeatNum-1LOO
P•键入程序•保存到task2.bs2•下载运行•测试结果42改进方案•控制循环的其他方法'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibFORRepeatNum=1TO10HIGH15PAUSE100
0LOW15PAUSE1000HIGH15PAUSE2000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000NEXTEND43改进方案•简化程序的方法FORi=1TO3HIGH15PAUSE
i*1000LOW15PAUSE1000NEXT'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibFORRepeatNum=1TO10HIGH15PAUSE1000LOW15PAUSE1000HIGH15PAUSE2
000LOW15PAUSE1000HIGH15PAUSE3000LOW15PAUSE1000NEXTEND44改进方案•简化程序的方法'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNibiVARNibFORRepeatNum=1TO10FORi=1TO3HIG
H15PAUSEi*1000LOW15PAUSE1000NEXTNEXTEND45改进方案•添加注释'Task2byFeiYuenong'{$STAMPBS2}'{$PBASIC2.5}RepeatNumVARNib'NumberofrepeatiVARNibFORRepeatNum=1TO10
FORi=1TO3HIGH15'MakeP15output5VPAUSEi*1000'Waitforisecond(s)LOW15PAUSE1000NEXTNEXTEND46改进方案•添加常数'Task2byFeiYuenong'{$STAMPBS2}'{$PBASIC2.5}TimeUnitC
ON1000RepeatNumVARNib'NumberofrepeatiVARNibFORRepeatNum=1TO10FORi=1TO3HIGH15'MakeP15output5VPAUSEi*TimeUnit'WaitforiTimeUnit(s)LOW15PAUSETimeUnitNEXT
NEXTEND47调试方法•通过调试终端了解程序的运行状态–DEBUG'Task2byFeiYuenong'{$STAMPBS2}'{$PBASIC2.5}TimeUnitCON1000RepeatNumVARNib'NumberofrepeatiVARN
ibFORRepeatNum=1TO10DEBUG“RepeatNum=“,DECRepeatNum,CRFORi=1TO3HIGH15'MakeP15output5VPAUSEi*TimeUnit'Wai
tforiTimeUnit(s)LOW15PAUSETimeUnitNEXTNEXTEND48练习•让程序在完成第n次重复的时候在调试终端上显示“Repeatncompleted.”49下课前将实验设备整理好•关闭计算机•断
开串口线•断开教学底板的电源线•机器人套件的各个零部件放入实验箱•已经安装好的部分可以不拆开50移动机器人基础培训第三节双轮驱动机器人运动控制51任务使一个双轮独立驱动的机器人,具备以下功能:•直线前进一个给定的距离•直线后退一个给定的距离
•左转90度•右转90度52明确任务•对象:双轮独立驱动的机器人–结构特点–运动方式53车头视图54Documents\MyPictures\卫生间.jpgD:\MyDocuments\MyPictures\卫生间.jpgPic
tures\卫生间.jpgD:\MyDocuments\MyPictures\卫生间.jpg卫生间.jpg车尾视图55右侧视图负正56电机的旋转方向•正对输出轴观察•顺时针方向为负•逆时针方向为正右电机左电机左转右转前进后退负负正正负正正负57P12接左电机P13接右电
机注意白红黑三根线的方向按提示接58分析任务•机器人套件提供了必要的机械结构件、电动机和MCU,本任务可以分解为以下两个子任务:1)控制电动机的速度和方向2)调试机器人59子任务1控制电动机的速度和方向60任务分析•伺服电动机ParallaxServo61–电动机–减速箱
–驱动器–控制器伺服电动机ParallaxServo的内部结构62教学底板的右上角(面包板上方)提供了伺服电动机的接口63•控制信号的作用:1.3ms的控制脉冲序列使电机顺时针全速旋转,转速约为60RPM1.5ms的控制脉冲序列使
电机转速为零,可用调零电位器调零1.7ms的控制脉冲序列使电机逆时针全速旋转,转速约为60RPM1.5ms的控制脉冲序列使电机转速为零,可用调零电位器调零64•子任务1“控制电机的速度和方向”转化为让MCU输出一串具有
给定宽度的脉冲。•PULSOUTPin,Duration–Pinisavariable/constant/expression(0-15)thatspecifiestheI/Opintouse.–Durationisavariable/constant/expression(0-
65535)thatspecifiesthedurationofthepulse.TheunitoftimeforDurationis2μs.65试验验证•目的:验证上述电动机的控制方法•试验方法:–编程,让接在P12上的电动机连续顺时针全速转动(ServoP12CW.bs2)–
编程,让接在P13上的电动机连续逆时针全速转动(ServoP13CW.bs2)–调节参数在750左右,使得电机速度为零–改变前两个程序的参数,观察电机的速度变化66•试验步骤:–编写并保存程序DO…LOOP–把一个电动机连接到教学底板上的伺服电机插座(X5-12或13),注意电机连接
线的颜色与插座上标出的颜色一致–把教学底板上的电源开关拨到2的位置–下载运行程序,观察并记录电机的转动情况–改变程序的脉冲时间参数,观察并记录电67试验验证•试验记录:试验结论试验程序文件名脉冲时间参数电机行为描述68子任务2调试机器人使一个双轮独
立驱动的机器人,具备以下功能:•直线前进一个给定的距离•直线后退一个给定的距离69分析任务•确定速度与脉冲参数之间的关系•控制运行的时间70实验测定车轮转速•实验目的:测定车轮转速与脉冲参数之间的关系•实验方法:让电机以不同的参数运行一段时间,测量并记录车轮转过的圈数,计算转速。•实验步
骤:–重新调零,此次调零后不再调零–编写程序TestServoSpeed,让左右电机各转动6秒钟•实验电路•实验程序•实验程序说明–分别记录左右轮的转动圈数,填写实验记录•实验总结:用图表说明脉冲参数与车轮转速的关系71‘{$STAMPBS2}‘{$PBASIC2.5}count
erVARWordpulseWidthVARWordpulseWidthCompVARWordDODEBUG“Enterpulsewidth:“DEBUGINDECpulseWidthpulseWidthComp=1500-pulseWidt
hFORcounter=1TO244PULSOUT12,pulseWidthPULSOUT13,pulseWidthCompPAUSE20NEXT7273常用的绘图软件•Excel•Matlab•Ori
gin•Powerpoint74实验测定前进后退速度•实验目的:确定前进后退的距离与(时间)循环次数之间的关系。•实验方法:在给定脉冲参数和循环次数的条件下,测量前进或后退的距离。•实验步骤:–编写程序让机器人前行?秒钟(循环次数=?)–调整脉冲参数,保证直线
运动–测量并记录运动距离–改变循环次数,再次测量记录运动距离–验证:设置循环参数,让机器人前行30cm再后退30cm•实验总结:用表格和曲线汇总实验的结果75如何消除拨动开关带来的干扰?FREQOUT4,1000
,3000(循环前面加这个语句)在P4口输出一个3000Hz的方波,持续1000ms76第一阶段作业要求•电机测试报告–评分标准:测试目的、原理、方法、步骤描述清楚、有条理,测试数据翔实,测试结果表述清楚。•机器人装配说明书–评分标准:装配关系正确、装配顺序合理、能正确运用文
字说明和装配示意图表达装配关系和装配顺序。•提交时间•提交地点:科技楼P10277实验确定原地转动的角度和参数的关系78总任务:光敏电阻进行导航•找到房间中点燃的蜡烛79•任务一:搭建和测试光敏电阻电路•任
务二:从你的光敏电阻获得更多信息•任务三:测试传感器对手电筒光束的响应•任务四:使光敏电阻感受确定方向的光•任务五:确定室内有没有点燃的蜡烛•任务六:向光源移动80任务一:搭建和测试光敏电阻电路•光敏电阻(LDRLightDependentResistor).由硫化鎘所組成(CdS),光電阻的
電阻值與光的照度成反比,也就是黑暗時形成較大的電阻,明亮時造成較小的電阻。81元件清单1.光敏电阻2.2KΩ(红-黑-黑-棕-棕)3.220Ω(红-红-黑-黑-棕)82搭建感光眼光探测电路原理图83•BASICStampI/O端可以作为输入端也可作為输出端。若作為输出端,可以输出高
(5V)与低(0V)的信号,如此一來就可以作为LED线路的开关、控制伺服电机或是传送信号至扬声器•BASICStampI/O端也可作为输入端。作为输入端時,对连接的线路不提供任何电压,仅是静静的接收,对线路不产生任何影响84光敏探测电路的接线图85⚫如果光特别
亮,电阻值R非常小⚫如果是在完全黑暗的环境中,电阻值R接近50Kω⚫当R增大时,Vo会减小⚫当R减小时,Vo会增大⚫Vo小于1.4V,寄存器的电压为0⚫Vo大于1.4V,寄存器的电压为186•'{$STAMPBS2}
'Stampdiredtive.•'{$PBASIC2.5}'PBASICdirective.•DEBUG"PHOTORESISITORSTATES",CR•"LeftRight",CR,•"---------------------------------"•DO•DEBUGCRSRXY,
0,3,•"P6=",BIN1IN6,•"P3=",BIN1IN3•PAUSE100•LOOP87任务二:从你的光敏电阻获得更多信息•通过该电路监测并收集足够的信息以确定相对光强•小值表明光比较强,大值表明光比较弱88电容器介绍•电容是存储电荷的器件,它是电路的基
本元件。•单位:法拉•本项目:0.01微法89清单•(1)光敏电阻(CDS)•(2)0.01微法(103)电容•(3)220Ω电阻(红-红-黑-黑-棕)•(4)跳线90两个光敏RC电路示意图91接线图92RC衰减时间和光敏电阻电路•电容可看
作一个微小的可充电电池•当P6发送一个高电平信号时,实质上是用5v加在电容上充电。几个毫秒后,电容的电压几乎达到5v•如果BASICStamp程序改变I/O端口是端口仅仅检测电压,电容就通过光敏电阻放电。•IN6感到电压降到1.4v所用的时间取决于光敏电阻阻止电容
提供的电流流动能力的大小。•光敏电阻的阻值阻抗大,电容就需要更长的放电时间93用BASICStamp测量RC衰减时间•可以编程使BASICStamp给电容充电然后测量电容电压衰减到1.4v所用的时间,它可以用来表征光敏电阻的阻值。94RCTIME
•RCTIMEPIN,State,Duration•State可以是1也可以是0:如果通过电容两端的电压从高于1.4v向下衰减,参数为1,反之为0,•Duration是存贮测量的时间的变量,单位是2微秒,测量电容的电压衰退到低于1
.4V所需要的時間95•测量RC衰减时间之前,要做的第一件事是确保已经定义一个存储测量时间的变量。•timeLeftVarWord96下面三行代码是给电容充电,测量RC衰减时间并存储在timeLeft变量中•HIGH6–PAUSE3•RCTIME6,1,timeLe
ft97•'{$STAMPBS2}•'{$PBASIC2.5}•timeLeftVARWord'Variabledeclarations.•timeRightVARWord•DEBUG“timeLefttimeRight”,•“…….....
.”•DO'Mainroutine.•HIGH6'LeftRCtimemeasurement.•PAUSE3•RCTIME6,1,timeLeft•HIGH3'RightRCtimemeasurement.•PAUSE3•
RCTIME3,1,timeRight•DEBUGCRSRXY,0,3,'Displaymeasurements.•DEC5timeLeft,•"",•DEC5timeRight•PAUSE10098任务三:测试传感器对手
电筒光束的响应•打开手电筒,将光束聚焦在机器人前方。•此时测量的时间值应该明显的低于第一次设置的值。•在没有手电筒光源的时间测量值(环境光)99100101任务四:使光敏电阻感受确定方向的光•光敏电阻加套筒•注意:要求左中右放电时间基本相同102任务五:确定室内有没有点燃的蜡烛•先测量比赛场地内没
有蜡烛时,左中右光敏电阻的放电时间的平均值,•在测量比赛场地内有点燃蜡烛时,左中右光敏电阻的放电时间的平均值•注意verageVarword103任务六:向光源移动•策略:两个光敏电阻的路线图三个光敏电阻的路线图104两个光敏电阻程序•IF(timeLeft>timeRight)THEN'Tur
nright.•PULSOUT13,850•PULSOUT12,850•Pause20•ELSEIF(timeRight>timeLeft)THEN'Turnleft.•PULSOUT13,650•PULSOUT12,650•Pause20•
ELSE'Goforward.•PULSOUT13,850•PULSOUT12,650•Pause20105使机器人在特定的光线条件下转弯之前有机会使用足够多的向前脉•IF(timeLeft>timeRight+15)THEN'Turnright.•PULSOUT13,850•
PULSOUT12,850•Pause20•ELSEIF(timeRight>timeLeft+15)•PULSOUT13,650•PULSOUT12,650•Pause20•ELSE'Goforward•PULSOUT13,850•
PULSOUT12,650•Pause20•ENDIF106缺点•只能工作在中等黑暗的环境•如果将它拿到相当暗的地方,Boe-Bot机器人不断的来回旋转,永远不会向前行走。如果将它拿到更亮的地方,Boe-Bot机器人只会向前运动,而不会调整向左或向右的方向。107为什么??•当机器人
处在房子的黑暗部分时,每个光敏电阻的测量值会大一些。机器人决定转向亮光源时,两个测量结果之间的差别会较大•当机器人处在更亮一点的地方时,每个光敏电阻的测量值会小一点,机器人决定做一个转动时,两个测量结果之间的差别会比在黑暗的地方小108•使小车对不同的光线条件产生不同的响应的方
法是设定一个变量,即timeRight和timeLeft的平均值的分数。这样的话,无论外界光线强弱,值总是正确的。•这样的话,无论外界光线强弱,值总是正确的109•average=(timeRight+timeLeft)/2•di
fference=average/3110•变量difference可以被用在IF…THEN声明中,当光线弱时,它的值大,当光线强时它的值就小111•IF(timeleft>timeRight+difference)then•PULSOUT13,650•PULSOUT12,650•Pause2
0•ELSEIF(timeRight>timeLeft+difference)then•PULSOUT13,650•PULSOUT12,650•Pause20•ELSE'Goforward.•PULSOUT13,850•PULSO
UT12,650•Pause20•ENDIF•见程序RoamingTowarTheLight112三光敏电阻程序113114115工作记录•时间事件参加人员具体内容或结果•时间事件参加人员具体内容或结果•。。。。116•比赛过程:–2:00pm公布比赛方法和要求–2:10pm分组–2:20pm
小组讨论会(分析任务、制定方案、分工、明确每个人的具体工作目标)–2:40pm小组工作、场地开放–3:40pm开始比赛–4:20pm小组总结会,整理工作记录、互评/自评–4:45pm提交工作记录和互评/自评表117