面部追踪电子动画龙机器人——人工智能机器人!

崧峻
转载
发布时间: 2025-06-14 14:46:22 | 阅读数 0收藏数 0评论数 0
封面
嘿,驯龙者们!🐉 准备好让昔日的神话生物复活了吗?我们将打造一个面部追踪的电子龙机器人,它会跟随你的一举一动!你将成为DIY 世界的驯龙高手! 您将学到什么? 用纸板、梦想和坚定的决心制作一条龙 使用哈士奇镜头教你的龙认识它的主人 使用 Arduino 编写代码来制作龙的动作动画

准备工作:

材料:

  1. DF 机器人哈士奇镜头(用于龙的眼睛!)
  2. 伺服电机(龙颈的肌肉!)
  3. Arduino 开发板(龙的大脑!)
  4. 纸板和龙模板(肉和鳞片!)
  5. 智慧与勇气(慷慨地洒下!)
1

组装你的龙

是时候释放你内心的折纸大师了!

  1. 下载我们精美的龙模板,打印在 A4 纸上,然后剪下。
  2. 按照模板将纸板碎片组装起来。
  3. 将伺服电机安装到机身上,将伺服臂安装到颈部。
  4. 您可以随意给您的龙起一个史诗般的名字,例如“Draco”。
2

使用哈士奇镜头识别面部

你的龙需要认识它的主人!

  1. 使用 USB 将 Husky Lens 连接到电源。
  2. 将相机对准脸部。
  3. 点击右上角的学习按钮。
  4. 击掌庆祝吧,你现在和龙是朋友了!
  5. 如果你需要视觉指南,请查看:人脸识别哈士奇镜头
3

对Arduino板进行编程

是时候给你的纸板生物注入生命了!

  1. 将 Arduino 开发板连接到您的计算机。
  2. 打开 Arduino IDE。
  3. 添加哈士奇镜头库
  4. 使用以下代码根据面部位置控制伺服电机。

将伺服器连接到您的 Arduino 开发板:

  1. 红线-5V Arduino
  2. 棕色线-GND Arduino
  3. 橙线 - Arduino 数字引脚 9

注意:更改“int Threshold”值以微调跟踪。


#include <HUSKYLENS.h>
#include <Wire.h>
#include <Servo.h>


HUSKYLENS huskylens;
伺服 servo;


int lastServoPosition = 90; // 初始位置
int Threshold = 5; // 设置位置变化的阈值


void setup() {
    servo.attach(9); // 将伺服连接到引脚 9
    servo.write(90);
    Serial.begin(115200);
    Wire.begin();
    while (!huskylens.begin(Wire)) {
        Serial.println(F("HUSKYLENS 未连接!"));
        delay(100);
    }
    huskylens.writeAlgorithm(ALGORITHM_OBJECT_TRACKING);
}


void loop() {
    if (!huskylens.request()) return;
    
    for (int i = 0; i < huskylens.countBlocks(); i++){
        HUSKYLENSResult result = huskylens.getBlock(i);
        
        int x_center = result.xCenter;
        int width = result.width;
        int y_center = result.yCenter;
        int height = result.height;
        int ID = result.ID;
        
        Serial.print("在 X 处跟踪的物体: ");
        Serial.print(x_center);
        Serial.print(", Y: ");
        Serial.print(y_center);
        Serial.print(", 宽度: ");
        Serial.print(width);
        Serial.print(", 高度: ");
        Serial.println(height);
        Serial.print("跟踪的 ID: ");
        Serial.println(ID);
        delay(100);


        // 将 x 坐标映射到伺服范围(0-180 度)
        int servoPosition = map(x_center, 0, 320, 180, 0);
        
        // 计算所需的调整
        int servoAdjustment = servoPosition - lastServoPosition; 


        // 限制调整以防止伺服移动过快
        if (servoAdjustment > Threshold) {
            servoAdjustment = Threshold;
        } else if (servoAdjustment < -threshold) {
            servoAdjustment = -threshold;
        }


        // 调整伺服位置并更新最后位置
        servo.attach(9);
        servo.write(lastServoPosition + servoAdjustment);
        lastServoPosition += servoAdjustment;


        delay(15); // 添加延迟以允许伺服移动到新位置
        //servo.detach();
    }
}


INO
Husky_Face_track.ino
2.08KB
4

驯服你的龙

绑定已完成!

  1. 连接一切。
  2. 启动你的 Arduino 开发板。
  3. 站在你的龙前面。
  4. 惊叹地看着它歪着头,追随你的一举一动!
  5. 可选:疯狂大笑——你值得拥有!


结论

恭喜,龙语者!利用 Arduino、Husky Lens 和纸板魔法,你创造了一个奇妙的面部追踪电子动画龙机器人!


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载