mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
Merge branch 'master' of github.com:m5stack/m5-docs
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 209 KiB |
@@ -0,0 +1,156 @@
|
||||
# TOUCH
|
||||
|
||||
> TOUGH integrates a 2-inch resistive touch screen on the front side of the product with an internal NS2009 driver chip. In the M5Tough library, we provide a series of APIs that can be used for touch interaction detection.
|
||||
|
||||
## Touch Class
|
||||
|
||||
>In the initialization of `M5.begin()`, an instance of `touch` has been created and initialized. You can use the API in this instance to obtain touch interaction information.
|
||||
|
||||
|
||||
- **Function: Initialize the touch screen, this function will be called by default in M5.begin to initialize the touch screen**
|
||||
|
||||
- `void begin(bool EEPROMEnabled = true);`
|
||||
|
||||
- **Function: Perform screen touch calibration (calibration data will be saved to EEPROM), return to True if it has been calibrated, otherwise enter the calibration page, the user needs to touch the specified location according to the screen prompts**
|
||||
|
||||
- `bool calibrationTouch(TFT_eSPI *fb);`
|
||||
|
||||
**Routine:**
|
||||
|
||||
```
|
||||
#include <M5Tough.h>
|
||||
|
||||
void setup()
|
||||
{
|
||||
M5.begin(true, true, true, true);
|
||||
while (!M5.touch.calibrationTouch(&M5.Lcd));
|
||||
M5.Lcd.fillScreen(TFT_BLACK);
|
||||
M5.Lcd.print("Calibration Successfully");
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
- **Function: Read touch data**
|
||||
- `void read();`
|
||||
|
||||
- **Function: Read the X coordinate of the touch finger**
|
||||
- `int GetTouchX();`
|
||||
|
||||
- **Function: Read Y coordinate of touch finger**
|
||||
- `int GetTouchY();`
|
||||
|
||||
- **Function: Detect touch finger pressing**
|
||||
- `bool isPressed();`
|
||||
|
||||
- **Function: Detection of touch finger release**
|
||||
- `bool isRelease();`
|
||||
|
||||
- **Function: Detect the movement of the touch finger**
|
||||
- `bool isMoving();`
|
||||
|
||||
- **Function: Wait for the touch finger to release**
|
||||
- `bool WaitRelease();`
|
||||
|
||||
- **Function: Wait for the touch finger to be released and set the timeout period**
|
||||
- `bool WaitRelease(uint64_t AutoReleseTime);`
|
||||
|
||||
- **Function: Read the touch point information, return a TouchPoint structure, which contains X, Y coordinate information, and implement operator overloading internally, support direct assignment and comparison of TouchPoint type structures**
|
||||
- `TouchPoint getPoint();`
|
||||
|
||||
## TouchPoint
|
||||
|
||||
>By calling the getPoint method, a TouchPoint structure type data can be obtained. Its internal members and methods are as follows.
|
||||
|
||||
```
|
||||
class TouchPoint
|
||||
{
|
||||
public:
|
||||
TouchPoint(int16_t x_ = -1, int16_t y_ = -1);
|
||||
bool operator==(const TouchPoint &p);
|
||||
bool operator!=(const TouchPoint &p);
|
||||
bool operator=(const TouchPoint &p);
|
||||
|
||||
bool Equals(const TouchPoint &p);
|
||||
|
||||
void set(int16_t x_ = -1, int16_t y_ = -1);
|
||||
bool vaild();
|
||||
|
||||
int16_t x, y;
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
>Users can create a screen area by creating an instance of the TouchZone structure, using the built-in `contains` method to determine whether TouchPoint is contained in the area.
|
||||
|
||||
## TouchZone
|
||||
|
||||
```
|
||||
typedef struct TouchZone
|
||||
{
|
||||
uint16_t x;
|
||||
uint16_t y;
|
||||
uint16_t w;
|
||||
uint16_t h;
|
||||
TouchZone(): x(-1), y(-1), w(0), h(0) {}
|
||||
TouchZone(uint16_t _x, uint16_t _y, uint16_t _w, uint16_t _h): x(_x), y(_y), w(_w), h(_h)();
|
||||
bool contains(const TouchPoint &p)
|
||||
{
|
||||
if ((this->x == -1) || (this->y == -1) || (this->w == 0) || (this->h == 0))
|
||||
return false;
|
||||
if ((p.x >= this->x) && (p.x <= (this->x + this->w)) &&
|
||||
(p.y >= this->y) && (p.y <= (this->y + this->h)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
} TouchZone_t;
|
||||
|
||||
```
|
||||
|
||||
|
||||
> When dynamically reading touch data, you need to add `void update();` to the loop to refresh the touch data.
|
||||
|
||||
|
||||
**Routine:**
|
||||
|
||||
```arduino
|
||||
#include <M5Tough.h>
|
||||
|
||||
TouchZone clearBtn(0,0,50,50);
|
||||
|
||||
void setup()
|
||||
{
|
||||
M5.begin(true, true, true, true);
|
||||
while (!M5.touch.calibrationTouch(&M5.Lcd));
|
||||
M5.lcd.drawString("CLEAR",5,5,3);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
M5.update();
|
||||
if(M5.touch.isPressed()){
|
||||
TouchPoint Point = M5.touch.getPoint();
|
||||
if(M5.touch.isMoving()){
|
||||
char buffer[24];
|
||||
sprintf(buffer, "X: %3d, Y: %3d", Point.x, Point.y);
|
||||
M5.Lcd.drawPixel(Point.x, Point.y ,TFT_GREEN);
|
||||
Serial.println(buffer);
|
||||
}
|
||||
if(clearBtn.contains(Point)){
|
||||
M5.lcd.fillScreen(TFT_BLACK);
|
||||
M5.lcd.drawString("CLEAR",5,5,3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
- For more information about Touch API, please refer to [M5Tough-Github source code](https://github.com/m5stack/M5Tough/tree/master/src)
|
||||
@@ -64,7 +64,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Communication protocol</td>
|
||||
<td>IIC: 0x38</td>
|
||||
<td>I2C: 0x38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Battery</td>
|
||||
|
||||
@@ -103,6 +103,14 @@ const m5paper_api = {
|
||||
"id":"m5paper_api"
|
||||
};
|
||||
|
||||
const tough_api = {
|
||||
'title':"M5Tough API",
|
||||
'item':{
|
||||
'TOUCH':'#/en/api/tough/touch'
|
||||
},
|
||||
"id":"tough_api"
|
||||
};
|
||||
|
||||
var arduino_home_page = new Vue({
|
||||
el:'#arduino_home_page',
|
||||
data() {
|
||||
@@ -113,7 +121,8 @@ var arduino_home_page = new Vue({
|
||||
m5stickc_api: m5stickc_api,
|
||||
m5core2_api: m5core2_api,
|
||||
coreink_api: coreink_api,
|
||||
m5paper_api: m5paper_api
|
||||
m5paper_api: m5paper_api,
|
||||
tough_api: tough_api
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ UART Parameter setting:
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Baud rate</td>
|
||||
<td>4800bps-921600bps</td>
|
||||
<td>default: 9600bps</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Output protocol</td>
|
||||
|
||||
@@ -0,0 +1,245 @@
|
||||
# TOUGH
|
||||
|
||||
<!-- <el-tag effect="plain">SKU:K010</el-tag> -->
|
||||
|
||||
<!-- <div class="product_pic"><img class="pic" src="assets/img/product_pics/core/tough/tough_01.webp"><img class="pic" src="assets/img/product_pics/core /tough/tough_02.webp"></div> -->
|
||||
|
||||
## Description
|
||||
|
||||
**TOUGH** is the embedded master control for industrial scenarios in the M5Stack development kit series. The main control ESP32 model is D0WDQ6-V3, with two Xtensa® 32-bit LX6 processors that can be controlled separately, the main frequency is up to 240Mhz, supports WiFi and Bluetooth functions, onboard 16MB Flash and 8MB PSRAM, and can be through TYPE-C interface Download programs and powerful configuration to meet the resource overhead of complex applications. The front is equipped with a 2.0-inch resistive touch screen. The built-in RTC module can provide accurate timing function. The power supply part is equipped with AXP192 power management chip. At the same time, the fuselage is equipped with a TF-card (microSD) card slot and speakers, and a power amplifier chip with I2S digital audio interface can effectively prevent audio signal distortion.
|
||||
|
||||
## Product Features
|
||||
|
||||
- Based on ESP32 development board, support WiFi, Bluetooth
|
||||
- 16M Flash, 8M PSRAM
|
||||
- Built-in speaker, power indicator, RTC, I2S power amplifier, resistive touch screen, power button, reset button
|
||||
- TF card slot (support up to 16GB)
|
||||
- Development platform [UIFlow](http://flow.m5stack.com), [MicroPython](http://micropython.org/), [Arduino](http://www.arduino.cc)
|
||||
|
||||
## contains
|
||||
|
||||
- 1x M5Stack TOUGH
|
||||
- 1x Type-C USB(20cm)
|
||||
|
||||
## Application
|
||||
|
||||
- Industrial Controller
|
||||
|
||||
## Specifications
|
||||
|
||||
<table>
|
||||
<tr style="font-weight:bold">
|
||||
<td>Master control resources</td>
|
||||
<td>Parameters</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ESP32-D0WDQ6-V3</td>
|
||||
<td>240MHz dual core, 600 DMIPS, 520KB SRAM, Wi-Fi, dual mode Bluetooth</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Flash</td>
|
||||
<td>16MB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PSRAM</td>
|
||||
<td>8MB</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Input voltage</td>
|
||||
<td>5V @ 500mA</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Host interface</td>
|
||||
<td>TypeC x 1, GROVE(I2C+I/0+UART) x 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IPS LCD screen</td>
|
||||
<td>2.0"@320*240 ILI9342C</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Resistive touch screen driver IC</td>
|
||||
<td>NS2009</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Speaker</td>
|
||||
<td>1W-0928</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>I2S power amplifier</td>
|
||||
<td>NS4168</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>RTC</td>
|
||||
<td>BM8563</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PMU</td>
|
||||
<td>AXP192</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>USB chip</td>
|
||||
<td>CP2104</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DC-DC boost</td>
|
||||
<td>SY7088</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TF card slot</td>
|
||||
<td>Support up to 16G</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Lithium battery interface</td>
|
||||
<td>MX1.25mm in-line 2P</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Antenna</td>
|
||||
<td>2.4G 3D antenna</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
## EasyLoader
|
||||
|
||||
>EasyLoader is a concise and fast program writer, which has a built-in case program related to the product. It can be burned to the main control by simple steps to perform a series of function verification. Please install the corresponding driver according to the device type. M5Core host [Please click here to view the CP210X driver installation tutorial](en/arduino/arduino_development)
|
||||
|
||||
- **Windows**
|
||||
- [FactoryTest](https://m5stack.oss-cn-shenzhen.aliyuncs.com/EasyLoader/Windows/CORE/EasyLoader_M5Tough_FactoryTest.exe)
|
||||
|
||||
## Pin mapping
|
||||
|
||||
**LCD screen & TF Card**
|
||||
|
||||
LCD pixels: 320x240
|
||||
TF card supports up to 16GB
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 Chip</td><td>GPIO38</td><td>GPIO23</td><td>GPIO18</td><td>GPIO5</td><td>GPIO15</td><td></td><td> </td><td> </td></tr>
|
||||
<tr><td>AXP192 Chip</td><td> </td><td> </td><td> </td><td> </td><td> </td><td>AXP_IO4</td><td>AXP_LD03</td><td>AXP_LDO2</td></tr>
|
||||
<tr><td>ILI9342C</td><td>MISO</td><td>MOSI</td><td>SCK</td><td>CS</td><td>DC</td><td>RST</td><td>BL</td><td>PWR</td></tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 Chip</td><td>GPIO38</td><td>GPIO23</td><td>GPIO18</td><td>GPIO4</td></tr>
|
||||
<tr><td>TF Card</td><td>MISO</td><td>MOSI</td><td>SCK</td><td>CS</td></tr>
|
||||
</table>
|
||||
|
||||
**Resistive touch screen**
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 chip</td><td>GPIO21</td><td>GPIO22</td><td>GPIO39</td></tr>
|
||||
<tr><td>Res.TOUCH/NS2009</td><td>SDA</td><td>SCL</td><td>PENIRQ</td></tr>
|
||||
</table>
|
||||
|
||||
**NS4168 power amplifier**
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 Chip</td><td>GPIO12</td><td>GPIO0</td><td>GPIO2</td><td>AXP_IO2</td></tr>
|
||||
<tr><td>NS4168</td><td>BCLK</td><td>LRCK</td><td>DATA</td><td>SPK_EN</td></tr>
|
||||
</table>
|
||||
|
||||
**RTC**
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 Chip</td><td>GPIO21</td><td>GPIO22</td><td></td></tr>
|
||||
<tr><td>AXP192</td><td></td><td></td><td>AXP_PWR</td><td>AXP_LDO1</td></tr>
|
||||
<tr><td>BM8563</td><td>SDA</td><td>SCL</td><td>INT</td><td>PWR</td></tr>
|
||||
</table>
|
||||
|
||||
**USB to serial download**
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 Chip</td><td>GPIO1</td><td>GPIO3</td></tr>
|
||||
<tr><td>CP2104</td><td>RXD</td><td>TXD</td></tr>
|
||||
</table>
|
||||
|
||||
**Internal I2C connection**
|
||||
|
||||
<table>
|
||||
<tr><td>ESP32 Chip</td><td>GPIO21</td><td>GPIO22</td></tr>
|
||||
<tr><td>AXP192</td><td>SDA</td><td>SCL</td></tr>
|
||||
<tr><td>BM8563</td><td>SDA</td><td>SCL</td></tr>
|
||||
<tr><td>NS2009</td><td>SDA</td><td>SCL</td></tr>
|
||||
</table>
|
||||
|
||||
## TOUGH M-BUS schematic
|
||||
|
||||
<img class="pic" src="assets/img/product_pics/core/core2/core2_mbus.webp" width = "50%">
|
||||
|
||||
## M5Core2 port description
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<th>PORT</th>
|
||||
<th>PIN</th>
|
||||
<th>Remarks:</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>PORT-A (red)</td>
|
||||
<td>G32/33</td>
|
||||
<td>I2C</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## ESP32 ADC/DAC can map pin
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<th>ADC1</th>
|
||||
<th>ADC2</th>
|
||||
<th>DAC1</th>
|
||||
<th>DAC2</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>8 channels</td>
|
||||
<td>10 channels</td>
|
||||
<td>2 channels</td>
|
||||
<td>2 channels</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>G32-39</td>
|
||||
<td>G0/2/4/12-15/25-27</td>
|
||||
<td>G25</td>
|
||||
<td>G26</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
For more information about pin assignments and pin remapping, please refer to [ESP32 datasheet](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/esp32_datasheet_en.pdf)
|
||||
|
||||
|
||||
## Related Links
|
||||
|
||||
- **Datasheet**
|
||||
- [ESP32](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/esp32_datasheet_cn.pdf)
|
||||
- [NS4168](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/NS4168_CN_datasheet.pdf)
|
||||
- [ILI9342C](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/ILI9342C-ILITEK.pdf)
|
||||
- [BM8563](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/BM8563_V1.1_cn.pdf)
|
||||
- [SY7088](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/SY7088-Silergy.pdf)
|
||||
- [AXP192](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/AXP192_datasheet_en.pdf)
|
||||
- [NS2009](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/core/tough/NS2009_C219024.pdf)
|
||||
|
||||
- **API**
|
||||
|
||||
- [Arduino API](zh_CN/arduino/arduino_home_page?id=tough_api)
|
||||
|
||||
|
||||
## Schematic
|
||||
|
||||
<img src="assets/img/product_pics/core/tough/tough_sch.webp">
|
||||
|
||||
## Example
|
||||
|
||||
### Arduino IDE
|
||||
|
||||
- [FactoryTest](https://github.com/m5stack/M5Tough/tree/master/examples/Basics/FactoryTest)
|
||||
- [M5Tough-Lib](https://github.com/m5stack/M5Tough)
|
||||
|
||||
<script>
|
||||
anchor_search();
|
||||
scrollFunc();
|
||||
</script>
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
**CardKB HAT** is an implementation of a full-featured QWERTY keyboard tailored as a HAT for the M5StickC. Consider that you want to make some cool stuff that require interaction through typing on a keyboard. But M5StickC itself just has 2 buttons. So, here comes the flexible and yet powerful “CardKB HAT” to solve the issue.
|
||||
|
||||
The CardKB HAT also offers support for several button combinations (Shift+Key, Fn+Key) adding virtually many different keys. This comes with an RGB LED to indicate the keyboard state. IIC address is 0x5F.
|
||||
The CardKB HAT also offers support for several button combinations (Shift+Key, Fn+Key) adding virtually many different keys. This comes with an RGB LED to indicate the keyboard state. I2C address is 0x5F.
|
||||
|
||||
**Button combination description:**
|
||||
|
||||
@@ -26,7 +26,7 @@ The CardKB HAT also offers support for several button combinations (Shift+Key, F
|
||||
## Product Features
|
||||
|
||||
- Full-function keyboard with multi-key combination support
|
||||
- IIC Address : 0X5F(I2C)
|
||||
- I2C Address : 0X5F(I2C)
|
||||
|
||||
|
||||
## Include
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
## Description
|
||||
|
||||
**Hat ENV** It is able to detect the temperature, humidity, air pressure and magnetic field. This product relates via I2C protocol which allows you to obtain 4 types of environment data thru just 2pins, together with the tiny body, makes it a powerful application for envitonment data collecting.
|
||||
**ENV HAT** It is able to detect the temperature, humidity, air pressure and magnetic field. This product relates via I2C protocol which allows you to obtain 4 types of environment data thru just 2pins, together with the tiny body, makes it a powerful application for envitonment data collecting.
|
||||
|
||||
## Product Features
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
## Description
|
||||
|
||||
**Hat PIR** is an M5StickC compatible human body induction sensor, it belongs to "Passive pyroelectric infrared detector", that detect the infrared come from the human body. When the infrared is detected, the sensor will output HIGH and last for two seconds until the next detecting round.
|
||||
**PIR HAT** is an M5StickC compatible human body induction sensor, it belongs to "Passive pyroelectric infrared detector", that detect the infrared come from the human body. When the infrared is detected, the sensor will output HIGH and last for two seconds until the next detecting round.
|
||||
|
||||
*Notice: There exist 2 seconds delay*
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
- Battery testing
|
||||
- Mobile power bank
|
||||
- Battery charger
|
||||
- IIC Address 0x75
|
||||
- I2C Address 0x75
|
||||
|
||||
## Include
|
||||
|
||||
@@ -28,6 +28,10 @@
|
||||
<td>Resources</td>
|
||||
<td>Parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>IP5209 I2C Address</td>
|
||||
<td>0x75</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Net weight</td>
|
||||
<td>55g</td>
|
||||
@@ -46,10 +50,6 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## Communication protocol
|
||||
|
||||
<mark>IP5209 I2C address: 0x75</mark>
|
||||
|
||||
## Related Link
|
||||
|
||||
- **[IP5209 Datasheet](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/hat/IP5209.pdf)**
|
||||
|
||||
@@ -39,6 +39,10 @@
|
||||
<td>Resources</td>
|
||||
<td>Parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>I2C Address</td>
|
||||
<td>0x38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Net weight</td>
|
||||
<td>213g</td>
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
## Description
|
||||
|
||||
**ENV II** is an environment sensor which can sense temperature, humidity and atmospheric pressure. It is built with SHT30, BMP280 and BMM150 sensors, it is programmed over I2C. SHT30 is a digital temperature and humidity sensor with high precision and low power consumption. BMP280 is an absolute barometric pressure sensor which is especially designed for mobile applications. BMM150 is a magnetometer, which can be used to monitor the change of magnetic field and the direction of magnetic field.It offers the highest flexibility to optimize the device regarding power consumption, resolution and filter performance.
|
||||
**ENV II HAT** is an environment sensor which can sense temperature, humidity and atmospheric pressure. It is built with SHT30, BMP280 and BMM150 sensors, it is programmed over I2C. SHT30 is a digital temperature and humidity sensor with high precision and low power consumption. BMP280 is an absolute barometric pressure sensor which is especially designed for mobile applications. BMM150 is a magnetometer, which can be used to monitor the change of magnetic field and the direction of magnetic field.It offers the highest flexibility to optimize the device regarding power consumption, resolution and filter performance.
|
||||
|
||||
## Product Features
|
||||
|
||||
- Measurement of temperature, humidity, air pressure and magnetic field
|
||||
- High-precision
|
||||
- Support IIC
|
||||
- Support I2C
|
||||
- GROVE interface, support [UIFlow](http://flow.m5stack.com) and [Arduino](http://www.arduino.cc)
|
||||
- Two Lego installation holes
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
## Description
|
||||
|
||||
**COMMU** is a Muti-Communication-Interface-Converter. Integrated with 2*IIC, 1*TTL, 1*CAN, 1*RS485. Apparently COMMU has packed with most of series communications.
|
||||
**COMMU** is a Muti-Communication-Interface-Converter. Integrated with 2*I2C, 1*TTL, 1*CAN, 1*RS485. Apparently COMMU has packed with most of series communications.
|
||||
|
||||
Default connection: TTL - UART0, RS485 - UART2. Since ESP32 pin map is allowed for re-assign, you can re-assign or re-mapping the TTL or RS485 interface to other pins.
|
||||
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
**ENCODER** is compatible with FACE Kit. You can have it replace the key-card panel inside the FACE kit. It is designed for rotary encoder control, integrated Mega328 microprocessor inside and LEDs around the encoder.
|
||||
|
||||
The series communication protocol between M5 core and ENCODER is IIC (The default I2c address is: 0x5E)
|
||||
The series communication protocol between M5 core and ENCODER is I2C (The default I2c address is: 0x5E)
|
||||
|
||||
<img src="assets/img/product_pics/module/module_encoder_03.webp" width="60%" height="60%">
|
||||
|
||||
## Product Features
|
||||
|
||||
- 12 RGB Led
|
||||
- IIC communication
|
||||
- I2C communication
|
||||
- Simple API for programming
|
||||
- Mega328 inside
|
||||
- Encoder detection
|
||||
@@ -96,7 +96,7 @@ The series communication protocol between M5 core and ENCODER is IIC (The defaul
|
||||
r, g, b: 0 ~ 254
|
||||
*/
|
||||
void Led(int led_index, int r, int g, int b){
|
||||
// IIC send data
|
||||
// I2C send data
|
||||
Wire.beginTransmission(Faces_Encoder_I2C_ADDR);
|
||||
Wire.write(led_index);
|
||||
Wire.write(r);
|
||||
@@ -112,7 +112,7 @@ void Led(int led_index, int r, int g, int b){
|
||||
void get_encoder_increment(void){
|
||||
int temp_encoder_increment;
|
||||
|
||||
// IIC read data
|
||||
// I2C read data
|
||||
Wire.requestFrom(Faces_Encoder_I2C_ADDR, 3);
|
||||
if(Wire.available()){
|
||||
temp_encoder_increment = Wire.read();// get increment
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
Comes with 2x DC motor channel, 4x Servo motor channel, IR transmitter, IR receiver, 3x extend PORT B(GPIO Port). This Module can surely help build more complicated and organized motor applications.
|
||||
|
||||
Communication Protocol: IIC (0x61).
|
||||
Communication Protocol: I2C (0x61).
|
||||
|
||||
## Product Features
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
**GoPlus2** is a stackable multi-functional motor and servo control module. The master control integrates the STM32F030C8T6 chipset. The module is equipped with 2-way DC motor drive interface and 4-way servo drive interface. Three PORT-B interfaces(Analog Input,Digital Output,Digital Input) can be expanded. Built-in 500mAh battery and support infrared (IR) transmission and receive. In order to meet the requirements of multi-channel interface power supply at the same time, a DC power interface is provided for external power supply, battery can be charged through the M5Core with USB-C.
|
||||
|
||||
Communication protocol: IIC(0x38)
|
||||
Communication protocol: I2C(0x38)
|
||||
|
||||
### Product Features
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
**JOYSTICK** is a joystick control panel compatible with the FACE kit. By pushing the joystick on the panel, you can input angle, direction and other data. Using the I2C communication protocol. It's possible to get the offset data of the joystick (X, Y coordinate) and the state of the middle button. An LED bar composed of 12 LEDs is embedded around the joystick. You can customize the luminous form of the LED light according to your needs.
|
||||
|
||||
JOYSTICK IIC address is 0x5E by default.
|
||||
JOYSTICK I2C address is 0x5E by default.
|
||||
|
||||
## Product Features
|
||||
|
||||
- 4 RGB Led
|
||||
- IIC communication
|
||||
- I2C communication
|
||||
- Simple API for programming
|
||||
|
||||
## Include
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
**DC MOTOR** is built with MEGA328 and L293DD microcontrollers, implemented 4 driver channels. A DC power input is designed for power supplement. Through M-BUS the DC in can automatically power the M5 core at top. DC motor module can drive RJ12 interface encoder-motor easily and quickly, such as LEGO ev3 Motor.(This product is not affiliated with or endorsed by LEGO. LEGO is a trademark of the LEGO Group of companies)
|
||||
|
||||
Series Communication: IIC (0x56).
|
||||
Series Communication: I2C (0x56).
|
||||
|
||||
## Product Features
|
||||
|
||||
@@ -16,7 +16,7 @@ Series Communication: IIC (0x56).
|
||||
- DC Connector Type: XT30 (female)
|
||||
- 4x Motor port
|
||||
- Compatible with LEGO EV3 motor
|
||||
- 2x IIC GROVE port (extend PORTA from M5 Core)
|
||||
- 2x I2C GROVE port (extend PORTA from M5 Core)
|
||||
- L293DD: PUSH-PULL Driver Chip
|
||||
|
||||
## Include
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user