×

带有英飞凌3D磁传感器2Go的射频遥控器

消耗积分:0 | 格式:zip | 大小:0.20 MB | 2022-11-23

廖阿朋

分享资料个

描述

介绍

为了实现我的目标,我们将项目分为两部分:发送部分和接收部分。在传输部分,我使用“Infineon 3D Magnetic Sensor 2Go”板来捕获和处理该传感器给我的数据,并使用“Mega 2560”板通过“射频”发送这些数据。在接收部分,我使用“Arduino UNO”板来执行收到的订单。为了制作这个原型,我受到了我的项目的启发:

我们必须审查我们的磁传感器的技术表。在下图中,我们可以看到该板的组件。

 
poYBAGN67maACqIWAABwYSZV_VI74.jpeg
 

在下图中,我们可以看到电路板引脚的配置。

 
poYBAGN67miAW6xFAAEW1cpmFNc734.jpg
 

要对我们的板进行编程,我们必须下载并安装以下软件:

  • Arduino IDE。
  • 3D 磁传感器 2 Go。
  • SEGGER 的 USB 驱动程序。
  • 库:TLE493D-W2B6-3DMagnetic-Sensor
  • 板:英飞凌的 XMC 微控制器

3D Magnetic Sensor 2 Go,供我们使用我们的设备进行测试并从英飞凌官方网站下载。这个程序只能在 Windows 下运行,并且有一个旧的 USB 版本的 SEGGER。我们必须下载并安装最新版本的 SEGGER USB 驱动程序,以便我们的设备正常工作。

 
pYYBAGN67mqAbdg4AAB_QTu_DeY701.png
 

微控制器板是从 github 上的 Infineon 官方网站下载的。在那里,我们将找到正确安装的说明。

就我而言,我安装了 1.1.0 版,因为 1.1.1 版显示错误。

 
 
 
 
pYYBAGN67m2AXHyxAABWmYpP07U149.png
 
1 / 4
 

射频发射器

“射频发射器”的电气图如下:

 
pYYBAGN67m-AanZBAADaTm3bM3M398.jpg
 

射频发射器的操作如下:

我们旋转磁传感器的“旋转旋钮”,我们可以执行由软件编程并使用 GPIO4 和 GPIO5 引脚作为输出的四个命令:

  • 停车:命令停车并发送代码“00”。
  • 右:命令汽车向右转并发送代码“01”。
  • 转发:命令转发并发送代码“10”。
  • 左:命令汽车左转并发送代码“11”。

 

 
pYYBAGN67nSAJlV6AAC6PXTN688367.jpg
 

英飞凌

#include <Tle493d_w2b6.h>
Tle493d_w2b6 Tle493dMagnetic3DSensor = Tle493d_w2b6();
void setup() {
 Serial.begin(9600);
 pinMode (4,OUTPUT);
 pinMode (5,OUTPUT);
 while (!Serial);
 Tle493dMagnetic3DSensor.begin();
 Tle493dMagnetic3DSensor.enableTemp();
}

该板从磁传感器接收这四个命令,对它们进行编码并通过发射器“TLP434A”发送它们,该发射器工作在 433 MHz。这些编码如下:

  • 停止:我们发送字符“S”。
  • 对:我们发送字符“R”。
  • 转发:我们发送字符“F”。
  • 左:我们发送字符“L”。

我们可以使用几个库来验证射频发送的数据,在我的例子中,我使用了库“VirtualWire.h”,这个库运行良好。板子“Infineon 3D Magnetic Sensor 2Go”和“Mega 2560”的代码可以在本教程的最后下载。

TX_mega.ino

#include 
#define SWITCH1 8   //input for SWITCH1
#define SWITCH2 9   //input for SWITCH2
void setup()
{
   Serial.begin(9600);    
   Serial.println("Tx RF");
   pinMode (SWITCH1,INPUT);
   pinMode (SWITCH2,INPUT);
   // Se inicializa el RF
   vw_setup(2000); // bps
   vw_set_tx_pin(2); //output RF 
}

射频接收器

“RF Receiver”示意图如下:

 
pYYBAGN67naAYtDjAAC5t3wheRo426.jpg
 

RF Receiver 的操作如下:

“Arduino UNO”板通过工作在 433 MHz 的接收器“RLP434”接收来自射频发射器的四个命令。这些命令按以下方式解码和执行:

  • 停止:我们收到字符“S”并且汽车停止。
  • 右:我们收到字符“R”,汽车向右转。
  • 前进:我们收到字符“F”,汽车向前移动。
  • 左:我们收到字符“L”,汽车向左移动。

每次小车移动时,我们使用“L293B”驱动器和两个减速电机。

我们可以使用几个库来验证射频发送的数据;就我而言,我使用了“VirtualWire.h”库,这个库运行良好。“Arduino UNO”板的代码可以在本教程的最后下载。

rx_arduino.ino

#include 
void setup()
{
   Serial.begin(9600);  // Debugging only
   Serial.println("setup");
   // Se inicializa el RF
   vw_setup(2000);  // bps
   vw_set_rx_pin(2);  //Pin 2 as input RF
   vw_rx_start();       // start
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT); 
}

测试

 
 
 
 
 
poYBAGN67nmARC0-AADdLd9zYos729.jpg
 
1 / 2
 

结论

我首先使用连接到我的 PC 的设备测试了原型,以验证正在进行通信并且“RF 接收器”接收到“RF 发射器”正在发送的数据。Arduino UNO 板的串行端口向我们显示了我正在等待的数据。在第二个测试中,我使用了一个“微型机器人汽车”的原型来演示这个原型的应用。

在遥控器中使用“Infineon 3D Magnetic Sensor 2Go”板是控制“微型机器人车”的不错选择,因为它让您有机会以实用且有效的方式操纵您的推车。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'带有英飞凌3D磁传感器2Go的射频遥控器',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);