diff --git a/docs/en/faq.md b/docs/en/faq.md index e6c97e60..093e4af8 100644 --- a/docs/en/faq.md +++ b/docs/en/faq.md @@ -17,16 +17,6 @@ -
-
Q2: Where can I buy M5Stack products?

-
-
- M5Stack Official website -
-
-
- -
Q3: Where is the official information release platform? How to get first-hand news?

@@ -782,7 +772,8 @@ If it is an official program, it has been compiled and verified before uploading After upgrading the MacOS Catalina version on some Mac computers, M5StickC cannot burn programs normally.
- Solution: When programming, use DuPont cable to short-circuit G0 to GND + Solution1: When programming, use DuPont cable to short-circuit G0 to GND. + Solution2: Use the update tool to update the device USB driver chip firmware
diff --git a/docs/en/hat/hat-roverc.md b/docs/en/hat/hat-roverc.md index 75c32c59..05b7d2f5 100644 --- a/docs/en/hat/hat-roverc.md +++ b/docs/en/hat/hat-roverc.md @@ -74,32 +74,59 @@ >2. After downloading the software, double-click to run the application, connect the M5 device to the computer through the data cable, select the port parameters, click **"Burn"** to burn the program (**For M5StickC, set the baud rate to 115200 or 750000**) - -## Instructions -Before use, please make sure that the roverc is fully charged. Charging method: insert m5stickc into the roverc, and connect the USB cable for charging. -Burn the easyloader firmware of Joyc and roverc with two M5StickC respectively. Insert Joyc and roverc respectively after burning. After power on, roverc will display the MAC address name and battery power. At the same time, Joyc will scan the MAC address name of roverc. Long press the a key of M5StickC on Joyc, and the work will be matched. Left rocker up and down control front and back, left and right control translation, right rocker left and right control steering. - -## Usage Two M5StickCs will be burned into the EasyLoader firmware of JoyC and RoverC respectively. After burning, they will be inserted into JoyC and RoverC respectively. After booting, RoverC will display the hotspot name of "M5AP+2 bytes mac address", and JoyC will scan the mac address name of RoverC. Press and hold the Home button of the M5StickC on the JoyC for 3 seconds to start scanning the hotspot of the car, and the pairing is successful. After successful pairing, the link icon is highlighted in the upper left corner of the screen, and the joystick value is displayed on the screen. The left and right joysticks are controlled up and down, the left and right controls pan, and the right rocker controls the steering. - -MotorControl: - - - - - - - -
Motor serial numberRegister addressParameter value
010x00-127~127
020x01-127~127
030x02-127~127
040x03-127~127
- ## Example -### 1. Arduino +?>1: This case uses RoverC and JoyC to realize wireless control through UDP communication. Please select the corresponding case program below according to the equipment you are using. -Use with JoyC HAT, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Hat/RoverC/Arduino/RoverC) + +
+ Arduino + +
+
+ M5StickC +
+
+ M5StickC Plus +
+
-Use alone [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Application/RoverC_Arduino_Alone) +- Note: Before use, please make sure that the roverc is fully charged. Charging method: insert m5stickc into the roverc, and connect the USB cable for charging. +Burn the easyloader firmware of Joyc and roverc with two M5StickC respectively. Insert Joyc and roverc respectively after burning. After power on, roverc will display the MAC address name and battery power. At the same time, Joyc will scan the MAC address name of roverc. Long press the a key of M5StickC on Joyc, and the work will be matched. Left rocker up and down control front and back, left and right control translation, right rocker left and right control steering. + +?>2: This case is a RoverC stand-alone control program, which is directly controlled by the main controller. Please select the corresponding case program below according to the equipment you are using. + + +
+ Arduino + +
+
+ M5StickC +
+
+ M5StickC Plus +
+
+ +## Protocol + +- Protocol type I2C +- I2C Address: **0x38** + +```clike +/*--------------------------------------------------------------------------------------------------*/ +| ROVERC_MOTOR_REG | 0x00-0x03 +| ------------------------------------------------------------------------------------------------ +| motor_1_reg[0] | R/W | Motor1 Speed value(-127~127) +| motor_2_reg[1] | R/W | Motor2 Speed value(-127~127) +| motor_3_reg[2] | R/W | Motor3 Speed value(-127~127) +| motor_4_reg[3] | R/W | Motor4 Speed value(-127~127) +/*---------------------------------------------------------------------------------------------------- + +``` ### 2. UIFlow diff --git a/docs/en/hat/hat_roverc_pro.md b/docs/en/hat/hat_roverc_pro.md index 76d94837..5eae658a 100644 --- a/docs/en/hat/hat_roverc_pro.md +++ b/docs/en/hat/hat_roverc_pro.md @@ -116,30 +116,73 @@ The PRO version provides a gripping mechanism controlled by a servo for gripping -MotorControl: - - - - - - - -
Motor serial numberRegister addressParameter value
010x00-127~127
020x01-127~127
030x02-127~127
040x03-127~127
- - - - - -
Servo numberAngle(Register address)Parameter valuePulse(Register address)Parameter value
010x100~180°0x20500~2500us
020x110~180°0x21500~2500us
- ## Example -### 1. Arduino +?>1: This case uses RoverC and JoyC to realize wireless control through UDP communication. Please select the corresponding case program below according to the equipment you are using. -Use with JoyC HAT(without servo gripper), please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Hat/RoverC) -Before use, please make sure that the RoverC is fully charged. Charging method: insert M5StickC/M5StickC Plus into the RoverC, and connect the USB cable for charging.Burn the easyloader firmware of JoyC and RoverC with two M5StickC respectively. Insert JoyC and RoverC respectively after burning. After power on, RoverC will display the MAC address name and battery level. At the same time, JoyC will scan for the MAC address of RoverC. Long press the Home button of M5StickC on Joyc, and the two will be paired. Left thumbstick controlls forward and back motion, left and right control translation, right thumbstick controls left and right steering. + +
+ Arduino + +
+
+ M5StickC +
+
+ M5StickC Plus +
+
-Independent(with servo gripper) usage [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Application/RoverC_PRO_Arduino_Alone) +- Note: Before use, please make sure that the roverc is fully charged. Charging method: insert m5stickc into the roverc, and connect the USB cable for charging. +Burn the easyloader firmware of Joyc and roverc with two M5StickC respectively. Insert Joyc and roverc respectively after burning. After power on, roverc will display the MAC address name and battery power. At the same time, Joyc will scan the MAC address name of roverc. Long press the a key of M5StickC on Joyc, and the work will be matched. Left rocker up and down control front and back, left and right control translation, right rocker left and right control steering. + +?>2: This case is a RoverC stand-alone control program, which is directly controlled by the main controller. Please select the corresponding case program below according to the equipment you are using. + + +
+ Arduino + +
+
+ M5StickC +
+
+ M5StickC Plus +
+
+ +## Protocol + +- Protocol type I2C +- I2C Address: **0x38** + +```clike +/*--------------------------------------------------------------------------------------------------*/ +| ROVERC_MOTOR_REG | 0x00-0x03 +| ------------------------------------------------------------------------------------------------ +| motor_1_reg[0] | R/W | Motor1 Speed value(-127~127) +| motor_2_reg[1] | R/W | Motor2 Speed value(-127~127) +| motor_3_reg[2] | R/W | Motor3 Speed value(-127~127) +| motor_4_reg[3] | R/W | Motor4 Speed value(-127~127) +/*---------------------------------------------------------------------------------------------------- + +/*--------------------------------------------------------------------------------------------------*/ +| ROVERC_SERVO_ANGLE_REG | 0x10-0x11 +| ------------------------------------------------------------------------------------------------ +| servo_1_reg[0] | R/W | SERVO1 Angle value(0-180) +| servo_2_reg[1] | R/W | SERVO2 Angle value(0-180) +/*---------------------------------------------------------------------------------------------------- + +/*--------------------------------------------------------------------------------------------------*/ +| ROVERC_SERVO_PULSE_REG | 0x20-0x23 +| ------------------------------------------------------------------------------------------------ +| servo_1_pulse_reg[0] | R/W | SERVO1 PULSE H value +| servo_1_pulse_reg[1] | R/W | SERVO1 PULSE L value +| servo_2_pulse_reg[2] | R/W | SERVO2 PULSE H value +| servo_2_pulse_reg[3] | R/W | SERVO2 PULSE L value (pulse value:500-2500us) +/*---------------------------------------------------------------------------------------------------- + +``` ### 2. UIFlow diff --git a/docs/en/module/grbl13.2.md b/docs/en/module/grbl13.2.md index 29965a29..018cb82a 100644 --- a/docs/en/module/grbl13.2.md +++ b/docs/en/module/grbl13.2.md @@ -106,6 +106,7 @@ The power input interface is DC/9-24V, the motor drive current can reach 1.5A, a ## Related Link - [DRV8825 Datasheet](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/module/DRV8825_en.pdf) +- [GRBL-Firmware](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/GRBL13.2-Module-Arduino-Library.zip) ## PinMap diff --git a/docs/en/module/stepmotor.md b/docs/en/module/stepmotor.md index 1b973ede..995790a0 100644 --- a/docs/en/module/stepmotor.md +++ b/docs/en/module/stepmotor.md @@ -4,8 +4,6 @@
- - ## Description **STEPMOTOR** is used for stepper motor control. It is perfect for any motion project as it can drive up to 3 Stepper motors with **GRBL** control. @@ -38,6 +36,14 @@ Integrated 3 DRV8825, a simple but very powerful board that can control one bipo Resources Parameter + + DC Interface + XT30 + + + Motor Interface + HY2.0-4P + Net weight 24g diff --git a/docs/en/mpy/advanced.md b/docs/en/mpy/advanced.md new file mode 100644 index 00000000..c3f34252 --- /dev/null +++ b/docs/en/mpy/advanced.md @@ -0,0 +1,290 @@ +# wifiCfg + +>Use the API in the wifiCfg module to configure the device WiFi connection. + + +```clike +import wifiCfg + +//Automatically connect to the saved WiFi, the screen displays the connection UI +wifiCfg.autoConnect(lcdShow=True) + +//Connect to the specified WiFi +wifiCfg.doConnect(ssid, pwd) + +//Connect to the specified WiFi and specify the connection timeout period +wifiCfg.connect(ssid, pwd, timeout, block=False) + +//WiFi reconnect +wifiCfg.reconnect() + +//Is it connected +print(wifiCfg.wlan_sta.isconnected()) + +``` + +# M5mqtt + +>Use the API in the M5mqtt module to connect to the mqtt server and subscribe to publish message content. + +-Connect to mqtt server + +```clike + +from m5mqtt import M5mqtt + +//Create connection instance +m5mqtt = M5mqtt( + client_id, + server, + port=0, + user=None, + password=None, + keepalive=0, + ssl=False, + ssl_params=None +) + +//Start connection +m5mqtt.start() + +while True: + + +``` + +-Subscribe and publish news + +```clike + +//Subscribe news +def callback(topic_data): + print(topic_data) + +m5mqtt.subscribe(topic, callback) + + +//release the news +m5mqtt.publish(topic, data) + +``` + +-Other configurations + +```clike + +//Configure the client will message +m5mqtt.set_last_will(topic, msg) + +//Disconnect +m5mqtt.deinit() + +``` + +# ESP-NOW + +>Using ESP-NOW technology to wirelessly transmit data to other ESP32 master control devices + +```clike +import espnow + +//initialization +espnow.init() + +//Set the channel + +//Get the local mac_addr +espnow.get_mac_addr() + +//broadcast +espnow.broadcast(data='Hello') + +//Set the peer list +espnow.add_peer(slave_mac_addr, id) + +//send messages +espnow.send(id, data='World') + +//Send message callback +def send_cb(flag): + if flag: + print('succeed') + else: + print('Failed') + +espnow.send_cb(send_cb) + +//Receive message callback +def recv_cb(): + //retrieve data + sender_address, _, receive_data = espnow.recv_data(encoder='str') + +espnow.recv_cb(recv_cb) + +``` +# HTTP + +>Use the API in the HTTP module to send HTTP requests to the server to obtain data. + +```clike +import urequests + +//GET request +req = urequests.request( + method='GET', + url='http://api.m5stack.com/v1', + headers={'Content-Type':'text/html'} + ) + +//POST request +req = urequests.request( + method='POST', + url='http://api.m5stack.com/v1', + json={'KEY':'VALUE'}, + headers={'Content-Type':'text/html'} + ) + +//Get the response body status code +print(req.status_code) + +//Get the response body Reason-Phrase +print(req.reason) + +//Get the native response body +print(req.content) + +//Get response body string +print(req.text) + +//Get response body JSON +print(req.json) + +``` + +# NTP + +>Get current time information through NTP server. + +```clike + +import ntptime + + +//Set up NTP server +//eg: +//ntp = ntptime.client(host='jp.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='sg.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='tw.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='hk.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='tw.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='hk.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='us.pool.ntp.org', timezone=8) +//ntp = ntptime.client(host='de.pool.ntp.org', timezone=8) + +ntp = ntptime.client(host='cn.pool.ntp.org', timezone=8) + +//Get the timestamp +ntp.getTimestamp() + +//Format the date +ntp.formatDate('-') + +//Format the time +ntp.formatTime('-') + +//Format date & time +ntp.formatDatetime('-',':') + +ntp.year() +ntp.month() +ntp.day() +ntp.hour() +ntp.minute() +ntp.second() +ntp.weekday() + +``` + + +# EEPROM + +>Save data persistently through EEPROM. + +```clike + +import nvs + +//data input +nvs.write_str(KEY, VALUE) + +//Read data +nvs.read_str(KEY) + +``` + +# UART + +>Send and receive data via UART. + +```clike + +//Create a serial port instance +uart1 = machine.UART(1, tx=1, rx=3) + +//Initialize the serial port +uart1.init(115200, bits=8, parity=None, stop=1) + +//Is there any content in the cache? +uart1.any() + +//Read the content in the buffer area +uart1.read() + +//Write content to the serial port +uart1.write('Hello') + +//Read/write case +while True: + if uart1.any(): + print(uart1.read()) + uart1.write('Hello') + +``` + +# SD-Card + +```clike + +import os + +//Read file +with open('/sd/FileName.*','r') as fs: + print(fs.read()) + +//Write file +with open('/sd/test.txt','w+') as fs: + fs.write('Hello World') + +//File read and write mode +w is opened for writing, +w+ open in read-write mode +r open in read mode +r+ open in read-write mode +a Open in append mode + +//Set the file cursor +fs.seek(0) + +//View catalog +os.listdir('/sd/DirectoryPath') + +//Determine whether the path is a file +os.stat('/sd/FilePath')[0] == 0x8000) + +//Determine whether the path is a directory +os.stat('/sd/DirectoryPath')[0] == 0x4000) + +//Determine whether the file exists in the specified directory +'FileName.*' in os.listdir('/sd/DirectoryPath') + +``` diff --git a/docs/en/mpy/mpy_api_list.md b/docs/en/mpy/mpy_api_list.md index 32253bc4..180ba4ba 100644 --- a/docs/en/mpy/mpy_api_list.md +++ b/docs/en/mpy/mpy_api_list.md @@ -59,13 +59,28 @@ const unit = { "id":"unit_api" }; +const advanced = { + 'title':"Advanced", + 'item':{ + 'WiFi':'#/en/mpy/advanced?id=wificfg', + 'MQTT':'#/en/mpy/advanced?id=m5mqtt', + 'ESP-NOW':'#/en/mpy/advanced?id=esp-now', + 'HTTP':'#/en/mpy/advanced?id=http', + 'NTP':'#/en/mpy/advanced?id=ntp', + 'EEPROM':'#/en/mpy/advanced?id=eeprom', + 'UART':'#/en/mpy/advanced?id=uart' + }, + "id":"advanced_api" +}; + var arduino_home_page = new Vue({ el:'#arduino_home_page', data() { return { list: { quickstart: quickstart, - unit: unit + unit: unit, + advanced: advanced } }; } diff --git a/docs/en/uiflow/advanced.md b/docs/en/uiflow/advanced.md index bec7224d..6426fbde 100644 --- a/docs/en/uiflow/advanced.md +++ b/docs/en/uiflow/advanced.md @@ -404,7 +404,11 @@ Set the sampling channel pin Set the sampling width * __set atten__ -Set gain +Set attenuation on the input of the ADC + * ADC.ATTN_0DB: 0dB attenuation, gives a maximum input voltage of 1.00v - this is the default configuration + * ADC.ATTN_2_5DB: 2.5dB attenuation, gives a maximum input voltage of approximately 1.34v + * ADC.ATTN_6DB: 6dB attenuation, gives a maximum input voltage of approximately 2.00v + * ADC.ATTN_11DB: 11dB attenuation, gives a maximum input voltage of approximately 3.6v * __read value__ read ADC diff --git a/docs/en/uiflow/iotcloud/tencent.md b/docs/en/uiflow/iotcloud/tencent.md new file mode 100644 index 00000000..2c794425 --- /dev/null +++ b/docs/en/uiflow/iotcloud/tencent.md @@ -0,0 +1,117 @@ +# UIFlow Tencent Cloud access + +## Overview + +>This tutorial will take the building of temperature and humidity collection nodes as an example to demonstrate how to access the Tencent Cloud platform through the UIFlow programming device. + +## Create project + +>Before accessing, register and log in to [Tencent Cloud-IoT Development Platform](https://console.cloud.tencent.com/iotexplorer), click `Public instance`->`New project`->` to fill in the project Name/Description`->`Save` + + + + +## Create a product + +>The product can be understood as a collection of a certain type of equipment, and the user manages all the equipment under it through the product. `Click the item created in the previous step`->`Enter the product development center`->`New product`->`Define your product`->`Fill in the basic product information`->`Save`. + + + +?>The basic product information settings are shown in the figure, where the name can be customized, and other suggestions are consistent. + +## Data Template + +>The data template constructs its digital model by digitally describing the physical entity equipment. Defining data templates on the IoT development platform means defining product functions. After the function definition is completed, the system will automatically generate the data template of the product. Since we choose a custom product, there is no standard function. We need to define the function ourselves. `Click on the created product`->`New function`. + + + + +>As shown in the figure below, define the temperature and humidity functions separately. In actual application, you can also add more function definitions according to your needs + + + + + + + +## New device + +>Complete the function definition, click the above steps `Device debugging`->`Click New Device`->`Fill in the device name`->`Save`. Click on the successfully created device to view the details page. (It will contain the key and device-related information needed for UIFlow connection) + + + +-------------------------------------------------- --------- + + + + +## Burn firmware + +>Burn UIFlow firmware for your device (firmware requires v1.7.3 and above), click the corresponding document link below to view the detailed programming steps. + +[UIFlow firmware burning steps](/zh_CN/quick_start/m5core/m5stack_core_get_started_MicroPython) + +## Programming + +-[Click to download the case program m5f file](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/m5f/UIFlow-Tencent-Core2.m5f), open the file in UiFlow, or follow Drag and drop the code block in the figure below. + +```clike +product id: Product ID, which can be viewed on the device information interface +device name: device name, same as above +device sceret: device secret key, same as above +keepalive: heartbeat time 0 ~ 120 (seconds) +``` + + + +- Micropython API + +```clike + +from IoTcloud.Tencent import Tencent + +//Initialize connection +tencent = Tencent( +product_id='XXXXXXXXXXX', +device_name='XXXXXXX', +username='XXXXXXXXXXXXXXXXXX;12010126;B335D;1702277766', +password='e822dc0027a1b363f9ed1a23fb77860c0b707d7d;hmacsha1', +port=1883, +keepalive=30 +) + +//upload data +tencent.publish_property_msg(temperature=temp,humidity=humid) + + +//Downstream data callback +def tencent_fun(property_data): + print(property_data) + +//Subscribe to the platform to send messages +tencent.subscribe_property_msg(tencent_fun) + +``` + +## View data in the background + +>The code block below is used to push data to the cloud platform, and the data is sent in the form of `key-value`, where the `key` value needs to be consistent with the `identifier` in the custom function. When the device is running, the user can view the upstream data of the device in the device log. + + + + + +## Mini Program to view data + +>Tencent Cloud Service is integrated and docked with the small program `Tencent Lianlian`, and users can easily view the reported data of the device through the small program. `Device List`->`Device QR Code`. (Open the WeChat applet `Tencent Lianlian`, click on the `+` number to scan the code to bind the device). + + + + + + diff --git a/docs/en/uiflow/uiflow_home_page.md b/docs/en/uiflow/uiflow_home_page.md index 377a0137..56d1da32 100644 --- a/docs/en/uiflow/uiflow_home_page.md +++ b/docs/en/uiflow/uiflow_home_page.md @@ -40,6 +40,14 @@ const quickstart = { "id":"quickstart" }; +const iotcloud = { + 'title':"IoT-Cloud", + 'item':{ + 'Tencent':'#/en/uiflow/iotcloud/tencent' + }, + "id":"iotcloud" +}; + const hardware = { 'title':"Hardware", 'item':{ @@ -199,6 +207,7 @@ var uiflow_home_page = new Vue({ return { list: { quickstart: quickstart, + iotcloud: iotcloud, hardware: hardware, uielements: uielements, datastructure: datastructure, diff --git a/docs/en/unit/catch.md b/docs/en/unit/catch.md index 766ade50..ed9a8fc5 100644 --- a/docs/en/unit/catch.md +++ b/docs/en/unit/catch.md @@ -22,7 +22,7 @@ ## Include -- 1x Catch Unit +- 1x Catch Unit(Built-in Servo-SG92R) - 1x HY2.0-4 adapter - 1x RoverC.Pro Connector diff --git a/docs/en/unit/neopixel.md b/docs/en/unit/neopixel.md index fc23597d..1995433d 100644 --- a/docs/en/unit/neopixel.md +++ b/docs/en/unit/neopixel.md @@ -12,9 +12,7 @@ It is very easy to program by Single-BUS with simple protocol. Another feature is the extension and flexibility, It's possible to connect many of them up together to create a massive long LED display. It's important to note that, the brightness and the quantity of LEDs matters the most to the power consuming, if you have a bunch of them connected up, you will need extra power supply. -*Notice: please pay attention to the direction of the input port and output port* - - +?>Note: The black PCB board at the end of the light bar is for the light bar signal input (connect to the M5Core), and the white PCB board is used to extend the light bar. ## Product Features @@ -33,6 +31,30 @@ Another feature is the extension and flexibility, It's possible to connect many Resources Parameter + + Lamp bead model + SK6812 + + + Working voltage + 5V + + + Power + 18W/m + + + Data transfer rate + 800K/s + + + Working temperature + -40°C-80°C + + + Waterproof rating + Bare board-not waterproof + Net weight 4g/6g/10g/12g/34g @@ -83,17 +105,12 @@ Another feature is the extension and flexibility, It's possible to connect many - [Click here to download the Arduino example](https://github.com/m5stack/M5Stack/tree/master/examples/Unit/RGB_LED_SK6812/display_rainbow) - - ### 2. UIFlow To get the complete code, please click [here](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/NEOPIXEL/UIFlow) - - - Last updated: 2020-12-14 diff --git a/docs/image/Advanced module/DAC_user.webp b/docs/image/Advanced module/DAC_user.webp index 311edf2c..99a244dc 100644 Binary files a/docs/image/Advanced module/DAC_user.webp and b/docs/image/Advanced module/DAC_user.webp differ diff --git a/docs/image/Display/image.webp b/docs/image/Display/image.webp new file mode 100644 index 00000000..fd316450 Binary files /dev/null and b/docs/image/Display/image.webp differ diff --git a/docs/image/Operation/Text_user.webp b/docs/image/Operation/Text_user.webp index a999ec36..e8852053 100644 Binary files a/docs/image/Operation/Text_user.webp and b/docs/image/Operation/Text_user.webp differ diff --git a/docs/image/Operation/Variables_user2.webp b/docs/image/Operation/Variables_user2.webp index f8c4b88c..25e5d32b 100644 Binary files a/docs/image/Operation/Variables_user2.webp and b/docs/image/Operation/Variables_user2.webp differ diff --git a/docs/image/iotcloud/tencent/block_example.webp b/docs/image/iotcloud/tencent/block_example.webp new file mode 100644 index 00000000..ebb83896 Binary files /dev/null and b/docs/image/iotcloud/tencent/block_example.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_01.webp b/docs/image/iotcloud/tencent/create_project_01.webp new file mode 100644 index 00000000..212f2e31 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_01.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_02.webp b/docs/image/iotcloud/tencent/create_project_02.webp new file mode 100644 index 00000000..a75f1672 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_02.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_03.webp b/docs/image/iotcloud/tencent/create_project_03.webp new file mode 100644 index 00000000..37314bdf Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_03.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_04.webp b/docs/image/iotcloud/tencent/create_project_04.webp new file mode 100644 index 00000000..fad854b1 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_04.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_05.webp b/docs/image/iotcloud/tencent/create_project_05.webp new file mode 100644 index 00000000..40fca4d0 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_05.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_06.webp b/docs/image/iotcloud/tencent/create_project_06.webp new file mode 100644 index 00000000..5e9b6470 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_06.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_07.webp b/docs/image/iotcloud/tencent/create_project_07.webp new file mode 100644 index 00000000..fd192ba9 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_07.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_08.webp b/docs/image/iotcloud/tencent/create_project_08.webp new file mode 100644 index 00000000..650992cb Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_08.webp differ diff --git a/docs/image/iotcloud/tencent/create_project_09.webp b/docs/image/iotcloud/tencent/create_project_09.webp new file mode 100644 index 00000000..ef0ce810 Binary files /dev/null and b/docs/image/iotcloud/tencent/create_project_09.webp differ diff --git a/docs/image/iotcloud/tencent/device_qrcode.webp b/docs/image/iotcloud/tencent/device_qrcode.webp new file mode 100644 index 00000000..931d20b2 Binary files /dev/null and b/docs/image/iotcloud/tencent/device_qrcode.webp differ diff --git a/docs/image/iotcloud/tencent/device_upload_log.webp b/docs/image/iotcloud/tencent/device_upload_log.webp new file mode 100644 index 00000000..02ad8bcd Binary files /dev/null and b/docs/image/iotcloud/tencent/device_upload_log.webp differ diff --git a/docs/image/iotcloud/tencent/publish_block.webp b/docs/image/iotcloud/tencent/publish_block.webp new file mode 100644 index 00000000..6972cf54 Binary files /dev/null and b/docs/image/iotcloud/tencent/publish_block.webp differ diff --git a/docs/image/iotcloud/tencent/wechat_applets.webp b/docs/image/iotcloud/tencent/wechat_applets.webp new file mode 100644 index 00000000..c266b5fb Binary files /dev/null and b/docs/image/iotcloud/tencent/wechat_applets.webp differ diff --git a/docs/zh_CN/accessory/converter/grove_to_4p.md b/docs/zh_CN/accessory/converter/grove_to_4p.md new file mode 100644 index 00000000..7de38195 --- /dev/null +++ b/docs/zh_CN/accessory/converter/grove_to_4p.md @@ -0,0 +1,46 @@ +# GROVE-TO-4P + +SKU:A040 + +
+ +## 描述 + +**GROVE-TO-4P** 是一款GROVE扩展连接器.该部件将HY2.0-4P接口的PIN脚进行了引出,能够帮助你拓展一些需要通过杜邦线连接的传感器. + +## 产品特性 + +- GROVE-TO-4P + +## 包含 + +- 5x GROVE-TO-4P + +## 规格参数 + + + + + + + + + + + + + + + + + + + + + + + + + + +
规格参数
PIN针间距2.54mm
净重6g
毛重7g
产品尺寸24 x 10 x 6mm
包装尺寸50 x 70 x 6mm
\ No newline at end of file diff --git a/docs/zh_CN/faq.md b/docs/zh_CN/faq.md index d737aaec..377d84de 100644 --- a/docs/zh_CN/faq.md +++ b/docs/zh_CN/faq.md @@ -4,10 +4,73 @@
未搜索到相关问题,你可以点击此处,前往Github提交问题.
+
常见产品购买问题
+ +
+
Q76: 如何读取已经烧录的固件?

