×

用GPS控制你的RoverBot应用程序

消耗积分:0 | 格式:zip | 大小:1.25 MB | 2023-01-31

王莉

分享资料个

描述

你好,

Adafruit_BBIO.UART 和 Adafruit_BBIO 已弃用(某种程度上)...

这是我花了一些时间组合在一起的组件和软件的掩码。我希望你喜欢它。

还有……听指令。它变得复杂,因为大多数东西都是机械的!

首先,我购买了一个 BBB,然后购买了一个 BBGW (BeagleBone Green Wireless)。我最终从那两次购买中开发了机器和想法。祝我好运,对吧?不管怎样……试验和学习仍在继续,我现在在这里介绍一些我为了娱乐目的而放在一起的东西,可以用来指示特定机械的位置,例如移动的机械。

其次,我把一个迷你机器人放在一起学习,但一次又一次地失败了很多次。最后,几年后,我学到了一些东西,发现部分想法只是……它们只是想法的一部分。有时需要追求和知识。

在这个领域从头开始并不容易,即即使使用开源软件和在 Internet 上流传的想法也是如此。

无论如何,是时候开始了。

...

  • 获取所有组件!
  • 研究书籍和想法。
  • 一些不错的入门书籍是“BeagleBone 入门(Richardson 2013)”和“BeagleBone 实例(Prabakar 2016)”。
  • 从https://forum.beagleboard.org/t/debian-10-x-11-x-kernel-updates/30928获取最新更新,这提供了一种升级和更新内核的方法!https://forum.beagleboard.org/t/debian-11-x-bullseye-monthly-snapshots/31280是他们william hill官网 上的另一个页面,用于获取更新的图像。
  • 使用本指南 https://beagleboard.org/getting-started 来设置带有 balenaEtcher 的所选图像。如果您使用的是 Windows 主机,则必须从 https://www.balena.io/etcher/ 下载 Etcher。如果您使用 Linux 发行版进行开发,例如 Ubuntu 或 Debian,您也可以使用 Etcher 软件......
  • sudo apt 更新 && sudo apt 升级
  • 如果您使用的是 SD 卡,则 SD 卡的全部容量将在重启后或使用以下命令膨胀:sudo shutdown -r now
  • 好吧……到此为止。
  • 接下来,我们需要在 BBGW 或 BBBW(通过 Grove 连接器没有 GPS 模块)上设置我们的软件并连接硬件。幸运的是,为了我们和方便起见,MotorCape 和 Grove GPS 将非常适合,而且不费吹灰之力。
  • 将 MotorCape 连接到 BBGW,将 Grove GPS 连接到 BBGW 背面的 Grove UART 连接。
  • 哦!确保您没有在 BBB 系列板或任何硬件中“热插拔”项目。“热插拔”就是在威廉希尔官方网站 板通电时将外围设备连接到威廉希尔官方网站 板上。

Updates...

This source no longer works...

Try another method for source w/ the L298!很抱歉,Adafruit_BBIO 已被暂时或永远弃用。

  • 软件:转到https://github.com/silver2row/motocape获取一些易于理解并使事情正常运行的软件。不要害怕在您的设置下尝试新的方法和应用程序。这是我的GitHub.com在线页面,我在 3 月份的本地 Maker Faire 上使用了这个软件。您可以在主要的 Python 软件https://github.com/silver2row/motocape/blob/master/MotoCapeIII.py 中看到,我们将 Adafruit_BBIO 和 Flask 与 Python 一起使用。Adafruit_BBIO 将允许我们管理我们的引脚和连接,而 Flask 将是一种特定类型的微服务服务器,用于在 5000 端口的特定地址上实现在线连接。
  • 此外,如果您不直接使用silver2row/motocape/软件,则需要在当前目录中创建一个模板目录。
  • 一旦进入你的模板目录,只要你用你的 Python-Flask 应用程序指向它,就可以创建一个 HTML 文件,你可以随意命名。您可以在源代码末尾看到MotoCapeIII.py软件,其中我们声明 return render_template("boboIV.html", **template_data) 其中boboIV.html是模板目录中的 HTML 页面。
  • 现在...我们需要创建一个带有 .service 文件的简单可引导软件。
[Unit]
Description=Whatever You Would Like to Describe about Your File
  
[Service]
ExecStart=/The/Path/To/Your/File.py
  
