当前位置: 首页 > news >正文

仿生眼机器人(人脸跟踪版)系列之一

文章不介绍具体参数,有需求可去网上搜索。

特别声明:不论年龄,不看学历。既然你对这个领域的东西感兴趣,就应该不断培养自己提出问题、思考问题、探索答案的能力。

提出问题:提出问题时,应说明是哪款产品,在哪一步,遇到了什么问题,并提供必要的图片与视频信息。一个好的问题,可以更快的得到答案。

思考问题:思考如何快速、有效的解决问题?如果需要3D模型等文件,机器人使用遇到问题,肯定是直接在群里问。如果是想了解开发板等模块的具体参数,一定是网上搜索最快捷,最丰富。

探索答案:现如今AI已经十分智能,豆包、千问、DeepSeek,每一个都是经验丰富的大师。相比较而言个人的知识储备反而十分有限。所以,有什么困惑,不如先问问AI。

前言:发货前已经烧录程序

资料介绍

资料详情

注:无PCB文件。

代码详情

/**作者:然也电子 2022.12.04
*/
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <Servo.h>
#include <Ticker.h>//定义引脚#define XARM_PIN D5          //X轴
#define YARM_PIN D4          //Y轴#define XARM_LEFT 50 - 40     //x轴在最左边时角度
#define XARM_RIGHT 120 +50       //x轴在最右边时角度
#define YARM_TOP 50 -0          //Y轴上拉,眼向下看
#define YARM_BOTTOM 120 + 30  //Y轴下拉,眼向上看WiFiUDP udp;  //定义一个UDP对象const char *ssid = "ESP8266_EYES";
const char *password = "12345678";
char incomingPacket[255];  // 保存Udp工具发过来的消息//定义舵机Servo Xarm;                 //X轴
Servo Yarm;                 //Y轴//  xarm(减顺)  ,   yarm(减顺)
int calValues[] = { 0, 0}; //调整值,对舵机初始状态角度的误差调整void oper_eye(int xarm = -1, int yarm = -1) {if (xarm > 0) {Xarm.write(xarm + calValues[0]);}if (yarm > 0) {Yarm.write(yarm + calValues[1]);}
}void setup()  //程序加电后初始化
{Serial.begin(115200);//  Serial.setDebugOutput(true);Xarm.attach(XARM_PIN);Yarm.attach(YARM_PIN);WiFi.mode(WIFI_AP);                   //wifi初始化while (!WiFi.softAP(ssid, password))  //启动AP{}Serial.println("AP启动成功");while (!udp.begin(10001))  //等待本机udp监听端口设置成功{}init_eye();delay(100);}void loop() {//解析Udp数据包int packetSize = udp.parsePacket();  //获得解析包if (packetSize)                      //解析包不为空{//收到Udp数据包if (udp.remoteIP().toString().equals("192.168.4.2")) {//      Serial.printf("a收到来自远程IP:%s(远程端口:%d)的数据包字节数:%d\n", udp.remoteIP().toString().c_str(), udp.remotePort(), packetSize);// 读取Udp数据包并存放在incomingPacketint len = udp.read(incomingPacket, 255);  //返回数据包字节数if (len > 0) {incomingPacket[len] = 0;  //清空缓存}//收到的命令String curCommand = String(incomingPacket);String cmd = curCommand;String tmp;int xValue, yValue;int pos = curCommand.indexOf(",");if (pos > 0) {cmd = curCommand.substring(0, pos);if (cmd.equals("rxy")) {tmp = curCommand.substring(pos + 1);pos = tmp.indexOf(",");xValue = tmp.substring(0, pos).toInt();yValue = tmp.substring(pos + 1).toInt();}}oper_eye( map(xValue, 0, 180, XARM_LEFT, XARM_RIGHT), map(yValue, 0, 180, YARM_BOTTOM, YARM_TOP));}}
}//初始状态
void init_eye() {oper_eye(  90, 90 + 5);
}

模型文件

文件为STL格式,用于打印。可用SOLIDWORKS打开(其他能打开STL格式文件的软件理论上都可以打开)。不再提供其他格式,勿问。

视频教程

介绍组装和使用。

手机APP

用于识别人的眼球转动。

赠送资料

此资料用于配置环境,代码编译。

开发板是esp8266。

代码编译软件是arduino。

下载驱动是CP2102或者CH340。

注:因为配置环境相当复杂,每个人电脑不一样还会出现各种小问题,所以发货前统一烧好程序了。群内只负责组装问题的答疑,因人力有限,环境配置、二次开发、毕设等相关问题不在答疑范围。

http://www.xdnf.cn/news/444367.html

相关文章:

  • 2025tg最新免费社工库机器人
  • Kotlin Multiplatform与Flutter、Compose共存:构建高效跨平台应用的完整指南
  • 【kafka】kafka概念,使用技巧go示例
  • Daily AI 20250514 (迁移学习与元学习)
  • 【交互 / 差分约束】
  • 【ROS2】 核心概念5——服务(service)
  • 【!!!!终极 Java 中间件实战课:从 0 到 1 构建亿级流量电商系统全链路解决方案!!!!保姆级教程---超细】
  • 通过泛域名解析把二级域名批量绑定到wordpress的指定页面
  • Ubuntu磁盘空间分析:du命令及常用组合
  • AI 产业化浪潮:从生成智能到星载计算,中国如何重塑全球竞争格局
  • Hadoop的组成
  • 分布式系统中的Paxos协议
  • 软件兼容性测试有哪些类型?专业软件测评服务机构分享
  • Python笔记:c++内嵌python,c++主窗口如何传递给脚本中的QDialog,使用的是pybind11
  • Excel中批量对多个结构相同的工作表执行操作,可以使用VBA宏来实现
  • 可变形卷积简介(Deformable Convolution)
  • 基于OpenCV中的图像拼接方法详解
  • 前端最新面试题及答案 (2025)
  • e.g. ‘django.db.models.BigAutoField‘.
  • 【android bluetooth 协议分析 12】【A2DP详解 1】【车机侧蓝牙音乐免切源介绍】
  • JDK 命令行工具大全与学习方法总结 —— 从帮助文档到高效实践
  • 3Dmax传递顶点法线(顶点法线方向传递)教程
  • Java 泛型
  • Ubuntu 系统默认已安装 python,此处只需添加一个超链接即可
  • Windows11 Game Bar
  • 深度解析网闸策略:构建坚固的网络安全防线
  • 【嵌入模型与向量数据库】
  • QT+opencv实现卡尺工具找圆、拟合圆
  • 【LeetCode 热题 100】全排列 / 子集 / 组合总和 / 分割回文串 / N 皇后
  • Manus逆向工程:AI智能体的“思考”与“行动”