feat(boards): arduino esp32传感器类别下增加 GPS 模块

由于SoftwareSerial在arduino esp32下不稳定,因此使用HardwareSerial替代它,默认使用esp32 Serial2
This commit is contained in:
王立帮
2025-04-30 01:06:07 +08:00
parent dba2b204e1
commit e162926286
4 changed files with 108 additions and 37 deletions

View File

@@ -78,4 +78,16 @@ export const ESP_TCS34725_Get_RGB = function (_, generator) {
return ['getRGB(\'' + RGB + '\')', generator.ORDER_ATOMIC]; return ['getRGB(\'' + RGB + '\')', generator.ORDER_ATOMIC];
} }
export const DS1307_init = ArduinoESP8266SensorGenerators.DS1307_init; export const DS1307_init = ArduinoESP8266SensorGenerators.DS1307_init;
export const gps_init = function (_, generator) {
generator.definitions_['include_TinyGPS++'] = '#include <TinyGPS++.h>';
generator.definitions_['include_HardwareSerial'] = '#include <HardwareSerial.h>';
var rx = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
var tx = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
var bt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC)
generator.definitions_['var_declare_TinyGPSPlus_gps'] = 'TinyGPSPlus gps;';
generator.definitions_['var_declare_gps_ss'] = 'HardwareSerial gps_ss(2);';
generator.setups_['setup_serial_gps_ss'] = `gps_ss.begin(${bt}, SERIAL_8N1, ${rx}, ${tx});`;
return '';
}

View File

@@ -5,6 +5,6 @@ export const serial_HardwareSerial = function (_, generator) {
generator.definitions_['include_HardwareSerial'] = '#include <HardwareSerial.h>'; generator.definitions_['include_HardwareSerial'] = '#include <HardwareSerial.h>';
var RX = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC); var RX = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);
var TX = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC); var TX = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);
generator.setups_['setup_serial_' + serial_select] = '' + serial_select + '.begin(' + content + ',SERIAL_8N1,' + RX + ',' + TX + ');'; generator.setups_['setup_serial_' + serial_select] = '' + serial_select + '.begin(' + content + ', SERIAL_8N1, ' + RX + ', ' + TX + ');';
return ''; return '';
}; };

View File

@@ -893,6 +893,12 @@
</block> </block>
<block type="tcs230_Get_RGB"> <block type="tcs230_Get_RGB">
</block> </block>
<block type="MPU6050_update">
</block>
<block type="MPU6050">
</block>
<block type="mixgo_MPU9250">
</block>
<block type="SHT20"> <block type="SHT20">
</block> </block>
<block type="ADXL345"> <block type="ADXL345">
@@ -911,12 +917,6 @@
</shadow> </shadow>
</value> </value>
</block> </block>
<block type="MPU6050_update">
</block>
<block type="MPU6050">
</block>
<block type="mixgo_MPU9250">
</block>
<block type="BME280_READ"> <block type="BME280_READ">
<value name="address"> <value name="address">
<shadow type="math_number"> <shadow type="math_number">
@@ -924,6 +924,29 @@
</shadow> </shadow>
</value> </value>
</block> </block>
<block type="sensor_encoder_init">
<value name="CLK">
<shadow type="pins_digital">
<field name="PIN">2</field>
</shadow>
</value>
<value name="DT">
<shadow type="pins_digital">
<field name="PIN">3</field>
</shadow>
</value>
</block>
<block type="sensor_encoder_get">
</block>
<block type="sensor_encoder_set">
<value name="DATA">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="sensor_encoder_handle">
</block>
<!--DS1302--> <!--DS1302-->
<block type="DS1302_init"> <block type="DS1302_init">
<value name="RST"> <value name="RST">
@@ -1091,35 +1114,71 @@
</value> </value>
</block> </block>
<block type="get_keypad_num"></block> <block type="get_keypad_num"></block>
<block type="gps_init">
<value name="RX">
<shadow type="pins_digital">
<field name="PIN">0</field>
</shadow>
</value>
<value name="TX">
<shadow type="pins_digital">
<field name="PIN">2</field>
</shadow>
</value>
<value name="CONTENT">
<shadow type="math_number">
<field name="NUM">4800</field>
</shadow>
</value>
</block>
<block type="controls_whileUntil">
<field name="MODE">WHILE</field>
<value name="BOOL">
<block type="gps_data_available"></block>
</value>
<statement name="DO">
<block type="controls_if">
<value name="IF0">
<block type="gps_data_encode"></block>
</value>
<statement name="DO0">
<block type="controls_if">
<value name="IF0">
<block type="gps_xxx_isValid">
<field name="WHAT">location</field>
</block>
</value>
<statement name="DO0">
<block type="serial_println">
<field name="serial_select">Serial</field>
<value name="CONTENT">
<block type="gps_getData_xxx">
<field name="WHAT">location.lat</field>
</block>
</value>
<next>
<block type="serial_println">
<field name="serial_select">Serial</field>
<value name="CONTENT">
<block type="gps_getData_xxx">
<field name="WHAT">location.lng</field>
</block>
</value>
</block>
</next>
</block>
</statement>
</block>
</statement>
</block>
</statement>
</block>
<block type="PS2_init"> <block type="PS2_init">
</block> </block>
<block type="PS2_update"> <block type="PS2_update">
</block> </block>
<block type="PS2_Button"></block> <block type="PS2_Button"></block>
<block type="PS2_stk"></block> <block type="PS2_stk"></block>
<block type="sensor_encoder_init">
<value name="CLK">
<shadow type="pins_digital">
<field name="PIN">2</field>
</shadow>
</value>
<value name="DT">
<shadow type="pins_digital">
<field name="PIN">3</field>
</shadow>
</value>
</block>
<block type="sensor_encoder_get">
</block>
<block type="sensor_encoder_set">
<value name="DATA">
<shadow type="math_number">
<field name="NUM">0</field>
</shadow>
</value>
</block>
<block type="sensor_encoder_handle">
</block>
</category> </category>
<category id="catActuator" colour="100"> <category id="catActuator" colour="100">
<block type="HR8833_Motor_Setup"> <block type="HR8833_Motor_Setup">

View File

@@ -802,6 +802,12 @@
</block> </block>
<block type="tcs230_Get_RGB"> <block type="tcs230_Get_RGB">
</block> </block>
<block type="MPU6050_update">
</block>
<block type="MPU6050">
</block>
<block type="mixgo_MPU9250">
</block>
<block type="SHT20"> <block type="SHT20">
</block> </block>
<block type="AHT20_21"> <block type="AHT20_21">
@@ -1067,12 +1073,6 @@
</block> </block>
</statement> </statement>
</block> </block>
<block type="MPU6050_update">
</block>
<block type="MPU6050">
</block>
<block type="mixgo_MPU9250">
</block>
<block type="PS2_init"> <block type="PS2_init">
</block> </block>
<block type="PS2_update"> <block type="PS2_update">