It’s been a long time…
逐渐地,我越发觉得我不像年少时那样喜欢表达自己。
就像我曾经希望在博客内单独设立一个有关生活的分区。但这种想法却已经彻底没有了。
我有时会在Notion写一些随笔。但在忙碌的时光,我却依旧不愿意记录每一天的生活。
我其实已经丢失了绝大部分年少时的热情。我不知道这是好事,还是坏事。
写了这么多,这似乎早已偏离主题。
实际上,因为我不知道上一次如此分享自己,是在什么时候。
这个项目是在今年 9 月份开始的,没有参考其他现有的小车项目。硬件买了现成的模块自己瞎组装的。软件部分全部是我自己设计的,直到今日,整个项目的中间件已经有些复杂了。
- RaspVisionCar: Python | 上位机源代码。运行在树莓派中。主要是Flask web面板、SerialIO与下位机通信、OpenCV双赛道线识别。
- RaspVisionCar-STM32: C | 下位机源代码。运行在STM32。一个简单的PID和前馈控制器。特别优化了底层串口接收使用环形数据缓冲区。IMU姿态解算。
- roboinspector: TypeScript | Nextjs框架的前端大屏
- roboinspector-api Python | 前端大屏的前置api。处理来自树莓派上位机的Camera流。Yolo v8 + Bot Tracker 目标检测。Postgre数据库的记录。

同时,这也是我第一次从软件转型硬件开发。体验了一下后,比起EE我更加坚定了走CS这条路。感觉到了EE是相当封闭的行业,对于投机者,机会并没有CS那么多。
比如,CS对个人一定是存在轻资源的机会,而EE却是重资源的。
并且国内EE比较偏向制造业/消费电子,待遇存疑。C语言模电数电FPGA单片机Linux这一套,虽然相对变化小,但是收益率也不高。我个人也不是特别感兴趣。
硬件部分
车架直接买的轮趣科技的R3X,前面一个万向轮,后面两个驱动轮。带了两个轮趣的MG513X电机,以及TB6612驱动板。
小车使用STM32F103作为下位机,主要用来进行电机的控制,包括了前馈和PID反馈控制器。
我让树莓派通过daplink与stm32连接,在树莓派使用OpenOCD并启动一个gdb服务器,实现了wifi无线烧录与无线调试。但测试下来,树莓派必须与PC连在同一局域网。如果用普通家用路由器组网的话,连接挺稳定的。但是我用我的IPhone11开个人热点,连接偶尔(非常偶尔)会抽风。
IMU选择了ICM42688,虽然很多人都在使用MPU6050
差不多中间好像因为进到了HardFault_Handler中断,SysTick
Web面板在上位机运行。mjpg摄像头视频流,并且可以控制前后左右,以及前进速度、转向速度。
树莓派运行OpenCV算法,以及一个Web界面
-480¥