登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
飞控开发区
›
APM飞控
›
ArduPilot-3-支持新的控制器硬件
返回列表
发新帖
查看:
861
|
回复:
0
ArduPilot-3-支持新的控制器硬件
[复制链接]
iso10000
iso10000
当前离线
积分
956
窥视卡
雷达卡
302
主题
351
帖子
956
积分
高级飞友
高级飞友, 积分 956, 距离下一级还需 44 积分
高级飞友, 积分 956, 距离下一级还需 44 积分
积分
956
飞币
603
注册时间
2017-7-14
发消息
发表于 2023-7-25 14:09:45
|
显示全部楼层
|
阅读模式
在上一篇文章中,我们分享了PX4-20-支持新的控制器硬件,这一篇我们讲一下ardupilot中如何支持一款新的硬件。
ardupilot同样支持非常丰富的硬件,种类上包括Cotex-M内核的单片机、Linux以及ESP32,这里我们主要分享使用Cotex-M内核单片机的飞控硬件的支持。
ardupilot采用硬件抽象层(HAL)的方式,支持各种类型的硬件,其框架如下图所示:
由上图可以发现,ardupilot应用层通过统一的HAL接口访问不同的OS以及对应的硬件。
AP_HAL提供了各种外设接口的抽象类(串口、IIC、SPI、CAN、PWM、SD等)、任务调度抽象类(Scheduler)。
对于Cotex-M内核单片机的飞控硬件,ardupilot使用的是AP_HAL_ChibiOS硬件抽象层,使用ChibiOS RTOS。
与PX4相比,ardupilot增加新的硬件还会更加方便一些,基本只需要编辑一个文件,在libraries/AP_HAL_ChibiOS/hwdef目录下可以看到ardupilot目前支持的各种硬件,如
.
├── Pixhawk1
├── Pixhawk1-1M
├── Pixhawk1-1M-bdshot
├── Pixhawk4
├── Pixhawk4-bdshot
├── Pixhawk5X
├── Pixhawk6C
├── Pixhawk6C-bdshot
├── Pixhawk6X
在具体的硬件配置文件夹中,主要是hwdef.dat文件,在这里定义飞控硬件的所有外设接口定义。
hwdef.dat在编译时由libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py脚本,生成build/xxx/hwdef.h头文件,该头文件定义了源码中需要使用的所有宏定义,实现对源码编译规则和运行规则的控制。
由于ardupilot chibios_hwdef.py脚本非常好的抽象设计,用户编辑hwdef.dat定制飞控硬件变得非常简单。
# MCU class and specific type
MCU STM32H7xx STM32H743xx
# flash size
FLASH_SIZE_KB 2048
# order of UARTs (and USB)
SERIAL_ORDER OTG1 UART7 UART5 USART1 UART8 USART2 USART3 OTG2
# USB
PA11 OTG_FS_DM OTG1
PA12 OTG_FS_DP OTG1
PA9 VBUS INPUT OPENDRAIN
# telem1
PE8 UART7_TX UART7
PE7 UART7_RX UART7
PE9 UART7_RTS UART7
PE10 UART7_CTS UART7
# barometers
BARO MS56XX I2C:0:0x76
BARO MS56XX I2C:0:0x77
BARO BMP388 I2C:0:0x77
# SPI devices
SPIDEV bmi055_g SPI1 DEVID1 BMI055_G_CS MODE3 10*MHZ 10*MHZ
SPIDEV bmi055_a SPI1 DEVID2 BMI055_A_CS MODE3 10*MHZ 10*MHZ
SPIDEV icm42688 SPI1 DEVID3 ICM42688_CS MODE3 2*MHZ 8*MHZ
SPIDEV ramtron SPI2 DEVID1 FRAM_CS MODE3 8*MHZ 8*MHZ
我们通过几个语句可以发现,hwdef.dat语法非常简单,IO的配置只需要直接指定外设使用的IO,传感器的配置只需要指定使用的IIC或者SPI和简单的配置即可。
hwdef.dat更多的语法这里不一一展开,感兴趣的同学可以自己动手实现一个飞控硬件,亲手配置一下。
下图是笔者设计的一款飞控硬件,通过上述修改即可使ardupilot支持该款硬件。
往期分享:
PX4-20-支持新的控制器硬件
ArduPilot-2-系统架构
AcmeGCS-21-集群多窗口显示
这里会不定期更新一些我整理的无人机相关知识,如果对您有帮助,欢迎关注转发分享。
ardupilot can
,
ardupilot apm
相关帖子
•
ArduPilot-2-系统架构
•
在 ardupilot 里接入自己 uwb 最愉懒的办法
•
ArduPilot二次开发零基础教程(八):Guided控制接口
•
2018.01 ArduPilot 发展报告
•
Ardupilot源码极速下载,告别github慢速问题
•
超维小课堂(三十二):Ardupilot固件设置遥测数据频率
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表