步驟1:組裝機(jī)器人機(jī)箱
組裝陰影底盤并將減速電機(jī)和編碼器連接到底部框架。 ZYBO,面包板和超聲波傳感器可以使用提供的部件進(jìn)行安裝,可以使用支架和雙面膠帶進(jìn)行3D打印和固定到機(jī)箱。電池應(yīng)安裝在機(jī)器人背面附近,最好安裝在頂部和頂部之間。底部框架。將路由器靠近ZYBO和DC/DC轉(zhuǎn)換器靠近面包板。將輪子連接到最后的減速電機(jī)。
步驟2:電線電子設(shè)備
將DC/DC轉(zhuǎn)換器的輸入和輸出分別連接到面包板上的兩個(gè)電源軌。這些將用作系統(tǒng)的12V和5V電源。將ZYBO連接到5V導(dǎo)軌,如圖所示。使用USB Micro-B電源線將路由器連接到5V電源軌。 XT60電纜應(yīng)連接到12V導(dǎo)軌。在其余電子設(shè)備正確接線之前,請勿插入電池。超聲波傳感器應(yīng)連接到5V導(dǎo)軌。使用ZYBO上的Pmod端口JC的引腳6在面包板上創(chuàng)建3.3V電壓軌。邏輯轉(zhuǎn)換器的高壓輸入應(yīng)連接到5V軌,而邏輯轉(zhuǎn)換器的低壓輸入應(yīng)連接到3.3V軌。將電機(jī)編碼器連接到3.3V電壓軌。將電機(jī)驅(qū)動(dòng)器的VCC1連接到5V導(dǎo)軌,并將VCC2連接到12V導(dǎo)軌。將所有EN引腳連接到5V并將所有GND引腳接地。
將超聲波傳感器的TRIG和ECHO引腳分別連接到邏輯轉(zhuǎn)換器的HV1和HV2。 LV1應(yīng)連接到JC4,LV2應(yīng)連接到JC3。請參閱Pmod引腳分布圖。將電機(jī)連接到電機(jī)驅(qū)動(dòng)器。 Y1應(yīng)連接到右電機(jī)的正極端子,Y2應(yīng)連接到右電機(jī)的負(fù)極端子。同樣,Y3應(yīng)連接到左電機(jī)的正極端子,Y4應(yīng)連接到左電機(jī)的負(fù)極端子。 A1,A2,A3和A4應(yīng)分別映射到JB2,JB1,JB4和JB3。有關(guān)引腳編號,請參閱原理圖。將JC2連接到右側(cè)編碼器,將JC1連接到左側(cè)編碼器。確保使用上拉電阻將這些信號連接到3.3V電壓軌。非常,使用以太網(wǎng)電纜將ZYBO連接到路由器。
步驟3:在Vivado中創(chuàng)建框圖
創(chuàng)建Vivado新的RTL項(xiàng)目。確保此時(shí)不指定任何來源。搜索“xc7z010clg400-1”并點(diǎn)擊完成。下載encoder_driver.sv和ultrasonic_driver.sv。將它們放在自己的文件夾中。打開“工具”下的IP打包程序,然后選擇打包指定的目錄。將路徑粘貼到包含編碼器驅(qū)動(dòng)程序的文件夾,然后單擊“下一步”。單擊“包IP”并重復(fù)超聲波傳感器驅(qū)動(dòng)程序的過程。然后,導(dǎo)航到設(shè)置菜單中IP子部分下的存儲庫管理器。將路徑添加到驅(qū)動(dòng)程序文件夾,然后單擊“應(yīng)用”將它們包含在IP庫中。
創(chuàng)建新的程序框圖并添加“ZYNQ7處理系統(tǒng)”。雙擊該塊并導(dǎo)入提供的ZYBO_zynq_def.xml文件。在“MIO Configuration”下,啟用Timer 0和GPIO MIO。點(diǎn)擊“確定”保存配置。添加3個(gè)“AXI GPIO”模塊和4個(gè)“AXI Timer”模塊。運(yùn)行塊自動(dòng)化,然后是S_AXI的連接自動(dòng)化。雙擊GPIO塊以配置它們。一個(gè)模塊應(yīng)該是雙通道,具有4位輸入和4位輸出。將這些連接外部連接并將其標(biāo)記為SW用于輸入,LED標(biāo)記為輸出。第二個(gè)塊也應(yīng)該是雙通道,帶有2個(gè)32位輸入。最后一個(gè)GPIO塊將是一個(gè)32位輸入。使每個(gè)定時(shí)器模塊的pwm0輸出為外部。將它們標(biāo)記為PWM0,PWM1,PWM2和PWM3。
將編碼器驅(qū)動(dòng)程序添加到程序框圖中,并將CLK連接到FCLK_CLK0。將OD0和OD1連接到第二個(gè)GPIO模塊的輸入通道。使ENC外部并將ENC_0重命名為ENC。添加超聲波傳感器塊并將CLK連接到FCLK_CLK0。使TRIG和ECHO外部并將TRIG_0重命名為TRIG,將ECHO_0重命名為ECHO。將RF連接到第三個(gè)GPIO模塊。請參閱提供的框圖以供參考。
在“源”窗格中右鍵單擊您的程序框圖文件,然后創(chuàng)建一個(gè)HDL包裝器。務(wù)必允許用戶編輯。添加提供的ZYBO_Master.xdc文件作為約束。點(diǎn)擊“生成比特流”并休息一下。
步驟4:設(shè)置軟件開發(fā)環(huán)境
轉(zhuǎn)到“文件”下,將硬件導(dǎo)出到Vivado SDK。確保包含比特流。在“CORTEX_A9_Zynq_ZC702”中導(dǎo)入RTOSDemo項(xiàng)目。它將位于FreeRTOS安裝目錄中。創(chuàng)建一個(gè)新的Board Support Package,選擇lwip202庫。將RTOSDemo項(xiàng)目中引用的BSP更改為剛剛創(chuàng)建的BSP *。
*在編寫此Instructable時(shí),F(xiàn)reeRTOS似乎存在引用正確BSP的錯(cuò)誤。要解決此問題,請使用與第一個(gè)相同的設(shè)置創(chuàng)建新的BSP。將引用的BSP更改為新的BSP,然后在構(gòu)建失敗后將其更改回舊的BSP。 FreeRTOS現(xiàn)在應(yīng)該編譯沒有錯(cuò)誤。隨意刪除未使用的BSP。
步驟5:修改演示程序
在“src”目錄下創(chuàng)建一個(gè)名為“drivers”的新文件夾RTOSDemo。復(fù)制提供的gpio.h.將gpio.c,pwm.h,pwm.c,odometer.h,odometer.c,rangefinder.c,rangefinder.h,motor.h和motor.c文件放入“drivers”目錄。
打開main.c并將mainSELECTED_APPLICATION設(shè)置為2.將“l(fā)wIP_Demo”下的main_lwIP.c替換為更新后的版本。 “l(fā)wIP_Demo/apps/BasicSocketCommandServer”下的BasicSocketCommandServer.c也必須使用新版本進(jìn)行更新。不幸的是,導(dǎo)航到“FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos”并用提供的版本替換Sample-CLI-commands.c。構(gòu)建項(xiàng)目并確保一切都成功編譯。
步驟6:Flash固件到QSPI
使用“Zynq FSBL”模板創(chuàng)建一個(gè)名為“FSBL”的新應(yīng)用程序項(xiàng)目。編譯FSBL項(xiàng)目后,創(chuàng)建RTOSDemo項(xiàng)目的啟動(dòng)映像。確保在“引導(dǎo)映像分區(qū)”下選擇“FSBL/Debug/FSBL.elf”作為引導(dǎo)加載程序。如果未列出該文件,請手動(dòng)添加該文件的路徑。
將ZYBO上的JP5跳線移至“JTAG”。使用USB Micro-B電纜將計(jì)算機(jī)連接到ZYBO。連接電池并打開ZYBO。運(yùn)行Adept以確保計(jì)算機(jī)正確識別ZYBO。單擊Vivado SDK中的“Program Flash”,并提供RTOSDemo中BOOT.bin文件和FSBL中FSBL.elf文件的路徑。在點(diǎn)擊“程序”之前,請務(wù)必選擇“閃光后驗(yàn)證”。觀察控制臺以確保閃爍操作成功完成。然后,關(guān)閉ZYBO電源并斷開USB電纜。將JP5跳線移至“QSPI”。
步驟7:配置無線接入點(diǎn)
電池仍然連接后,連接到路由器的Wi-Fi網(wǎng)絡(luò)。默認(rèn)的SSID和密碼應(yīng)位于路由器的底部。然后,導(dǎo)航到http://tplinkwifi.net并使用“admin”登錄用戶名和密碼。運(yùn)行快速設(shè)置向?qū)?,在啟用DHCP的接入點(diǎn)模式下配置路由器。確保也更新設(shè)備的默認(rèn)用戶名和密碼。完成后,路由器應(yīng)自動(dòng)重啟進(jìn)入接入點(diǎn)模式。
啟動(dòng)ZYBO并使用您指定的SSID連接到路由器。路由器很可能出現(xiàn)在IP地址192.168.0.100或192.160.0.101上。 ZYBO將被分配路由器沒有的任何地址。要快速確定路由器的IP地址,可以從Windows的命令提示符運(yùn)行“ipconfig”,或從Linux或MacOS的終端運(yùn)行“ifconfig”。如果您仍然連接到路由器,您將看到其IP地址顯示在無線接口旁邊。使用此信息確定ZYBO的IP地址。要確認(rèn)ZYBO的IP地址,您可以從命令行ping它或通過telnet連接它。
步驟8:運(yùn)行Java程序
下載RobotClient.java并從命令行使用命令“javac RobotClient.java”編譯該文件。運(yùn)行命令“java RobotClient ”,其中“ip_address”是ZYBO的IP地址。如果在計(jì)算機(jī)和ZYBO之間建立成功連接,則將彈出控制GUI。聚焦窗口后,應(yīng)使用鍵盤上的箭頭鍵控制機(jī)器人。按退出按鈕結(jié)束會話并斷開與機(jī)器人的連接。
GUI將突出顯示按下的鍵并在右上方顯示電機(jī)輸出。左側(cè)的測距儀每2米填充一個(gè)條,最多10米。
步驟9:校準(zhǔn)測距儀
板上的開關(guān)ZYBO可用于配置板載測距儀。最小檢測距離 d 是作為開關(guān)輸入 i 的函數(shù)給出的:
d = 50i + 250
輸入的整數(shù)步長可在0到15之間變化。這意味著0.25米到1米的距離范圍。在最小距離處,第一個(gè)LED將開始閃爍。激活的LED數(shù)量與對象的接近程度成正比。
步驟10:輔助功能
此機(jī)器人非常容易訪問。由于其控制簡單,只需一根手指即可完全控制。為了提高可訪問性,可以添加對其他輸入設(shè)備的支持。這可能允許禁用用戶使用身體的不同部分來控制機(jī)器人。
-
機(jī)器人
+關(guān)注
關(guān)注
210文章
27839瀏覽量
204611 -
ZYBO
+關(guān)注
關(guān)注
1文章
10瀏覽量
4528
發(fā)布評論請先 登錄
相關(guān)推薦
評論