×

电机伺服项目开源

消耗积分:0 | 格式:zip | 大小:0.67 MB | 2022-10-28

分享资料个

描述

描述

理念

为两电机后轮驱动遥控车制作原型硬件。

构建过程

第 1 步:组装硬件

收集上面零件列表中列出的所有组件。

首先将 L293D H 桥放在面包板上,然后将 Builder Base 的 GND 和 5V 端口连接到面包板上的 GND 和 VCC 导轨。

现在,我们将 H 桥上的四个 GND 引脚连接到面包板上的 GND 轨,并将 H 桥上的 Vcc1 和 Vcc2 引脚连接到面包板上的电源轨。

现在,在 H-Bridge 和 Builder Base 之间建立连接,如下图和表格所示:

pYYBAGNY1XWALPcfAAAxFenq6UM151.png
 

 

poYBAGNY1XuABvwPAABwT5mRPPM551.png
 

我们现在将电机连接到 H 桥,如下所示:

pYYBAGNY1X6AYQlkAAAXd-oiHZg782.png
 

 

poYBAGNY1YCANIg_AABUENxQ-ps702.png
 

最后,我们将伺服连接到 Builder Base。

在大多数 9G 伺服器上,GND 引线是棕色的,Vcc 引线是橙色的,黄色引线是数据,但在继续之前请务必检查特定伺服器的数据表。

首先从伺服器中取出 GND 和 Vcc 引线,并将它们连接到面包板上的 GND 和 Vcc 导轨。最后,将数据引脚连接到构建器底座上的 GP2 端口。这是一个列出连接的表:

poYBAGNY1YOAKFB8AAAcBJN2cSY175.png
 

 

poYBAGNY1YaAWg3fAAA0e_pYExU364.png
 

 

poYBAGNY1YqAIEYYAAAkyPUizmU341.png
 

恭喜,该项目的硬件组装完成!

第 2 步:构建固件

导航到固件生成器并创建一个新的固件文件。我们将其命名为转向车。

poYBAGNY1Y2ANrNQAAAaLlUTbPM861.png
 

接下来,单击“+添加硬件”按钮,通过搜索栏找到电机设备,选择它,命名,然后单击“添加硬件”。我们将其命名为 Motor BL。

pYYBAGNY1ZGAPJN0AAAQebMw0GE336.png
 

 

pYYBAGNY1ZOAHGYRAAAhim4qzXI273.png
 

再次重复这些步骤,但这次将电机命名为:Motor BR。

poYBAGNY1ZiADGImAABU7Dqp1uM048.png
 

接下来,添加伺服。我们将其命名为伺服。

pYYBAGNY1ZuAJua7AAA8Kk3WKT8640.png
 

现在,您的设备列表中应该有两个电机和一个伺服。

poYBAGNY1Z2ANfhcAAAuwWHl6Yg359.png
 

要为电机 BL 设备配置驱动程序,请从驱动程序下拉菜单中选择 L293D H-Bridge 驱动程序。

pYYBAGNY1aCASOvKAAA6zMMaLNI761.png
 

 

poYBAGNY1aOADfRUAABAGQafti0142.png
 

现在,按如下方式配置驱动程序:

pYYBAGNY1aiAKcW7AAAQ7gPQeCE605.png
 

 

poYBAGNY1aqAP4-xAAA_tMNaPD4496.png
 

我们现在将配置 Motor BR 驱动程序:

pYYBAGNY1a2AON4eAABLz5273CM491.png
 

 

poYBAGNY1a-AC4EjAAA-MlKvCGg733.png
 

 

pYYBAGNY1bOAaSwGAAARCo9p93o530.png
 

 

pYYBAGNY1baAC-4oAAA69rCVtik906.png
 

最后,我们将配置伺服驱动程序。

从驱动程序下拉菜单中选择通用驱动程序。

 
 
 
poYBAGNY1biAd6T7AAAyM_aqcSo255.png
 
1 / 2
 

 

poYBAGNY1bqAa0uoAAAwS4E-Nv4155.png
 

这就是固件!单击屏幕底部的蓝色“保存”按钮保存文件。

poYBAGNY1b2AVNc4AAAFx-oR4C8544.png
 

现在您可以将固件上传到您已连接到转向车的客户端。

 
 
 
poYBAGNY1cCAMwfPAAAblZebW1k510.png
 
1 / 2
 

第 4 步:构建应用程序

导航到应用程序页面并单击“+ 创建新按钮”,命名您的应用程序,然后单击创建。

 
 
 
pYYBAGNY1cOADihFAAAK_g19WuY911.png
 
1 / 2
 

您现在将被定向到 App Builder 画布。

使用左侧工具栏中的搜索栏搜索电机代码对象并将其中两个拖到画布上。

 
 
 
poYBAGNY1cWAXBCFAAAnqXGh8gM640.png
 
1 / 2
 

像我们一样命名电机对象。这将帮助您在应用映射期间识别电机。要重命名它们,请单击电机对象并在右侧的属性面板中更改名称。

 
 
 
pYYBAGNY1ciAVmCtAAAeNltPloQ597.png
 
1 / 2
 

为了保存名称,您必须单击属性选项卡底部的“保存属性”按钮。

