6. PH47 代码框架硬件开发环境搭建
概述
PH47代码框架的硬件开发环境搭建同样简单, 建立基本的 PH47 框架学习或二次开发的硬件开发环境所需设备如下:
BBP 飞控板及相关软硬件:
- BBP飞控板,或者至少一块Stm32F411核心板(WeAct Studio)
- Stm32程序烧录工具ST Link或JLink
- 2个USB-TTL模块,分别用于遥测串口(Usart1)及调试串口(Usart6)
- 电脑PC端准备一个串口调试工具软件,连接调试串口(Usart6)
- 电脑PC端运行 CSS 的 BBDB 控制站项目,运行时打开遥测串口(Usart1)
- 万用表,最好还有一个具备基本性能的示波器
若要实现飞控完整功能,还需增加: - GPS模块
- 空速计模块(固定翼)
- Tof及光流模块(多轴)
若要执行实际飞行任务,还需增加 - 数传电台
- 至少4通道Pwm RC接收机
BBP 飞控板的组装制作
由于 BBP 飞控板由市场上最常见的各种模块组装而成, 故目前不提供已经组装好的 BBP 成品飞控板。此方式不足之处在于开发者需要花上一定的时间和精力亲自来进行 BBP 控制板的焊接组装。但通过自行组装飞控板的过程, 开发者能够对飞控硬件架构、接口、电路连接关系有更为直接和深入的认识。
目前也开发了成品化,高度集成化,更偏向实际运行的BBP mini 控制板,但对于二次开发用户,还是建议以BBP散件组装方式入手。有能力的二次开发用户也可根据BBP电路图开发出自己的转接板底板,或对BBP电路及 PCB设计进行更高层次的优化改进。
用户采购其它来源的同型号模块,请在使用前进行必要的测试也确保模块本身无损坏。
- WeAct Studio Stm32F411CEU6 MCU 最小系统板
- MPU6500 6 轴陀螺及加速度 IMU 模块
- LSM303DLHC 3轴磁强 + 3轴加速度计模块
- MS5611 气压传感器模块
- W25Q128 16M Flash 存储模块
- AT24C256 32k EEprom 存储模块
- TXS0108 电平转换模块
用户在初次购买上述模块前,应对模块与转接板的针脚顺序进行检查核对!防止模块型号差异造成针脚顺序与转接板不一致。


BBP 飞控板的组装方式
使用专用底板转接板方式
将各功能模块通过排针焊接于底板上,将各接口插座焊接于底板上。此方式制作的飞控板具有较高的可靠性,可直接用于固定翼或多轴平台的飞行控制。

排母排针连接方式
在底板转接板上焊接排母,各功能模块焊接排针,通过模块拔插的方式将各模块安装于底板之上。此方式模块组合灵活适于做地面开发实验或测试用途。强烈推荐二次开发用户至少制作一块这样板子做测试或者debug用途,日常使用起来非常方便。
排母建议使用5.7mm矮排母以配合各模块使用的8.5mm短排针。

模块间连线方式
若一时无法获取底板转接板,也可直接采用焊接、插座连接等连线的方式连接各模块构成飞控系统。此方式紧凑程度、美观程度较差,但可以确保电路连接的可靠性且最简便易行。可用于初期的学习实验用途。

