闭门造车日记 第五篇


造车日记 milestone 1

第一阶段达成

  • 基础机械完工
  • 基础电子完工
  • 基础软件完工

达到使用遥控器控制的目标。


开源

驱动板电路

固件和测试软件


关于PCB

目前github中的版本与实际稍微有些差异:

  • 去掉了SWD接口,并增加了Boot和nRST按键,以方便使用内建的USB Bootloader
  • 增加了 D15,可以在没有外部供电情况下使用USB供电,方便调试

不足和今后可能改进

  • F303系列没有内建USB上拉电阻,需要外部上拉,目前是飞线。如果有机会改进会增加上拉电阻相关电路或者更换高等级器件
  • 电池接插件公母对调一下似乎更加合理

一些好玩儿的点

  • 总电流监控

在电池输出端有一颗0.01欧姆电阻,配合INA138进行高位电流采样,然后通过STM32F3内部的OPA继续放大后获取总电流信息

  • 充电电路

使用LM5050和一颗mosfet,配置成理想二极管。这样即使充电触点被恶意短接,也不会有任何意外。

至于未来充电是触点,还是无线……让我看看口袋里还剩多少钱……

  • WS2813 驱动电路

WS2813的IO无法兼容3.3v操作电平,因此在其供电端串联二极管,以降低其Vcc。

此外WS2813的数据口接在STM32的SPI TX管脚,并在软件中启动DMA传输数据,不额外占用cpu时间。

在软件中同时维护了GRB显存和BIN原始码流。缺点是费点儿内存,但是架不住RAM大呀,小车上最多就100来个嘛,毫无压力。

  • 关于CubeMX

其实在早些年我是鄙视CubeMX的,总觉得这样不够hardcore,不过如今依然逃不过真香定律。。。

站在高处设计的感觉还是棒棒的,而且需要直接操作寄存器时,也有办法。

整套stm32的开发体验在Linux环境下还算令人满意。

  • PID 速度控制

本来PID并不复杂也手写过几次,不过看到ARM CMSIS里有DSP版本的PID就索性试了试。

教科书般经典的实现,似乎比我写的要好用?!关键是代码因此看起来非常简单。

需要注意的是,Cortex M4核心的DSP毕竟比较简单,完整的32bit浮点是不支持的,我现在代码里用的f32类型其实并没有真的调用到DSP指令,最多是有硬件乘法器、除法器加成.

要使用真的DSP加速(MAC),只能使用q15这种数据类型。使用这个数据类型需要一波归一化操作。我也是后来才学到,所以github中的代码还没有更新。

  • stm32死机事件

之前的调试都在我的笔记本上完成,最后上机时,第一次将控制板和小车主控电脑(目前是rk3399)用usb连接起来的时候,stm32居然死机了……

最终我在自行车上想到了解决方法,在主控电脑上删除了 modem manager的包……

原因是stm32的usb cdc实现在linux看来是一个ACM设备,不过并没有实现modem类的其它调用,如果存在modem manger, linux系统会发起设备类查询,就把stm32被逼死了……所以如果只是用串口的话,最偷懒的方法就是删掉这个包。。。

  • 手柄功能

左手摇杆控制前、后、左、右方向,右手油门如果完全松开是蠕动模式。
右手摇杆目前是旋转功能。

其它按键暂时还没有用上,以后可能也不会用上了。


下一步

决定最终的车载电脑

目前的候选依旧是

  • RK3399
  • nVidia Jetson Nano

RK3399的CPU要快过 jetson, 毕竟第二代双大核心加四个小核心 pk 第一代四个大核心。毛估估大部分的直线计算可能要快15%以上,有些则要更快。

用jetson的理由无外就是cuda啦,虽然只是从tx1腰斩而来的阉割版本,全速计算还是有可观的算力。

另外一个考量点,是各自对双目的支持水平,到时候可能要做一个简单的对比。

测试基于movidius双目模块

测试基于毫米波雷达的定位方式


to be continued..


文章作者: chopin1998@gmail.com
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chopin1998@gmail.com !
评论
 上一篇
毫米波雷达 第五篇 毫米波雷达 第五篇
在LinuX环境下配置TI毫米波雷达开发环境从Debian到Ubuntu本来已经在Debian下工作得不错,不过最近因为要学习ROS,居然把用了十多年的Debian给换成了Ubuntu。。。。。 虽然是大厂出品,但其中还有一些小坑。 只好再
下一篇 
毫米波雷达 第四篇 毫米波雷达 第四篇
毫米波雷达的选型器件经过一段时间的摸索,目前确定还是用国际大厂TI的芯片先练练手。 选择器件为 IWR6843 如前文所述,这是一颗集成式毫米波雷达SoC,主要技术特点: 60 - 64Ghz 连续调制,4GHz带宽 3TX 4RX Co
  目录