×

如何制作ATtiny85控制台-ArduPlay

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

陈勇

分享资料个

不幸的是,这个晚上的时间不会从我的指尖溜走。他做了一个有趣的ATtiny游戏项目,但我不喜欢安装新游戏的方式,因为如果你想改变游戏,你必须拔出连接器的微控制器并插入一个新的,这可能会对 ATtiny 腿产生负面影响。我觉得有义务改进改变游戏的方式。让我们开始吧!

Step 1: Inserting the Game

poYBAGOYCoOAB2LkAAFLhaxsN14407.jpg

木板

pYYBAGOYComAE6NbAABE1WifCpU924.jpg

连接器

poYBAGOYCoyAZ_rQAAA9WvRmGxg033.jpg

下一篇PCB

我首先寻找适合该项目的连接器。我找到了一个里面有弹簧的,所以我可以插入游戏板然后按下它。完美。使用前面提到的互联网创建者的图表,我创建了自己的图表,添加了连接器和可以通过微型 USB 连接器充电的电池。然后我为控制台和游戏卡设计了 PCB,并从NEXTPCB 订购了它们。

Step 2: PCB Preparing

pYYBAGOYCo-ANJBiAAB97NjdGbo770.jpg

焊接

poYBAGOYCpKAW4z4AACOSShGj5w931.jpg

威廉希尔官方网站 板

是时候焊接了。我首先将焊膏涂在 SMD 组件的所有焊盘上,然后将这些元件放在它们的位置。我将热风站设置为 300 度,将气流调到最小,然后开始焊接过程 - 电阻器、电容器、开关、插座、显示器。最后,我焊接了金色连接器。将显示器插入金针插座后,发现它突出太多,所以我拆下插座并焊接显示器本身。最后,我用异丙醇和牙刷清洁了 PCB。

Step 3: Projecting

poYBAGOYCp-Ab724AAA2kpSilW8051.jpg

渲染 1

pYYBAGOYCqKALSBVAAAX0mEzQt0964.jpg

渲染 2

pYYBAGOYCqaAPTckAAAyezu8V5s244.jpg

木丝

我拍摄了两块板的照片并将它们上传到 Fusion 360。我输入了板的尺寸,标记了外壳不应覆盖的位置,将此元素的厚度设置为 2 毫米并打印以确保孔在正确的地方。然后我创建了箱子的底部并将它们连接在一起。整个外壳由6 个元素组成。完成设计后,我将其上传到 Creality Slicer 并以两个文件的形式保存在 SD 卡上。我将使用纯红色 PLA 打印第一个文件中的元素,使用木质 PLA打印第二个文件中的元素。这种长丝由40% 的磨木组成,印刷时会产生独特的香味。这些灯丝是3DJAKE提供给我的- 我鼓励你检查他们的报价。唯一剩下的就是把所有的元素放在一起。

Step 4: ATtiny Programming

poYBAGOYCqiAD6epAADkcKXoX4g479.jpg

所有部分

我将从 Digispark 模块拆焊的 ATtiny85 微控制器将负责电子部件的工作。然而,在我这样做之前,我必须对其进行编程。我安装了这个模块的驱动程序,然后我在 Arduino IDE 中添加了一个支持这个模块的库。我下载了游戏文件并将它们上传到几个板上,以便我可以随时更改游戏。我从 Digispark 模块上拆下 ATtiny 并将其焊接到我的 PCB 上。

Step 5: That Is All!

pYYBAGOYCquAbdd9AAB5PhHeDgU287.jpg

arduPlay

poYBAGOYCq2AQ29CAACEPQI7roY849.jpg

arduPlay

这就是 arduPlay 的样子——一个基于 ATtiny85 的迷你游戏机。将游戏板放在正确的位置并关闭外壳,从而将板压到连接器上。现在,您可以在手工打造的迷你游戏机上享受复古风格的游戏玩法。

我的优酷:优酷

我的脸书:脸书

我的Instagram:Instagram

订购您自己的 PCB:NEXTPCB

购买 3D 打印配件3DJAKE

 

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

评论(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:'如何制作ATtiny85控制台-ArduPlay',//标题 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);