用户工具

站点工具


scratchob_ble05eduof

MASTER EDU主控离线模式

事件


  • 当Arduino启动

功能:本主控为Arduino兼容硬件。每个项目都需要加载本条指令,用于程序启动时调用Arduino的固件函数库
语法:#include <Arduino.h>

控制


  • 等待(1)秒

功能:使程序暂定设定的时间(单位秒)。一秒等于1000毫秒,也可以输入0.1,表示100ms。
语法:delay(1 * 1000);


  • 重复执行(10)次

功能:for语句用于重复执行一段在花括号之内的代码。通常使用一个增量计数器计数并终止循环。for语句用于重复性的操作非常有效,通常与数组结合起来使用来操作数据、引脚。
语法: for (int index = 0; index < 10; index++) {};


  • 重复执行

功能:void用来声明一个函数,该函数不会返回任何数据。模块内的全部代码会无限重复执行。
语法:void loop() {};
备注:如果不调用此模块,则全部代码都会出现在void setup()的{}里面,所有代码只会执行一次。


  • 如果<>那么…

功能:if 语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。
语法:if (false) {};


  • 如果<>那么…否则…

功能:if/else是比if更为高级的流程控制语句,它可以进行多次条件测试。比如,检测模拟输入的值,当它小于500时该执行哪些操作,大于或等于500时执行另外的操作。
语法:if (false) {} else{};


  • 等待<>

功能:while循环会无限的循环,直到括号内的判断语句变为假。必须要有能改变判断语句的东西,要不然while循环将永远不会结束。这在您的代码表现为一个递增的变量,或一个外部条件,如传感器的返回值。
语法:while (!false) {};


  • 重复执行直到<>

功能:while循环会无限的循环,直到括号内的判断语句变为假。必须要有能改变判断语句的东西,要不然while循环将永远不会结束。这在您的代码表现为一个递增的变量,或一个外部条件,如传感器的返回值。
语法:while (!false) {};
备注:代码层和指令等待<>是一样的,只不过这里可以嵌套更多的指令

运算


  • ( 0 ) + ( 0 )

功能:将括号内的两个数相加
语法:(0 + 0);


  • ( 0 ) - ( 0 )

功能:将括号内的两个数相减
语法:(0 - 0);


  • ( 0 ) * ( 0 )

功能:将括号内的两个数相乘
语法:(0 * 0);


  • ( 0 ) / ( 0 )

功能:将括号内的两个数相除
语法:(0 / 0);


  • 在( 1 ) 和 ( 10 ) 之间取随机数

功能:使用random()函数将生成介于1到10之间的随机数。
语法:random(1, 10);


  • ( ) > ( 50 )

功能:判断输入值是否大于特定值。比较运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 > 50);


  • ( ) < ( 50 )

功能:判断输入值是否小于特定值。比较运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 < 50);


  • ( ) = ( 50 )

功能:判断输入值是否等于特定值。比较运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 == 50);


  • < > 与 < >

功能:只有两个运算对象为“真”,才为“真”。逻辑运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 && 0);


  • < > 或 < >

功能:只要一个运算对象为“真”,就为“真”。逻辑运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(0 || 0);


  • < > 不成立

功能:如果运算对象为“假”,则为“真”。逻辑运算符常与if 语句配合一起用于检测某个条件是否达成。
语法:(!false);


  • 连接(苹果)和(香蕉)

