一、产品简介
一个基于全志V3s Soc 的linux 飞控。
二、应用场景
可应用于航模/船模/车模等需要自动驾驶仪的场景。
三、产品概述
AutoPilotPi 是一个以运行PX4等自动驾驶固件的SBC(single board computer)。对于其他的通用SBC(如树莓派等),由于其硬件上缺少相关的传感器(IMU、磁罗盘、气压计等),因此需要使用 额外的接线来连接SBC和传感器们,这对于微型飞行器和电路洁癖患者来说很不友好。
如果你经历过过去两三年的芯片短缺,可能也会有将过去运行在某些MCU(如Stm32F4/F7)系列上的开源项目移植到新平台上的想法。 然而,将项目在MCUs之间移植比将项目在可以跑linux的SOCs之间移植难得多也琐碎得多。当然,你可能会有一些实时性方面的顾虑, 仅就我目前测试而言,开启了软实时后的kernel基本可以满足PX4的实时性要求。
四、产品参数
- SOC:allwinner V3s(cortex A7 单核 1GHz, 64MB DDR2)
- IMU:ICM20600
- BARO:SPL06
- COMPASS:QMC5883L
相关接口:
- 3 uarts(U0 U1 U2, U0 is for linux debug)
- 1 I2C
- 1 SPI
- 9 PWM channels maximum


五、使用说明
烧写镜像:
- 将板子通过USB接口连接到电脑
- 使用附件的烧写工具,运行download.bat
- 进入linux中,执行echo peripheral > /sys/devices/platform/soc/1c19000.usb/musb-hdrc.1.auto/mode
- 使用win32imager烧写Image(Image 下载地址在附件中,文件比较大,请到网盘下载)
- 烧写完成后,重新上电。此时可以通过串口0 与 电脑建立连接
- 如烧写的是带PX4的image,可以使用 tar -xvf fly.tar 进行解压
- 执行 cd ~/home/ncer/fly ; ./px4 -d -s v3s.config & 即可启动PX4
- 将/ttyS1 与 电脑连接,此时可以通过QGC地面站与PX4通信,波特率57600
六、备注
- 请尽量先在微小型飞行器上测试,测试时远离人群
- 纯硬件成本大头为 V3s(40) + gowinFPGA(20) + 传感器(20)+ 其他
- 附件中的Image有两种,一种是只带Linux,另一种是带PX4的。系统中自带ar9271的网卡驱动,如果有ar9271的wifi网卡,可以直接插到USB网口上,方便传文件,或者用U盘传文件。
- R21可以不焊,不焊可以使用linux更新FPGA固件,否则使用默认固件(4通道PWM输出)(PX4的镜像中自带一个gowin.c,可用来配置FPGA。已经编译了一份flash_gowin,用户也可以自己修改并重新编译)
- 预留两个状态灯D3/D2(可不焊),用户可以自己使用linux 的gpio驱动该led表示不同状态
- SW1用来下拉SDCLK(在SDNAND中有镜像的情况下,下拉SDCLK可进入FEL模式),平时可不焊
- 由于系统BOM匹配的原因,请使用附件中的源BOM 采购器件,硬创社中显示的仅为可贴片部分。
- 注:R8,R9,R13是NC不焊接的, 1V2,1V8 是测试点 ,我这里不做焊接。
- 实时性目前是在编译内核的时候配上preempt,也就是软实时。这种方式的最高延迟测试在800us以内。如果还需要更低的延迟,可以在内核打上rt_linux的补丁,配上rt_preempt,实现硬实时。其他人测试硬实时linux的最高延迟在100us以内,我目前还没使用硬实时。
七、测试视频
基于本飞控制作的一个四旋翼飞行器测试视频:
该飞行器使用4个720 空心杯电机,飞控载板包括 锂电池充电/升压电路,空心杯电机驱动电路。
飞行器运行于自稳模式。