开始之前:

1. 识别路口输出数据

在巡线功能下,HUSKYLENS 2可以标记出画面中路线的轨迹,获取当前路线的长度、角度和X、Y分量。当路线出现分支时,可以获取路口的分支数量和逆时针方向起每条分支的相应数据。

#include "DFRobot_HuskylensV2.h"
// 创建对象
HuskylensV2 huskylens;


// 主程序开始
void setup() {
	Serial.begin(9600);
	Wire.begin();
  while (!huskylens.begin(Wire)) {
    delay(100);
  }
	huskylens.switchAlgorithm(ALGORITHM_LINE_TRACKING);
}
void loop() {
	huskylens.getResult(ALGORITHM_LINE_TRACKING);
	if ((huskylens.available(ALGORITHM_LINE_TRACKING))) {
		Serial.println((String((String("当前路线的X分量:") + String((RET_ITEM_NUM(huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING), Result, xTarget))))) + String((String(";Y分量:") + String((RET_ITEM_NUM(huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING), Result, yTarget)))))));
		Serial.println((String((String("当前路线的角度:") + String((RET_ITEM_NUM(huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING), Result, angle))))) + String((String(";长度:") + String((RET_ITEM_NUM(huskylens.getCurrentBranch(ALGORITHM_LINE_TRACKING), Result, length)))))));
		Serial.println((String("前方路口分支数量:") + String((huskylens.getUpcomingBranchCount(ALGORITHM_LINE_TRACKING)))));
		Serial.println((String((String("逆时针方向第1条分支的X分量") + String((RET_ITEM_NUM(huskylens.getBranch(ALGORITHM_LINE_TRACKING, 1-1), Result, xTarget))))) + String((String(";Y分量") + String((RET_ITEM_NUM(huskylens.getBranch(ALGORITHM_LINE_TRACKING, 1-1), Result, yTarget)))))));
	}
	delay(500);
}

**运行结果:**如图所示,将HUSKYLENS的镜头对准带有路线的地图,观察串口监视器可以输出当前路线的长度、角度等数据。当路线由多个分支时,可以输出分支数量。

Interface Diagram