增加两个库的块微波雷达和语音播放

This commit is contained in:
Irene-Maxine
2024-11-18 02:16:52 +08:00
parent 7306e999fb
commit f26ce575c8
8 changed files with 435 additions and 0 deletions

View File

@@ -519,6 +519,124 @@ export const actuator_use_uart_init = {
}
};
export const actuator_use_uart_init_player = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "uart")
.appendField(new Blockly.FieldDropdown([
["uart1", "uart1"],
["uart2", "uart2"]
]), "key");
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + 'NS9300' + Blockly.Msg.MIXLY_MUSIC_PLAYER);
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const player_whether_stop ={
init:function(){
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MUSIC_PLAYER)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_WHETHER)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_STOPPED, "0"],
[Blockly.Msg.MIXLY_PLAYING, "1"],
[Blockly.Msg.MIXLY_PAUSED, "2"]
]), "key");
this.setInputsInline(true);
this.setOutput(true);
}
};
export const player_set_play = {
init:function(){
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_STAT)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MP3_PLAY, "1"],
[Blockly.Msg.MIXLY_MP3_PAUSE, "2"],
[Blockly.Msg.MIXLY_STOP, "3"],
[Blockly.Msg.MIXLY_MP3_PREV, "4"],
[Blockly.Msg.MIXLY_MP3_NEXT, "5"]
]), "key");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const player_set_volume = {
init:function(){
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
.setCheck("var");
this.appendValueInput('volume')
.appendField(Blockly.Msg.MIXLY_MP3_VOL +Blockly.Msg.MIXLY_STAT);
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(Blockly.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP);
}
}
export const player_set_mode = {
init:function(){
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_MODE+Blockly.Msg.MIXLY_STAT)
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MP3_LOOP_ALL, "0"],
[Blockly.Msg.MIXLY_MP3_LOOP_ONE, "1"],
[Blockly.Msg.MIXLY_PLAYER_DIRECTORY_LOOP, "2"],
[Blockly.Msg.MIXLY_MP3_LOOP_RAM, "3"],
[Blockly.Msg.MIXLY_PLAYER_SINGLE_STOP, "4"],
[Blockly.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY, "5"]
]), "key");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
};
export const player_play_music = {
init:function(){
this.setColour(ACTUATOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)
.setCheck("var");
this.appendDummyInput("")
.appendField(new Blockly.FieldDropdown([
[Blockly.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],
[Blockly.Msg.MIXLY_PLAYER_INSERT_MUSIC, "insert"]
]), "key");
this.appendValueInput('song');
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
}
}
export const player_insert_music ={
}
export const syn6288_set_voice = {
init: function () {
this.setColour(ACTUATOR_EXTERN_HUE);

View File

@@ -366,6 +366,68 @@ export const sensor_use_i2c_init = {
}
};
export const radar_use_i2c_init = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('I2CSUB')
.appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + "I2C")
.setCheck("var");
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE + Blockly.Msg.MIXLY_RADAR)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)
.appendField(new Blockly.FieldDropdown([
["CBR817", "CBR817"]
]), "key");
this.setInputsInline(true);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
}
};
export const radar_set_DELAY_TIME = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_RADAR)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION+Blockly.Msg.MIXLY_DELAY_TIME);
this.appendValueInput('VAR');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP);
}
};
export const radar_set_DETECTION_THRESHOLD = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);
this.appendValueInput('SUB')
.appendField(Blockly.Msg.MIXLY_RADAR)
.setCheck("var");
this.appendDummyInput("")
.appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION+Blockly.Msg.MIXLY_DETECTION_THRESHOLD)
this.appendValueInput('VAR');
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setInputsInline(true);
this.setTooltip(Blockly.Msg.MIXLY_DELAY_TIME_RANGE);
}
};
export const interaction_whether_to_interaction = {
init:function(){
this.setColour(SENSOR_EXTERN_HUE);
this.appendDummyInput("")
.appendField(Blockly.Msg.MIXLY_RADAR + Blockly.Msg.MIXLY_GET_TO_INTERACTION)
this.setOutput(true);
this.setInputsInline(true);
}
};
export const sensor_MAX30102_extern = {
init: function () {
this.setColour(SENSOR_EXTERN_HUE);

View File

@@ -224,6 +224,50 @@ export const actuator_use_uart_init = function (_, generator) {
return code;
}
export const actuator_use_uart_init_player = function (_, generator) {
generator.definitions_['import_ns9300'] = 'import ns9300';
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = v + '=ns9300.NS9300(' + key + ')\n';
return code;
}
export const player_whether_stop = function(_,generator){
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = v+'.status('+key+')';
return [code,generator.ORDER_ATOMIC];
}
export const player_set_play = function(_,generator){
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = v+'.control('+key+')\n';
return code;
}
export const player_set_volume = function(_,generator){
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var vol = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC);
var code = v+'.volume('+vol+')\n';
return code;
}
export const player_set_mode = function(_,generator){
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var code = v +'.mode('+key+')';
return code;
}
export const player_play_music = function(_,generator){
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var key = this.getFieldValue('key');
var s = generator.valueToCode(this, 'song', generator.ORDER_ATOMIC);
var code = v +'.'+key+'('+s+')';
return code;
}
export const syn6288_set_voice = function (_, generator) {
generator.definitions_['import_music'] = 'import music';
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);

View File

@@ -216,6 +216,38 @@ export const sensor_use_i2c_init = function (_, generator) {
return code;
}
export const radar_use_i2c_init = function (_, generator) {
var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);
generator.definitions_['import_machine'] = 'import machine';
var key = this.getFieldValue('key');
var code;
if (key == 'CBR817') {
generator.definitions_['import_cbr817'] = 'import cbr817';
code = v + ' = cbr817.' + key + "(" + iv + ')\n';
}
return code;
}
export const radar_set_DELAY_TIME = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = sub + '.delay_ms(' + value +')\n';
return code;
}
export const radar_set_DETECTION_THRESHOLD = function (_, generator) {
var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);
var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);
var code = sub + '.threshold(' + value +')\n';
return code;
}
export const interaction_whether_to_interaction = function(_,generator){
var code = 'radar.result()';
return [code,generator.ORDER_ATOMIC];
}
export const sensor_MAX30102_extern = function (_, generator) {
generator.definitions_['import_max30102'] = 'import max30102';
var key = this.getFieldValue('key');

View File

@@ -3987,6 +3987,68 @@
</shadow>
</value>
</block>
<block type="communicate_i2c_init" m-hide='micropython:esp32c3:mixgocar_c3'>
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">1</field>
</shadow>
</value>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<value name="freq">
<shadow type="math_number">
<field name="NUM">100000</field>
</shadow>
</value>
<next>
<block type="radar_use_i2c_init">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">radar</field>
</shadow>
</value>
<value name="I2CSUB">
<shadow type="variables_get">
<field name="VAR">i2c</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="radar_set_DETECTION_THRESHOLD">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">radar</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">5000</field>
</shadow>
</value>
</block>
<block type="radar_set_DELAY_TIME">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">radar</field>
</shadow>
</value>
<value name="VAR">
<shadow type="math_number">
<field name="NUM">500</field>
</shadow>
</value>
</block>
<block type="interaction_whether_to_interaction">
</block>
</category>
<category id="catExternActuator" colour='#74A55B'>
<block type="servo_move" m-show='micropython:esp32c3:mixgocar_c3'>
@@ -4320,6 +4382,72 @@
<shadow type="pins_tts_bgmusic"></shadow>
</value>
</block>
<block type="serial_softserial_new" m-hide='micropython:esp32c3:mixgocar_c3'>
<value name="RX">
<shadow type="pins_digital_pin">
<field name="PIN">1</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital_pin">
<field name="PIN">2</field>
</shadow>
</value>
<next>
<block type="actuator_use_uart_init_player">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">player</field>
</shadow>
</value>
</block>
</next>
</block>
<block type="player_whether_stop">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">player</field>
</shadow>
</value>
</block>
<block type="player_set_play">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">player</field>
</shadow>
</value>
</block>
<block type="player_set_volume">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">player</field>
</shadow>
</value>
<value name="volume">
<shadow type="math_number">
<field name="NUM">20</field>
</shadow>
</value>
</block>
<block type="player_set_mode">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">player</field>
</shadow>
</value>
</block>
<block type="player_play_music">
<value name="SUB">
<shadow type="variables_get">
<field name="VAR">player</field>
</shadow>
</value>
<value name="song">
<shadow type="text">
<field name="TEXT">0</field>
</shadow>
</value>
</block>
</category>
</category>
<category id="catExternMonitor" colour='5BA5A5' m-hide='micropython:esp32c3:mixgocar_c3'>

View File

@@ -3760,4 +3760,21 @@ En.MIXLY_INDEX = "index";
En.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP = "Combine all the items and ordinals of the list into an index sequence, for example (0,'A') into one index sequence";
En.MIXLY_RGB_RAW = 'RGB color primitive value';
En.GET_IR_STRENGTH = 'get Infrared light';
En.MIXLY_RADAR = 'radar';
En.MIXlY_INTERACTION = 'reaction';
En.MIXLY_DETECTION_THRESHOLD ='detect threshold';
En.MIXLY_DELAY_TIME = 'delay time';
En.MIXLY_THRESHOLD_TOOLTIP = 'The larger the threshold, the closer the sensing distance';
En.MIXLY_DELAY_TIME_RANGE = 'The delay time range is 200ms500ms';
En.MIXLY_GET_TO_INTERACTION ='get whether to trigger sensing';
En.MIXLY_MUSIC_PLAYER = 'Music player';
En.MIXLY_WHETHER ='whether';
En.MIXLY_STOPPED ='stopped';
En.MIXLY_PLAYING ='playing';
En.MIXLY_PAUSED = 'paused';
En.MIXLY_PLAYER_SET_VOLUME_TOOLTIP = 'The volume range is 030';
En.MIXLY_PLAYER_DIRECTORY_LOOP = 'directory loop';
En.MIXLY_PLAYER_SINGLE_STOP = 'single stop';
En.MIXLY_PLAYER_SEQUENTIAL_PLAY ='sequential play';
En.MIXLY_PLAYER_INSERT_MUSIC ='interjection';
})();

View File

@@ -3913,4 +3913,21 @@ ZhHans.MIXLY_EVERY_PER_ELEPER_ELEMENT = "每个元素重复";
ZhHans.MIXLY_EMPTY_REMINDER = "至少需要一个可迭代对象";
ZhHans.MIXLY_RGB_RAW = 'RGB颜色原始值';
ZhHans.GET_IR_STRENGTH = '获取红外光';
ZhHans.MIXLY_RADAR = '微波雷达';
ZhHans.MIXlY_INTERACTION = '感应';
ZhHans.MIXLY_DETECTION_THRESHOLD ='检测门限';
ZhHans.MIXLY_DELAY_TIME = '延时时间';
ZhHans.MIXLY_THRESHOLD_TOOLTIP = '门限设置越大,感应距离越近';
ZhHans.MIXLY_DELAY_TIME_RANGE = '延时时间范围为200ms500ms';
ZhHans.MIXLY_GET_TO_INTERACTION ='获取是否触发感应';
ZhHans.MIXLY_MUSIC_PLAYER = '音乐播放器';
ZhHans.MIXLY_WHETHER ='是否';
ZhHans.MIXLY_STOPPED ='已停止';
ZhHans.MIXLY_PLAYING ='在播放';
ZhHans.MIXLY_PAUSED = '已暂停';
ZhHans.MIXLY_PLAYER_SET_VOLUME_TOOLTIP = '音量范围为030';
ZhHans.MIXLY_PLAYER_DIRECTORY_LOOP = '目录循环';
ZhHans.MIXLY_PLAYER_SINGLE_STOP = '单曲停止';
ZhHans.MIXLY_PLAYER_SEQUENTIAL_PLAY ='顺序播放';
ZhHans.MIXLY_PLAYER_INSERT_MUSIC ='插播歌曲';
})();

