当前位置:网站首页>【遥控器开发基础教程5】疯壳·开源编队无人机-SPI(2.4G 双机通信)
【遥控器开发基础教程5】疯壳·开源编队无人机-SPI(2.4G 双机通信)
2022-08-03 00:03:00 【efans_Mike】
COCOFLY教程
——疯壳无人机·系列
SPI(2.4G 双机通信)
图1
一、NRF24L01
1.1 NRF24L01 简介
NRF24L01 是由NORDIC 生产的工作在 2.4GHz~2.5GHz 的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。
NRF24L01 的输出功率频道选择和协议的设置均可以通过 SPI 接口进行设置,因此,其具有极高的兼容性,几乎可以连接到各种单片机芯片,并完成无线数据传送工作。除此之外,NRF24L01 的功耗也非常的低,当工作在发射模式下发射功率为 0dBm 时电流消耗仅为 11.3mA ,接收模式时为 12.3mA,掉电模式和待机模式下电流消耗更低。所以 NRF24L01 可以广泛地应用在无线键鼠、无线门禁、无线电台、智能工业设备、玩具等场合。
如下表所示列举了 NRF24L01 的特性参数。

表1
如下图所示为 NRF24L01 芯片实物图
图2
二、2.4G 双机通信
2.1 NRF24L01 使用方法
NRF24L01 是以包的形式进行发送的,具体的包格式如下表所示。
表2
NRF24L01 在通信前需要进行一系列的参数配置,而在配置其参数时,NRF24L01 必须工作待机模式,即 CE 脚拉低。在发送模式下的配置流程如下表所示。
表3
配置为接收模式的流程如下表所示。
表4
配置完后就是发送和接收的处理了,发送的流程如下表所示。
表5
接收流程如下表所示。
表6
三、2.4G 双机通信实验
2.4G 双机通信实验涉及到遥控器端和飞控端,两者的 2.4G 通道均设置为
110。首先配置遥控器端的左摇杆的按键为外部中断模式,一旦按下做摇杆按键, 就发送“Remoter”这个字符串到飞控上,飞控接收到后,把 LED 航情灯进行闪烁,然后再向遥控器回发“Airplane”这个字符串,遥控收到后,闪烁电源指示灯。无论是遥控器还是飞控使用 NRF24L01 均使用到了 STM32 的硬件 SPI,不同的是遥控器使用的是 SPI2,而飞控使用的是 SPI1。STM32 的 SPI 配置方法可以参考飞控开发基础《SPI(六轴传感器数据获取)》。
3.1遥控器端
本次实验中遥控器端触发无线数据的发送是通过外部中断实现的,具体的外
部中断配置可以参考《遥控器开发实战-中断》。在该中断中向飞控发送“Remoter” 字符串,具体代码如下图所示。
图3
遥控器端的 NRF24L01 的初始化代码如下图所示。
图4
遥控器端的接收处理是在主循环中轮询实现的,收到飞控发来的信息后,电源指示灯闪烁,具体代码如下图所示。
图5
3.2飞控端
飞控端的无线数据接收在主循环中实现,接收到遥控器发送的信息后,电源指示灯闪烁,且向遥控端回发“Airplane”,具体代码如下图所示。
图6
飞控端的 NRF24L01 的初始化代码如下。
图7
3.3实验现象
把遥控器端代码下载到遥控器内、飞控端代码下载到飞控内。上电,此时按下遥控器的左摇杆按键,可见飞控四个电机底部的 LED 航情灯闪烁,然后遥控的电源指示灯也闪烁。这就意味着飞控收到了来自遥控器端的信息并且回发了信息给遥控器,且遥控器也收到了来自飞控端的回发信息。如下图所示为飞控航情灯以及遥控左按键及电源指示灯。
图8
更多完整学习资料和对应开源套件,请登陆官网:“疯壳”
如需定制开发,请通过官网“疯壳”网页底部的“联系我们”进行联系
边栏推荐
猜你喜欢
Teach you to locate online MySQL slow query problem hand by hand, package teaching package meeting

聊聊 Nacos

为了面试阿里,熬夜肝完这份软件测试笔记后,Offer终于到手了

通力传动递交注册:年营收4.7亿 实控人项献忠家族色彩浓厚

js基础知识整理之 —— 获取元素和命名规范

【多线程】Thread类的基本用法

RollBack Rx Professional RMC 安装教程

机器学习-特征映射方法

如何突破测试/开发程序员思维?一种不一样的感觉......

谷歌 Chrome 浏览器 104 正式版发布:加快网页加载,蓝牙 API 改进
随机推荐
「PHP基础知识」隐式数据类型
可编程逻辑控制器(PLC) : 基础、类型和应用
UE5 官方案例Lyra 全特性详解 8.如何用配置表初始化角色数据
如何快速对接淘宝开放平台API接口(淘宝店铺订单明文接口,淘宝店铺商品上传接口,淘宝店铺订单交易接口)
random.nextint()详解
【QT】自定义工程封装成DLL并如何调用(带ui界面的)
UPC2022暑期个人训练赛第23场(Credit Card Payment)
Wireshark数据抓包分析之传输层协议(TCP协议)
NLP commonly used Backbone model cheat sheet (1)
我们来浅谈代码语言的魅力
和睦家私有化后换帅:新风天域吴启楠任CEO 李碧菁靠边站
flutter空安全问题,平时用到的数据一定要注意
5、Citrix云桌面初始化Storefront设置
文树勋率长沙市人大常委会主任会议成员莅临麒麟信安调研数字经济发展情况
程序员英语自我介绍
优秀论文以及思路分析01
letcode 第20题-有效的括号
Database auditing - an essential part of network security
升级版的冒泡排序:鸡尾酒排序(快乐小时排序)
C语言:链表