資料介紹
描述
硬件構建
這個怎么運作
HuskyLens 是一款人工智能機器視覺傳感器,用于檢測和跟蹤線路。赫斯基鏡頭的數(shù)據(jù)為我們提供了是否檢測到線條的詳細視圖。如果檢測到,則提取 (x, y)。有了這些數(shù)據(jù),CH32V307 開發(fā)板就被編程為使用電機驅動器屏蔽來控制電機。這篇博客解釋了使用 CH32V307 開發(fā)板和 HuskyLens 制作基于視覺的線追隨者。
基本硬件組件
CH32V307開發(fā)板
成套工具
CH32V307V-EVT-R1
CH32V307V-EVT-R1 是一款基于 WCH CH32V307 RISC-V 微控制器的開發(fā)板,具有以太網端口、USB Type-C 端口和八個可通過接頭訪問的 UART 接口。
WCH 設計的 RISC-V4F 32 位 RISC-V 內核高達 144MHz,支持單周期乘法和硬件除法,以及硬件浮點單元 (FPU)。它具有高達 64KB 的 SRAM 內存,可存儲高達 256KB 的 Flash。
該開發(fā)板具有網絡 - 千兆以太網 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 數(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。

設置 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 為最新。單擊完成按鈕。

我們編寫了一個基本程序來切換內置 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 協(xié)議設置 您需要設置 HuskyLens 的協(xié)議類型。協(xié)議應為“序列號 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);
}
}
?

回復
?
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ù)。
您也可以通過設置“LED 開關”來打開 LED。這在黑暗的環(huán)境中非常有用。
向左撥功能鍵,直到選中“保存并返回”,短按功能鍵保存參數(shù),參數(shù)自動返回。
線學習:建議在 HuskyLens 的視野范圍內,保持內聯(lián)學習,沒有交叉線。將“+”符號指向該行。然后 HuskyLens 會自動檢測線條,屏幕上會出現(xiàn)一個白色箭頭。此時,短按“學習鍵”即可完成學習過程。屏幕上會出現(xiàn)一個藍色的路線方向箭頭。
火車
線預測:當 HuskyLens 檢測到已學習的線時,屏幕上會自動出現(xiàn)一個藍色箭頭。箭頭的方向表示線的預測方向。
預測
現(xiàn)在設備已準備好進行線路檢測。
_hBmZmrrAP1.jpeg?auto=compress%2Cformat&w=740&h=555&fit=max)
線檢測 - 圖像
第 3 步:連接電機驅動器
由于 CH32V307 板具有 Arduino 兼容接頭,因此我購買了一個 L293D 雙電機驅動器擴展板,可以輕松插入開發(fā)板。
CH32V307板+電機驅動
我們?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 步:外殼設計
我花了 4 美元從當?shù)厣痰曩I了一個標準的機器人底盤。我們在底盤的左右兩側安裝了 BO 電機和一個用于平衡重量的滾珠腳輪。

帶 BO 電機和車輪的底盤
接下來,我們用給定的 L 夾安裝赫斯基鏡頭,它會像這樣轉動。
_XCm1DjubS0.jpeg?auto=compress%2Cformat&w=740&h=555&fit=max)
HuskyLens - 線跟隨器
現(xiàn)在我們將 CH32V307 和電機驅動器添加到機箱中。我有 2 個鋰離子電池來運行這個機器人。這些電池串聯(lián)以提供 7.4V。這也可以用鋰聚合物電池代替。
第6步:讓我們看看它是否有效
最后,是時候運行機器人了。我運行 HuskyLens 傳感器并連續(xù)打印計算出的速度,這就是我得到的。

線檢測 - 圖像
雖然它不是一個完美的線路跟隨器,但通過校準 PID 常數(shù),我們可以實現(xiàn)更平滑的運行。
如果您在構建此項目時遇到任何問題,請隨時問我。請建議您希望我接下來做的新項目。
如果它真的對您有幫助,請豎起大拇指,并關注我的頻道以獲取有趣的項目。:)
?
- CH32V303_305_307 數(shù)據(jù)手冊 1次下載
- SLG59M307V 數(shù)據(jù)表
- SLG59M307V 數(shù)據(jù)表
- 兆易創(chuàng)新GD32F307VG-mbed開發(fā)板電路原理圖
- ASEMI橋式整流器KBP301-KBP307產品手冊 7次下載
- CH32V307EVT 應用例程
- IMX307LQR-C圖像傳感器芯片規(guī)格書 78次下載
- RISC-V IDE MounRiver Studio V1.51更新點介紹
- FR301-THRU-FR307-DO-201AD規(guī)格 0次下載
- RISC-V MCU應用開發(fā)教程之CH32V103
- CH341A編程器軟件V1.4相關資料下載 23次下載
- 電壓跟隨器的應用電路 65次下載
- 科普什么是電壓跟隨器
- 基于V_I轉換電路的精密電流跟隨器設計 162次下載
- 新視線V系列說明書
- CH32V303/305/307/317工業(yè)級通用微控制器數(shù)據(jù)手冊 2.5k次閱讀
- 電壓跟隨器的特點和應用 4.9k次閱讀
- 射極跟隨器的特性與應用 5.6k次閱讀
- 什么是電壓跟隨器?它有什么作用? 4.6k次閱讀
- 后備數(shù)據(jù)寄存器概述及讀寫操作 2.2k次閱讀
- 電壓跟隨器的用途是什么 4.8k次閱讀
- 電壓跟隨器設計以及仿真驗證 1.3w次閱讀
- 基于沁恒CH32V307的8串口服務器設計方案 6.9k次閱讀
- 射極跟隨器的作用是什么 1.2w次閱讀
- 源極跟隨器的特點_源極跟隨器的電路 3.5w次閱讀
- 射極跟隨器有什么性能和特點 8.2w次閱讀
- 電壓跟隨器主要用途在哪里 6.9w次閱讀
- AD轉換器輸入之前接一個電壓跟隨器是為什么 2w次閱讀
- 電壓跟隨器是什么?電壓跟隨器的特點和作用以及電路特點解析,如何計算? 9.1w次閱讀
- EyeTech視線跟蹤技術如何成為主流? 2.2k次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費
- 2HT81696H 內置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊
- 1.21 MB | 1次下載 | 免費
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊
- 0.87 MB | 次下載 | 免費
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費
- 5矽力杰 Silergy SY7065 同步升壓轉換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費
- 6矽力杰 Silergy SY7066 同步升壓轉換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費
- 7WD6208A產品規(guī)格書
- 631.24 KB | 次下載 | 免費
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設計總結
- 0.33 MB | 12次下載 | 免費
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費
- 3矽力杰 Silergy SY7215A 同步升壓調節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費
- 4氮化鎵GaN FET/GaN HEMT 功率驅動電路選型表
- 0.10 MB | 3次下載 | 免費
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊
- 0.88 MB | 3次下載 | 免費
- 6SY50655 用于高輸入電壓應用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費
- 7怎么為半導體測試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費
- 8SY52341 次級側同步整流英文手冊
- 0.94 MB | 2次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191469次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論