資料介紹
描述
硬件構建
這個怎么運作
HuskyLens 是一款人工智能機器視覺傳感器,用于檢測和跟蹤線路。赫斯基鏡頭的數據為我們提供了是否檢測到線條的詳細視圖。如果檢測到,則提取 (x, y)。有了這些數據,CH32V307 開發板就被編程為使用電機驅動器屏蔽來控制電機。這篇博客解釋了使用 CH32V307 開發板和 HuskyLens 制作基于視覺的線追隨者。
基本硬件組件
CH32V307開發板
成套工具
CH32V307V-EVT-R1
CH32V307V-EVT-R1 是一款基于 WCH CH32V307 RISC-V 微控制器的開發板,具有以太網端口、USB Type-C 端口和八個可通過接頭訪問的 UART 接口。
WCH 設計的 RISC-V4F 32 位 RISC-V 內核高達 144MHz,支持單周期乘法和硬件除法,以及硬件浮點單元 (FPU)。它具有高達 64KB 的 SRAM 內存,可存儲高達 256KB 的 Flash。
該開發板具有網絡 - 千兆以太網 MAC、10 Mbps PHY、USB - 1x USB 2.0 OTG 全速接口、1x USB 2.0 主機/設備接口,內置 480 Mbps PHY、8x USART、2x CAN 接口、2 線調試接口, SDIO, FSMC 內存接口, DVP 數字視頻接口, 80x GPIO 端口, 16 個外部中斷, 2x I2C, 3x SPI, 2x I1S, 2x 12-bit DAC, 2-unit 16-channel 12-bit ADC, 16 -通道 TouchKey,10 個定時器,2 個通用 DMA 控制器,總共 18 個通道,4 個放大器。
CH32V307 具有電源管理功能,可提供以下封裝:LQFP64M 和 LQFP100。
這是開發板的很多規格。
赫斯基鏡頭
HuskyLens 是一款易于使用的 AI 機器視覺傳感器。具備人臉識別、物體追蹤、物體識別、線路追蹤、顏色識別、標簽(二維碼)識別等多種功能。
您可以從https://www.dfrobot.com/product-1989.html購買赫斯基鏡頭?
赫斯基鏡頭
第 1 步:開始使用 CH32V307
首先,我們使用此鏈接下載 MounRiver Studio (MRS) 。
新建Mounriver工程,選擇CH32V307 [RISC-V]系列,模板類型選擇RT-Thread ,點擊finish。
設置 RT-Thread Studio
在開發 Mounriver IDE 時,我遇到了正式支持 WCH 板和其他開發板的 RT-Thread Studio。出于這個原因,我以后將在這個項目中使用RT-Thread Studio 。
首先,從這里下載 IDE并將其安裝在您的 PC 上。
打開RT-Thread SDK Manager,在WCH平臺下安裝CH32V307V-R1。這可能需要一些時間。
安裝后,創建一個新項目。將文件命名為 LFR,選擇 Board CH32v307V-R1和 RT-thread 為最新。單擊完成按鈕。
我們編寫了一個基本程序來切換內置 LED。
?
GPIO_ResetBits(GPIOA,GPIO_Pin_0); while(1) { GPIO_SetBits(GPIOA,GPIO_Pin_0); rt_thread_mdelay(500); GPIO_ResetBits(GPIOA,GPIO_Pin_0); rt_thread_mdelay(500); }
?
1 / 2 ? LED1 關閉
第 2 步:連接 HuskyLens
使用 K-Flash將固件更新到HUSKYLENSWithModelV0.4.9Class.kfpkg 。
安裝 HUSKYLENS 庫
首先,首先下載并安裝 HUKYLENS 庫。
將“HUSKYLENS”復制到我們的項目目錄下如下圖
連接圖
CH32V307 USART3 引腳為 PB10 和 PB11。這些用于與 HuskyLens 通信。如圖所示,L293D 電機驅動器屏蔽連接到 Arduino 接頭。
CH32V307 -> 赫斯基鏡頭
Vcc -> Vcc
接地 -> 接地
USART3_Tx(PB10) -> RX
USART3_Rx(PB11) -> TX
如上所述進行連接。
與赫斯基鏡頭接口
HuskyLens 協議設置 您需要設置 HuskyLens 的協議類型。協議應為“序列號 115200”。當然也可以采用Auto Detect協議,簡單易用。
您可以在下面找到用于與 Huskylens 交互的示例代碼。
?
int main(void) { for(char s=0; sUSART2 */ { USART_SendData(USART3, TxBuffer[TxCnt++]); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET); /* waiting for sending finish */ } Delay_Ms(100); while(!Rxfinish); /* waiting for receiving int finish */ printf("RxBuffer:%s\r\n", RxBuffer); while(1) { while(TxCnt < TxSize) /* USART3--->USART2 */ { USART_SendData(USART3, TxBuffer[TxCnt++]); while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET) ; } Delay_Ms(1000); } }
?
回復
?
while (!huskylens.begin(USART3)) { printf("Begin failed!\n"); printf("1.Please recheck the "Protocol Type" in HUSKYLENS (General Settings>>Protocol Type>>Serial 9600)\n"); printf("2.Please recheck the connection.\n"); Delay_Ms(1000); } Delay_Ms(100); while(1) { if (!huskylens.request()) printf("Fail to request data from HUSKYLENS, recheck the connection!"); else if(!huskylens.isLearned()) printf("Nothing learned, press learn button on HUSKYLENS to learn one!"); else if(!huskylens.available()) printf("No block or arrow appears on the screen!"); else { printf("###########"); while(huskylens.available()) { HUSKYLENSResult result = huskylens.read(); printResult(result); } } } void printResult(HUSKYLENSResult result){ if (result.command == COMMAND_RETURN_BLOCK){ Serial.println(String()+F("Block:xCenter=")+result.xCenter+F(",yCenter=")+result.yCenter+F(",width=")+result.width+F(",height=")+result.height+F(",ID=")+result.ID); } else if (result.command == COMMAND_RETURN_ARROW){ Serial.println(String()+F("Arrow:xOrigin=")+result.xOrigin+F(",yOrigin=")+result.yOrigin+F(",xTarget=")+result.xTarget+F(",yTarget=")+result.yTarget+F(",ID=")+result.ID); } else{ Serial.println("Object unknown!"); } }
?
操作與設置
向左或向右撥動功能鍵,直到屏幕頂部顯示“線路跟蹤”字樣。
長按功能鍵進入線跟蹤功能的參數設置。
向右或向左撥動功能鍵,直到選中“學習多個”,然后短按功能鍵,向左撥動關閉“學習多個”開關,即進度條上的方形圖標轉動向左轉。然后短按功能鍵即可完成此參數。
您也可以通過設置“LED 開關”來打開 LED。這在黑暗的環境中非常有用。
向左撥功能鍵,直到選中“保存并返回”,短按功能鍵保存參數,參數自動返回。
線學習:建議在 HuskyLens 的視野范圍內,保持內聯學習,沒有交叉線。將“+”符號指向該行。然后 HuskyLens 會自動檢測線條,屏幕上會出現一個白色箭頭。此時,短按“學習鍵”即可完成學習過程。屏幕上會出現一個藍色的路線方向箭頭。
火車
線預測:當 HuskyLens 檢測到已學習的線時,屏幕上會自動出現一個藍色箭頭。箭頭的方向表示線的預測方向。
預測
現在設備已準備好進行線路檢測。
線檢測 - 圖像
第 3 步:連接電機驅動器
由于 CH32V307 板具有 Arduino 兼容接頭,因此我購買了一個 L293D 雙電機驅動器擴展板,可以輕松插入開發板。
CH32V307板+電機驅動
我們為電機 1 和電機 2 分配和配置 PWM 引腳,其中引腳 PA8 和 PA0 分配給電機 1,引腳 PB6 和 PB8 分配給電機 2。
電機測試使用以下代碼完成。
?
/* * Pin PA8 and PA0 - Motor 1 * Pin PB6 and PB8 - Motor 2 */ u8 speed = 100; // -255 to +255 int main(void) { USART_Printf_Init(115200); printf("Speed Control"); TIM1_PWMOut_Init( 100, 48000-1, speed, speed); // fwd delay(5000); TIM1_PWMOut_Init( 100, 48000-1, -speed, -speed); // rev while(1); }
?
第 4 步:框圖
完整的連接可以按照框圖完成,看起來像這樣。
框圖
第 5 步:外殼設計
我花了 4 美元從當地商店買了一個標準的機器人底盤。我們在底盤的左右兩側安裝了 BO 電機和一個用于平衡重量的滾珠腳輪。
帶 BO 電機和車輪的底盤
接下來,我們用給定的 L 夾安裝赫斯基鏡頭,它會像這樣轉動。
HuskyLens - 線跟隨器
現在我們將 CH32V307 和電機驅動器添加到機箱中。我有 2 個鋰離子電池來運行這個機器人。這些電池串聯以提供 7.4V。這也可以用鋰聚合物電池代替。
第6步:讓我們看看它是否有效
最后,是時候運行機器人了。我運行 HuskyLens 傳感器并連續打印計算出的速度,這就是我得到的。
線檢測 - 圖像
雖然它不是一個完美的線路跟隨器,但通過校準 PID 常數,我們可以實現更平滑的運行。
如果您在構建此項目時遇到任何問題,請隨時問我。請建議您希望我接下來做的新項目。
如果它真的對您有幫助,請豎起大拇指,并關注我的頻道以獲取有趣的項目。:)
?
- CH32V303_305_307 數據手冊 1次下載
- SLG59M307V 數據表
- SLG59M307V 數據表
- 兆易創新GD32F307VG-mbed開發板電路原理圖
- ASEMI橋式整流器KBP301-KBP307產品手冊 7次下載
- CH32V307EVT 應用例程
- IMX307LQR-C圖像傳感器芯片規格書 67次下載
- RISC-V IDE MounRiver Studio V1.51更新點介紹
- FR301-THRU-FR307-DO-201AD規格 0次下載
- RISC-V MCU應用開發教程之CH32V103
- CH341A編程器軟件V1.4相關資料下載 15次下載
- 電壓跟隨器的應用電路 58次下載
- 科普什么是電壓跟隨器
- 基于V_I轉換電路的精密電流跟隨器設計 162次下載
- 新視線V系列說明書
- 電壓跟隨器的特點和應用 853次閱讀
- 射極跟隨器的特性與應用 1491次閱讀
- 什么是電壓跟隨器?它有什么作用? 2640次閱讀
- 后備數據寄存器概述及讀寫操作 1160次閱讀
- 電壓跟隨器的用途是什么 3701次閱讀
- 電壓跟隨器設計以及仿真驗證 9017次閱讀
- 基于沁恒CH32V307的8串口服務器設計方案 5114次閱讀
- 射極跟隨器的作用是什么 1w次閱讀
- 源極跟隨器的特點_源極跟隨器的電路 3.3w次閱讀
- 嵌智捷科技:自動跟隨系統輕松實現前后雙向智能跟隨 6371次閱讀
- 射極跟隨器有什么性能和特點 7.9w次閱讀
- 電壓跟隨器主要用途在哪里 6.7w次閱讀
- AD轉換器輸入之前接一個電壓跟隨器是為什么 1.8w次閱讀
- 電壓跟隨器是什么?電壓跟隨器的特點和作用以及電路特點解析,如何計算? 8.9w次閱讀
- EyeTech視線跟蹤技術如何成為主流? 1821次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多