×

使用新的引导加载程序对旧BadgerStick进行编程

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

路过秋天

分享资料个

描述

本教程将帮助您使用新的引导加载程序对旧 BadgerStick(来自 SXSW 2015)进行编程,这样您就可以将其用作常规 Arduino 设备并在其上加载新草图。

什么是引导加载程序?

首先,让我们解释一下什么是引导加载程序。简而言之,它是一个在您的 Arduino(或其他类似设备)首次启动时运行的小程序。它负责与您的计算机对话,看看您是否正在尝试编写新草图,如果是,则接受新草图。

有什么问题?

在 SXSW 2015 中分发的第一批 BadgerSticks 使用旧版本的引导加载程序进行编程,其运行速度非常慢。这不再受支持,因此我们需要重新编程,或将新的引导加载程序“闪存”到我们的 BadgerStick。

解决问题

要将新的引导加载程序闪存到 BadgerStick,您需要一个称为 ISP 编程器的东西。如果您已经有一个并且知道如何使用它,请转到最后一节。如果你没有 ISP 程序员,你可以设置一个 Arduino 来像一个一样。在本例中,我们将使用 Arduino Pro Mini,但您也可以根据需要使用 Arduino UNO。

设置你的Arduino

首先,您需要使用 ArduinoISP 草图对您的 Arduino 进行编程,这是下面嵌入的代码。这将使您的 Arduino 充当 ISP 程序员。 

转到下面的代码部分,并使用右下角的了解更多链接安装 codebender 浏览器。这个插件允许您的浏览器与您的 Arduino 对话,并使用新的草图对其进行编程。

如果您已经有了 codebender 浏览器插件,只需选择您的 Arduino 设备,选择正确的串行 (COM) 端口,然后单击在 Arduino 上运行。几秒钟后,您应该会收到一条成功消息。这意味着您的 Arduino 现在已设置为充当 ISP 程序员。

注意:我们假设您已经在计算机上安装了必要的 FTDI 驱动程序。如果没有,我鼓励您访问codebender 的入门演练,这将帮助您设置和配置您的计算机。

将您的 Arduino 与 BadgerStick 连接

使用下面的示意图将您的 Arduino 连接到 BadgerStick。同样,这显示了一个 Arduino Pro Mini,但您也可以使用具有相同引脚的 UNO。

闪烁新的引导加载程序

现在转到 codebender 的Burn Bootloader页面。

选择BadgerStick作为看板。

选择程序员。如果您已有一个,请选择您拥有的类型。如果您一直在学习本教程,请选择ArduinoISP。

如果您选择ArduinoISP,将出现另一个选择框,要求您选择串行 (COM) 端口。选择属于您的 Arduino 的那个。

单击刻录引导加载程序。片刻之后,将出现一条成功消息。

恭喜,您刚刚使用新的引导加载程序刷新了 BadgerStick!您现在可以使用 codebender 加载新草图,只需选择 BadgerStick 作为板。

试试看,编写这个Hello World草图。

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

评论(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:'使用新的引导加载程序对旧BadgerStick进行编程',//标题 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);