poYBAGNY1cqAYbi4AAAKi3ysmts609.png
 

接下来,搜索手动测距对象并将其拖到画布上。

 
 
 
pYYBAGNY1dCAH0rwAAA2qKuGTlM130.png
 
1 / 2
 

配置手动测距对象如下:

poYBAGNY1daALqisAAAahS_r-do982.png
 

**要配置对象上的每个端口,请单击端口并在屏幕右侧的属性面板中更改属性,然后点击屏幕底部的保存属性。如果您不这样做,您的更改将不会被保存!**

接下来,将 Manual Ranging 对象的 Value out 端口连接到 Motor 对象,如下所示:

pYYBAGNY1diAHZYnAABXPr6dG1k199.png
 

现在搜索“操纵杆”对象并将其中两个拖到画布上。命名一个左,另一个右。

 
 
 
poYBAGNY1duALbbnAAA3us0TShY507.png
 
1 / 2
 

现在将 Y 轴端口从 Joystick Left 对象连接到 Manual Ranging 对象,如下所示:

pYYBAGNY1d-AZygRAAA7DUgOuKw110.png
 

您的转向车现在将使用左操纵杆向前和向后移动。接下来,我们将研究转向。

搜索另一个 Manual Ranging 对象和一个 Servo 对象并将其拖到画布上。

我们建议您命名这两个对象。

poYBAGNY1eKAUFzxAAB4ZT5esNs529.png
 

如下配置手动测距对象上的端口:

pYYBAGNY1eSAfI3xAAAabMGTYHg059.png
 

**我们将 out min 设置为 180,将 out Max 设置为 0,这样当右操纵杆静止在中心位置时,操纵杆的输出将输出 90 而不是 0。**

配置手动测距对象后,我们将按如下方式连接代码对象:

poYBAGNY1eeAeEWJAAAgpdN3848697.png
 

**您可能必须调整 0 和 180 偏移量才能在伺服系统上获得适当的运动范围。如果是这种情况,您可以在此处按照我们的偏移调整教程进行操作。**

您的转向车现在完全可以与一组操纵杆一起使用。但是,我们将添加一些允许通过仪表板界面控制汽车的代码对象。

pYYBAGNY1euAKdHeAABN5bhXzdY677.png
 

首先,我们将从转向开始。将三个按钮界面对象和三个静态数字对象拖到画布上。如图所示排列并命名它们:

pYYBAGNY1e6AQs-CAAA4gyVmAA4730.png
 

 

poYBAGNY1fCAejRkAABBksn_ZvI747.png
 

现在,标记每个 Button 对象,以便在仪表板上轻松识别它们。请务必保存每个按钮的属性。否则,您的更改将丢失!

 
 
 
pYYBAGNY1fKAOq8UAAAUXvfwnQs825.png
 
1 / 3
 

现在使连接以蓝色突出显示:

poYBAGNY1fWAAmQ7AABd6tKLqrY634.png
 

我们现在将继续使用界面按钮使汽车向前行驶。

将一个数字切换代码对象和一个界面按钮拖到画布上。请务必为按钮命名和标记。

pYYBAGNY1fmAS3LsAAAnbJz9LL0521.png
 

现在进行以下以蓝色突出显示的连接:

poYBAGNY1fyAdg7DAABRQGJI6dk673.png
 

恭喜,您的应用程序现已完成!

pYYBAGNY1f-ASOrLAACdIwtyl4s538.png
 

点击“保存应用程序”并返回您的应用程序页面。

第 4 步:映射您的应用程序

您现在应该回到应用程序页面。

找到您的“转向底盘”应用程序并点击播放按钮。

poYBAGNY1gGAGzrnAAATu95B4So825.png
 

包含应用程序中所有设备的列表将展开。

pYYBAGNY1gWALx5uAACTVrcn60I483.png
 

接下来点击“Motor BL”设备,右侧会出现客户端下拉菜单。

从下拉菜单中选择电机 BL 驱动程序并点击“完成”。

poYBAGNY1giAJCyEAABpQp2W1Dc792.png
 

对 Motor BR 和 Servo 设备重复相同的步骤,确保设备名称与对象名称匹配。

您可以以相同的方式映射操纵杆设备,但请确保将左右操纵杆驱动程序与左右操纵杆设备匹配。

如果您尚未构建操纵杆项目或 DIY 套件,您可以在此处了解如何构建。

poYBAGNY1gqANEwiAAAhMKTdLfg923.png
 

 

poYBAGNY1gyAd3WfAAAhBRoZXnw753.png
 

请注意状态符号如何变为绿色复选标记。

pYYBAGNY1g-AbFZaAACD0-5DcYg672.png
 

**将固件设备映射到您的应用程序中的对象时,请务必注意,只有相同类型的设备和对象才能映射在一起。例如,使用这个应用程序,我们只能选择将带有按钮固件的客户端映射到按钮对象。**

第 5 步:运行应用程序!

接下来,点击“保存+运行”

pYYBAGNY1g-AbFZaAACD0-5DcYg672.png
 

 

poYBAGNY1heAIwKtAAAbgzrMiqc515.png
 

恭喜!您的原型遥控车现已完成,玩得开心!

 

 


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

评论(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:'电机伺服项目开源',//标题 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);