基于ATtiny85的微型游戲機(jī)
我們都有過(guò)這樣的經(jīng)歷。當(dāng)你從工作中得到應(yīng)得的休息,或者放下你正在閱讀的書,你伸手去拿手機(jī),以為你只是想玩一個(gè)快速的游戲來(lái)放松一下。但在你意識(shí)到之前,你已經(jīng)花了三個(gè)小時(shí)沉浸在TikTok上關(guān)于長(zhǎng)得像名人的貓的視頻中,或者無(wú)休止地瀏覽Instagram上的視頻,從烹飪技巧到陰謀論,比如為什么熱狗是10個(gè)一包,而面包是8個(gè)一包。
現(xiàn)代智能手機(jī)雖然功能強(qiáng)大,但它已成為一把雙刃劍。本來(lái)應(yīng)該是放松的時(shí)刻,卻變成了沒完沒了的通知循環(huán)、社交媒體的兔子洞,以及我們稱之為“厄運(yùn)滾動(dòng)”的特殊形式的數(shù)字流沙。有時(shí)候,你只是想玩俄羅斯方塊,而不想讓你的手機(jī)被工作郵件、新聞提醒或凌晨2點(diǎn)發(fā)來(lái)表情包的朋友嗡嗡作響。
這就是專用游戲設(shè)備的魅力所在。還記得打開Game Boy或在舊諾基亞上快速玩一輪Snake游戲時(shí)的那種純粹的快樂(lè)嗎?這些簡(jiǎn)單而專注的游戲體驗(yàn)很神奇,沒有通知,沒有社交媒體誘惑,只有你和游戲。
這種對(duì)簡(jiǎn)單游戲的懷舊渴望,加上對(duì)逃離現(xiàn)代生活數(shù)字混亂的渴望,激發(fā)了我創(chuàng)造一些特別的東西:一個(gè)小巧的口袋大小的游戲機(jī),在完全脫離網(wǎng)絡(luò)世界的同時(shí),帶回了經(jīng)典游戲的精髓。
視覺上
我想創(chuàng)造一種設(shè)備,它可以:
?適合舒適地放在你的口袋里,可以連接到一個(gè)鑰匙夾。
?玩俄羅斯方塊、青蛙過(guò)河和貪吃蛇等經(jīng)典游戲
?是否擁有令人滿意的物理按鍵復(fù)古游戲體驗(yàn)
?完全離線,不受干擾
?展示極簡(jiǎn)電子產(chǎn)品的力量
?作為一個(gè)完美的對(duì)話開始和DIY創(chuàng)造力的證明
我們?cè)诮ㄔ焓裁?
這個(gè)項(xiàng)目以ATtiny85微控制器為中心——一個(gè)很小但功能強(qiáng)大的芯片,它證明了你不需要巨大的處理能力來(lái)創(chuàng)造引人入勝的游戲體驗(yàn)。我們的主機(jī)功能:
核心組件:
?Atiny85微控制器(我們的操作大腦)
?SSD1306 OLED顯示屏(高清128x64像素游戲畫布)
?三個(gè)觸覺按鈕(用于導(dǎo)航和游戲)
?主動(dòng)蜂鳴器(為那些令人滿意的嗶嗶聲和嗚嗚聲)
?小電池組(用于便攜式游戲)
?定制3D打印外殼(在Autodesk Fusion 360中設(shè)計(jì))
技術(shù)規(guī)格:
?顯示屏:0.96英寸OLED (128x64分辨率)
?電源:3.7V鋰電池
?尺寸:約45毫米x 35毫米x 20毫米(口袋友好!)
?游戲:《俄羅斯方塊》、《貪吃蛇》、《青蛙過(guò)河》等經(jīng)典游戲
?電池壽命:4-6天的連續(xù)游戲
為什么這很重要
在我們這個(gè)高度互聯(lián)的世界里,創(chuàng)造和使用一款只擅長(zhǎng)一件事的設(shè)備會(huì)讓人產(chǎn)生深深的滿足感:不受干擾地娛樂(lè)你。這不僅僅是關(guān)于創(chuàng)造一個(gè)游戲主機(jī);這是關(guān)于:
?數(shù)字極簡(jiǎn)主義在行動(dòng):證明有時(shí)少即是多
?Rekindling Childhood Wonder:帶回簡(jiǎn)單游戲的純粹樂(lè)趣
?通過(guò)制作學(xué)習(xí):通過(guò)動(dòng)手創(chuàng)作了解電子和編程
?可持續(xù)游戲:一款可以運(yùn)行數(shù)年而無(wú)需更新軟件或計(jì)劃淘汰的設(shè)備
?對(duì)話開始:沒有什么比拿出你自己做的設(shè)備更好的了
未來(lái)之旅
在本文中,我們將介紹構(gòu)建過(guò)程的每一步,從選擇組件和編寫代碼到設(shè)計(jì)案例并將所有內(nèi)容組裝成一個(gè)精美的、專業(yè)的設(shè)備。無(wú)論您是想要了解微控制器的初學(xué)者還是想要嘗試新事物的經(jīng)驗(yàn)豐富的制造商,這個(gè)項(xiàng)目都提供了挑戰(zhàn)和獎(jiǎng)勵(lì)的完美平衡。
我們將討論:
?硬件設(shè)置:接線圖和組件選擇
?編程:使用Arduino IDE為ATtiny85編寫游戲(帶有免費(fèi)下載的游戲包)
?3D設(shè)計(jì):在Autodesk Fusion中創(chuàng)建自定義案例
?組裝:把所有的東西放在一起
?故障診斷:常見問(wèn)題和解決方案
?未來(lái)升級(jí):擴(kuò)展主機(jī)的想法
在本構(gòu)建結(jié)束時(shí),您將不僅擁有一個(gè)功能齊全的游戲機(jī),而且對(duì)嵌入式系統(tǒng),游戲編程和3D設(shè)計(jì)有了更深入的了解。更重要的是,你創(chuàng)造的東西會(huì)帶來(lái)真正的快樂(lè),無(wú)論是制作還是使用。
所以讓我們深入研究并創(chuàng)造一些東西,以證明最好的游戲體驗(yàn)并不總是來(lái)自最大的屏幕或最強(qiáng)大的處理器。有時(shí),它們來(lái)自于用自己的雙手創(chuàng)造一些很棒的東西的滿足感。
準(zhǔn)備好逃離末日卷軸了嗎?讓我們開始構(gòu)建吧!
硬件設(shè)置
部件清單
在開始之前,讓我們收集此構(gòu)建所需的所有組件:
基本組件:
?1x ATtiny85微控制器(推薦DigiSpark兼容板)
?1x SSD1306 OLED顯示屏(0.96",128x64, I2C)
?3x觸覺按鈕(6mm x 6mm)
?1個(gè)無(wú)源蜂鳴器(5V兼容)
?1x 3.7V鋰電池(500-1000mAh)或3xAAA電池座
?1x滑動(dòng)開關(guān)(電源)
?用于原型設(shè)計(jì)的跳線和面包板
?Perfboard或定制PCB用于最終組裝
?3D打印線材(推薦使用PLA)
所需工具:
?烙鐵和焊料
?剝線鉗
?3D打印機(jī)
?安裝Arduino IDE的計(jì)算機(jī)
?編程用USB線
接線圖
這個(gè)項(xiàng)目的美妙之處在于它的簡(jiǎn)單。ATtiny85只有5個(gè)I/O引腳,所以我們需要對(duì)我們的連接進(jìn)行戰(zhàn)略規(guī)劃
引腳:
?引腳0 (PB0):按鈕1(左/旋轉(zhuǎn))
?引腳1 (PB1):蜂鳴器
?引腳2 (PB2):按鈕2(右/下)
?引腳3 (PB3): SDA (OLED的I2C數(shù)據(jù))
?引腳4 (PB4): SCL(用于OLED的I2C時(shí)鐘)
?引腳5 (PB5):按鈕3(選擇/暫停)
連接細(xì)節(jié):
?OLED顯示器:VCC接3.3V, GND接地,SDA接PB3, SCL接PB4
?按鈕:每個(gè)按鈕連接在其指定引腳和地之間(帶有外部下拉電阻)
?蜂鳴器:正極接PB2,負(fù)極接地
?電源:電池正極到VCC,負(fù)極通過(guò)電源開關(guān)到地
電源管理
ATtiny85非常節(jié)能,非常適合電池供電的項(xiàng)目。通過(guò)在代碼中實(shí)現(xiàn)適當(dāng)?shù)乃吣J?,您可以?shí)現(xiàn)4-6小時(shí)的活躍游戲或幾天待機(jī)狀態(tài)。
游戲編程
設(shè)置Arduino IDE
?首先,您需要設(shè)置Arduino IDE以使用ATtiny85:
?通過(guò)單板管理器安裝atiny單板包
?從工具菜單中選擇“ATtiny25/45/85”
?選擇你的程序員(USB ASP或Arduino作為ISP)
?將時(shí)鐘設(shè)置為8MHz(內(nèi)部)
重要注意事項(xiàng):按照本說(shuō)明書學(xué)習(xí)如何使用Arduino Uno編程ATTINY85
游戲架構(gòu)
警告:不要上傳此代碼,它只是一個(gè)片段,僅用于演示,將游戲上傳到您的控制臺(tái),下載并提取此ATTINY games Zip文件并上傳您感興趣的游戲。
這個(gè)代碼和所有可用的游戲都是由最初的創(chuàng)造者安迪·杰克遜帶來(lái)的,感謝他使這一切成為可能,現(xiàn)在我們可以在它的基礎(chǔ)上建立并帶來(lái)驚人的創(chuàng)作。
每個(gè)游戲都遵循針對(duì)atiny85有限內(nèi)存優(yōu)化的類似結(jié)構(gòu):
可用的游戲
這款游戲機(jī)配有幾款經(jīng)典游戲,每款游戲都針對(duì)小屏幕和有限的控制進(jìn)行了優(yōu)化:
1. 俄羅斯方塊:經(jīng)典的方塊堆疊游戲,控制方式簡(jiǎn)單
?左鍵:向左移動(dòng)/旋轉(zhuǎn)
?右鍵:向右移動(dòng)/放下
?選擇按鈕:暫停/重啟
2. 蛇:引導(dǎo)你的蛇吃食物并成長(zhǎng)
?方向控制使用兩個(gè)按鈕
?簡(jiǎn)單但令人上癮的游戲玩法
3. 蛙人:過(guò)馬路,避開障礙物
?左/右運(yùn)動(dòng)
?時(shí)序?yàn)榛A(chǔ)的挑戰(zhàn)
4. Pong:經(jīng)典的劃槳游戲
?對(duì)抗AI的單人模式
?簡(jiǎn)單但令人滿意
5. 太空入侵者:抵御外星人入侵
?極簡(jiǎn)射擊游戲
?進(jìn)步的困難
?免費(fèi)下載游戲
上面提到的所有游戲都包含在此項(xiàng)目附帶的可下載ZIP文件中。解壓文件,打開。在Arduino IDE中為您想要的游戲制作ino文件,并將其上傳到您的ATtiny85。每個(gè)游戲都有充分的評(píng)論和準(zhǔn)備自定義!
3D設(shè)計(jì)和案例創(chuàng)建
Fusion 360中的設(shè)計(jì)
案例設(shè)計(jì)平衡美學(xué),功能和可印刷性。主要的設(shè)計(jì)考慮包括:
人體工程學(xué):
?圓形邊緣舒適的抓地力
?按鈕位置優(yōu)化拇指訪問(wèn)
?纖細(xì)的外形,適合你的口袋
功能:
?插槽的3個(gè)按鈕
?為OLED顯示清除窗口
?作為密匙環(huán)的附件
設(shè)計(jì)過(guò)程
?測(cè)量階段:仔細(xì)測(cè)量所有組件
?素描創(chuàng)作:從正面和側(cè)面輪廓的2D草圖開始
?3D建模:擠壓和修改,以創(chuàng)建基本的外殼
?組件放置:創(chuàng)建精確的切口和安裝點(diǎn)
?測(cè)試:打印原型以測(cè)試其適用性和觸感
?細(xì)化:基于物理測(cè)試進(jìn)行迭代
外殼由兩個(gè)主要部分組成:前殼和后殼(容納電池和電子設(shè)備)。
專業(yè)3D打印與JUSTWAY
雖然在Fusion 360中設(shè)計(jì)外殼令人興奮,但并不是每個(gè)人都能使用3D打印機(jī)。這就是專業(yè)3D打印服務(wù)變得無(wú)價(jià)之寶的地方。在這個(gè)項(xiàng)目中,我使用JUSTWAY提供高質(zhì)量的3D打印服務(wù)——他們一直是我把數(shù)字設(shè)計(jì)變成現(xiàn)實(shí)的首選解決方案。
裝配過(guò)程
步驟1:電子組裝
?按照接線圖將元件焊接到perfboard上
?用萬(wàn)用表測(cè)試所有連接
步驟2:最后組裝
常見問(wèn)題處理
顯示不工作:
?檢查I2C連接(SDA/SCL)
?驗(yàn)證顯示地址(通常是0x3C)
?確保有足夠的電力供應(yīng)
按鈕不響應(yīng):
?確認(rèn)上拉電阻在代碼中啟用
?檢查焊料連接
?測(cè)試按鈕連續(xù)性
蜂鳴器沒有聲音:
?驗(yàn)證蜂鳴器極性
?檢查PWM引腳分配
?測(cè)試簡(jiǎn)單的語(yǔ)氣代碼
電池壽命短:
?在代碼中實(shí)現(xiàn)睡眠模式
?檢查電流是否過(guò)大
?考慮更大的電池容量
未來(lái)的升級(jí)和修改
這種設(shè)計(jì)的美妙之處在于它的可擴(kuò)展性??紤]一下這些升級(jí):
?彩色顯示器:升級(jí)到彩色OLED,以增強(qiáng)視覺效果
?更多的按鈕:增加方向鍵,更好的游戲控制
?聲音升級(jí):用小喇叭代替蜂鳴器
?無(wú)線:為多人游戲添加藍(lán)牙
?充電電路:集成USB-C充電
?游戲卡帶:設(shè)計(jì)可移動(dòng)內(nèi)存模塊
結(jié)論
制作這款小型游戲機(jī)是一段令人難以置信的旅程,它結(jié)合了懷舊、創(chuàng)造力和技術(shù)技能。在這個(gè)被智能手機(jī)和沒完沒了的通知所主宰的世界里,創(chuàng)造一款能夠完美完成一件事的設(shè)備會(huì)讓人感到非常滿足:提供純粹、無(wú)干擾的游戲樂(lè)趣。
接下來(lái)是什么?
我熱衷于探索微型游戲機(jī)的世界,并在極簡(jiǎn)硬件的情況下突破極限。這個(gè)ATtiny85控制臺(tái)只是一個(gè)開始,我目前正在進(jìn)行定制PCB設(shè)計(jì),這將使組裝更加容易,并為功能和外形因素開辟新的可能性。
如果你對(duì)未來(lái)的小型游戲主機(jī)項(xiàng)目感興趣,無(wú)論你是硬件設(shè)計(jì)師、程序員、3D建模師,還是只是有好想法的人,我都很樂(lè)意聽到你的聲音!請(qǐng)通過(guò)評(píng)論或直接與我聯(lián)系。我們可以一起創(chuàng)造出更棒的袖珍游戲體驗(yàn)。
期待
下一個(gè)迭代已經(jīng)在開發(fā)中,采用定制的PCB,將允許更多的游戲,更長(zhǎng)的電池壽命,甚至更緊湊的外形因素。我們的目標(biāo)是創(chuàng)造一系列小型主機(jī),每個(gè)都針對(duì)不同類型的游戲和體驗(yàn)進(jìn)行優(yōu)化。
無(wú)論您是構(gòu)建這個(gè)確切的版本還是將其用作您自己的創(chuàng)作靈感,請(qǐng)記住,最好的技術(shù)通常是最簡(jiǎn)單的。有時(shí)候,最強(qiáng)大的游戲體驗(yàn)并不是來(lái)自最新的顯卡或最大的屏幕,而是來(lái)自于用自己的雙手創(chuàng)造一些很棒的東西的滿足感。
本文編譯自hackster.io





