5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 6679|回复: 26
打印 上一主题 下一主题

求助:NRF24L01和MWC

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-11 21:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用NRF24L01做接收器和MWC连接,不知道引脚怎么连,求高手指导,还有就是MWC里面的程序需要修改吗,改的话应该怎么改

欢迎继续阅读楼主其他信息

沙发
发表于 2013-8-11 21:16 | 只看该作者
NRF24L01是SPI的,MWC要求是TTL,而且你是想用手机控制吗?
3
 楼主| 发表于 2013-8-11 21:43 | 只看该作者
449294177 发表于 2013-8-11 21:16
NRF24L01是SPI的,MWC要求是TTL,而且你是想用手机控制吗?

我想用arduino做一个遥控器,控制MWC,那要是这样的话,接收机和发射机应该选什么
4
发表于 2013-8-11 22:47 | 只看该作者
demon04551 发表于 2013-8-11 21:43
我想用arduino做一个遥控器,控制MWC,那要是这样的话,接收机和发射机应该选什么

NRF24L01 是收发器件,接收机和发射机都用一样的。


你如果想飞控版直接接NRF24L01,你需要在MWC主程序里面嵌入NRF24L01的驱动。接线方法:你要看看有没有多余的空闲引脚可以接的,上网看看arduino怎么接NRF24L01


或者单独再弄一个arduino做一个独立的遥控接收器输出PPM,或者标准舵机信号。


或者输出MWC的串口遥控协议的数据。MWC串口可以接受遥控数据,自定义格式,看源代码就知道了。不过接收机还是要再搞一个anruino。

5
 楼主| 发表于 2013-8-12 18:28 | 只看该作者
fryefryefrye 发表于 2013-8-11 22:47
NRF24L01 是收发器件,接收机和发射机都用一样的。

