資料介紹
描述
項(xiàng)目原因
在我訪問(wèn)和生活過(guò)的許多國(guó)家,公園里都有帶棋盤(pán)的桌子。游客們習(xí)慣在那兒下棋,經(jīng)常和不知名的對(duì)手下棋。
作為一個(gè)國(guó)際象棋愛(ài)好者,我第一次看到幾個(gè)棋手享受戶(hù)外新鮮空氣,公園里陽(yáng)光明媚的一天,以及一場(chǎng)精彩的國(guó)際象棋挑戰(zhàn)時(shí),給我留下了深刻的印象。
在您看到兩名棋手在下棋的地方,您還會(huì)看到一小群國(guó)際象棋愛(ài)好者跟隨比賽并對(duì)棋步進(jìn)行評(píng)論。
與偶然的對(duì)手下棋
如今,由于社會(huì)疏遠(yuǎn)規(guī)則,這種做法不再可能或非常困難。這就是我決定考慮如何找到一種低成本且可靠的方法來(lái)解決這個(gè)問(wèn)題的原因。并誕生了“遠(yuǎn)方典當(dāng)”項(xiàng)目。
Playing in the Post-COVID Era
為了保持與保持社交距離的對(duì)手在任何地方下棋成為可能,每個(gè)玩家都將使用單獨(dú)的棋盤(pán)。
每個(gè)棋盤(pán)格都有一個(gè)傳感器,能夠檢測(cè)棋子的拾取和放置移動(dòng),以跟蹤兩個(gè)玩家的棋子;當(dāng)一個(gè)玩家在他的棋盤(pán)上移動(dòng)時(shí),同樣的移動(dòng)被發(fā)送到對(duì)手的棋盤(pán),這將使棋子在正確的位置上移動(dòng)并形成自己的棋子。
以此類(lèi)推,直到游戲結(jié)束。
解決方法
該解決方案基于兩個(gè) MKR WiFi 1010 和一些額外的硬件。
注意:由于難以在合理的時(shí)間內(nèi)找到我計(jì)劃在原始設(shè)計(jì)中使用的霍爾效應(yīng)傳感器,我使用 Omron 的超小型微動(dòng)開(kāi)關(guān)更改了棋子移動(dòng)檢測(cè)。棋盤(pán)格閱讀方法保持不變。
(1) 從原型到生產(chǎn)——根據(jù)整個(gè)系統(tǒng)的設(shè)計(jì),潛在的產(chǎn)品版本將使用霍爾效應(yīng)傳感器進(jìn)行棋子檢測(cè)。這具有在不影響設(shè)計(jì)的情況下簡(jiǎn)化硬件設(shè)計(jì)的優(yōu)點(diǎn)。該方法的工件檢測(cè)可以在工件底座內(nèi)部使用小磁鐵(用直徑3毫米的釹測(cè)試,效果滿(mǎn)意)或直接使用金屬工件進(jìn)行檢測(cè)。
The Game Workflow
- 當(dāng)棋子在游戲過(guò)程中被放置或移除時(shí),它會(huì)被檢測(cè)到。
- Arduino MKR1010 檢測(cè)所有棋子的位置并驗(yàn)證移動(dòng)或生成錯(cuò)誤消息并且不接受移動(dòng)。
- RGB LED 以不同顏色顯示游戲狀態(tài),例如等待移動(dòng)(綠色)、等待對(duì)手移動(dòng)(紅色)、系統(tǒng)啟動(dòng)(藍(lán)色)、鏈接啟用(青色)等。
- 游戲遵循標(biāo)準(zhǔn)規(guī)則。當(dāng)棋子被移動(dòng)時(shí)(如果不是錯(cuò)誤的移動(dòng)),玩家有義務(wù)使用該棋子進(jìn)行移動(dòng)。
- Arduino MKR1010 驗(yàn)證移動(dòng)并更新兩個(gè)玩家的顯示。
- Arduino MKR1010 考慮到兩個(gè)玩家的狀態(tài)以及每一步棋子在棋盤(pán)上的位置;它還可以作為經(jīng)典國(guó)際象棋計(jì)時(shí)器中通常存在的每一步和其他功能的游戲驗(yàn)證器。
- 兩個(gè) Arduino MKR1010 通過(guò)點(diǎn)對(duì)點(diǎn) WiFi 連接連接在一起:兩個(gè)設(shè)備之一設(shè)置為 AP(接入點(diǎn)),而另一個(gè)可以連接到它。
IMPORTANT NOTE: THE OFFICIAL PROTOTYPE TEST WILL BE ON THE SECOND MID OF THE MONTH OF SEPTEMBER 2020 IN A SMALL TOURNAMENT OUTDOOR – RESPECTING THE SOCIAL DISTANCE.
THE EVENT WILL BE DOCUMENTED AND FILMED.
TO READ MORE IN-DEPTH THE STORY BEHIND THIS PROJECT, UPDATES AND MORE HOW-TO MATERIAL, AS WELL AS THE LAST UPDATES, FOLLOW THE DETAILS ON THE PROJECT WEBSITE WE-ARE-BORG.COM
棋盤(pán)廣場(chǎng)

拿到微動(dòng)開(kāi)關(guān)后,根據(jù)上面的草圖,我用Fusion360設(shè)計(jì)了游戲板的方形模塊,嵌入了微動(dòng)開(kāi)關(guān),如下圖所示:
然后用 Elegoo Saturn 3D 打印機(jī)打印出正方形。

在下圖中,內(nèi)部帶有微動(dòng)開(kāi)關(guān)的電路板的第一個(gè)原型。

制作兩個(gè)原型棋盤(pán)
兩個(gè)棋盤(pán)的原型是3D打印128個(gè)方格,涂漆,然后用氰基丙烯酸酯膠粘在一起。這部分工作需要大量的時(shí)間,對(duì)Elegoo Saturn LCD 3D打印機(jī)以及大約2、5L的感光樹(shù)脂進(jìn)行了強(qiáng)大的性能測(cè)試。

上面的圖片顯示了我是如何將他畫(huà)的正方形組裝和粘合在一起的。
為了制作微動(dòng)開(kāi)關(guān)的連接網(wǎng)格,我要感謝Element14 社區(qū)的朋友Baldengineer ,他發(fā)表了一篇關(guān)于如何使用 Arduino 管理開(kāi)關(guān)網(wǎng)格的精彩文章(來(lái)源:Arduino Keyboard Matrix Code)。
(2) 從原型到生產(chǎn)- 使用上述方法制作棋盤(pán)非常適合原型制作,但對(duì)于生產(chǎn)來(lái)說(shuō)并不可靠。如果使用 3D 打印機(jī)進(jìn)行原型制作留下了很多可能來(lái)修改設(shè)計(jì)、進(jìn)行實(shí)驗(yàn)并找到解決方案的最佳方法,如果這款游戲?qū)⑼度肷a(chǎn),那么應(yīng)該選擇更高效、更快速的方式來(lái)創(chuàng)建棋盤(pán)。實(shí)際上,大多數(shù)取決于單元的數(shù)量;對(duì)于市場(chǎng)測(cè)試預(yù)生產(chǎn),使棋盤(pán)激光切割可能是一個(gè)不錯(cuò)的選擇。我已經(jīng)評(píng)估了如何采用一種有效的方法來(lái)創(chuàng)建具有兩種顏色之一的棋盤(pán)底,并帶有用于替代顏色方塊的插圖。
制作棋子
下面是用 Elegoo Saturn LCD 打印機(jī) 3D 打印并上色的棋子的第一個(gè)系列(兩個(gè)對(duì)手)的畫(huà)廊。

這些作品來(lái)自Thingiverse ,感謝作者FunFunBoy ,他在 CC 許可下許可了 STL 文件。
硬件游戲控制器
組裝硬件非常簡(jiǎn)單。考慮到 Arduino MKR1010 的外形尺寸,我做了一個(gè)小型定制屏蔽來(lái)承載 Oled 128x64 I2C 顯示器和用于警報(bào)的 RGB LED。

