2

ESP32 介绍

乐鑫旗下的芯片,国产的,具体信息参考:

官方网站:espressif.com

rust 介绍

一门开发语言,懂得都懂,没啥好介绍的,官方网站:

官方网站:rust-lang
嵌入式平台资料入口:rust-embedded

开发资料准备

  1. github ESP 开源资料:esp-rs rust
  2. The Rust on ESP Book 简体中文版

学习Rust在ESP32平台上开发目的

手里有一台露营拖车,平时出去玩带着小车太累,于是打算改装一下露营车。正好手头有一块24V的锂电池,于是打算前方向轮换成两个轮毂电机,做个遥控器用于控制,后期希望可以做成自动跟随,这样出去玩的时候就省力很多,不用一直拖着小车。

手里有3块树莓派,但是树莓派的话,我寻思用于做这种功能,有点大材小用,且树莓派需要的供电电流电压都不小,就算使用充电宝,也用不了多久。秉承着适用原则,找了些资料,发现国产开发版ESP32系列社区也强大,资料也比较齐全。

另外为什么选择 rust 开发语言用于 ESP32 的开发板开发,不选择 C/C++。首先对于C的话,虽然平时不用,但是用的话也不是不行,但是对于C++的话,我是真的已经把在学校学的东西全部忘光了。另外就是考虑最擅长的 PHP,然而 PHP 这玩意我目前暂时没有听说用于底层开发的。退而求其次,发现 golang 也可以做底层开发,golang 有一个分支,叫 tinygo,然而 tinygo 对于 ESP32 上的蓝牙以及 WI-FI 的支持都没有。如果自己找官方资料,自己从头写 WI-FI、蓝牙驱动,如果说打算去挑战一下,基于 golang C 的方法,应该也能做,但是感觉又太过于浪费时间。Rust 相对来说,就很成熟了,且目前 rust 社区活跃度应该是和 golang 是差不多的,另外对于 ESP32 平台,虽然 WI-FI、蓝牙也是基于 Rust-C 的,但是已经很成熟,且受到 ESP32 官方支持,也算是个未来,多方面考虑后,是我个人觉得目前最好的选择。

学习过程拆分

目前拆分为几个大大步骤进行学习:

  1. WI-FI、蓝牙程序
  2. 摇杆手柄遥控系统
  3. 信号接收系统
  4. 无刷电机控制系统
  5. 无刷电机霍尔信号反馈处理系统(用于处理行驶平衡,不偏航)
  6. 无刷电机信号放大系统,因为开发版供电系统是 5V 的,无刷电机能行驶并能跑起来,必须得 24V 的电源系统,这个方面只能购买无刷驱动模块。
  7. 能量回收系统,目前对于这个没有头绪,这个东西需要放到后期慢慢研究,看是否能弄到现成的板子,从道理上来说是有的,不然自己还得研究电路设计和打板,会有比较大的难度。

已准备材料:

  • [x] 3 块 ESP32 开发板
  • [x] 遥控手柄板
  • [x] 24V 电源
  • [ ] ESP32 电池
  • [ ] 2 个无刷轮毂电机

kumfo
6.7k 声望4.1k 粉丝

程序生存法则: