- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 esp-fc在pyDrone上的移植和适配
几点说一下:分支上的代码是QMC5883L和SPL06都是Slave的,但是esp-fc代码没做相应支持,大牛的代码不能随便动。是某个大牛做的基于ESP单片机的飞控程序,支持ESP32, ESP8266, ESP32-S3, ESP32-S2, ESP32-C3等多种芯片,并且支持Betaflight的配置。如何做源代码级的Debug,我还没搞明白,不过esp-fc的代码比较清晰,鼓捣鼓捣就可以连上Betaflight,看到各传感器,并控制Motor了。代码在我的github上,
2024-08-23 14:36:35
250
原创 pyDrone固件定制
要注意的是,编译生成的firmware.bin是包括了bootloader、分区表和app的完整固件,烧写时从0地址开始。pyDrone是01Studio开源的四轴飞行器,基于esp-drone修改得来,增加了MicroPython的支持,在Python层面实现了pyDrone的飞行控制,包括wifi和蓝牙通信等。,修改ports/esp32/py-drone目录下的文件,主要是utils目录,飞控的核心功能在这里;如果要新增或修改硬件,则修改drivers目录下;title: pyDrone固件定制。
2024-08-23 14:30:16
175
原创 pyDrone代码解析
mpconfigport.h中定义了Micropython能调用的module,espdrone的定义就在其中。由此可以看到,Micropython和pyDrone硬件交互,主要在py-drone目录下的。继续分析,drone_drone_type的实现在mod_drone.c。其具体的实现在mod_espdrone.c。title: pyDrone代码解析。DRONE所支持的操作也都在此。
2024-08-23 14:29:33
22
原创 移植esp-Drone到pyDrone硬件
可以看出,原版espDrone要控制机身顺时针旋转,则增大M1、M2的转速;而pyDrone的M1、M2顺时针旋转,对机身产生的是逆时针旋转的影响,要控制机身顺时针旋转,应该是减小M1、M2的转速。espDrone的M1、M3逆时针旋转,对机身产生顺时针旋转的影响;对照espDrone的图,roll和pitch都比较直观,(M1,M2)/(M3、M4)影响roll;(M1,M4)/(M2,M3)影响pitch;对四轴飞行器,靠控制四个motor的转速,来实现roll、pitch、yaw三种运动状态的变化。
2024-08-23 14:28:18
174
原创 Windows下ESP32S3的MicroPython编译
因为MicroPython用的1.18,新的IDF5.2有一些问题,所以我用的4.4.7版本。走不下去了,似乎是超出了windows命令行的长度限制(8192),qstr.i.last-417609e.bat这里面line 3有33k的长度…换了msys64,还是一样的结果,因为生成QSTR的还是.bat后缀,肯定还是走cmd那套。编译时报错,提示gbk什么的,是windows下的专有毛病,修改。换一条路,用docker。拉回来用,省的和本机的python环境再冲突。继续编译,到生成QSTR的时候又报错。
2024-08-23 14:23:44
23
原创 docker环境下烧写ESP32固件
Linux下可以通过–device的选项将设备透给docker,只是有点麻烦;Windows下就没有办法了。好在ESP工具都提供了使用RFC2217协议的选项,这就能将串口转为网口供docker使用。这里192.168.1.77是连接待烧写的ESP32硬件的PC机。找到pyInstaller生成的exe。在命令行里运行起来,确保防火墙端口开放。这个软件,可以从idf里面找到这个py,或者Windows也可以从。运行起来之后,在docker里就可以烧写。除了docker之外,远程烧写也是可以的。
2024-08-23 14:22:06
126
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人