Update I2C CMD table.

This commit is contained in:
peng-zhihui
2022-03-22 01:02:22 +08:00
parent 746d2966e4
commit 33cb332136
2 changed files with 22 additions and 2 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

+22 -2
View File
@@ -136,7 +136,7 @@ Software中提供了视频里演示的上位机软件ElectronStudio的Unity工
![](/5.Docs/Images/robot5.jpg)
* 你也可以用别的USB摄像头,里面塞得下就行,当然大家可以根据需要自己替换别的USB摄像头,只要塞得下就行,摄像头是直接拆了接线焊在SensorBoard上的 。
* 当然大家可以根据需要自己替换别的USB摄像头(黑白的、高帧率的),只要塞得下就行,摄像头是直接拆了接线焊在SensorBoard上的 。
> 值得注意的是,**我用的USB-HUB芯片的1拖4的**,目前使用了三个口,还剩一个其实可以再集成一个USB麦克风,这样ElectronBot也能当作电脑的麦克风使用了。
@@ -148,7 +148,27 @@ Software中提供了视频里演示的上位机软件ElectronStudio的Unity工
> STM32F4的源码如果通过`.ioc`重新生成工程的话,记得要把USB相关的几个文件预先备份,生成完代码后再替换回我原来的文件,因为CubeMX会覆盖生成把相关代码修改掉(我实际是使用Git的文件版本回退操作的 )。
#### 3.2 SDK使用说明
#### 3.2 舵机I2C协议
魔改后的舵机通过I2C接口和控制板进行通信,STM32F4的控制板为主机,舵机为从机。通信的过程始终是主机发起的,主机首先下发位置、参数等指令,然后即时取回相关数据完成一个通信来回。
每个舵机作为从机接收两个地址的指令:**自己的ID号**,以及**0号广播**。广播用于在没有给舵机设置地址的时候作为通配地址使用(比如你刚烧写完舵机固件,此时舵机的Flash是没有储存自己的ID的,只能通过0号地址通信)。
**值得注意的是:舵机和主机的上电需要有先后顺序,一定要先让从机初始化完成开始监听数据,再让主机发送指令!**
> 如果主机发送指令的时候从机不响应,或者多个舵机地址相同同时响应,都可能引起通信错误,因此需要保证上述的顺序。
>
> 由于硬件上主机和舵机上电都是同时的,所以在主机的固件代码中,有一个延时2S的代码(其实可以不用那么久),就是等待舵机都上电初始化完成再开始通信。
>
> 调试的时候,一个舵机一个舵机调试,注释掉其他未连接的舵机的通信代码,不然也会造成轮询等待超时。
关于舵机的指令含义,感谢 **[leazer](https://github.com/leazer)** 同学在Issues整理的表格:
![](https://pengzhihui-markdown.oss-cn-shanghai.aliyuncs.com/img/20220322010150.png)
> 指令后续可能会更新。
#### 3.3 SDK使用说明
SDK架构设计如图: