Skip to content

Commit

Permalink
Update I2C CMD table.
Browse files Browse the repository at this point in the history
  • Loading branch information
peng-zhihui committed Mar 21, 2022
1 parent 746d296 commit 33cb332
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
Binary file added 5.Docs/Images/robot9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 22 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ Software中提供了视频里演示的上位机软件ElectronStudio的Unity工

![](/5.Docs/Images/robot5.jpg)

* 你也可以用别的USB摄像头,里面塞得下就行,当然大家可以根据需要自己替换别的USB摄像头,只要塞得下就行,摄像头是直接拆了接线焊在SensorBoard上的 。
* 当然大家可以根据需要自己替换别的USB摄像头(黑白的、高帧率的),只要塞得下就行,摄像头是直接拆了接线焊在SensorBoard上的 。

> 值得注意的是,**我用的USB-HUB芯片的1拖4的**,目前使用了三个口,还剩一个其实可以再集成一个USB麦克风,这样ElectronBot也能当作电脑的麦克风使用了。
Expand All @@ -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架构设计如图:

Expand Down

0 comments on commit 33cb332

Please sign in to comment.