擲骰子遊戲自古就受到人們的喜愛。蛇梯棋、大富翁、雙骰子、雙陸棋等是全世界玩家最多的遊戲。SCqednc
早期的電子骰子是一個隨機數生成電路,主要器件是IC-555定時器,四周布設繁雜的線路。那時的電子骰子雖然能夠公平地產生1~6的點數,但人們卻絲毫感受不到投骰子的刺激與樂趣。SCqednc
為了讓這些遊戲更好玩,提升玩家的遊戲體驗,我們可以開發一個小巧的實體電子骰子,向手機、平板、顯示屏等遠程設備無線發送點數,這一設計將為擲骰子遊戲帶來無限商機。這種電子骰子可在高科技賭場中使用。SCqednc
電子骰子用到了意法半導體的加速度傳感器LIS3DH、低能耗藍牙(BLE)處理器BlueNRG-MS或Wi-Fi模塊SPWF01SAx,以及微控制器和相關的充電電路。SCqednc
電子骰子的工作原理很簡單,投擲點數取決於加速度傳感器的方向。骰子裡的加速度傳感器利用其X、Y、Z三軸的數值和下圖1中的查找表來確定骰子方向朝上一面的數字。微控制器讀取數字信息並通過BLE/Wi-Fi發送給遠程設備(手機或平板),遠程設備接收數字並處理遊戲邏輯。SCqednc
校準加速度傳感器也很容易,既可通過安卓設備向骰子發送一條命令也可通過搖骰子進行校準。校準是對電子產品因長時間使用而累積的偏移量進行修正的過程。在本例中,每個軸都需要校準,偏移計算結果保存在微控制器快閃記憶體中,當骰子開電時,這個偏移值就會被應用。SCqednc
等式1:每個軸的偏移計算結果都保存在微控制器快閃記憶體中。SCqednc
SCqednc表1:使用加速度傳感器解釋骰子輸出點數。SCqednc
SCqednc圖1:骰子與骰子遊戲通過無線通信技術(BLE 或Wi-Fi)傳輸數據。SCqednc
SCqednc上圖顯示了骰子將當前的點數「6」和「5」發送到智慧型手機/平板電腦的步驟(1, 2, 3)。SCqednc
如果使用藍牙通信,骰子通過藍牙協議棧的GAP和GATT協議發送數據。GAP協議用於初始化協議棧,建立與手機的連接通道,而GATT協議則定義通過Bluetooth Smart Link發送的稱為「屬性」的數據,如骰子點數、校準命令等。該協議生成相關的加速度傳感器服務,骰子點數通過該服務發送出去。SCqednc
如果是Wi-Fi通信,運行在骰子上的固件連接到AP(接入點),作為套接字客戶端,嘗試打開與遠程伺服器套接字的連接。運行在遠程設備上的伺服器程序與骰子連接到同一個AP,監聽骰子在指定埠上發送的任何數據。一旦建立連接,骰子固件向套接字寫數據,遠程設備接收數據,並據此處理遊戲邏輯。遠程設備名稱/IP位址可以在骰子固件內配置。SCqednc
電子骰子可用於很多手機和平板遊戲軟體,還廣泛用於高科技娛樂場所,因為這些地方多數遊戲都離不開骰子。如果在骰子裡植入語音播報器,骰子就會在停止轉動後自動播報骰子點數,並將數據發送到遠程設備,這對視力有障礙的群體十分有用。若將加速度傳感器的軸與骰子的面垂直,就是一個N面骰子。SCqednc
作者:Rosarium Pila,Saurabh Rawat,Salil Jain,意法半導體公司SCqednc
《電子技術設計》2017年11月刊版權所有,轉載請註明來源及連結。SCqednc
SCqednc