mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
updated
This commit is contained in:
+41
-29
@@ -1,82 +1,94 @@
|
||||
# TRACE - 巡线Unit {docsify-ignore-all}
|
||||
# Unit TRACE {docsify-ignore-all}
|
||||
|
||||
<img src="assets/img/product_pics/unit/M5GO_Unit_trace_01.png" width="30%" height="30%">
|
||||
<img src="assets/img/product_pics/unit/unit_trace_01.png" width="30%" height="30%">
|
||||
|
||||
***
|
||||
|
||||
:memo:**[描述](#描述)** :octocat:**[例程](#例程)** :electric_plug:**[原理图](#原理图)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-1172588106.66.159c425eoqBTTY&id=577874535012)**
|
||||
:memo:**[描述](#描述)** :octocat:**[例程](#例程)** :electric_plug:**[原理图](#原理图)** 🛒**[购买链接](https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.54091debxnuOMz&ft=t&id=587199991600)**
|
||||
|
||||
## 描述
|
||||
|
||||
**<mark>TRACE</mark>** 是一款内置MEGA328芯片控制的摇杆模块,可以输出X-Y两个方向的摇杆偏移量,可以判断Z方向是否按下的。
|
||||
**TRACE** 是一款红外巡线 Unit.内置4组红外发光LED和红外敏感光电晶体管,机器人在进行移动的同时能够实时的检测地面背景颜色,并其转化为数字信号输出到微控制器.通过程序进行路线矫正,实现巡线功能.
|
||||
|
||||
内部电路里,摇杆的X方向与MEGA328的A0管脚相连,Y方向与MEGA328的A1管脚相连,Z方向与MEGA的A2管脚相连。
|
||||
该 Unit 与 M5Core 通过 Grove A 接口通信,I2C 地址为**0x5A**.
|
||||
|
||||
Joystick Unit同样也是与M5Core相连之后,通过PORT A(I2C)控制,其I2C地址是0x52。M5Core只需要读取0x52的I2C地址数据即可知道摇杆的偏移情况。
|
||||
<img src="assets/img/product_pics/unit/unit_trace_02.png" width="30%" height="30%">
|
||||
|
||||
## 特性
|
||||
## 产品特性
|
||||
|
||||
- X, Y方向的范围10~250, Z方向(0: 未按下, 1: 按下)
|
||||
- GROVE接口,支持[UiFlow](http://flow.m5stack.com)编程,[Arduino](http://www.arduino.cc)编程
|
||||
- Unit内置两个Lego插件孔,方便与Lego件结合
|
||||
- 工作范围:反射面距光电面小于11mm
|
||||
- GROVE 接口, 支持 [UIFlow](http://flow.m5stack.com) 、 [Arduino](http://www.arduino.cc)
|
||||
- 2x LEGO 兼容孔
|
||||
|
||||
## 包含
|
||||
|
||||
- 1x TRACE Unit
|
||||
- 1x Grove 线
|
||||
|
||||
## 应用
|
||||
|
||||
- 巡线机器人
|
||||
|
||||
## 相关链接
|
||||
|
||||
- **[官方频道视频](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)**
|
||||
|
||||
- **[官方论坛](http://forum.m5stack.com/)**
|
||||
|
||||
- **[MEGA328 内部固件](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/TRACE/firmware_328p)**
|
||||
|
||||
## 例程
|
||||
|
||||
### 1. Arduino IDE
|
||||
|
||||
*以下仅为用法示意,并不完整。如果需要完整例程请点击[这里](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/JOYSTICK/Arduino)。*
|
||||
*以下代码仅为片段,如需获取完整代码, [请点击此处.](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/TRACE/Arduino)。*
|
||||
|
||||
```arduino
|
||||
#include <M5Stack.h>
|
||||
#include "Wire.h"
|
||||
|
||||
#define JOY_ADDR 0x52
|
||||
#define TRACE_ADDR 0x5a
|
||||
|
||||
// declaration
|
||||
uint8_t x_data, y_data, button_data;
|
||||
char data[100];
|
||||
#define VALUE_SPLIT
|
||||
uint8_t value;
|
||||
int SensorArray[4] = {0};
|
||||
|
||||
// initialization
|
||||
M5.begin();
|
||||
M5.Lcd.clear();
|
||||
dacWrite(25, 0);//disable the speak noise
|
||||
Wire.begin(21, 22, 400000);
|
||||
m5.begin();
|
||||
Serial.begin(115200);
|
||||
Wire.begin();
|
||||
|
||||
|
||||
// read data
|
||||
Wire.requestFrom(JOY_ADDR, 3);
|
||||
if (Wire.available()) {
|
||||
x_data = Wire.read();// X(range: 10~250)
|
||||
y_data = Wire.read();// Y(range: 10~250)
|
||||
button_data = Wire.read();// Z(0: released 1: pressed)
|
||||
sprintf(data, "x:%d y:%d button:%d\n", x_data, y_data, button_data);
|
||||
Wire.beginTransmission(TRACE_ADDR);
|
||||
Wire.write(0x00);
|
||||
Wire.endTransmission();
|
||||
Wire.requestFrom(TRACE_ADDR,1);
|
||||
while(Wire.available()){
|
||||
value = Wire.read();
|
||||
}
|
||||
SensorArray[3] = (value&0x08)>>3;
|
||||
SensorArray[2] = (value&0x04)>>2;
|
||||
SensorArray[1] = (value&0x02)>>1;
|
||||
SensorArray[0] = (value&0x01)>>0;
|
||||
```
|
||||
|
||||
<img src="assets/img/product_pics/unit/unit_trace_04.png">
|
||||
|
||||
### 2. UIFlow
|
||||
|
||||
*具体例程请点击[这里](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/JOYSTICK/UIFlow)。*
|
||||
*以下代码仅为片段,如需获取完整代码, [请点击此处.](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/TRACE/UIFlow)。*
|
||||
|
||||
<img src="assets/img/product_pics/unit/unit_example/JOYSTICK/example_unit_joystick_03.png">
|
||||
<img src="assets/img/product_pics/unit/unit_example/TRACE/example_unit_trace_01.png">
|
||||
|
||||
## 原理图
|
||||
|
||||
<img src="assets/img/product_pics/unit/joystick_sch.png">
|
||||
<img src="assets/img/product_pics/unit/trace_sch.png">
|
||||
|
||||
### 管脚映射
|
||||
|
||||
<table>
|
||||
<tr><td>M5Core(GROVE接口A)</td><td>GPIO22</td><td>GPIO21</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>摇杆Unit</td><td>SCL</td><td>SDA</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>M5Core(GROVE A)</td><td>GPIO22</td><td>GPIO21</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>TRACE Unit</td><td>SCL</td><td>SDA</td><td>5V</td><td>GND</td></tr>
|
||||
</table>
|
||||
+21
-25
@@ -8,25 +8,21 @@
|
||||
|
||||
## 描述
|
||||
|
||||
**<mark>WEIGHT</mark>** 是一款集成了专用于计重秤设计的ADC芯片 **HX711** 的计重 Unit。
|
||||
**WEIGHT** 是一款计重 Unit.集成专为高精度电子秤而设计的24位A/D转换器芯片**HX711**.芯片激励电压与GROVE口电压一致为+5V,施加的压力越大,对应输出的电压值就越大(输出电压范围0 ~ 5mV)HX711有两个输入通道A,B.在本设计中使用了通道A,与通道B相比,通道A具有可编程信号放大功能.
|
||||
|
||||
* 因为 Unit 接的 GROVE 口,所以相对 Unit 里的 HX711 来说,激励电压 (Positive Supply Voltage) 是 +5V,信号输出给M5Core的电压范围是 0 ~ 5mV,施加的压力越大,对应输出的电压值越大。
|
||||
|
||||
* HX711 有两个输入通道A, B。相比通道 B,通道A具有可编程信号放大倍数,该 Unit 的电路设计中,使用了通道A,所以这个Unit具有可编程的放大功能。
|
||||
|
||||
该 unit 一端连接压力传感器,另一端通过 GROVE 线连接 M5Core,下图是连接示意
|
||||
将 Unit 的一端连接到压力传感器、另一端则连接到M5Core.
|
||||
|
||||
<img src="assets/img/product_pics/unit/unit_weight_04.png">
|
||||
|
||||
<img src="assets/img/product_pics/unit/unit_weight_03.png">
|
||||
|
||||
## 特性
|
||||
## 产品特性
|
||||
|
||||
- 可编程放大倍数:32, 64, 128
|
||||
- HX711内部ADC精度:24位
|
||||
- Unit输出电压范围:0 ~ 5mV
|
||||
- GROVE 接口,支持 [UIFlow](http://flow.m5stack.com) 编程,[Arduino](http://www.arduino.cc) 编程
|
||||
- Unit 内置两个 Lego 插件孔,方便与 Lego 件结合
|
||||
- 可编程放大倍数: 32, 64, 128
|
||||
- HX711内部ADC精度: 24 bits
|
||||
- 输出电压范围: 0 ~ 5mV
|
||||
- GROVE 接口, 支持 [UIFlow](http://flow.m5stack.com) and [Arduino](http://www.arduino.cc)
|
||||
- 2x LEGO 兼容孔
|
||||
|
||||
## 包含
|
||||
|
||||
@@ -50,9 +46,9 @@
|
||||
|
||||
### 1. Arduino IDE
|
||||
|
||||
本例程使用10Kg量程的传感器。(单位:克)
|
||||
该案例使用10Kg量程的传感器.(单位:克)
|
||||
|
||||
*如果需要完整例程请点击[这里](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/WEIGHT/Arduino/weight)。*
|
||||
*以下代码仅为片段,如需获取完整代码, [请点击此处.](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/WEIGHT/Arduino/weight)。*
|
||||
|
||||
```arduino
|
||||
/*
|
||||
@@ -99,9 +95,9 @@ void loop(){
|
||||
|
||||
### 2. UIFlow
|
||||
|
||||
每次下载程序之后,需要在不放置被测物体到电子称上的情况下,按下按键A,来零点校验。然后再放被测量物体上去,屏幕上就会显示物体重量(单位是克)。
|
||||
每次下载程序后,需要先按下按键A进行校准.然后放置测量对象进行测量,在M5Core的屏幕上将会显示其重量.(单位:克)
|
||||
|
||||
*具体例程请点击[这里](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/WEIGHT/UIFlow)。*
|
||||
*以下代码仅为片段,如需获取完整代码, [请点击此处.](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/WEIGHT/UIFlow)。*
|
||||
|
||||
<img src="assets/img/product_pics/unit/unit_example/WEIGHT/example_unit_weight_01.png">
|
||||
|
||||
@@ -111,23 +107,23 @@ void loop(){
|
||||
|
||||
### 管脚映射
|
||||
|
||||
**如果WEIGHT接GROVE A**
|
||||
**WEIGHT 连接到 GROVE A**
|
||||
|
||||
<table>
|
||||
<tr><td>M5Core(GROVE接口A)</td><td>GPIO22</td><td>GPIO21</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>WEIGHT Unit</td><td>数据引脚 DAT</td><td>时钟引脚 CLK</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>M5Core(GROVE A)</td><td>GPIO22</td><td>GPIO21</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>WEIGHT Unit</td><td>DATA Pin (DAT)</td><td>CLOCK Pin (CLK)</td><td>5V</td><td>GND</td></tr>
|
||||
</table>
|
||||
|
||||
**如果WEIGHT接GROVE B**
|
||||
**WEIGHT 连接到 GROVE B**
|
||||
|
||||
<table>
|
||||
<tr><td>M5Core(GROVE接口B)</td><td>GPIO36</td><td>GPIO26</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>WEIGHT Unit</td><td>数据引脚 DAT</td><td>时钟引脚 CLK</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>M5Core(GROVE B)</td><td>GPIO36</td><td>GPIO26</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>WEIGHT Unit</td><td>DATA Pin (DAT)</td><td>CLOCK Pin (CLK)</td><td>5V</td><td>GND</td></tr>
|
||||
</table>
|
||||
|
||||
**如果WEIGHT接GROVE C**
|
||||
**WEIGHT 连接到 GROVE C**
|
||||
|
||||
<table>
|
||||
<tr><td>M5Core(GROVE接口C)</td><td>GPIO16</td><td>GPIO17</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>WEIGHT Unit</td><td>数据引脚 DAT</td><td>时钟引脚 CLK</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>M5Core(GROVE C)</td><td>GPIO16</td><td>GPIO17</td><td>5V</td><td>GND</td></tr>
|
||||
<tr><td>WEIGHT Unit</td><td>DATA Pin (DAT)</td><td>CLOCK Pin (CLK)</td><td>5V</td><td>GND</td></tr>
|
||||
</table>
|
||||
Reference in New Issue
Block a user