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