電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>機(jī)器人與人類的Connect 4游戲項(xiàng)目

機(jī)器人與人類的Connect 4游戲項(xiàng)目

2023-07-13 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

背景

這個項(xiàng)目是一個機(jī)器人與人類的 Connect 4 游戲,人類在物理游戲板上玩機(jī)器人,就像他們在玩另一個玩家一樣。

第 2 步:測試組件

我測試的第一個組件是 16x2 字符 LCD 顯示器。接線非常簡單,但我必須安裝 adafruit_character_lcd.character_lcd 庫才能連接到顯示器。電位器控制顯示器的對比度。

poYBAGSAaFaAZkX8AA0YU4xrUcE545.png
?

接下來我開始連接步進(jìn)電機(jī)步進(jìn)電機(jī)將通過皮帶和滑輪或線性致動器(當(dāng)前原型使用步進(jìn)電機(jī)控制線性滑軌)沿著 Connect 4 板的頂部將滴管移動到右柱。我使用了步進(jìn)電機(jī)驅(qū)動器,以便更輕松地控制步進(jìn)電機(jī)。步進(jìn)電機(jī)驅(qū)動器需要 5V 輸入才能對其進(jìn)行控制,但 PocketBeagle 只能輸出 3.3V。我使用邏輯電平轉(zhuǎn)換器信號從 3.3V 轉(zhuǎn)換為 5V。我使用外部電源(5V,2A)為步進(jìn)電機(jī)供電。接線很簡單,我從 https://github.com/petebachant/BBpystepper 找到了一些測試代碼。

pYYBAGSAaFyAP2m7AAu1TcP5M2E554.png
?

接下來我連接了 360 度連續(xù)旋轉(zhuǎn)伺服電機(jī)。伺服電機(jī)將用于碎片滴管,將一塊碎片放入右列(事后看來,選擇連續(xù)旋轉(zhuǎn)伺服是一個錯誤,因?yàn)樗奈恢镁群涂刂撇患眩?/font>伺服電機(jī)還需要 5V 電源,我通過 PocketBeagle 的 PWM 引腳控制伺服電機(jī)。我使用了我的導(dǎo)師 Eric Welsh 的伺服電機(jī)測試代碼。

poYBAGSAaF-AZrY8AAFg1O5-PYw19.jpeg
?

最后要連接的硬件USB 攝像頭。連接相機(jī)需要將 VB 和 VI 以及 ID 和 GND 引腳連接(我只是將它們焊接在一起)。為了測試相機(jī),我在終端中使用了一些基本代碼:

python3
>>> import cv2
>>> cap = cv2.VideoCapture(0)
>>> ret, frame = cap.read()
>>> cv2.imwrite("temp.jpg", frame)
poYBAGSAaGOAFD67AAO-RtI6exc70.jpeg
?

我為項(xiàng)目的這個階段創(chuàng)建了一個自定義 PCBhttps://github.com/SMSARVER/ENGI301/tree/main/Project_2

第 3 步:OpenCV 代碼

編寫 OpenCV 代碼是該項(xiàng)目中最具挑戰(zhàn)性的部分。我開始編寫代碼來處理 Connect 4 板的圖像,然后修改它以處理來自我的 USB 相機(jī)的照片。我在游戲板后面放了一個綠色背景,以便更容易檢測到開放空間。該程序?yàn)槠灞P拍照并輸出一個 6x7 數(shù)組(主要游戲代碼用來表示棋盤的數(shù)組),其中包含棋盤上每個空間的值。我使用了一個名為 HoughCircles 的 OpenCV 函數(shù)來檢測原始圖像上的所有圓圈,并查看每個圓圈中心像素的顏色。這將創(chuàng)建一個圓圈數(shù)組及其顏色,然后我根據(jù)它們在圖像中的 y 和 x 位置對其進(jìn)行排序以創(chuàng)建 6x7 數(shù)組。下面是檢測圖像上紅色圓圈的代碼照片。

pYYBAGSAaGWAPlBCAACDR4XU2qU843.jpg
?

第 4 步:選擇更好的電機(jī)

