From 7b80107dd4d609baad5b8f1a72f219c343d2fb9e Mon Sep 17 00:00:00 2001 From: LiHuashen <854410664@qq.com> Date: Mon, 6 May 2019 20:19:20 +0800 Subject: [PATCH] updated --- docs/zh_CN/unit/trace.md | 70 +++++++++++++++++++++++---------------- docs/zh_CN/unit/weight.md | 46 ++++++++++++------------- 2 files changed, 62 insertions(+), 54 deletions(-) diff --git a/docs/zh_CN/unit/trace.md b/docs/zh_CN/unit/trace.md index a3b1426d..94ec5dcd 100644 --- a/docs/zh_CN/unit/trace.md +++ b/docs/zh_CN/unit/trace.md @@ -1,82 +1,94 @@ -# TRACE - 巡线Unit {docsify-ignore-all} +# Unit TRACE {docsify-ignore-all} - + *** -: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)** ## 描述 -**TRACE** 是一款内置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地址数据即可知道摇杆的偏移情况。 + -## 特性 +## 产品特性 -- 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 #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; ``` + + ### 2. UIFlow -*具体例程请点击[这里](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/JOYSTICK/UIFlow)。* +*以下代码仅为片段,如需获取完整代码, [请点击此处.](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/TRACE/UIFlow)。* - + ## 原理图 - + ### 管脚映射 - - + +
M5Core(GROVE接口A)GPIO22GPIO215VGND
摇杆UnitSCLSDA5VGND
M5Core(GROVE A)GPIO22GPIO215VGND
TRACE UnitSCLSDA5VGND
\ No newline at end of file diff --git a/docs/zh_CN/unit/weight.md b/docs/zh_CN/unit/weight.md index 1f3be1f5..86d6e8f4 100644 --- a/docs/zh_CN/unit/weight.md +++ b/docs/zh_CN/unit/weight.md @@ -8,25 +8,21 @@ ## 描述 -**WEIGHT** 是一款集成了专用于计重秤设计的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. -## 特性 +## 产品特性 -- 可编程放大倍数: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)。* @@ -111,23 +107,23 @@ void loop(){ ### 管脚映射 -**如果WEIGHT接GROVE A** +**WEIGHT 连接到 GROVE A** - - + +
M5Core(GROVE接口A)GPIO22GPIO215VGND
WEIGHT Unit数据引脚 DAT时钟引脚 CLK5VGND
M5Core(GROVE A)GPIO22GPIO215VGND
WEIGHT UnitDATA Pin (DAT)CLOCK Pin (CLK)5VGND
-**如果WEIGHT接GROVE B** +**WEIGHT 连接到 GROVE B** - - + +
M5Core(GROVE接口B)GPIO36GPIO265VGND
WEIGHT Unit数据引脚 DAT时钟引脚 CLK5VGND
M5Core(GROVE B)GPIO36GPIO265VGND
WEIGHT UnitDATA Pin (DAT)CLOCK Pin (CLK)5VGND
-**如果WEIGHT接GROVE C** +**WEIGHT 连接到 GROVE C** - - + +
M5Core(GROVE接口C)GPIO16GPIO175VGND
WEIGHT Unit数据引脚 DAT时钟引脚 CLK5VGND
M5Core(GROVE C)GPIO16GPIO175VGND
WEIGHT UnitDATA Pin (DAT)CLOCK Pin (CLK)5VGND
\ No newline at end of file