鏈接到 I2C Oled 顯示器我還連接了兩個(gè)基于 8 針雙向 GPIO 擴(kuò)展器PCF8574的小板(固定在棋盤(pán)的底部) 。
我已經(jīng)使用了兩個(gè)預(yù)制板來(lái)節(jié)省時(shí)間,而不是使用 IC 組件制作(簡(jiǎn)單)板,因?yàn)槲覔?dān)心總線協(xié)議的數(shù)據(jù)傳輸中的潛在問(wèn)題。

在繼續(xù)制作 MKR1010 擴(kuò)展板之前,我測(cè)試了兩個(gè) GPIO 擴(kuò)展器,但沒(méi)有任何效果:(不僅是當(dāng)我試圖更改 I2C 地址的板跳線設(shè)置時(shí),整個(gè) Arduino 板都短路了。
Weird!
測(cè)試表明,這些板只有在設(shè)置默認(rèn) I2C 地址時(shí)才能正常工作,對(duì)應(yīng)于所有三個(gè)連接到 GND 的跳線。嘗試任何其他配置會(huì)使微控制器短路。所以我決定犧牲其中一塊板子,清洗電路(幸運(yùn)的是,它只是雙面PCB),看看電線的路徑。結(jié)果:無(wú)論地址跳線設(shè)置如何,電路始終將所有三個(gè)引腳連接到 GND。如果其中一個(gè)跳線設(shè)置為 VCC,則會(huì)產(chǎn)生短路。

我想這些在亞馬遜上出售的“原裝”板只是假的;誰(shuí)克隆了這個(gè)非常簡(jiǎn)單的電路完全失敗了。很難找到這個(gè)問(wèn)題,因?yàn)槊繅K板在測(cè)試時(shí)都可以正常工作;只有在更改 I2C 地址時(shí)才會(huì)出現(xiàn) I2C 問(wèn)題。
已經(jīng)將電路板放在我的桌子上,而且時(shí)間很少,我破解了其中一些,破壞了設(shè)置跳線引腳之間的 PCB 軌道。板子終于可以使用任何地址配置了!

在無(wú)法對(duì)其進(jìn)行測(cè)試之前,我一直非常關(guān)注最后一個(gè)潛在問(wèn)題。如上圖所示組裝屏蔽后,我不確定 I2C 總線信號(hào)的質(zhì)量是否足夠——考慮到將兩個(gè) GPIO 擴(kuò)展器連接到另一個(gè) I2C 組件的 20 厘米電線——所以我用示波器檢查了;如下圖所示,結(jié)果非常令人滿(mǎn)意,也好于預(yù)期。

關(guān)于軟件的簡(jiǎn)短說(shuō)明
雖然構(gòu)建硬件非常容易,但軟件的邏輯幾乎是復(fù)雜的。它分為四個(gè)主要部分:
- OLED顯示屏;顯示重要消息、最后玩家移動(dòng)和游戲歷史。它是一個(gè)消息專(zhuān)用類(lèi),包括管理顯示游戲狀態(tài)的 RGB LED 的方法。
- 棋局控制邏輯;它是一個(gè)專(zhuān)門(mén)的類(lèi),用于跟蹤移動(dòng)、驗(yàn)證移動(dòng)并檢查棋子的正確位置。
- WiFi連接;保持打開(kāi)兩個(gè)板之間的連接,并通過(guò)瀏覽器將當(dāng)前游戲公開(kāi)給連接到 MKR1010 接入點(diǎn)的任何設(shè)備。
- 棋盤(pán)掃描儀;不斷更新程序邏輯使用的所有方塊的物理狀態(tài)。
然后,可以通過(guò) MKR1010 (Serial1) 的 Tx/Rx UART 引腳檢查為開(kāi)發(fā)和測(cè)試創(chuàng)建的第三部分。
該軟件的當(dāng)前運(yùn)行版本以及將在未來(lái)幾周內(nèi)發(fā)布的更新可在 GitHub 存儲(chǔ)庫(kù)上的開(kāi)源 LGPL 3.0 許可下獲得。
使用 Doxygen 創(chuàng)建的軟件的完整文檔,以及與項(xiàng)目相關(guān)的更多材料,可在官方項(xiàng)目頁(yè)面we-are-borg.com上找到
從原型到生產(chǎn)
我在上面的故事中將這個(gè)項(xiàng)目轉(zhuǎn)移到商業(yè)產(chǎn)品的假設(shè)中必須改變或?qū)彶榈姆矫姘l(fā)表了一些評(píng)論:我最大的擔(dān)憂(yōu)與棋盤(pán)和棋子部分有關(guān)。我已經(jīng)回顧了整個(gè)項(xiàng)目工作流程,并做了更多的考慮。
Hardware Controller
在我看來(lái),Arduino MKR1010 絕對(duì)是解決方案:小尺寸和低功耗。它可以由傳統(tǒng)電池供電(不鼓勵(lì)),但它可以很好地與不可更換的鋰離子聚合物電池一起使用傳統(tǒng)的 USB 充電器自動(dòng)充電,以及在使用外部 USB 電池組充電時(shí)供電。據(jù)我所知,如果硬件沒(méi)有產(chǎn)生輸出信號(hào),電池移動(dòng)電源(大多數(shù))會(huì)停止充電,因?yàn)樗鼈兪菫?a href='http://qiaming.cn/v/tag/11230/' target='_blank' class='arckwlink_none'>智能手機(jī)充電而設(shè)計(jì)的。我已經(jīng)通過(guò)簡(jiǎn)單的代碼修改修改了這種潛在的問(wèn)題:在未使用的引腳上生成的脈沖(這里我們有幾個(gè))使外部電池充電器保持活動(dòng)狀態(tài)。

如上圖所示,為了使 Arduino MKR1010 和防護(hù)罩緊湊且可在外殼內(nèi)使用,我已經(jīng)從 Arduino 上切下了底部的面包板引腳。可以通過(guò)制作定制 PCB 來(lái)更好地分配組件,以及使控制器具有更小的外形,在該 PCB 上提供插頭(或直接焊接)MKR 1010,而無(wú)需引腳連接器陣列。PCB 將同時(shí)是具有適當(dāng)設(shè)計(jì)外殼的小型 Oled 顯示器的電路和支架。
關(guān)于 Oled 顯示器:我擔(dān)心這么小的設(shè)備并不是這種實(shí)施的最佳解決方案,大多數(shù)情況下都是為戶(hù)外使用而設(shè)計(jì)的。相反,看到顯示就位——以及使用不同字體大小和樣式輕松管理它的可能性——我發(fā)現(xiàn)該解決方案是正確的選擇。