在項(xiàng)目的這一點(diǎn)上,我確定使用預(yù)先構(gòu)造的線性致動器而不是自己設(shè)計(jì)是最好的節(jié)省時間并專注于我更感興趣的項(xiàng)目部分。下圖顯示了 NEMA 23 步進(jìn)電機(jī)連接到線性滑軌。該解決方案可實(shí)現(xiàn)極高的定位精度和不錯的速度(大約 1 英寸/秒的行進(jìn)速度)。事后看來,這款電機(jī)對我的應(yīng)用來說太過分了。

poYBAGSAaGmAa2YQAAVJ1Yei4O895.jpeg
?

我使用 Adafruit_BBIO.GPIO 庫編寫了一個腳本來控制線性執(zhí)行器上的滴管位置。

第 5 步:設(shè)計(jì) Piece Dropper

我需要想出一種方法來存儲 21 個 Connect 4 棋子,并一次可靠地將它們釋放到游戲板頂部的狹窄縫隙中。我想到的一個簡單的設(shè)計(jì)是把所有的零件都堆在一個管子里,然后用球棒敲掉底部的那塊。我使用連續(xù)旋轉(zhuǎn)伺服電機(jī)來旋轉(zhuǎn)球棒,將球棒推過漏斗并推到棋盤上。測試這個機(jī)制后,我意識到連續(xù)旋轉(zhuǎn)伺服電機(jī)沒有我需要的位置精度。90% 的時間它會旋轉(zhuǎn) 180 度以掉落一件,但有時它會旋轉(zhuǎn)太多或太少,從而掉落兩件或不掉落任何一件。我計(jì)劃將來在這個應(yīng)用中使用步進(jìn)電機(jī)。

pYYBAGSAaGyAGT9HAADKoMXreyg490.png
?

第 6 步:設(shè)計(jì)結(jié)構(gòu)

我想要一個將線性致動器固定在游戲板上方的結(jié)構(gòu),為電子設(shè)備提供空間,并將相機(jī)和燈光定位在最佳位置。我選擇用塑料制作我的項(xiàng)目,因?yàn)樗苋菀资褂茫ūM管選擇丙烯酸是一個錯誤,因?yàn)樗艽啵?/font>我買了一個塑料底座,并在邊緣安裝了兩個厚塑料管以支撐線性致動器。我 3D 打印了安裝座,然后敲擊塑料并使用螺栓將其固定。第二張塑料片和第二根管子將相機(jī)和燈定位在游戲板的前面。

poYBAGSAaG6AAcpYAAH638r47SM13.jpeg
?

我為線性致動器、限位開關(guān)、相機(jī)和燈設(shè)計(jì)了 3D 打印支架。我必須非常仔細(xì)地測量,才能讓所有東西都放在正確的位置。

第 7 步:限位開關(guān)

限位開關(guān)對于安全和位置精度很重要。我的機(jī)器人在線性致動器的兩側(cè)使用兩個限位開關(guān)來檢測滴管何時脫離軌道(雙關(guān)語)。我還使用限位開關(guān)在正確的位置開始每個游戲(機(jī)器人通過按下限位開關(guān)開始游戲,并且知道開關(guān)到游戲板上的柱子的距離,它可以準(zhǔn)確地移動到那里)。

接線:

目前我的接線是面包板上的鳥巢,但我可以制作 PCB 或創(chuàng)建電線管理系統(tǒng)。在更換電機(jī)之前,我為該項(xiàng)目的先前版本設(shè)計(jì)了 PCB:https://github.com/SMSARVER/ENGI301/tree/main/Project_2

這張顯示 PocketBeagle 引腳的圖片將有助于接線:

pYYBAGSAaN2AAb2AAAj3-7SgmpM028.png
圖像中的內(nèi)部引腳對應(yīng)于 PocketBeagle 上的內(nèi)部引腳
?

液晶顯示器:

LCD_VSS 至 P2_15(接地)

LCD_VDD 到 P2_13 (v_out)

LCD_V0 到電位器中心引腳

LCD_RS 到 P2_10

LCD_RW 至 P2_15

LCD_E 至 P2_17

LCD_D4 至 P2_2

LCD_D5 至 P2_4

LCD_D6 至 P2_6

LCD_D7 至 P2_8

LCD_A 到 P2_13

LCD_K 至 P2_15

電位器右引腳到 P2_13

電位器左側(cè)引腳連接到 P2_15(可以交換電位器上的 P2_13 和 P2_15)

