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