關(guān)于 I2C GPIO 端口擴(kuò)展器:此外,在這種情況下,應(yīng)該設(shè)計(jì)一個(gè)小型專(zhuān)用 PCB(帶有幾個(gè)低調(diào)連接器)來(lái)代替我用來(lái)制作原型的預(yù)制板。
Redesigning the Chessboard
毫無(wú)疑問(wèn),棋盤(pán)面應(yīng)該重新設(shè)計(jì)。探索幾種解決方案,我看到了兩種可能的選擇:
1. 小型預(yù)生產(chǎn)(約50件)
對(duì)于這種生產(chǎn),仍然可以使用微動(dòng)開(kāi)關(guān)解決方案或 - 更好但更昂貴 - 霍爾效應(yīng) IC。棋盤(pán)的底部(一個(gè)帶有傳感器孔的矩形)可以很容易地從 3 毫米的亞克力板上用激光切割下來(lái),上面粘有 PVC 膠紙,上面印有雙色棋子。棋盤(pán)的電子底面設(shè)計(jì)幾乎保持不變。
2. 平均和批量生產(chǎn)(100 件以上)
鍵盤(pán)控制器 I2C 將取代 GPIO 端口擴(kuò)展器。它可以使用 I2C IC 保持當(dāng)前的軟件設(shè)計(jì),其優(yōu)點(diǎn)是大部分按鍵工作由 IC 本身完成,而不是 Arduino 控制器。
在這種情況下,兩層觸摸鍵盤(pán)將取代傳感器,但應(yīng)開(kāi)發(fā)定制設(shè)計(jì)以及構(gòu)建物理鍵盤(pán)。
- 無(wú)人值班變電站遠(yuǎn)方監(jiān)控中心設(shè)計(jì)技術(shù)規(guī)程 1次下載
- 開(kāi)源網(wǎng)絡(luò)協(xié)議分析器WireShark軟件下載 15次下載
- ThinkPHP 6.0完全開(kāi)發(fā)手冊(cè)資源下載 13次下載
- 開(kāi)源課程行動(dòng)倡議及科學(xué)導(dǎo)論綜述 6次下載
- 電力系統(tǒng)遠(yuǎn)方程序化操作功能實(shí)現(xiàn) 0次下載
- 配電自動(dòng)化遠(yuǎn)方控制終端(FTU)安裝使用說(shuō)明書(shū) 254次下載
- 新型配電自動(dòng)化遠(yuǎn)方終端設(shè)計(jì)方案
- RTU560遠(yuǎn)方終端單元數(shù)據(jù)手冊(cè)電源模塊560PSU40
- RTU560遠(yuǎn)方終端單元數(shù)據(jù)手冊(cè)環(huán)境數(shù)據(jù)
- RTU560遠(yuǎn)方終端單元數(shù)據(jù)手冊(cè)交流采樣單元56CVT01
- RTU560遠(yuǎn)方終端單元數(shù)據(jù)手冊(cè)開(kāi)關(guān)量輸入模塊23BE23
- RTU560遠(yuǎn)方終端單元數(shù)據(jù)手冊(cè)總線接口模塊560BCU01
- 基于數(shù)字信號(hào)處理的遠(yuǎn)方保護(hù)設(shè)備
- 電力系統(tǒng)遠(yuǎn)方保護(hù)設(shè)備的性能及試驗(yàn)方法--模擬比較系統(tǒng)
- 遠(yuǎn)方就地判別裝置運(yùn)行規(guī)程
- 利用開(kāi)源軟件的最佳實(shí)踐 572次閱讀
- 推薦GitHub上與嵌入式相關(guān)的高星開(kāi)源項(xiàng)目 1148次閱讀
- 前沿開(kāi)源技術(shù)領(lǐng)域的開(kāi)源大數(shù)據(jù)一一解讀 1180次閱讀
- 構(gòu)建開(kāi)源芯片生態(tài)需要什么要的 4878次閱讀
- 2020年開(kāi)源的六大發(fā)展趨勢(shì) 4364次閱讀
- 開(kāi)源過(guò)程中的5件注意事項(xiàng) 3621次閱讀
- 開(kāi)源與云的一些爭(zhēng)論 3292次閱讀
- 物聯(lián)網(wǎng)十大經(jīng)典開(kāi)源操作系統(tǒng) 1w次閱讀
- 全年開(kāi)源項(xiàng)目的盤(pán)點(diǎn)和總結(jié) 3363次閱讀
- NASA的開(kāi)源軟件是什么?NASA的開(kāi)源軟件的詳細(xì)分析 7444次閱讀
- 開(kāi)源存儲(chǔ)的六大優(yōu)勢(shì) 4069次閱讀
- 對(duì)技術(shù)的執(zhí)著和美的追求變成了程序員的“詩(shī)和遠(yuǎn)方” 2038次閱讀
- FAST:基于FPGA的SDN交換機(jī)開(kāi)源項(xiàng)目(一) 4718次閱讀
- 11個(gè)機(jī)器學(xué)習(xí)開(kāi)源項(xiàng)目 2829次閱讀
- 開(kāi)源硬件究竟有多“Open”?看完這個(gè)你就清楚了 7124次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論