楼主

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
步兵zhouyi19930811
2015-10-23 10:52:14 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
两个Arduino之间的无线通讯实验

  这个实验用到的RF无线数传套件型号为APC220 ,它是国内一家公司出品的,能够无线通讯的距离达1000米,淘宝很容易买到。APC220套件是高度集成半双工微功率无线数据传输模块,它集成了高速单片机和高性能射频芯片和TTL串口接口,不仅可以实现双Arduino控制器之间的无线通讯,而且配合1个USB转换器可以实现电脑与Arduino单片机之间的无线通讯。

     APC220无线数传说明书请下载:APC220使用手册.pdf


    用这个套件首先要安装CP210x_VCP_Win2K_XP_S2K3 USB转RS232的驱动,安装完驱动,就可以用RS232串口协议进行无线通信,我感觉就像用RS232有线通信一 样,搞无线通信。这个套件购买地址:http://item.taobao.com/item.htm?spm=1101*r1F.3-1mJ7Y.h-5h6gmz&id=227289063&

安装CP210x_VCP_Win2K_XP_S2K3 USB转RS232的驱动,该软件请下载:


http://115.com/file/bes5w3nl#

CP210x-VCP-Win2K-XP-S2K3.rar


该驱动软件安装到下图这一步,要把图中选项打勾,继续安装才行,别急着,按下“finish”按钮。


  驱动安装后,插上套件自带的USB适配器,你应该在Window的设备管理器观察“USB转RS232的驱动”所生成的串口号是什么?如下图:


然后用厂家的RF-ANET软件给无线数传套件设置通信参数,注意要把这个套件的两个无线通信模块通过USB适配器都要设置,设置的参数可以一模一样,就按照下图即可。(我买的这家淘宝里的无线数传PF frequency在415-455M的频段,其它淘宝买的一模一样的无线数传也可能在其它频段。)

    RF-ANET软件请下载:apc220.rar

一定记住用厂家套件自带USB适配器,设置上图参数啊!我在网站买的套件里的USB适配器如下图:


    我这个无线通信实验较简单,就是:按下与主机连接的开灯按钮或者关灯按钮,通过无线通讯,控制从机上的LED灯亮灭。

    注意:下载程序到Arduino控制器时,不要把RF无线数传插在Arduino控制器上的传感器扩展板V5的APC通讯插槽里,程序下载完再把无线数传插上去。


//主机程序
int button_open =4;//开灯按钮连在数字端口4
int button_close =5; //关灯按钮连在数字端口5
char flag;//向从机发送灯的亮灭标志
void setup()
{
  pinMode(button_open, INPUT);
  pinMode(button_close, INPUT);
  Serial.begin(9600);//设置串行通信的波特率
}

void loop()
{
  //如果开灯按钮按下同时关灯按钮松开
  if( digitalRead(button_open)==LOW&&digitalRead(button_close)==HIGH)
  {
    flag='a';
    Serial.print(flag);//向从机发送灯亮标志
  }
if(digitalRead(button_close)==LOW&&digitalRead(button_open)==HIGH)
  {
    flag='b';
    Serial.print(flag);//向从机发送灯灭标志
  }
  delay(20);//延时,等待数据发送成功
}



//从机程序
int ledpin=9;//声明LED的数字接口编号
int val;//接受主机发来的LED灯状态标志
void setup()
{
  pinMode(ledpin,OUTPUT);//设置LED灯为输出
  digitalWrite(ledpin,HIGH);//初始化是LED灯熄灭
  Serial.begin(9600);//设置串行通信的波特率
}
void loop()
{
  if(Serial.available()>0) //查询串口有无数据
  {
        val=Serial.read();//读取主机发送的数据
        if(val=='a')//如果主机发送字符'a',则点亮LED
        {
          digitalWrite(ledpin,LOW);//LED点亮         
        }
        if(val=='b')//如果主机发送字符'b',则熄灭LED
        {
          digitalWrite(ledpin,HIGH);//LED熄灭           
        }
  }   
  //用APC220无限数传向上位机传数据不能太快
  //如果delay(40)会出问题
  delay(80);
}


    由于原厂提供的USB适配器和Arduino控制器的USB通信芯片型号不同,所以可以用原厂提供的USB适配器设置无限数传的通信参数,但是用原厂USB 适配器进行PC机与Arduino控制器的无线通信时,通信不成功,为了解决这个问题,换上个与Arduino控制器的USB通信芯片型号相同的适配器就没问题了!(注意两个Arduino控制器相互通讯时,当然不需要这个黑色USB适配器。)

把无线数传模块的RXD、TXD、VCC和GND用杜邦线与这个黑色USB适配器的相应四个引脚相连,黑色USB适配器这四个引脚的名称已经在引脚旁标注了,而无线数传模块的四个引脚可以从下图了解到。

这个黑色的适配器需要名为CDM20602的FTDI驱动,请下载:CDM20602.zip


此黑色USB适配器,购买网址:http://item.taobao.com/item.htm?spm=1101*r1F.3-1mJ7Y.h-5h6gmz&id=4296597863&

把黑色的适配器与无线数传的5V 、GND、RXD和TXD连线,再插到电脑USB口,电脑会提示您安装驱动,您需找到解压后的文件名为CDM20602的文件在电脑硬盘中的位置,点击确定,就能安装成功FTDI驱动。

驱动安装后,你应该在Window的设备管理器观察“FTDI驱动”所生成的串口号是什么?

    一个无线数传模块通过黑色适配器连在PC机的USB上,另一个无线数传插在,层叠在Arduino控制器上传感器扩展板的APC专门TTL插槽上,就可以通过Window设备管理器观察到的“FTDI驱动”串口号,进行PC机与Arduino控制器的无线通信了!
    上次RM我们运用了这个通信模块,调好信道,没有受到干扰。

     PC机与Arduino控制器的无线通信的例子,请看我以前写的文章《Labview无线遥控Arduino智能小车》,网址:

http://www.eefocus.com/zhang700309/blog/11-11/233965_8b7d1.html


写在最后,这篇文章转自张老师博客http://www.eefocus.com/zhang700309/blog/12-03/239763_09d3e.html,我只是勤劳的搬运工,顺便帮我们老师攒点人气,想学习Arduino的小伙伴,好好加油咯。



跳转到指定楼层
沙发

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
工程Jellyfish
2015-10-23 12:29:18 只看该作者
学到很多!!!谢谢大牛!求继续分享更多!
板凳

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
步兵zhouyi19930811
 楼主| 2015-11-10 15:27:27 只看该作者
Jellyfish 发表于 2015-10-23 12:29
学到很多!!!谢谢大牛!求继续分享更多!

小牛牛都算不上
地板

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
步兵aziser
2015-11-10 21:11:28 只看该作者
感谢楼主分享学习资料~~~么么哒
5#

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
梯队队员alexc01
2016-9-5 22:06:22 只看该作者
不錯,學習了
6#

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
哨兵noein
2016-9-8 17:27:56 来自手机 只看该作者
正在学arduino,mark下
7#

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
正式队员t1174779123
2016-11-4 22:34:10 只看该作者
感谢楼主
回复

使用道具 举报

8#

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
梯队队员sunduoze
2016-12-10 01:04:38 只看该作者
帅!!!!!
回复

使用道具 举报

9#

[嵌入式] 【分享帖】两个Arduino之间的无线通讯实验,Arduino资料第二弹

[复制链接]
梯队队员1135230838
2020-6-30 14:57:18 只看该作者
楼主,arduino的stm32的下载环境可以搞不?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

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