[/backcolor ...

谢谢你,学到不少东西,还有个问题是MWC板子的中间有6根出来的引脚那是做什么的,是串口引脚吗?
6
发表于 2013-8-12 21:05 | 只看该作者
demon04551 发表于 2013-8-12 18:28
谢谢你,学到不少东西,还有个问题是MWC板子的中间有6根出来的引脚那是做什么的,是串口引脚吗?

不知道你的是什么板子啊,看板子而定的。
你既然都要自己搞这个了,肯定要搞清楚MWC用的芯片的所有的引脚定义,那些用了,那些空闲。


7
发表于 2013-8-12 22:54 | 只看该作者
demon04551 发表于 2013-8-12 18:28
谢谢你,学到不少东西,还有个问题是MWC板子的中间有6根出来的引脚那是做什么的,是串口引脚吗?

6根是芯片的ISP接口,是用来给板子刷bootloader用的。

8
 楼主| 发表于 2013-8-21 23:23 | 只看该作者
刘博 发表于 2013-8-12 22:54
6根是芯片的ISP接口,是用来给板子刷bootloader用的。

那6根引脚是怎么接的,上面也没有标,貌似有一条白线
9
发表于 2013-8-22 08:52 | 只看该作者
demon04551 发表于 2013-8-21 23:23
那6根引脚是怎么接的,上面也没有标,貌似有一条白线

百度ISP接口定义
10
 楼主| 发表于 2013-8-24 20:54 | 只看该作者
fryefryefrye 发表于 2013-8-12 21:05
不知道你的是什么板子啊,看板子而定的。
你既然都要自己搞这个了,肯定要搞清楚MWC用的芯片的所有的引脚 ...

我找了一段NRF做接收机的程序可以转成PPM信号,可是怎么加入到MWC的程序里,不知道要加到哪里,看了半天MWC的程序还是没有头序
11
发表于 2013-8-25 08:41 | 只看该作者
demon04551 发表于 2013-8-24 20:54
我找了一段NRF做接收机的程序可以转成PPM信号,可是怎么加入到MWC的程序里,不知道要加到哪里,看了半天M ...

你这个程序要写在一块单独的CPU上面,一头连着NRF,一头输出PPM给飞控。

12
 楼主| 发表于 2013-8-25 09:59 | 只看该作者
fryefryefrye 发表于 2013-8-25 08:41
你这个程序要写在一块单独的CPU上面,一头连着NRF,一头输出PPM给飞控。

我有过这个想法,一个用arduino nano做发送,别一个nano做接收,那接收这头的线怎么连呢?

#include "Wire.h" //LCD1602 IIC 库文件
#include "SPI.h" //24L01库文件
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"

int data;
int aaa;
int bbb;
int ccc;
int ddd;
int eee;
int fff;

void setup(){
Mirf.spi = &MirfHardwareSpi; //加载24L01 SPI
Mirf.init();
Mirf.setRADDR((byte *)"serv1"); //接收地址" "
Mirf.payload = sizeof(int); //数据类型(整数)
Mirf.config();
}

void loop(){

if(Mirf.dataReady()){ //如果接收到数据则执行

Mirf.getData((byte *)&data); //接收数据

if (data>=0&&data<=999)
{
aaa=map(data,0,999,1100,1900); //这里为模拟量比例成 PPM频率 1100-1900,
}
if (data>=1000&&data<=1999)
{
bbb=map(data,1000,1999,1100,1900);
}

//ccc~fff自己写吧....

Mirf.rxFifoEmpty(); //清理24L01援存??
}
}

这个是我找到的接收的程序,要是做接收发到MWC,那后面应该修改下程序的吧,也不知道应该怎么改


13
发表于 2013-8-25 10:09 | 只看该作者
demon04551 发表于 2013-8-25 09:59
我有过这个想法,一个用arduino nano做发送,别一个nano做接收,那接收这头的线怎么连呢?

#include " ...

曾经尝试用NRF24,最后失败告终。

接受端怎么都收不到发送端的数据。

14
 楼主| 发表于 2013-8-25 10:24 | 只看该作者
我的想法是用nrf24接收机的4个引脚分别接到MWC的roll,thir,pitch,yaw上,分别给他们四个发送PPM,这样理论应该可以吧
15
发表于 2013-8-31 11:46 | 只看该作者
同求,帮楼主顶!!
16
发表于 2014-2-8 00:23 | 只看该作者
fryefryefrye 发表于 2013-8-11 22:47
NRF24L01 是收发器件,接收机和发射机都用一样的。

[/backcolor ...

从芯片的接口来看,似乎是可行的。
Mega328 的MWC可以找出足够多的管脚。

SPI的 MOSI,MISO,SCK三个管脚中2个用于PWM输出,1个用于连接报***的鸣蜂器或LED,可以挪用至 nrf24l01。
这样还余下6个PWM输出,1个LED灯。

对于一些机型,5个PWM输出足够了,LED指示灯也可以不用。这样又多出2个管脚。

而nrf24l01还有3个管脚分别是:
TX与RX选择,这个在接收端可以固定为RX,不需占用管脚;
SPI选择,可以一直是被选择状态,不占用管脚;
中断,这个需要占用一个管脚。

中断这个可以占用一路PWM,也可以占用LED。看具体机型了。


软件方面,我刚刚接触2.4G模块,还不知该如何下手,向大家学习了。

17
发表于 2014-2-8 09:51 | 只看该作者
你可以用模拟spi阿

18
发表于 2014-2-21 16:55 | 只看该作者
本帖最后由 skypup 于 2014-2-21 16:56 编辑

实测了一下 nrf24l01.

原装PCB天线,地面高度 1米左右,地面拉距100米以内较流畅仅有少量丢包,100-160米明显丢包但可接受应当不会失控,230米时通讯中断。


有一个比较惊喜的结果:无论丢包有多严重,都未发现有误码!


19
发表于 2014-2-22 12:49 | 只看该作者
今天用  MWC 的板子连了一下 nrf24l01.

引脚连接方式:
1-GND  -> GND
2-VCC  -> 3.3V(不要连到 5V)
3-CE   -> PWM In 5(D7/PD7)
4-CSN  -> PWM In 4(D6/PD6)
5-SCK  -> LED(D13/PB5)
6-MOSI -> PWM Out 5(D11/PB3)
7-MISO -> PWM Out 1(D12/PB4)
8-IRQ  -> PWM In 3(D2/PD2)


20
发表于 2014-4-7 12:53 | 只看该作者
本帖最后由 skypup 于 2014-4-12 23:12 编辑



用 1mw (0dbm) 的nrf24l01, 试飞了一下。
mwc 2.3 的程序。

地面拉距达到了200米,超出200米后会触发失控保护。

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表