資料介紹
描述
硬件構(gòu)建
這個怎么運作
HuskyLens 是一款人工智能機器視覺傳感器,用于檢測和跟蹤線路。赫斯基鏡頭的數(shù)據(jù)為我們提供了是否檢測到線條的詳細視圖。如果檢測到,則提取 (x, y)。有了這些數(shù)據(jù),CH32V307 開發(fā)板就被編程為使用電機驅(qū)動器屏蔽來控制電機。這篇博客解釋了使用 CH32V307 開發(fā)板和 HuskyLens 制作基于視覺的線追隨者。
基本硬件組件
CH32V307開發(fā)板
成套工具
CH32V307V-EVT-R1
CH32V307V-EVT-R1 是一款基于 WCH CH32V307 RISC-V 微控制器的開發(fā)板,具有以太網(wǎng)端口、USB Type-C 端口和八個可通過接頭訪問的 UART 接口。
WCH 設(shè)計的 RISC-V4F 32 位 RISC-V 內(nèi)核高達 144MHz,支持單周期乘法和硬件除法,以及硬件浮點單元 (FPU)。它具有高達 64KB 的 SRAM 內(nèi)存,可存儲高達 256KB 的 Flash。
該開發(fā)板具有網(wǎng)絡(luò) - 千兆以太網(wǎng) MAC、10 Mbps PHY、USB - 1x USB 2.0 OTG 全速接口、1x USB 2.0 主機/設(shè)備接口,內(nèi)置 480 Mbps PHY、8x USART、2x CAN 接口、2 線調(diào)試接口, SDIO, FSMC 內(nèi)存接口, DVP 數(shù)字視頻接口, 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。
這是開發(fā)板的很多規(guī)格。
赫斯基鏡頭
HuskyLens 是一款易于使用的 AI 機器視覺傳感器。具備人臉識別、物體追蹤、物體識別、線路追蹤、顏色識別、標簽(二維碼)識別等多種功能。
您可以從https://www.dfrobot.com/product-1989.html購買赫斯基鏡頭?
赫斯基鏡頭
第 1 步:開始使用 CH32V307
首先,我們使用此鏈接下載 MounRiver Studio (MRS) 。
新建Mounriver工程,選擇CH32V307 [RISC-V]系列,模板類型選擇RT-Thread ,點擊finish。
設(shè)置 RT-Thread Studio
在開發(fā) Mounriver IDE 時,我遇到了正式支持 WCH 板和其他開發(fā)板的 RT-Thread Studio。出于這個原因,我以后將在這個項目中使用RT-Thread Studio 。
首先,從這里下載 IDE并將其安裝在您的 PC 上。
打開RT-Thread SDK Manager,在WCH平臺下安裝CH32V307V-R1。這可能需要一些時間。
安裝后,創(chuàng)建一個新項目。將文件命名為 LFR,選擇 Board CH32v307V-R1和 RT-thread 為最新。單擊完成按鈕。
我們編寫了一個基本程序來切換內(nèi)置 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 關(guān)閉
第 2 步:連接 HuskyLens
使用 K-Flash將固件更新到HUSKYLENSWithModelV0.4.9Class.kfpkg 。
安裝 HUSKYLENS 庫
首先,首先下載并安裝 HUKYLENS 庫。
將“HUSKYLENS”復(fù)制到我們的項目目錄下如下圖
連接圖
CH32V307 USART3 引腳為 PB10 和 PB11。這些用于與 HuskyLens 通信。如圖所示,L293D 電機驅(qū)動器屏蔽連接到 Arduino 接頭。
CH32V307 -> 赫斯基鏡頭
Vcc -> Vcc
接地 -> 接地
USART3_Tx(PB10) -> RX
USART3_Rx(PB11) -> TX
如上所述進行連接。
與赫斯基鏡頭接口
HuskyLens 協(xié)議設(shè)置 您需要設(shè)置 HuskyLens 的協(xié)議類型。協(xié)議應(yīng)為“序列號 115200”。當然也可以采用Auto Detect協(xié)議,簡單易用。
您可以在下面找到用于與 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); } }
?
回復(fù)
?
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!"); } }
?
操作與設(shè)置
向左或向右撥動功能鍵,直到屏幕頂部顯示“線路跟蹤”字樣。
長按功能鍵進入線跟蹤功能的參數(shù)設(shè)置。
向右或向左撥動功能鍵,直到選中“學(xué)習多個”,然后短按功能鍵,向左撥動關(guān)閉“學(xué)習多個”開關(guān),即進度條上的方形圖標轉(zhuǎn)動向左轉(zhuǎn)。然后短按功能鍵即可完成此參數(shù)。
您也可以通過設(shè)置“LED 開關(guān)”來打開 LED。這在黑暗的環(huán)境中非常有用。
向左撥功能鍵,直到選中“保存并返回”,短按功能鍵保存參數(shù),參數(shù)自動返回。
線學(xué)習:建議在 HuskyLens 的視野范圍內(nèi),保持內(nèi)聯(lián)學(xué)習,沒有交叉線。將“+”符號指向該行。然后 HuskyLens 會自動檢測線條,屏幕上會出現(xiàn)一個白色箭頭。此時,短按“學(xué)習鍵”即可完成學(xué)習過程。屏幕上會出現(xiàn)一個藍色的路線方向箭頭。
火車
線預(yù)測:當 HuskyLens 檢測到已學(xué)習的線時,屏幕上會自動出現(xiàn)一個藍色箭頭。箭頭的方向表示線的預(yù)測方向。
預(yù)測
現(xiàn)在設(shè)備已準備好進行線路檢測。
線檢測 - 圖像
第 3 步:連接電機驅(qū)動器
由于 CH32V307 板具有 Arduino 兼容接頭,因此我購買了一個 L293D 雙電機驅(qū)動器擴展板,可以輕松插入開發(fā)板。
CH32V307板+電機驅(qū)動
我們?yōu)殡姍C 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 步:外殼設(shè)計
我花了 4 美元從當?shù)厣痰曩I了一個標準的機器人底盤。我們在底盤的左右兩側(cè)安裝了 BO 電機和一個用于平衡重量的滾珠腳輪。
帶 BO 電機和車輪的底盤
接下來,我們用給定的 L 夾安裝赫斯基鏡頭,它會像這樣轉(zhuǎn)動。
HuskyLens - 線跟隨器
現(xiàn)在我們將 CH32V307 和電機驅(qū)動器添加到機箱中。我有 2 個鋰離子電池來運行這個機器人。這些電池串聯(lián)以提供 7.4V。這也可以用鋰聚合物電池代替。
第6步:讓我們看看它是否有效
最后,是時候運行機器人了。我運行 HuskyLens 傳感器并連續(xù)打印計算出的速度,這就是我得到的。
線檢測 - 圖像
雖然它不是一個完美的線路跟隨器,但通過校準 PID 常數(shù),我們可以實現(xiàn)更平滑的運行。
如果您在構(gòu)建此項目時遇到任何問題,請隨時問我。請建議您希望我接下來做的新項目。
如果它真的對您有幫助,請豎起大拇指,并關(guān)注我的頻道以獲取有趣的項目。:)
?
- CH32V303_305_307 數(shù)據(jù)手冊 1次下載
- SLG59M307V 數(shù)據(jù)表
- SLG59M307V 數(shù)據(jù)表
- 兆易創(chuàng)新GD32F307VG-mbed開發(fā)板電路原理圖
- ASEMI橋式整流器KBP301-KBP307產(chǎn)品手冊 7次下載
- CH32V307EVT 應(yīng)用例程
- IMX307LQR-C圖像傳感器芯片規(guī)格書 68次下載
- RISC-V IDE MounRiver Studio V1.51更新點介紹
- FR301-THRU-FR307-DO-201AD規(guī)格 0次下載
- RISC-V MCU應(yīng)用開發(fā)教程之CH32V103
- CH341A編程器軟件V1.4相關(guān)資料下載 23次下載
- 電壓跟隨器的應(yīng)用電路 59次下載
- 科普什么是電壓跟隨器
- 基于V_I轉(zhuǎn)換電路的精密電流跟隨器設(shè)計 162次下載
- 新視線V系列說明書
- 電壓跟隨器的特點和應(yīng)用 3030次閱讀
- 射極跟隨器的特性與應(yīng)用 3292次閱讀
- 什么是電壓跟隨器?它有什么作用? 3299次閱讀
- 后備數(shù)據(jù)寄存器概述及讀寫操作 1393次閱讀
- 電壓跟隨器的用途是什么 3998次閱讀
- 電壓跟隨器設(shè)計以及仿真驗證 1w次閱讀
- 基于沁恒CH32V307的8串口服務(wù)器設(shè)計方案 5688次閱讀
- 射極跟隨器的作用是什么 1.1w次閱讀
- 源極跟隨器的特點_源極跟隨器的電路 3.3w次閱讀
- 嵌智捷科技:自動跟隨系統(tǒng)輕松實現(xiàn)前后雙向智能跟隨 7182次閱讀
- 射極跟隨器有什么性能和特點 8w次閱讀
- 電壓跟隨器主要用途在哪里 6.7w次閱讀
- AD轉(zhuǎn)換器輸入之前接一個電壓跟隨器是為什么 1.9w次閱讀
- 電壓跟隨器是什么?電壓跟隨器的特點和作用以及電路特點解析,如何計算? 9w次閱讀
- EyeTech視線跟蹤技術(shù)如何成為主流? 1931次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 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開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 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十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論