本项目开发了一款高性价比的灰度传感器,支持模拟和数字信号。传感器内置STM32F103C6T6A微控制器,具备手动按键校准功能,并通过I2C或UART接口回传传感器数据。传感器可以安装光敏二极管,也可以通过安装IRT9909红外传感器变为红外传感器。硬件部分使用立创EDA专业版绘制原理图和电路板,软件部分使用STM32CubeMX和Keil_MDK进行代码开发。
PS. 如果在比赛中不允许使用STM32,还可以通过FPC引出的模拟量接口,接入TM4C123GXL(TI的MCU)。
- Demo
- I2C IIC通信使用样例
- Firmware
- STM32F031C6T6 F031版本的传感器工程
- STM32F103C6T6A F103版本的传感器工程
- Hardware
- Gary3DModle.3mf 灰度罩子的3D模型
- 灰度传感器.epro 嘉立创EDA的电路板工程
- I2C版本建议使用100kbps频率,不容易遇到bug;
- 存在于
I2C版本
,使用AC5选项编译会硬件上访,使用AC6则不会; - 提一嘴,使用Embedded IDE里面的AC5配置没有bug,暂时没搞明白哪里的问题。
- 在
I2C版本
中加入单击按键查看器件id(在查看id模式下,闪烁的LED数量即器件id)- 进入查看id模式后,单击更改id(单击时间间隔需大于100ms)
- 查看id模式三秒无操作自动退出
- 双击按键进入校准模式,进入后依次让每个传感器采集到赛道线与赛道背景信息后,双击按键退出校准模式,退出后赛道数据会保存到MCU的内部flash中,掉电不丢失。
- 关于固件升级
- 请对准板子上的SWDIO和SWCLK进行下载。
- I2C版本:一条I2C总线上可挂载多个id不同(可单击更改)的传感器,Demo展示了同时挂载两个传感器的例子