+
+
+ + 使用esptool可以读取esp的flash内容,并导出bin文件。详细操作参考 + + [esptool github](https://github.com/espressif/esptool) + +
+
+
+ +
+
Q77: 如何使用Arduino的文件系统分区,读写文件?

+
+
+ + + [Arduino ESP32 FS插件](https://github.com/me-no-dev/arduino-esp32fs-plugin) + + [调用Arduino文件系统分区的图片资源案例](https://github.com/m5stack/M5Stack/tree/master/examples/Advanced/Display/Bmp_Jpg_SPIFFS_draw) + +
+
+
+ +
+
Q78: 如何往UIFlow文件系统中读写文件?

+
+
+ + + UIFlow基于mpy固件制作,支持的文件系统操作工具有很多,以下列举两款较为常用的工具: + + [AMPY](https://github.com/scientifichackers/ampy) + + [uPyloader](https://github.com/BetaRavener/uPyLoader) + +
+
+
+ +
+
Q79: Arduino板管理中esp32板下载失败的几种解决方案 +

+
+
+ + 重启Arduino IDE, 电脑使用手机AP移动网络进行下载。 + + [Github手动安装,参考esp32-arduino仓库README](https://github.com/espressif/arduino-esp32) + + [板管理离线安装](https://www.arduino.cn/thread-92660-1-2.html) + + 使用M5Stack官方板管理地址,在板管理器中搜索m5stack进行下载:[https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json) + +
+
+
+
Q1: 不同的M5主机、摄像头Unit之间有什么区别?

@@ -17,16 +80,6 @@
-
-
Q2: 在哪里可以购买M5Stack的产品?

-
-
-国内用户可以在我们的淘宝企业店铺购买产品 -
-
-
- -
Q3: 官方的信息发布平台是那里?如何获得第一手新闻消息?

@@ -783,7 +836,8 @@ UIFlow是M5Stack推出的一款可视化编程平台,内部集成了与M5Stack 部分Mac电脑在升级MacOS Catalina版本后,M5StickC无法正常烧录程序。
- 解决方案:烧录时,使用杜邦线短接G0至GND + 解决方案1:烧录时,使用杜邦线短接G0至GND. + 解决方案2:使用更新工具更新设备USB驱动芯片固件
@@ -839,66 +893,6 @@ UIFlow是M5Stack推出的一款可视化编程平台,内部集成了与M5Stack -
-
Q76: 如何读取已经烧录的固件?

-
-
- - 使用esptool可以读取esp的flash内容,并导出bin文件。详细操作参考 - -[esptool github](https://github.com/espressif/esptool) - -
-
-
- -
-
Q77: 如何使用Arduino的文件系统分区,读写文件?

-
-
- - -[Arduino ESP32 FS插件](https://github.com/me-no-dev/arduino-esp32fs-plugin) - -[调用Arduino文件系统分区的图片资源案例](https://github.com/m5stack/M5Stack/tree/master/examples/Advanced/Display/Bmp_Jpg_SPIFFS_draw) - -
-
-
- -
-
Q78: 如何往UIFlow文件系统中读写文件?

-
-
- - -UIFlow基于mpy固件制作,支持的文件系统操作工具有很多,以下列举两款较为常用的工具: - -[AMPY](https://github.com/scientifichackers/ampy) - -[uPyloader](https://github.com/BetaRavener/uPyLoader) - -
-
-
- -
-
Q79: Arduino板管理中esp32板下载失败的几种解决方案 -

-
-
- - 重启Arduino IDE, 电脑使用手机AP移动网络进行下载。 - -[Github手动安装,参考esp32-arduino仓库README](https://github.com/espressif/arduino-esp32) - -[板管理离线安装](https://www.arduino.cn/thread-92660-1-2.html) - -使用M5Stack官方板管理地址,在板管理器中搜索m5stack进行下载:[https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json) - -
-
-
@@ -909,4 +903,6 @@ UIFlow基于mpy固件制作,支持的文件系统操作工具有很多,以 $(this).toggleClass('open'); }); }); - \ No newline at end of file + + + diff --git a/docs/zh_CN/hat/hat-roverc.md b/docs/zh_CN/hat/hat-roverc.md index 74ca22ad..2050d4c9 100644 --- a/docs/zh_CN/hat/hat-roverc.md +++ b/docs/zh_CN/hat/hat-roverc.md @@ -66,35 +66,63 @@ RoverC测试 -RoverC搭配JoyC使用 +RoverC搭配JoyC使用(for M5StickC) >1.EasyLoader是一个简洁快速的程序烧录器,每一个产品页面里的EasyLoader都提供了一个与产品相关的案例程序,通过简单步骤将其烧录至主控,能够进行一系列的功能验证. >2.下载软件后,双击运行应用程序,将M5设备通过数据线连接至电脑,选择端口参数,点击 **"Burn"** 即可开始烧录.(**为M5StickC烧录时,请将波特率设置在750000或115200**) - -## 使用说明 -使用前请确保RoverC已经充满电,充电方式:将M5StickC插入RoverC,并连接USB线缆进行充电. -分别将两台M5StickC烧录JoyC与RoverC的EasyLoader固件,烧录后分别插入JoyC与RoverC,开机后RoverC会显示"M5AP+2字节mac地址"热点名称,同时JoyC会扫描到RoverC的mac地址名,长按3秒JoyC上的M5StickC的Home键,开始扫描小车的热点,即可配对成功。成功配对后屏幕左上角会高亮显示链接图标,同时屏幕显示摇杆数值。左摇杆上下控制前后,左右控制平移,右摇杆左右控制转向。 - -电机控制: - - - - - - - -
电机序号寄存器地址参数值
010x00-127~127
020x01-127~127
030x02-127~127
040x03-127~127
- - ## 案例程序 -### 1. Arduino +?>1: 该案例使用RoverC和JoyC,通过UDP通信实现无线控制。 请据你所使用的设备选择下方对应的案例程序。 -配合JoyC HAT使用 [点击此处](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Hat/RoverC/Arduino/RoverC),获取完整程序. + +
+ Arduino + +
+
+ M5StickC +
+
+ M5StickC Plus +
+
-单独使用 [点击此处](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Application/RoverC_Arduino_Alone),获取完整程序. +- 注意: 使用前请确保RoverC已经充满电,充电方式:将M5StickC插入RoverC,并连接USB线缆进行充电.分别将两台M5StickC烧录JoyC与RoverC的EasyLoader固件,烧录后分别插入JoyC与RoverC,开机后RoverC会显示"M5AP+2字节mac地址"热点名称,同时JoyC会扫描到RoverC的mac地址名,长按3秒JoyC上的M5StickC的Home键,开始扫描小车的热点,即可配对成功。成功配对后屏幕左上角会高亮显示链接图标,同时屏幕显示摇杆数值。左摇杆上下控制前后,左右控制平移,右摇杆左右控制转向。 + +?>2: 该案例为RoverC单机控制程序,由主控直接控制。请据你所使用的设备选择下方对应的案例程序。 + + +
+ Arduino + +
+
+ M5StickC +
+
+ M5StickC Plus +
+
+ + +## 通讯协议 + +- 协议类型I2C +- I2C Address: **0x38** + +```clike +/*--------------------------------------------------------------------------------------------------*/ +| ROVERC_MOTOR_REG | 0x00-0x03 +| ------------------------------------------------------------------------------------------------ +| motor_1_reg[0] | R/W | Motor1 Speed value(-127~127) +| motor_2_reg[1] | R/W | Motor2 Speed value(-127~127) +| motor_3_reg[2] | R/W | Motor3 Speed value(-127~127) +| motor_4_reg[3] | R/W | Motor4 Speed value(-127~127) +/*---------------------------------------------------------------------------------------------------- + +``` ### 2. UIFlow @@ -144,8 +172,6 @@ - - \ No newline at end of file diff --git a/docs/zh_CN/uiflow/logic.md b/docs/zh_CN/uiflow/logic.md index 596daf58..cbe9d836 100644 --- a/docs/zh_CN/uiflow/logic.md +++ b/docs/zh_CN/uiflow/logic.md @@ -25,7 +25,7 @@ 判断条件是否成立,当成立时执行Do右侧程序 * __if else__ -判断条件是否成立,当成立时执行Do,不成立时执行else +判断条件是否成立,当成立时执行Do右侧程序,不成立时执行else右侧程序 * __true__ 布尔值可以代替判断条件的式子,设置为true为成立,设置false为不成立 diff --git a/docs/zh_CN/uiflow/ui_simulator.md b/docs/zh_CN/uiflow/ui_simulator.md index df5ab857..041c6d12 100644 --- a/docs/zh_CN/uiflow/ui_simulator.md +++ b/docs/zh_CN/uiflow/ui_simulator.md @@ -195,6 +195,7 @@ https://unicode-table.com/en/blocks/miscellaneous-technical/">点击查看详情 > + * __Set emoji map in__ 设置方阵像素点,勾选方阵中的小方格对应显示对应的像素点 @@ -239,6 +240,21 @@ https://unicode-table.com/en/blocks/miscellaneous-technical/">点击查看详情 * __rect__ 绘制矩形 +* __triangle__ +绘制三角形 + +* __circle__ +绘制圆 + +* __ellipse__ +绘制椭圆形 + +* __arc__ +绘制弧 + +* __polygon__ +绘制多边形 + #### 注意 >M5GO的屏幕分辨率为320X240 @@ -257,6 +273,26 @@ https://unicode-table.com/en/blocks/miscellaneous-technical/">点击查看详情 >添加一些本地图片,到屏幕上显示(添加要求:大小为25K以下,格式为jpg或bmp) +> + +* __Show__ +显示图片 + +* __Hide__ +隐藏图片 + +* __Set x y__ +设置图片所在的x,y坐标 + +* __Set x__ +设置图片所在的x坐标 + +* __Set y__ +设置图片所在的y坐标 + +* __Set image__ +设置图片为image0 + #### 添加图片 >首先用APIKey建立起设备与UIFlow的连接,点击页面右上角的云保存按钮,点击image选项,点击Add image从本地添加图片,等待图片上传完成 diff --git a/docs/zh_CN/uiflow/uiflow_home_page.md b/docs/zh_CN/uiflow/uiflow_home_page.md index c200d05c..826f6788 100644 --- a/docs/zh_CN/uiflow/uiflow_home_page.md +++ b/docs/zh_CN/uiflow/uiflow_home_page.md @@ -40,6 +40,14 @@ const quickstart = { "id":"quickstart" }; +const iotcloud = { + 'title':"物联网平台/IoT-Cloud", + 'item':{ + '腾讯云':'#/zh_CN/uiflow/iotcloud/tencent' + }, + "id":"iotcloud" +}; + const hardware = { 'title':"硬件控制", 'item':{ @@ -199,6 +207,7 @@ var uiflow_home_page = new Vue({ return { list: { quickstart: quickstart, + iotcloud: iotcloud, hardware: hardware, uielements: uielements, datastructure: datastructure, @@ -212,4 +221,5 @@ var uiflow_home_page = new Vue({ }; } }) + \ No newline at end of file diff --git a/docs/zh_CN/unit/catch.md b/docs/zh_CN/unit/catch.md index a061fdb3..5cb237af 100644 --- a/docs/zh_CN/unit/catch.md +++ b/docs/zh_CN/unit/catch.md @@ -22,7 +22,7 @@ ## 包含 -- 1x Catch Unit +- 1x Catch Unit(包含Servo-SG92R) - 1x HY2.0-4转接头 - 1x RoverC.Pro 连接件 diff --git a/docs/zh_CN/unit/neopixel.md b/docs/zh_CN/unit/neopixel.md index 32ed7d91..eca7f6df 100644 --- a/docs/zh_CN/unit/neopixel.md +++ b/docs/zh_CN/unit/neopixel.md @@ -1,4 +1,4 @@ -# RGB LED {docsify-ignore-all} +# RGB LED SKU:A035 @@ -8,9 +8,7 @@ **RGB LED** 是一款可编程灯条,采用灯珠SK6812.该灯条支持数字寻址,这意味着你可以单独控制灯条上的每一个单独的LED灯显示的颜色、亮度.使用单总线编程,可进行灯条拓展.需要注意的是,随着灯条连接数量的逐渐增加,伴随的功耗也会增加,因此在使用LED个数较多的RGB LED灯条时,需要额外为其提供电源. -注意:在连接时请留意输入端口与输出端口的方向.输入端口用作连接接M5Core,或RGB LED延长拓展 - - +?>注意:灯条端部黑色PCB板处为灯条信号输入(连接主控),白色PCB板处用于延长拓展灯条。 ## 产品特性 @@ -29,6 +27,30 @@ 规格 参数 + + 灯珠型号 + SK6812 + + + 工作电压 + 5V + + + 功率 + 18W/m + + + 数据传输速率 + 800K/s + + + 工作温度 + -40°C-80°C + + + 防水等级 + 裸板-不防水 + 净重 4g/6g/10g/12g/34g @@ -78,8 +100,6 @@ [请点击此处下载Arduino](https://github.com/m5stack/M5Stack/tree/master/examples/Unit/RGB_LED_SK6812/display_rainbow) - - ### 2. UIFlow [请点击此处下载UIFlow](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/NEOPIXEL/UIFlow) diff --git a/docs/zh_CN/unit/uhf_rfid.md b/docs/zh_CN/unit/uhf_rfid.md new file mode 100644 index 00000000..19a169e8 --- /dev/null +++ b/docs/zh_CN/unit/uhf_rfid.md @@ -0,0 +1,150 @@ +# UHF-RFID + +SKU:U107 + +
+ +## 描述 + +**UHF-RFID** 是一款超高频(UHF)嵌入式无线射频读写模块。采用JRD-4035模块方案,内置陶瓷天线,完全免除普通UHF模块需要另配天线而给用户带来的技术的不确定性。优化RF设计实现模块的低耗电高性能,100MW的发射功率即可达到了1.5M以上的有效距离。使用串行通信接口,配合内置封装的AT指令集,实现即插即用,提供良好的开发与使用体验。适用仓储物流管理与智慧零售等应用场景,满足监控读取多个产品标签的应用需求。 + +## 产品特性 + +- 稳定识别距离1.5m-2m +- 工作频谱范围:840-960MHZ +- 空中接口协议: + * EPCglobal UHF Class 1 Gen 2 + * ISO 18000-6C +- UART通信接口(波特率:115200bps) +- 缓存区最大容纳200标签 +- 标签识别灵敏,稳定 + +## 包含 + +- 1x UHF-RFID +- 1x HY2.0 连接线(5CM) + +## 应用 + +- 仓储物流托盘管理 +- 车辆管理 +- 智慧零售 + +## 规格参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
规格参数
测量范围Ethanol:0-1000ppm,H2:0-1000ppm,TVOC:0-60000 ppb,eCO2:400-60000 ppm
工作区域支持 + US, Canada and other regions following U.S. + FCC。Europe and other regions following ETSI EN 302 208, + Mainland China, Japan, Korea, Malaysia, Taiwan +
TVOC与eCO2采样精度TVOC:1/6/32bbp,eCO2:1/3/9/31ppm
通信协议UART(波特率:115200bps)
净重4g
毛重8g
产品尺寸24*24*13mm
包装尺寸35*36*18mm
外壳材质Plastic ( PC )
+ +## EasyLoader + +>EasyLoader是一个简洁快速的程序烧录器,其内置了一个产品相关的案例程序,通过简单步骤将其烧录至主控,即可进行一系列的功能验证.**(程序烧录前,请根据设备类型安装相应驱动程序. M5Core型主机[请点击此处查看CP210X驱动安装教程](zh_CN/arduino/arduino_development?id=安装串口驱动),M5StickC/V/T/ATOM系列可免驱动使用)** + +
+
+
+
+ Windows + MacOS + +
+
+
+ +
+ + +

案例描述:

+

显示TVOC和eCO2读数

+
+
+
+ +### 管脚映射 + + + + +
M5Core(PORT A)GPIO22GPIO215VGND
TVOC UnitSCLSDA5VGND
+ +## 原理图 + + + + +## 相关链接 + +- **Datasheet** + + - [SGP30](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/Sensirion_Gas_Sensors_SGP30_Datasheet.pdf) + +## 案例程序 + +### 1. Arduino + +- [点击此处获取Arduino示例程序](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/TVOC) + +### 2. UIFlow + +- [请点击此处获取UIFlow示例](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/TVOC/UIFlow) + + + +