功能:将两个字符串合并到一起
语法:(String(“苹果”) + String(“香蕉”);


  • (苹果)的第(1)个字符

功能:输出当前字符串中的第N个字符
语法:(String(“苹果”).charAt(0);


  • (苹果)的字符数

功能:输出当前字符串的长度。
语法:(String(“苹果”).length();


  • (苹果)包含(果)?

功能:判断当前字符串内是否包含特定字符,常与if 语句配合一起用于检测某个条件是否达成。
语法:(String(“苹果”).indexOf(String(“果”));


  • (0)除以(0)的余数

功能:一个整数除以另一个数,其余数称为模。它有助于保持一个变量在一个特定的范围(例如数组的大小)。
语法:(0 % 0);


  • 四舍五入(0)

功能:计算接近于给定参数的整数值。
语法:(round(0);


  • 绝对值(0)

功能:计算一个数的绝对值,此功能包含更多数学指令,详见下拉菜单中的选项。
语法:(abs(0));

变量


  • 建立一个变量

功能:建立一个类型为浮点数的变量,其名称为XXX。变量可以用于监控,非常方便。
语法:float XXX ;


  • 建立一个列表

功能:Arduino代码生成器暂不支持此功能。
语法:暂无

自制积木


  • 制作新的积木

功能:void用来声明一个函数,该函数不会返回任何数据。函数可以添加各种不同输入项。
语法:void _函数名称() {};

串口


  • 串口启动波特率[9600]

功能:用于控制板和一台计算机或主控制器之间的通信。串口又称作为UART或USART。它通过0(RX)和1(TX)数字引脚经过串口转换芯片连接计算机USB端口与计算机进行通信。因此,如果你使用这些功能的同时你不能使用引脚0和1作为输入或输出。

本软件内置的串口监视器可与主控制器通信。监视器窗口在操作界面的右下角,可以点击小扳手图标进行特殊配置。需要在弹出菜单中的波特率选项中,设置与调用begin()函数相同的波特率。

将串行数据传输速率设置为位/秒(波特)。与计算机进行通信时,常用的波特率:9600,57600或115200。当然,您也可以指定其他波特率。本指令通常放在loop循环指令上面,只需要运行一次即可。
语法:Serial.begin(9600);


  • 串口打印(Hello OpenBlock)换行

选项:换行、不换行
功能:打印数据到串行端口,输出人们可识别的ASCII码文本并回车 (ASCII 13, 或 '\r') 及换行(ASCII 10, 或 '\n')。此命令采用的形式与Serial.print ()相同 。
语法:Serial.println(“Hello OpenBlock”);


  • (串口可读取字节数)

功能:获取从串口读取有效的字节数(字符)。这是已经传输到,并存储在串行接收缓冲区(能够存储64个字节)的数据。 available()继承了 Stream类。
语法:Serial.available();


  • (串口读取数据)

功能:读取传入的串口的数据。read() 继承自 Stream 类。
语法:Serial.read();

数据


  • (映射( 50 )从( 1 , 100 )到( 1 ,1000 ))

功能:将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。

不限制值的范围,因为范围外的值有时是刻意的和有用的。如果需要限制的范围, constrain() 函数可以用于此函数之前或之后。

注意,两个范围中的“下限”可以比“上限”更大或者更小,因此 map() 函数可以用来翻转数值的范围。
语法:map(50, 1, 100, 1, 1000);


  • (约束( 50 )介于( 1 , 1000 ))

功能:将一个数约束在一个范围内。
语法:constrain(50, 1, 100);


  • (转换( 123 )为[整数])

选项:整数、小数、字符串
功能:将当前数值转换为整数、小数或者字符串。
语法:String(“123”).toInt();


  • (转换(97)为ASC2字符)

功能:将一个变量的类型变为ASC2字符。
语法:String(char(97);


  • (转换(a)为ASC2编码)

功能:将一个变量的类型变为ASC2编码。
语法:toascii(String(“a”)[0]);

基础

基础为主控制器常用的硬件指令


  • 设置引脚[3]模式为[输入]

功能:将指定的引脚配置成输入、输出或者输入上拉。其中输入上拉属于高级功能,用户在不熟悉硬件原理的情况下应谨慎使用。
语法:pinMode(3, INPUT);


  • 设置引脚[3]输出为[高]

功能:给一个数字引脚写入HIGH或者LOW。
如果一个引脚已经使用pinMode()配置为OUTPUT模式,其电压将被设置为相应的值,HIGH为5V,LOW为0V。

如果引脚配置为INPUT模式,使用digitalWrite()写入HIGH值,将使内部20K上拉电阻(详见数字引脚教程)。写入LOW将会禁用上拉。上拉电阻可以点亮一个LED让其微微亮,如果LED工作,但是亮度很低,可能是因为这个原因引起的。补救的办法是 使用pinMode()函数设置为输出引脚。
语法:digitalWrite(3, HIGH);


  • 设置端口[A]脉冲为(255)

功能:从一个端口输出模拟值(PWM),此端口会对应一个特定的引脚。可用于让LED以不同的亮度点亮或驱动电机以不同的速度旋转。analogWrite()输出结束后,该引脚将产生一个稳定的特殊占空比方波,直到下次调用analogWrite()(或在同一引脚调用digitalRead()或digitalWrite())。PWM信号的频率大约是490赫兹。

目前只有引脚3,5,6,9,10和11可以实现该功能。

analogWrite函数与模拟引脚、analogRead函数没有直接关系。
语法:analogWrite(3, 255);


  • 设置端口[A]舵机为(90)

功能:从一个端口输出模拟值(PWM),此端口会对应一个特定的引脚。可用于让舵机旋转到不同的角度。WM信号的频率大约是50赫兹。
此指令会首先用#include调用舵机库,声明舵机变量,绑定引脚,并写入特定角度到舵机(对应特定PWM)。

目前只有引脚3,5,6,9,10和11可以实现该功能。
语法:#include <Servo.h>Servo servo3;servo3.attach(3, 544, 2400);servo3.write(90);


  • 设置状态灯输出为[高]

说明:V1版本暂不支持此指令:!:
选项:高、低
功能:点亮或熄灭状态指示灯,状态灯对应硬件引脚为13。
语法:digitalWrite(13, HIGH);


  • 设置[绿灯]输出为[高]

说明:点亮或熄灭状态指示灯,状态灯对应硬件引脚为13。开机默认绿灯常亮(适用于硬件V2,OB版本2.3.6,V1无状态灯,V1版本暂不支持此指令)
选项1:绿灯、蓝灯
选项2:高、低


  • <读取引脚[3]数字量>

选项:3、5、6、9、10、11、A0、A1、A2、A3、A4、A5
功能:读取指定引脚的值,HIGH或LOW。
语法:digitalRead(3);


  • <当按钮[左]被按下>

说明1:V1版本为软件上拉(适用于OB版本2.3.5),V2版本为硬件上拉(适用于OB版本2.3.6)。注意区分指令:!:
说明2:长按5s中间按键开机、长按5s中间按键关机。开机默认绿灯常亮(适用于硬件V2,OB版本2.3.6,V1无状态灯)
选项:左、中(长按5s开机)、右
功能:读取指定引脚的值,HIGH或LOW
语法:pinMode(4, INPUT_PULLUP);if (digitalRead(4)) {};


  • (读取端口[A]模拟量)

功能:从指定的端口读取数据值。每个端口对应一个模拟引脚。它们分别是A0、A1、A2、A3、A4、A5、A6。 本控制器拥有6通道的10位模拟数字转换器。这意味着它将0至5伏特之间的输入电压映射到0至1023之间的整数值。这将产生读数之间的关系:5伏特/ 1024单位,或0.0049伏特(4.9 mV)每单位。输入范围和精度可以使用analogReference()改变。 它需要大约100微秒(0.0001)来读取模拟输入,所以最大的阅读速度是每秒10000次。
语法:analogRead(A0);

  • 下述指令在图形化编程界面已隐藏显示,不过硬件和代码编程是支持的。



scratchob_ble05eduof.txt · 最后更改: 2023/05/01 22:01 由 leo