面包板或万能板方式
在同样无法获取底板转接板情况下,可以采用面包板或万能板方式构建起飞控系统。当采用面包板方式时,应当对电路连接可靠性予以足够重视。
组装BBP飞控板注意事项
组装焊接前,尽量对模块进行测试(使用排母插座的BBP),或通过较为可靠的渠道采购所需模块。尽量避免将已损坏的模块安装到底板上。
BBP v2 飞控板已经修正了v1版本对模块焊接安装顺序有严格要求,否则会出现某个模块安装后会遮挡背面另外模块而导致无法安装的bug。
BBP v2 焊接时先把正面所有模块焊接完毕后,再焊接背面所有模块即可。模块连接建议使用的排针为8.5mm短排针,而不是常规11.5mm排针,使用短排针焊接后就不用剪去排针多余部分妨碍背面模块安装。
如果焊接技术不是非常熟练的话,强烈建议在焊接完成后使用万用表对各个模块与转接板对外接口插座,以及其他相关电路联通情况进行测试。对于刚接触单片机硬件的新手而言,这是十分必要,且对于加深端口与传感器连接关系理解具有很积极的作用。
更多内容可参见专栏:无人机飞控
相关资源:https://gitee.com/ss15/ph47
相关文章:
6. PH47 代码框架硬件开发环境搭建
概述 PH47代码框架的硬件开发环境搭建同样简单, 建立基本的 PH47 框架学习或二次开发的硬件开发环境所需设备如下: BBP 飞控板及相关软硬件: BBP飞控板,或者至少一块Stm32F411核心板(WeAct Studio)Stm32程序烧录工具…...
package.json配置
package.json配置 描述配置文件配置脚本配置依赖配置发布配置系统配置第三方配置 描述配置 name : 项目名称,第三方包可以通过npm install 包名安装 "name":"react"version : 项目版本,项目版本号 "version" : "18.2…...
视频怎么转gif动图?5个简单转换方法快来学(详细教程)
相信大家在社交平台上会经常看到一些有趣的gif动图表情包,有些小伙伴就会问:这些GIF动图是如何制作的呢?一般GIF动图表情包可以用视频来制作,今天小编就来给大家分享几个视频转成GIF动图的方法,相信通过以下的几个方法…...
10月更新:优维EasyOps®需求解决更彻底,功能体验再升级
升 级 不 止 步 欢迎来到 需求至上,功能完善 的 \ EasyOps 7.5版本 / 👇 >> 联动架构视图:深度融合监控与资源拓扑 传统上,依赖监控态势感知系统固有的分层拓扑结构虽有其优势,但在处理复杂系统尤其是核心数…...
黑马javaWeb笔记重点备份1:三层架构、IOC、DI
来自:【黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)】 https://www.bilibili.com/video/BV1m84y1w7Tb/?p75&share_sourcecopy_web&vd_source9332b8fc5ea8d349a54c398…...
大坝渗流监测设备——渗压计
渗压计是一种用于监测大坝等水工建筑物渗流压力的重要设备,其准确性和可靠性对于保障大坝安全运行至关重要。南京峟思将为大家详细介绍渗压计的工作原理、安装方法及其在大坝渗流监测中的应用。 渗压计主要利用振弦频率的变化来测量渗透水压力。设备由透水部件、感应…...
Pikachu-Sql Inject-宽字节注入
基本概念 宽字节是相对于ascII这样单字节而言的;像 GB2312、GBK、GB18030、BIG5、Shift_JIS 等这些都是常说的宽字节,实际上只有两字节 GBK 是一种多字符的编码,通常来说,一个 gbk 编码汉字,占用2个字节。一个…...
如何制作低代码开发的视频教程?
如何制作低代码开发的视频教程? 随着数字化转型的加速,越来越多的企业和组织开始采用低代码开发平台来加速应用程序的构建。对于许多开发者和业务人员来说,学习如何使用这些平台可以显著提高工作效率。因此,创建一份清晰、实用且…...
Flink学习地址
--基础概念 概览 | Apache Flink --应用系列 如何学习Flink:糙快猛的大数据之路(图文并茂)_flink 学习-CSDN博客 --Python系列 pyflink实时接收kafka数据至hive_pyflink下kafka数据经过处理后插入hive-CSDN博客 Pyflink教程(一)&#…...
05_23 种设计模式之《建造者模式》
文章目录 一、建造者模式基础知识建造者模式的结构建造者模式的应用场景 一、建造者模式基础知识 建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种优雅的方式来创建复杂对象,同时隐藏其构建过程。这种模式允许你通…...
详细分析Spring Security OAuth2中的JwtAccessTokenConverter基本知识(附Demo)
目录 前言1. 基本知识2. Demo3. 实战 前言 java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 1. 基本知识 JwtAccessTokenConverter 是 Spring Security OAuth2 中的一…...
python习题2
1、输出一个年份,判断其是不是闰年 #输入一个年份,判断其是否是闰年 y eval(input()) if y%4 0 and y%100 ! 0:print("是") elif y%4000:print("是") else:print("不是") 2、模拟智能客服: 按1查询账户余额…...
CVSS 4.0 学习笔记
通用漏洞评分系统(CVSS)捕获了主要技术软件、硬件和固件漏洞的特征。其输出包括数字分数,表明与其他漏洞。 以下因素可能包括但不限于:监管要求、客户数量受影响、因违约造成的金钱损失、生命或财产受到威胁,或潜在漏洞的声誉影响。这些因素在CVSS评估范围之外。 CVSS的好…...
解决 GPTQ 模型导入后推理生成 Tokens 速度很慢的问题(从源码重新安装 Auto-GPTQ)
这里解决的是使用 Auto-GPTQ 或者 Transformers 导入 GPTQ 模型后推理速度很慢的问题。 值得注意的是,这个问题很有可能是因为安装不正确,所以 GPTQ 无法正确使用 GPU 进行推理,也就是说无法进行加速,即便 print(model.device) 显…...
NDC美国药品编码目录数据库查询方法
NDC(National Drug Code)翻译为“国家药品代码”,是美国食品药品监督管理局(FDA)制定的一种药品标识系统,用于唯一标识药品。这个编码系统主要目的是为精准识别和追踪不同药品而建设,行业人员和…...
vue3的v-model使用
vue3的v-model使用 单个绑定值 子组件 props: [‘modelValue’], emits: [‘update:modelValue’], 注:modelValue是默认的,如果只有一个需要绑定v-model,可使用modelValue 此时父组件写法 <CustomInput v-model"searchText"…...
Go语言实现长连接并发框架 - 消息
文章目录 前言接口结构体接口实现项目地址最后 前言 你好,我是醉墨居士,上篇博客实现了对连接的封装,那我们对连接的读写操作涉及数据格式的定义,我们采用统一的数据格式。使用我们这种数据格式的数据,我们将其称之为…...
湖南(市场咨询)源点调研 如何明确调研焦点与分析单位的特征
湖南市场调研源点咨询认为,调研过程中定义问题阶段的部分工作涉及弄清究竟是对谁进行调研,也就是感兴趣人群,我们发现这与样本的选择有关。在调研过程的设计阶段弄清楚感兴趣人群非常重要,之后才可以决定选择哪种调研类型进行调研…...
java 方法引用与构造器引用
Java 方法引用和构造器引用是 Java 8 引入的重要特性,它们进一步简化了 Lambda 表达式的书写,使得代码更加简洁和易读。下面详细介绍方法引用和构造器引用的概念、用法及示例。 方法引用 方法引用是一种简化 Lambda 表达式的语法糖,它允许通…...
python3的语法
知识简介 基础语法就像比赛规则,比如比赛跑步,咱们不能跑到别人的跑道去吧,比赛打拳,先说好不能踢裆。 正文 一、python3的基础语法 1、编码 python的源码文件.py一般是utf8编码的,有时候咱们在执行源码文件的时候报…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