View File

@@ -3763,4 +3763,21 @@ ZhHant.MIXLY_INDEX = "序號";
ZhHant.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP = "將列表的所有項和序號組合為索引序列,例如(0,'A')為一個索引序列";
ZhHant.MIXLY_RGB_RAW = 'RGB顏色原始值';
ZhHant.GET_IR_STRENGTH = '獲取紅外光';
ZhHant.MIXLY_RADAR = '微波雷達';
ZhHant.MIXlY_INTERACTION = '感應';
ZhHant.MIXLY_DETECTION_THRESHOLD ='檢測門限';
ZhHant.MIXLY_DELAY_TIME = '延時時間';
ZhHant.MIXLY_THRESHOLD_TOOLTIP = '門限設置越大,感應距離越近';
ZhHant.MIXLY_DELAY_TIME_RANGE = '延時時間範圍為200ms500ms';
ZhHant.MIXLY_GET_TO_INTERACTION ='獲取是否觸發感應';
ZhHant.MIXLY_MUSIC_PLAYER = '音樂播放器';
ZhHant.MIXLY_WHETHER ='是否';
ZhHant.MIXLY_STOPPED ='已停止';
ZhHant.MIXLY_PLAYING ='在播放';
ZhHant.MIXLY_PAUSED = '已暫停';
ZhHant.MIXLY_PLAYER_SET_VOLUME_TOOLTIP = '音量範圍為030';
ZhHant.MIXLY_PLAYER_DIRECTORY_LOOP = '目錄循環';
ZhHant.MIXLY_PLAYER_SINGLE_STOP = '單曲停止';
ZhHant.MIXLY_PLAYER_SEQUENTIAL_PLAY ='順序播放';
ZhHant.MIXLY_PLAYER_INSERT_MUSIC ='插播歌曲';
})();