3008| 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供电,因为运行时电压要求较高,否则会不太稳定。 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,否则串口监视器看不到。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed