一、概述
樹莓派Pico基于其雙核Arm Cortex M0+芯片RP2040。對比可發現,這一顆芯片,相較于傳統的樹莓派,更偏向一個做控制的MCU單片機,其豐富的外設IO,精巧的結構,很難讓人相信這也是樹莓派系列。
該項目的想法是想突出Pico的控制性能,同時又繼續發揮樹莓派現有的優良生態環境的優勢,放開膽子,兩個方面的優勢相結合。打造一個五子棋AI對戰系統,即:
(1)圖像識別五子棋盤;
(2)與PC通訊調用相關算法和庫,計算下一步落子;
(3)Pico通過IO控制機械結構,放置棋子,實現真正意義上的人機對弈。
項目新意:
一方面,在軟件編程上,可以基于該項目平臺學習人工智能、深度學習相關的算法知識;另一方面,在硬件方面,可以學習IO控制機械臂、調用攝像頭等外設方面的硬件知識和技能。該項目軟硬相結合,后續再開發、在學習的潛力較大。
五子棋的算法較圍棋簡單,也有較多現成的庫可參考。該項目就相當于一個迷你版的阿爾法狗。聽起來是不是很酷!
二、技術路線
1、圖像識別
目前攝像頭初步計劃選用:OV7670攝像頭(FIFO)
(圖片見附件)
該攝像頭集成度高,調用很簡單,且有一定的實際工程經驗作為參考。該攝像頭清晰度做圖像識別已經足夠。
在算法方面,采用較為成熟的Ganny算子邊緣檢測和圖像灰度處理。鑒于Pico資源有限,目前考慮Pico作為一個中繼或者是做初步處理的功能。主要算法可以通過串口通訊將數據傳遞給PC端上位機,上位機計算后識別五子棋棋子坐標及其棋局情況。
2.下棋算法
下棋算法基于Python編程,發揮 Python強大的能力及生態。初步可調用現有的一些五子棋算法,實現基本功能。
更進一步地,可以在此基礎上,加入AI算法和深度學習,在PC端訓練出一個五子棋AI,計算下一步落子。該過程可開發程度較高,后期可長久持續的優化開發,可作為一個學習工具。
最終可以實現對弈對手難道選擇:簡單、中等、困難、挑戰AI等模式。
3.下棋執行
PC上位機計算得到下一步落子的位置坐標后,將信息通過串口傳到Pico。Pico通過IO口控制機械臂結構,在棋盤相應位置放置五子棋。
為節省資源和保證落子的準確性,機械臂采用X-Y二維移動臂+放置臂兩個結構組成
X-Y二維移動臂采用2個步進電機,占用4個IO;
放置臂采用2個舵機,占用4個IO;
(機械臂 圖片見附件)
為保證落子的準確性,提前輸入并校準棋盤各坐標的位置(棋盤各坐標對應平面X-Y軸兩個步進電機的轉動量)
如有必要,可采用攝像頭輔助識別落子位置,增加落子準確性。形成閉環。
三、可行性與項目優勢:
1.OV7670攝像頭有使用經驗,并有大量的現成資料;
2.機械臂的控制有項目經驗可參考;
3.五子棋算法有較多可參考的算法和資料,以及有相關的五子棋算法庫可通過Python調用。相對于圍墻,五子棋算法簡單,可學習性和實現性較強。
4.Pico 的外設控制豐富:30*GPIO管腳,16*PWM通道,足以實現上述的控制方面的要求;樹莓派及其基于microPython開發為算法的深度開發提供了強大的生態和資源,是其他單片機不可比擬的。
5.該項目平臺打造之后,也是一個深入軟硬件學習的平臺。
(1)硬件方面:學習IO、機械臂控制(控制舵機、步進電機);攝像頭調用;串口通訊等相關硬件知識。
(2)軟件方面:除了Pico的片上編程之外,還能學習上位機編程、Python編程、AI算法、機器學習等深度的軟件編程知識。是一個人工智能的學習平臺,可以用來不斷訓練和打磨五子棋AI模型。
這是一個迷你版的阿爾法狗,同時也是真正意義上和你面對面下棋的AI。
-
攝像頭
+關注
關注
60文章
4851瀏覽量
95896 -
樹莓派
+關注
關注
117文章
1710瀏覽量
105720
發布評論請先 登錄
相關推薦
評論