[Install]
WantedBy=multi-user.target
  • 因此,再次使用您最喜欢的文本编辑器,输入以上信息。进入此目录下的 .service 文件:/etc/systemd/system/yourFile.service并将您的 .service 文件命名为您可以记住的名称。
  • 接下来,使用以下命令在终端中启用并启动 .service 文件sudo systemctl enable yourFile.service然后,使用此命令启动 .service 文件sudo systemctl start yourFile.service,以确保我们可以使用此命令在终端上看到其状态:sudo systemctl status yourFile.service
  • 现在,重启!这在运行时应该显示我们的 .service 文件正在工作sudo systemctl status yourFile.service
  • 接下来,我们需要在 https://www.google.com/earth/versions/#earth-pro 上安装 Google Earth Pro 程序,以便能够在 Google Earth Pro 中看到我们的 RoverBot 路线。如果您使用带有手机服务(3G 或 4G)的手机来查看带有 Google 地球专业版的地图,请确保您选择了移动版 Google 地球,或者如果您有一个带有笔记本电脑的计划,并且一个逆变器使用,你需要选择桌面版本。哦,您始终可以在浏览器中使用 Google Earth Pro 查看地球。
  • 从 BBGW 的 uart2 连接,只要您可以在源中的 BBGW 上使用 UART2 外围设备,任何 GPS 源都可以工作。
  • 因此,无需再等待,我很遗憾地宣布 Python 2.xx 已被弃用。没有办法从python.org将它安装到 Bullseye 的计算机上。有很多方法,但它不是一个功能齐全的 python。现在坚持使用 Python3!
  • 这意味着,我们必须是一个精明的用户并找到新的路径,如果你愿意的话,也就是“hack”。
  • 但是,因为我们在这里,所以可以在这里找到该软件:https://github.com/silver2row/bbgwGPS/blob/master/GPS.py。您可以看到我们将 Adafruit_BBIO.UART 作为 UART 和串行导入。我最近遇到了很多错误 b/c 该软件仅适用于 Python2。
  • 因此,由于 Adafruit_BBIO 及其用于与 BBGW 上的 UART 交互的源已过时,我们需要使用另一种形式的客户端。
  • 我说:https ://gpsd.gitlab.io/gpsd/
  • 我们可以使用他们的 gpsd 客户端来处理来自 BBGW 上 UART 的 GPS。如果您是 gpsd 新手,乍一看似乎很复杂。只记得:

REBOOT THE GPSD CLIENT TO CREATE A WORKABLE INSTANCE THAT CAN BE READ!

Like:sudo systemctl 重新启动 gpsd.service

  • 如果您是一个知道如何很好地管理文件的文件人员,请使用此软件并根据您的需要对其进行更改。没有保修!
  • 享受!
  • 我们还应该控制可启动配置。该软件和 gpsd 软件的名为 .service 文件的文件。

...

因此,我们可以追踪我们的机器人“怪物”下坡、上岸并穿过河床。如果您在控制机器人时遇到问题或在 GPS 工作时遇到问题,请随时与我联系。

赛斯

PS 如果你想设置一个带有linode.com的服务器并使用 apache2 或 nginx,请使用 /etc/apache2/sites-available 或 /etc/nginx/sites-available,并设置你自己的 .conf 文件。

接下来...添加信息。到您的站点:您可以在线查看w3schools.com并从中找到一些带有大量附加信息的非许可软件。关于前端编程。

接下来...转到 /var/www/html/。

使用此命令:nano index.html。这将帮助您更改index.html文件以满足您的需要。如果您计划在 linode.com 上托管站点,您可以找到他们提供的大量关于想法的教程,而且您可以随时访问源代码,例如ubuntu.com或 Debian.org。

接下来...如果您需要在家庭服务器上托管站点,请参阅此处: https://help.ubuntu.com/lts/serverguide/index.html.en。这是一个非常好的教程。

两个站点上的两个 wiki 都很好,即社区和专业。

我认为这可能超出了这个小型演示的范围,但您可以考虑将您的blah-blah.com站点(其中 blah-blah 是您选择的站点的名称)添加到linode.com以进行托管并带有 www 记录 w / 您列出的公共 IP 地址。

接下来...使用 cname 记录将您的主机名(IP 地址)添加到您的别名(网站地址)/blah-blah.com 或当时的任何名称。

啊!


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

评论(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.obk20.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:'用GPS控制你的RoverBot应用程序',//标题 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.obk20.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);