
01小游戲RunTiny
在電子森林推文 700個位元組的代碼在ATtiny10里跑一個游戲 介紹了一個 開源小游戲RunTiny .

用了:
- 一個AVR單片機ATtiny10微控制器(只有6個腳,Digikey上0.3美元一顆)
- 一個128*32的OLED顯示屏
- 一個按鍵
- 一個電池 - 3.3V~4.5V都可以,可以用1S 150mAh的Lipo,乃至一顆CR2032的紐扣電池
小小的單片機ATtiny10只有6個腳:
- 1個電源
- 1個地
- 1個Reset
- 3個可用的I/O:
- PB0: 用于連接OLED的I2C的SDA
- PB1: 用于連接OLED的I2C的SCL
- PB2: 按鍵(INT0)
原理圖長這樣(在面包板上就可以實作,5塊錢打塊板也可以啊):

▲ 極簡的電路圖

▲ 面包板上搭建的電路
代碼也超級簡單,為了能夠塞到1KB的Flash存盤器里面,作者做了優化,用匯編語言寫成,最終的代碼只有778個位元組,不僅實作了游戲的功能,還能處理微控制器的I/O以及顯示的通信
是不是很酷? 在Github上有開源的資源,
02拆彈專家
“到底應該是先剪短綠色電線?還是紅色的呢?”,這也許是很多動作片中的扮演大英雄的主人公在面對能夠拯救百萬人性命的拆彈時刻經常要說的臺詞,
下面這個電子游戲就是帶有兩個倒計時七段數碼管,并且有四種不同顏色電線需要你將其按順序移開來阻止炸彈爆炸的電路原理圖,

▲ 拆炸彈電子游戲電路圖
原理圖中的器件引數可以從網路上下載相關的說明, 如果使用PCB來制作相應電路可以做到非常小巧精致,不過在面包板上DIY這個游戲電路則更有手感,

▲ 在面包板上搭建的電路游戲
電路上電后,數碼管顯示“S1”,此時需要將四根不同顏色線(紅、藍、綠、白)接入電路,然后按動按鈕”K1”,游戲便開始了,數碼管顯示15秒的倒計時,單片機程式自動隨機設定四根線移除結果:觸發炸彈、加快計時速度、解除炸彈以及無結果,
電路中16F88單片機程式 BGame.hex 也可以從網站下載,

▲ 視頻游戲控制板電路原理圖
03微型直升飛機
下面是一款基于ATTiny3的俄羅斯方塊游戲,它是由 Owen在2011年 開發的電子游戲,被稱為TinyCopter,其中LCD是Nokia3310手機液晶螢屏,它模擬在Apple-II電腦上一款電腦老游戲,使用空格鍵來控制直升飛機起飛來穿越崎嶇的通道,
為了能夠在1k位元組的FLASH, 64位元組RAM中實作這款小游戲,作者使用匯編語言,用盡了單片機內每一位可用的空間,

▲ 俄羅斯方塊游戲
也許匯編語言是很多程式員的噩夢,但如果開發時間充裕,Owen愿意永遠使用匯編語言,它可以讓程式員吧單片機按倒在地上使勁的摩擦,榨出所有可用的資源,
04太空入侵者
如果前面的單片機電子游戲機只能在微小液晶顯示幕上玩,不太過癮,那么下面這款基于ATMEGA328的8位單片機的 Hackvision 則可以直接利用它的IO口來產生NTSC(或者PAL)電視信號來驅動大螢屏電視機來顯示游戲畫面,有兩條IO口組成的2bitAD所產生的音效也很神奇,

▲ Hackvision游戲板
向Arduino一樣,這款電路設計中的單片機可以讓你通過它的BootLoader將你自己開發的程式進行上載,利用單片機額外的外設資源可以增加更多的游戲控制桿,
基于這款硬體可以玩太空入侵者,乒乓球或者小行星等游戲,

▲ 太空入侵者游戲
這款Hackvision相關的 硬體開發和軟體編程 可以在網上找到相應的開發資源和編程指導資料,

▲ Hackvision硬體電路設計
■ 相關文獻鏈接:
- 700個位元組的代碼在ATtiny10里跑一個游戲
- 在Github上有開源的資源,
- 原理圖中的器件引數可以從網路上下載相關的說明,
- Owen在2011年
- Hackvision
- 硬體開發和軟體編程
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/147828.html
標籤:其他
上一篇:hades 武器第四形態解鎖方法
