一、概述
樹莓派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)注
60文章
4868瀏覽量
96360 -
樹莓派
+關(guān)注
關(guān)注
117文章
1710瀏覽量
105887
發(fā)布評論請先 登錄
相關(guān)推薦
在樹莓派Pico RP2040上怎樣使用MicroPython呢?
![在樹莓派Pico <b class='flag-5'>RP2040</b>上怎樣使用MicroPython呢?](https://file1.elecfans.com/web2/M00/AE/D3/wKgZomVLKmmAcQBRAASNQRsgAoc359.jpg)
樹莓派Pico 2發(fā)布,搭載RP2350雙核RISC-V和Arm Cortex-M33微控制器!
RaspberryPi Pico CLion開發(fā)環(huán)境配置的相關(guān)資料推薦
ProMicro-RP2040印刷電路板資料分享
使用RP2040設(shè)計一個迷你板
【BPI-Pico-RP2040 開發(fā)板】+ 開箱測評與Arduino開發(fā)點(diǎn)燈測試
RP2040
基于Cortex-M4/M0雙核架構(gòu)的非對稱數(shù)字信號控制器L
ME32x系列是內(nèi)嵌ARM Cortex M0/M3核的32位微控制器
ADSP-CM41x混合信號控制處理器,帶ARM Cortex-M4/ARM Cortex-M0和16位ADC硬件參考
![ADSP-CM41x混合信號控制處理器,帶<b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M</b>4/<b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b>和16位ADC<b class='flag-5'>硬件</b>參考](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于ARM Cortex-M0核的MCU設(shè)計及應(yīng)用
![基于<b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b><b class='flag-5'>核</b>的MCU設(shè)計及應(yīng)用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RaspberryPi Pico CLion開發(fā)環(huán)境配置
![RaspberryPi Pico CLion<b class='flag-5'>開發(fā)</b>環(huán)境配置](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
ProMicro-RP2040印刷電路板
![ProMicro-<b class='flag-5'>RP2040</b>印刷電路板](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論