poYBAGSAaOSAbYHQAAzsoL9qlug01.jpeg
?

USB相機(jī)

P1_5 至 P1_7

P1_13 至 P1_15

P1_7 到 USB_VCC

P1_9 轉(zhuǎn) USB_D-

P1_11 轉(zhuǎn) USB_D+

P1_13 到 USB_ID

USB_ID 到 USB_GND

pYYBAGSAaOqAfxeEAA0tWir9E7w98.jpeg
?

步進(jìn)電機(jī)驅(qū)動器(SMD),連續(xù)旋轉(zhuǎn)伺服器(CRS ),電源5V (PS5),電源30V(PS30):

CRS_- 到 P2_15

CRS_+ 到 P2_13

CRS_PWM 到 P1_36

PS5_- 至 P2_15

PS5_+ 至 P2_13

PS30_+ 轉(zhuǎn) SMD_VCC

PS30_- 到 SMD_GND

SMD_DIR- 到 P2_15

SMD_PUL- 到 P2_15

SMD_DIR+ 到 P2_24

SMD_PUL+ 到 P2_22

pYYBAGSAaS-ARhiVAA0UbeIJcfA80.jpeg
?
pYYBAGSAaXCAcfEbAA5YbZwBlCQ37.jpeg
?
poYBAGSAaXaADZYBAA7pfDsjdJA54.jpeg
?

步進(jìn)電機(jī):

測試步進(jìn)電機(jī)的四根電線是否連續(xù)。一對連接到 A+/A-,另一對連接到 B+/B-。對于我的電機(jī),藍(lán)色是 A+,黃色是 A-,綠色是 B+,紅色是 B-。

限位開關(guān):

我使用兩個限位開關(guān),LIM1(左)和 LIM2(右)以及電纜 A 和 B。未按下時開關(guān)具有連續(xù)性。我選擇以這種方式連接開關(guān),這樣如果電纜斷開連接,我就能立即注意到問題。

LIM1_A 至 P2_15

LIM2_A 至 P2_15

LIM1_B 到 P1_2

LIM2_B 到 P1_4

連接 LIM1_B 到 P2_13 的 1K 歐姆電阻

將 LIM2_B 連接到 P2_13 的 1K 歐姆電阻(必須使用單獨(dú)的電阻)

pYYBAGSAaOqAfxeEAA0tWir9E7w98.jpeg
?

查看更多接線照片以幫助您:

pYYBAGSAadqAPuXKABF2XbQcfVg76.jpeg
?

。

?

?

GitHub: https://github.com/SMSARVER/ENGI301/tree/main/connect4

3D 打印部件的 CAD 文件:

如需 CAD 文件,請發(fā)送電子郵件至 rice dot edu 的 sms27。

限位開關(guān)和線性執(zhí)行器支持:

pYYBAGSAad2AQpGkAACB6XJC3dw619.png
?

滴管、蝙蝠和漏斗:

poYBAGSAad-AAwe-AACVQhPSKBs135.png
?

相機(jī)和燈光支持:

poYBAGSAaeKAR5YvAACg8K1YqlQ778.png
?

后續(xù)步驟和改進(jìn):

我計(jì)劃通過整理電線、進(jìn)行小的改進(jìn)以及解決機(jī)械和軟件問題來改進(jìn)功能齊全的機(jī)器人。我還想使用“cron”讓我的項(xiàng)目在 PocketBeagle 啟動時自動啟動。這樣,我的機(jī)器人就可以完全獨(dú)立了。

計(jì)劃改進(jìn)清單:

  • 制作接線圖
  • 落片機(jī)構(gòu)采用步進(jìn)電機(jī)(定位精度)
  • 使用磁性限位開關(guān)而不是柱塞限位開關(guān)(為了更高的精度。柱塞限位開關(guān)在接觸時稍微彎曲塑料,因此磁性限位開關(guān)會完全消除接觸。)
  • 添加按鈕和重新定位屏幕以創(chuàng)建用戶界面
  • 創(chuàng)建電線管理系統(tǒng)和更新的自定義 PCB
  • 改進(jìn)機(jī)器人的算法,使其幾乎無敵
  • 使機(jī)器人完全獨(dú)立,無需連接計(jì)算機(jī)即可運(yùn)行

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)