211浏览
查看: 211|回复: 0

[ESP8266/ESP32] 【Beetle ESP32-C3试用(2)】连接二哈使用

[复制链接]
本帖最后由 Anders项勇 于 2022-6-18 19:50 编辑

1.开发环境搭建:
之前测试Beetle ESP32-C3时,是连接了一个温湿度传感器,这个板子确实是小,还有扩展板,接口、功能丰富,并且有GDI显示屏接口,特别适合做小巧的项目,比如智能眼镜。这里我们和二哈连接使用,之前设想再接上df新出的Fermion: 1.51”OLED 透明屏幕透明屏(https://www.dfrobot.com.cn/goods-3443.html)的话,那么就可以做成一个智能眼镜,让二哈获取外部图形识别出信息,然后把信息投射到透明屏上,形成AR眼镜的效果。
先搭建Arduino的开发环境。按照说明里面的指导这个地址无法加入https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json。看其他网友总结了一些方法终于把板子开发环境搞好。地址加入这个地址:https://www.arduino.cn/package_esp32_index.json然后安装一个包就好了。包的下载地址:社区成员 鱼小黑 提供:https://cloud.codess-nas.top:5213/s/2Ocn   解压完成后,再打开Arduino IDE,即可在 菜单栏>工具>开发板 中找到你使用的esp32-C3开发板,但有些显示是esp32-S3,可是并不影响使用。环境好了之后安装一个点灯程序,测试正常。

2.硬件连接:
我们拿一个二哈识图来连接Beetle ESP32-C3,二哈连接I2C的接口。ESP32-C3是3.3v电压,二哈单独用usb供电,因为运行时电压要求较高,否则会不太稳定。
C3.jpeg


3.编程:
发现在arduino环境下二哈识别的一些信息无法得到,比如物体识别模式识别出汽车、花等物体名称,程序中不知道怎么获得到,找了一些资料也不知道怎么获取。本来想获取这些信息可以传递到透明屏上形成AR眼镜效果。那就先测试下获取识别出的物体的中心坐标、宽、高等数据。先把二哈的库文件拷贝到arduino的库目录下面。


#include "HUSKYLENS.h"
#include "SoftwareSerial.h"

HUSKYLENS huskylens;
//HUSKYLENS green line >> SDA; blue line >> SCL
void printResult(HUSKYLENSResult result);

void setup() {
    Serial.begin(115200);
    Wire.begin();
    while (!huskylens.begin(Wire))
    {
        Serial.println(F("Begin failed!"));
        Serial.println(F("1.Please recheck the \"Protocol Type\" in HUSKYLENS (General Settings>>Protocol Type>>I2C)"));
        Serial.println(F("2.Please recheck the connection."));
        delay(100);
    }
}

void loop() {
    if (!huskylens.request()) Serial.println(F("Fail to request data from HUSKYLENS, recheck the connection!"));
    else if(!huskylens.isLearned()) Serial.println(F("Nothing learned, press learn button on HUSKYLENS to learn one!"));
    else if(!huskylens.available()) Serial.println(F("No block or arrow appears on the screen!"));
    else
    {
        Serial.println(F("###########"));
        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!");
    }
}


4.运行:
打开串口监视器,就可以看到识别出的物体方框的中心坐标、宽、高等数据的实时信息。注意板子的usb cdc on boot要设为enabled,否则串口监视器看不到。 C2.jpeg
b1.png




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail