教师培训第2课知识点介绍与应用上_第1页
教师培训第2课知识点介绍与应用上_第2页
教师培训第2课知识点介绍与应用上_第3页
教师培训第2课知识点介绍与应用上_第4页
教师培训第2课知识点介绍与应用上_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

RROsmin

eplatOBOTERRABOTERRA

is

an

educational

robotics

company

with

leading

R&D

capacity

inart

device

design,

cognitive

sciences,

user

experience

design

and

gamificationducation.

The

company

develops

proprietary

robotics

kits

and

also

cloud

form

with

gamified

contents

for

learning.萝卜太辣教师培训Welcome

toRoboterra!ROBOTERRA(萝卜太辣)出品CastleRock使用CastleRock

开发环境四个组成部分挑战窗口程序编辑器事件监视器虚拟机器人1243CastleRock

IDE第一部分:挑战窗口Challenge–

详细介绍了每个挑战的内容CastleRock

IDE第二部分:

程序编辑器上传图标#include

“ROBOTERRA.h”void

attachRoboTerraElectronics()void

handleRoboTerraEvent()CastleRock

IDE第三部分:事件监视器–

事件列表CastleRock

IDE第四部分:虚拟机器人将不同的传感器和执行器连接到控制器ROBOCORE传感器和执行器的状态将会在虚拟机器人框里显示ROBOTERRA•在第一课萝卜太辣机器人课程介绍中,我们讲解了软件

CastleRock的使用,在进行知识点讲解前,请大家先完成我们

CastleRock中的Challenge

0-5原件类型 对象名字RoboTerraRoboCore

jerryCastleRock

IDE命名须知:原件类型

名字RoboTerraLED

redleft

bottom

controlbuttonleftbottomcontrolbuttonLeftBottomControlButton命名风格:普通青年型:根据元件类型以及功能或安装位置,尽量使用完整的名称进行命名leftServo,左侧舵机rightServo右侧舵机switchButton开关键modeButton模式键优点:所有元件的类型,作用,位置都一目了然,对整个机器人的纠错或者改造非常方便。缺点:会花费很长时间在输入这些很长的名字上,输代码的效率很低。文艺青年型:通过各种符合自己认知规则的简写来命名ls

rs左侧舵机 右侧舵机sb开关键mb模式键优点:不用花费很多时间在输入名字上,编写效率高缺点:只有写程序的人自己能看懂,其他人看的时候可能一时间看不懂这些缩写的含义。欢乐青年型:只用有趣的方式命名,也许没有任何规律,也许只有自己才懂得规律Jerry左侧舵机andy右侧舵机jackie开关键panda模式键优点:可以起一些欢乐、炫酷的名字缺点:即不容易辨识,也没有效率指派接口格式:芯片名.attach(元件名,接口名);tom.attach(button,

DIO_1);知识点介绍与应用1.基础语句介绍If语句C++数据类型及运算符2.事件驱动编程水瓶在不在视线中?握住水瓶(增大握力)水瓶握紧了么?倒水杯子里装满水了么?结束使用视觉传感器找到水瓶否是否是否是1.1

If语句开始1.基础语句介绍程序框图程序框图主要组成部分开始整个流程的开始结束整个流程的结束执行需要完成的操作开始结束倒水1.1

If语句程序框图主要组成部分判断是/否程序中的if语句水瓶在不在视线中?握住杯子(增加握力)使用视觉传感器找杯子否是1.1

