欢迎来到踩坑系列的第三篇。之前两篇中我分别介绍了我 RoboMaster 机器人竞赛 和 FPGA 课程大作业 中踩的坑。 这次踩坑的是我的毕业设计,三人小组合作的空气质量传感器网络。整个项目的设计如下: 从安装的传感器模块中读取数据并上传到服务器上的 InfluxDB 数据库 我们使用的传感器如下: MiCS6814,测量 NO2,CO,NH3 模拟输出 BME680,测量温湿度气压及 TVOC I2C 接口输出 PMS5003,测量可吸入颗粒物(PM) UART 串口输出 额外加上了这些模块: ATGM336H,GPS+北斗双模定位模块 UART 串口输出 ESP8266,使用非常广泛的 Wi-Fi 模块 UART 串口输出 MH-CD42,电源管理模块 输出?不存在的,供电就行了 需要足够节能,能用电池坚持一周左右 也需要能够监测电池电量以计划电池更换 一定程度的防雨能力 网页显示,短时间预测 教授已经有一个可以测量风力的气象站了 这篇文章记录了我们在实现这些功能时踩的坑。...
Cyclone IV FPGA 开发踩坑记录
上学期,学校开设了一门数字电路课程,使用 FPGA 进行开发。在课程结尾,我们需要分成小组,利用 FPGA 自由设计电路的特性实现复杂的功能,例如制作一款游戏、运行卷积神经网络等等,并且可以按自己喜好加入各种额外的功能。 我们小组实现了一款类似《雷电》的游戏,实际上就是操控飞机发射子弹攻击敌人。实现的额外功能(课程内容除外)包括: 640x480,16 位色深的 VGA Framebuffer,存储在 SRAM 芯片上 相应的,内置了简体中文字库(包含整个 UTF-8 中文范围,但不包括标点符号(懒)) 也支持修改 Y 轴偏移量快速滚动屏幕,为了实现飞行效果 SRAM 控制器/芯片以二倍频率工作,让 FPGA 上的软 CPU 和 VGA 控制器同时访问,不存在抢占问题 最多 8 架飞机(包括敌方我方),可以完全自定义图片(非调色板,非索引),全屏幕自由移动 最多 56 发子弹(包括敌方我方),可以修改大小颜色,全屏幕移动 使用 WM8731 音频芯片循环播放长达约 5 分钟的 BGM,...
RoboMaster 开发踩坑日记(2018-05-28 更新)
学校组建了一支 RoboMaster 队伍,准备参加今年的比赛。因为是新校区新学生,因此我们完全没有之前的参考资料,只能自己一个个踩坑。 以下是我们在软件开发中遇到的一些坑。 硬件版本:RoboMaster 官方开发板(信仰板) 芯片型号:STM32F427IIHx 软件系统:ChibiOS 18.2.0 信仰板 HSE 时钟频率为 12MHz 而非常见的 8MHz 最坑的是信仰板的说明书和硬件原理图上完全没有提到这事。 这个问题导致我们用 STM32CubeMX 等软件算出的时钟频率远高于额定频率,并导致了如下后果: 莫名其妙的频率设置失败(设置了在合理范围内的频率,但是板子不响应了,只能短接某个电阻 Reset) USART 时序错误(明明两端波特率一样,但是收发的数据就是乱码,遥控器无法使用) CAN 数据无法应答(明明板子和电机电调都在发数据,示波器能解码出来,但是双方就是不 ACK) 以上问题在重新调整时钟频率后全部解决。 while(true); 发送 CAN 报文必须加延时 这是一个小问题。...