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