×

LEGO EV3 Baby Yoda-Alexa控制的EV3机器人

消耗积分:0 | 格式:zip | 大小:0.01 MB | 2023-07-06

张磊

分享资料个

描述

介绍

不用说,孩子,或者更确切地说,尤达宝宝,自从它的概念和出现在节目《曼达洛人》(The Mandalorian) 后的短时间内就成为了星球大战宇宙中的一个偶像很长一段时间以来,我一直想为它制作一个乐高模型,终于找到了这样做的机会,同时也是第一次探索 Alexa 语音控制。

我在假期里对这个东西进行了一次爆炸性的构建和编程,结果看起来非常好。(或者我愿意相信!)

我已尽最大努力包含分步说明,这些说明对于像我这样的初学者来说很容易理解。

结果

我们将学习如何创建 Alexa 小工具、Alexa 技能以及在该技能中添加/编辑命令。

我们还将通过将 ev3dev 磁盘文件写入我们将插入 Brick 的微型 SD 卡来安装 ev3dev 操作系统。

我们将设置 Visual Studio Code,我们将在其中编辑我们的程序,并熟悉 Alexa Skills 环境和代码编辑器。

确保在设置所有内容时下载并解压缩Alexa_EV3 Challenge.zip文件!

建立模型

我在页面底部附上了以下模型的搭建说明以及接线图,说明我们将使用哪些电机/传感器端口。

我知道我想要一个双足型机器人来复制节目中的蹒跚步态,所以我进行了几次迭代或步行机制——但由于各种原因都失败了。它们不是用来承受重量或实际携带机器人前进的,或者无论加固多少,齿轮都会打滑。我最终选择了 NXT Alpha Rex 模型中使用的腿。早在我 8 岁的时候,我就记得将其构建为我的第一个 Mindstorms 项目之一。由于电机框架从 NXT 完全更改为 EV3,因此我不得不调整和改进许多步骤,同时试图保持相同的功能。嘿,如果它没坏,就不要修理它!

完成下半身后,我尝试处理头部。这是最难做好的功能之一。我知道我可以在毛毡罩下摆脱任何东西,但头部是一件不能简单地披在上面的东西。稍微尝试一下角光束,我发现了一个我满意的椭圆形。眼睛用过的齿轮,发现了两个我贴在背面的亮绿色技术面板,还有耳朵的翼板。你不能说外表不存在!我想我已经尽我所能了,我想……手臂很容易,简单地连接在腿的前部附近。没有床单看起来就不好看了,我会说很光秃秃的,但是当它全部被遮盖时,一切都很好地融合在一起!

 
 
 
pYYBAGOIOfqAGy7nAAn15H2fA4w331.jpg
 
1 / 5
 

. 您可以在下面找到接线图...

完成物理模型后,我们可以继续编程和设置我们的 Alexa 技能!你会想从这里格外注意!

 
 
 
poYBAGOIOgCAbsVKAAoFzUD173k606.jpg
 
1 / 4
 

安装 ev3dev

  • 首先在此处下载 ev3dev 磁盘映像文件
  • 格式化您的 micro SD 卡,然后按照这些说明使用 balenaEtcher 将图像文件写入 SD 卡。您也可以使用win32DiskImager写入图像文件,您可以在此链接下载
  • 写入磁盘映像后,将微型 SD 卡插入 EV3 程序块并打开电源。这可能需要几分钟时间,在您到达主菜单之前,它会经历相当多的初始屏幕。从这里开始,按照这些说明使用笔记本电脑和蓝牙连接将您的程序块连接到互联网。

最后,您应该在砖屏的右上角显示一个 IP 地址。总的来说,你应该有一个看起来像这样的砖屏:

pYYBAGOIOgKAIKuRAAAvou_kEQM832.png
注意右上角的IP地址
 

设置 VS 代码

  • 下载并安装 Visual Studio 代码。
  • 下载并解压文件Alexa_EV
  • 3 挑战赛.zip
  • 打开 Visual Studio Code,然后从顶部菜单中选择“文件”>“新建窗口”。
  • 选择现在解压的Alexa_EV3 Challenge文件夹
  • 点击左侧的Extensions图标,搜索ev3dev-browser扩展。如果你的系统已经安装了python版本,也可以下载Python扩展(没有的不要安装) Python 已经安装)。
poYBAGOIOgWAL5UOAAA2Xu2MzKo563.jpg
 
  • 扩展安装完成后,导航到资源管理器图标并单击EV3DEV 设备浏览器旁边的箭头以展开更多选项。
  • 单击“单击此处连接到设备”。
poYBAGOIOgeAVpM5AAAneKSYin4868.jpg
 
  • 选择您的 EV3 程序块。它应该默认称为ev3dev如果您没有在设备列表中看到您的 brick,请尝试手动输入EV3 brick右上角显示的 IP 地址。如果您没有在您的 brick 上看到 IP 地址,您需要将您的积木重新连接到互联网。按照这些说明进行操作

这样,您的 VS Code 就全部设置好了。如果您的积木已连接,您应该会在它旁边看到一个绿点,如下所示:

poYBAGOIOgmATZeVAAAbTXhGhMw759.jpg
 

您可以单击将工作区发送到设备按钮,将Alexa_EV3 Challenge文件夹的内容复制到您的 EV3 程序块。

pYYBAGOIOgyABu1BAAAdTfNoPiU381.jpg
“发送工作区”按钮以黄色圆圈突出显示
 

创建您的 Alexa 小工具

  • 登录您的亚马逊开发者账户,或注册一个账户,然后打开您的开发者控制台
  • 导航到 Alexa > Alexa Voice Service > Products,然后创建一个新的 productor 单击此处
  • 填写以下详细信息:
    名称:MINDSTORMS EV3
    产品 ID:EV3_01产品
    类型Alexa Gadget
    产品类别:Animatronic 或 Figure
    产品描述:随心所欲

    儿童产品或是否以其他方式针对 13 岁以下的儿童?:在您提交之前,它应该看起来像这样:

     
pYYBAGOIOg6AXumgAABWmUujeHQ663.png
 
  • 接受服务协议并提交表格。
  • 单击您的新小工具,您应该会看到您的Amazon IDAlexa Gadget Secret。将它们复制到VS Code 文件中的相应字段中。run.ini
  • 完成文件更新后,单击将工作区发送到设备按钮。

创建您的 Alexa 技能

现在来实际创建我们将用来控制机器人的技能!

  • 登录您的亚马逊开发者账户,然后打开您的开发者控制台。
  • 导航至 Alexa > Alexa Skills Kit 并单击创建技能。或单击此处
  • 输入任何技能名称。这将是我们将用来调用我们的技能的名称,我们可以随时更改它。我制作了我的Mindstorms 。还选择了与您的 Amazon Echo 设备上设置的语言相匹配的语言,在我的例子中是英语(美国) 。选择自定义模型Alexa 托管的 (Node.js)后端资源。
 
 
 
poYBAGOIOhGAT-9_AAEHdMWDtzU504.png
 
1 / 2选择“自定义”模型
 
  • 向上滚动并单击创建技能
  • 选择Hello World 技能模板。
pYYBAGOIOhOARXXJAADfvQOlYWA594.png
选择“Hello World Skill”模板
 
  •  

     

     


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

评论(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.jibsdb.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:'LEGO EV3 Baby Yoda-Alexa控制的EV3机器人',//标题 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:"https://www.elecfans.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);