多协议模块-Bayang协议(NRF24L01芯片)

原创 云深之无迹 2021-11-11 23:34

Beecore Lite Silverware 有刷飞控.源码解读1


36元空心杯飞控Beecore Lite(Silverware固件)



这套源码里面频繁出现:



这个东西,是个芯片,在飞控里面


https://datasheet.lcsc.com/szlcsc/XN297L_C88025.pdf


如果想完成这样一个小玩意儿的制作,你需要按照下面的东西购买:



当然你要是有,就可以不用买



连接图是这样的



上面的通道顺序是按照AETR出现的,但是网上对这个东西所说甚少,这

也是bf固件默认的模式



OpenTX的系统是可以设置这个的




这是这个A,E,T,R的意思


在固件编译前要做选择射频芯片和协议的选择。


/*********************/

/*** 发送设置 ***/
/*********************/
//根据你的TX修改通道顺序:AETR, TAER, RETA...
//示例:Flysky & DEVO 是 AETR,JR/Spektrum 无线电是 TAER,Multiplex 是 AERT...
//默认为AETR。
#define AETR


/****************/
/*** 射频芯片 ***/
/****************/
//支持5个射频组件。如果未安装其中之一,则必须使用“//”对其进行注释。
//如果没有安装芯片,所有相关协议都会自动禁用。
//4合1模块安装了A7105、CYRF6936、CC2500和NRF24L01射频芯片
//5 合 1 模块已安装所有射频芯片

//!!!如果存在射频芯片,则必须将其标记为已安装!!!否则会发生奇

怪的事情,您已被警告。

#define A7105_INSTALLED
#define CYRF6936_INSTALLED
#define CC2500_INSTALLED
#define NRF24L01_INSTALLED

//#define SX1276_INSTALLED // 仅支持 STM32 模块



/********************************/
/*** 要包含的协议 ***/
/********************************/
//在此部分选择您希望在使用模块时可以访问的协议。
//所有的协议都不适合Atmega328p模块,所以你需要挑挑拣拣。
//用“//”注释您不使用的协议以节省Flash空间。

//模块配置协议
#define MULTI_CONFIG_INO

//以下协议需要安装A7105
#define AFHDS2A_A7105_INO
#define AFHDS2A_RX_A7105_INO
#define BUGS_A7105_INO
#define FLYSKY_A7105_INO

//以下协议需要安装NRF24L01

#define BAYANG_NRF24L01_INO
#define BAYANG_RX_NRF24L01_INO

我删除了很多的协议,有需要的自己去看一下


#if defined Module_1 //Example on how to remove unwanted protocols to fit in flash for Atmega 328 modules #undef AFHDS2A_A7105_INO
#undef DEVO_CYRF6936_INO #undef J6PRO_CYRF6936_INO #undef WK2x01_CYRF6936_INO
#undef FRSKYV_CC2500_INO #undef FRSKYX_CC2500_INO
#undef KN_NRF24L01_INO #undef SLT_CCNRF_INO
#undef FY326_NRF24L01_INO #undef FQ777_NRF24L01_INO #undef ASSAN_NRF24L01_INO #undef HONTAI_NRF24L01_INO #undef Q303_CCNRF_INO #undef GW008_NRF24L01_INO #undef DM002_NRF24L01_INO #undef CABELL_NRF24L01_INO #undef ESKY150_NRF24L01_INO #undef H8_3D_NRF24L01_INO


大概是这样的注释掉


/****************************/
/*** 教练设置 ***/
/****************************/
// 默认情况下,Multi 使用遥测线使用 RX 协议(FrSky、DSM、AFHDS2A、Bayang)将接收到的信道发送到无线电。
// 但这不适用于 FrSky 无线电,因为内部和外部模块的遥测线是共享的(硬件限制)。
// 在 STM32 模块上,通过简单的硬件修改,您可以使用 CPPM 将训练器信息发送到无线电来解决此限制。
//硬件修改:在STM32 USART1 TX引脚(Boot0编程TX引脚)和radio bay pin 2之间加一个1K电阻。
//注释禁用
#define SEND_CPPM

/********************************/
/*** 串行模式设置 ***/
/********************************/
//此部分可以配置串口模式。
//串行模式可以在收音机的 GUI 中完全编辑所有参数。它通过将旋转开关置于位置 0 来启用。
//本机可用于 ER9X、ERSKY9X 和 OpenTX。

//如果您不打算使用串行模式,请使用“//”注释此行以节省 Flash 空间
#define ENABLE_SERIAL


/*****************************/
/*** PPM 模式设置 ***/
/*****************************/
//在此部分中,您可以配置有关 PPM 的所有详细信息。
//如果您不打算使用PPM模式,请使用“//”注释此行以节省Flash空间,在这种情况下您无需在下面配置任何内容
#define ENABLE_PPM

/** 发送结束点 **/
//让模块知道无线电的端点很重要。
//以下是一些已经预配置的标准发射器。
//仅取消注释与您的发射器匹配的那个。
#define TX_ER9X //ER9X/ERSKY9X/OpenTX ( 988<->2012 微秒)
//#define TX_DEVO7 //DEVO (1120<->1920 微秒)
//#define TX_SPEKTRUM //频谱(1100<->1900 微秒)
//#define TX_HISKY //HISKY (1120<->1920 微秒)
//#define TX_MPX //多路复用 MC2020(1250<->1950 微秒)
//#define TX_WALKERA //Walkera PL0811-01H(1000<->1800 微秒)
//#define TX_CUSTOM //自定义

// 如果您选择了 TX_CUSTOM,以下几行用于以微秒为单位设置终点。
// 需要考虑的几点:
// - 如果与 TX 相比,您设置的值太大,您将无法达到对油门不利的极端,例如
// - 如果您设置的值太低,您将无法使用完整的摇杆范围,它将在到达终点之前达到最大值
// - 中心棒值通常为 1500。它应该匹配 MIN 和 MAX 之间的中间值,即 Center=(MAX+MIN)/2。如果您的 TX 未居中,您可以调整值 MIN 或 MAX。
// - 100% 被称为当 TX 设置为默认值且没有修剪时的值
#如果已定义(TX_CUSTOM)
#define PPM_MAX_100 1900 // 100%
#define PPM_MIN_100 1100 // 100%
#万一

/** PPM 通道数 **/
// 以下行用于设置模块应接收的最小通道数,以考虑 PPM 帧有效。
// 默认值为 4 以至少接收飞行模型的 AETR,但您也可以通过将此数字更改为 3 从只有 3 个频道的汽车收音机连接 PPM。
#define MIN_PPM_CHANNELS 4
// 下面的行用于设置模块应该使用的最大通道数。任何接收到的高于此数字的频道都将被丢弃。
// 默认值为 16 以接收所有可能的频道,但您可能希望从 PPM 帧中过滤一些“坏”频道,例如 Walkera PL0811 上 6 以上的频道。
#define MAX_PPM_CHANNELS 16

/** 遥测 **/
//使用 FrSkyD 遥测格式发送简单的 FrSkyX 遥测
#define TELEMETRY_FRSKYX_TO_FRSKYD

/** 旋转开关协议选择器设置 **/
//下表指示了在选择了旋转开关上的特定位置时要运行的协议。
//所有字段和值解释如下。一切都可以从这里配置,就像在串行模式下一样。
//提示:您可以将同一协议多次关联到不同的旋转开关位置,以利用基于RX_Num的模型匹配

//银行系统允许访问比旋转开关上的位置更多的协议。可以通过将旋转开关置于位置 15、给模块加电和
// 多次短按绑定按钮,直到到达所需的那个。当前选择的库号由 LED 闪烁的数量指示。
// 完整程序位于:https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/Protocols_Details


发电量撒





如果定义了这个



在config的文件里面



如果有了CC的宏就加入这个头,如果NRF就加NRF的头



上面4个芯片的定义在此


如果你选好了芯片就会引入这些头的一个或多个



NRF2401芯片的一些字节位的定义(其实是寄存器吧)



一开始的宏定义写了什么,绑定计数,包周期,分组电传周期,初始等待,包的大小,rf频道计数,绑定的频道数,地址长度啥的。。。感觉有点复杂



bayang这个协议我为什么这么在意。。。,甚至我这篇文章写完会成为全网第一个写bayang协议的文章,原因只有一个,我35块钱买的飞控就是这个。。。扔了舍不得,不扔你就得耍。这么便宜的东西,用在了很多的玩具无人机上面


BAYANG_FLAG_INVERTED = 0x80, // Floureon H101 倒飞BAYANG_FLAG_TAKE_OFF = 0x20// 在 X16 AH 起飞/降落BAYANG_FLAG_EMG_STOP = 0x04 | 0x08// 0x08 用于 VISUO XS809H-W-HD-G


你看这个协议里面有这么几个标志位,就是单独控制下面这几个玩具的动作的




自己看吧




第一个是遥测

第二个是模拟



接着就是往后运行,说这个option和这个标志位去与运算,就是去匹配。继续运行,还是一样的写法,去看看模拟辅助开了没有呀。还是开了,就吧0xA1给包的第一个位置,开启。


本来是可以写完的,结果下课了,晚上再看代码没有一点感觉了,等我下次再完整分析吧。



评论
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 78浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 68浏览
  •         在有电流流过的导线周围会感生出磁场,再用霍尔器件检测由电流感生的磁场,即可测出产生这个磁场的电流的量值。由此就可以构成霍尔电流、电压传感器。因为霍尔器件的输出电压与加在它上面的磁感应强度以及流过其中的工作电流的乘积成比例,是一个具有乘法器功能的器件,并且可与各种逻辑电路直接接口,还可以直接驱动各种性质的负载。因为霍尔器件的应用原理简单,信号处理方便,器件本身又具有一系列的du特优点,所以在变频器中也发挥了非常重要的作用。  &nb
    锦正茂科技 2024-12-10 12:57 69浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 65浏览
  • 肖特基具有很多的应用场景, 可以做同步整流,防止电流倒灌和电源反接等,但是随着电源电流的增大,肖特基导通正向压降0.3~0.7v的劣势也越发明显,产生了很多的热,对于工程师的散热设计是个考验,增加了工程师的设计难度和产品成本,目前一种新的理想二极管及其控制器,目前正在得到越来越广泛的应用- BMS,无人机,PLC,安防,家电,电动工具,汽车等都在快速普及理想二极管有三种架构,内置电荷泵的类似无锡明芯微MX5050T这种,驱动能力会弱点,静态功耗200uA,外置电荷泵MX74700T的这种驱动能力
    王萌 2024-12-10 08:51 85浏览
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 129浏览
  • 概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后
    coyoo 2024-12-10 13:28 89浏览
  • 本文介绍Linux系统(Ubuntu/Debian通用)挂载exfat格式U盘的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。修改对应的内核配置文件# 进入sdk目录cdrk3562_linux# 编辑内核配置文件vi./kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig注:不清楚内核使用哪个defc
    Industio_触觉智能 2024-12-10 09:44 89浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 91浏览
  •         霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子
    锦正茂科技 2024-12-10 11:07 64浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