If语句判断条件if语句:if(判断条件){//如果判断条件为真,执行代码}1.1

If语句判断条件if语句:在“()”中的判断“{}”表示if判断结构的开始和结束1.1

If语句判断条件else语句:if(判断调件){//如果判断条件为真,执行代码}else{//如果判断条件为假,执行代码}1.1

If语句判断条件else语句:不需要给else一个条件,因为它的条件就是if判断的相反方面1.1

If语句判断条件else

if语句:if(判断条件1){//如果判断条件1为真,执行代码}else

if(判断条件2){//如果判断条件1为假,判断条件2为真,执行代码}1.1

If语句判断条件else

if语句:if

vs.

else

ifelse

if

只能在if之后if

和elseif

后要执行的语句分别在不同的“{}”中1.1

If语句else

if

V.S.

else相同点:只能在“if”语句之后使用整体结构的开始和结束用“{}”表示不同点:Else

if

有新的条件进行判断1.1

If语句if,else

if,else

的不同组合ifif

+

else

ifif

+

elseif

+

else

if

+

elseif

+

if

+

if

+

if

+…1.1

If语句完成Challenge

6-7为这两个挑战中位于第三步的语句画出程序框图1.2.1

数据类型1.2.2

运算符1.2

C++数据类型及运算符1.2.1

数据类型整型int:固定范围内的整数(-32768-32767)布尔型bool:真(1)or假(0)示例-定义变量:

int

a=0; int

a,b;整型int布尔型bool类型整数真或假范围-32768

to327671

or

0变量是指一个数据的储存位置,以及这个位置所对应的符号名称。变量对应的数据是指存放在变量中的那个数据例如:变量:数据:a127127变量我们使用不同数据类型的变量去记录我们所需的数据变量vs数据:数据可以直接进行操作变量代表是数据的位置,我们操作的是变量中记录的数据例如两个变量的加法,其实我们操作的是两个变量对应的两个数据:a

+

b

:a

b127

+

1231.2.2

运算符赋值运算符比较运算符算数运算符赋值运算符•

=例子:int

a

=

0;int

b;b

=a;是赋值不是等于号!!比较运算符常用的比较运算符:==:等于>:大于<:小于注意:==and

=!!!==为判断,=为赋值算数运算符运算符含义加减乘除算数运算符取余运算符:%常用于:判断奇数If

(x%2==1){}//除2余1判断偶数If

(x%2==0){}//除2余0逻辑运算符三种运算符:&&:

与||:

或!:

非&&0(假)1(真)0(假)001(真)01||0(假)1(真)0(假)011(真)11!0(假)11(真)0为什么使用事件驱动编程?事件驱动编程开关 声音光其他…开关声音光其他…事件驱动编程背景知识:事件驱动编程:一种编程方式容易理清编程逻辑事件驱动编程背景知识:事件驱动编程-事件监视器:显示事件历史记录现实生活中…事件驱动编程EVENT.getData()事件驱动编程如何辨认/提取事件中的信息EVENT.isType(eventType)Type:BUTTON_PRESSEVENT.isFrom(eventSource)Source:myButtonData:

1事件驱动编程类比代码:通过程序的结构结合自然的语言,写出来的外形接近真实代码的程序流程.你可以为机器人编写如何处理收到的每一个事件的代码,去控制机器人的行动。我们的事件监视器可以帮助你监控机器人收到的所有事件。类比代码:如果(开关按下){红色LED灯点亮}如果(开关松开){红色LED灯熄灭}事件驱动编程更复杂的逻辑void

initializeRoboTerraRobot()

{if

(EVENT.isType(BUTTON_PRESS))

{if(EVENT.isFrom(jerry)){andy.turnOn();}}else

if

(EVENT.isType(BUTTON_RELEASE))

{if(EVENT.isFrom(jerry)){andy.turnOff();}}}jerryjackievoid

initializeRoboTerraRobot()

{if

(EVENT.isType(BUTTON_PRESS)

&&

EVENT.isFrom(jerry)

){andy.turnOn();}else

if

(EVENT.isType(BUTTON_RELEASE)&&

EVENT.isFrom(jerry))

{andy.turnOff();}}更复杂的逻辑

jerry

jackie事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}Type:BUTTON_RELEASESource:myButtonData:

1Type:BUTTON_PRESSSource:myButtonData:

1事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}Type:BUTTON_PRESSSource:myButtonData:

1Type:BUTTON_RELEASESource:myButtonData:

1事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}Type:BUTTON_PRESSSource:myButtonData:

1Type:BUTTON_RELEASESource:myButtonData:

1事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}Type:BUTTON_RELEASESource:myButtonData:

1事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}Type:BUTTON_RELEASESource:myButtonData:

1事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(EVENT.isType(BUTTON_RELEASE)){red.turnOff();}Type:BUTTON_RELEASESource:myButtonData:

1事件驱动编程–真实代码的执行过程if(EVENT.isType(BUTTON_PRESS))

{red.turnOn();}else

if(E

温馨提示

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

最新文档

评论

0/150

提交评论