Emo:基于树莓派4B DIY 能笑会动的桌面机器人

本文介绍了如何利用树莓派4B和AutodeskFusion360设计一款个人伴侣机器人Emo,涵盖了硬件选型、3D打印、电路组装、编程与调试过程。详细描述了从LCD显示屏到舵机、传感器等组件的安装,以及如何通过Python和多任务处理实现机器人的情感表达。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给大家分享一个非常优秀的开源项目,基于树莓派4B的桌面机器人!其中包括树莓派4B、LCD显示屏、舵机、各种传感器、扬声器模块、电源管理等众多常用功能,尤其使用 Autodesk Fusion 360 来设计 Emo 机器人,其中融合了实体和自由形式的建模技术!

Emo是一款基于树莓派4做的个人伴侣机器人,集时尚与创新于一身。它不仅仅是一款机器人,更是一个活生生的存在,与其他机器人不同,它拥有独特的个性和情感。

硬件部分

  • 树莓派 4B
  • 微雪 2 英寸 IPS LCD 显示屏(240×320 分辨率)
  • SG90 型舵机×2
  • MG90 型舵机
  • 16 路 12 位 PWM 舵机驱动板
  • 801S 震动传感器模块
  • 单路 TTP223 触摸传感器模块
  • 8 Ω 0.5 W 扬声器模块
  • PAM8403 双声道立体声音频放大器模块
  • 5 x 7 cm 双面通用 PCB 原型板
  • 40 针 2.54 mm 直插式排针排母连接器(分离式针座)
  • 304 不锈钢 CSK 沉头十字螺栓 M2×10
  • M3 x 10 mm CHHD 螺栓螺母套件
  • M3 x 20 mm CHHD 螺栓螺母套件
  • B-30-1000 电路板飞线(有 PVC 绝缘外层)
  • 2mm 厚亚克力板

软件部分

  • Autodesk Fusion 360
  • Microsoft VS Code
  • 工具部分
  • 多功能螺丝刀
  • 电烙铁
  • 无铅焊锡丝
  • 电路板焊接固定夹具
  • 助焊剂
  • 多功能剥线钳
  • 热胶枪

设计理念

我们使用 Autodesk Fusion 360 来设计 Emo 机器人,其中融合了实体和自由形式的建模技术。

为了简化打印过程,我们将机器人的主体分成几个部分,方便用螺钉组装。

我们精心考虑了电源的位置,将它置于底座上,并为电源线的自由移动预留了充足的空间。为了提高机器人运动的稳定性,我们还特意使车身与底座轻微接触。

另外,我们特意选择蓝白配色方案,因为蓝白组合能提升机器人的视觉吸引力。

3D 打印

我们选择 PLA 作为 3D 打印材料,并单独打印每个组件,但这需要花费较长时间。

为了提升底座的耐用性,我们将底座的填充密度设置为 40%,而其他部分则为 20% 。

现在我们已经打印完所有零件,下面请跟着我的步伐开始组装吧!

注:3D 图纸及代码文末下载。

组装底座

首先,我们将 Micro USB 模块安装在底座上,这将作为机器人的供电接口。

我们将 SW-420 震动传感器放在靠近 USB 模块的位置上,它可以侦测到机器人周围产生的任何振动。

底座部分由以下三根导线组成:VCC、GND 和震动传感器的输出导线。

最后,我们使用 M3 x 10 mm 螺栓将盖子牢牢地固定在底座上。至此我们完成了底座部分的组装。

组装头部

为了让机器人头部具有触控能力,我们采用了一款紧凑型电容式触摸传感器,并将其完美地嵌入到指定区域中。

机器人头部的核心部分是一块微雪的 2 英寸 IPS 显示屏,它承担着传达机器人情感的重要任务。我们使用黑色支架和少量热熔胶将这块显示屏牢牢地固定住。

为了实现音频播放功能,我们机器人在头部左侧集成一枚 8 Ω 0.5 W 扬声器,并搭配 PAM8403 放大器,对树莓派中的声音进行放大。

接着,我们使用 M3 x 15 mm 螺钉将头部下半部分牢牢地固定在机器人的身体上。然后连接之前组装好的头部上半部分,最终完成整个头部的组装。

组装身体

在机身部分,我们安装了三个舵机:两个用于手部的 SG90 型舵机,以及一个用于身体旋转的 MG90 型舵机。为了方便地控制这些舵机,我们采用了 PCA9685-16 通道舵机驱动器。

为了确保稳定性,我们还使用 M2 号螺母和螺栓将 MG90 型舵机固定在机身前部。

我们把 PCA9685 模块放在同一区域,这样能有效地平衡重力。

现在我们开始组装机器人手部。只需把 SG90 型舵机安装到两端,并把它牢牢地固定在舵轴上,就完成了。

我们采用带有排母的原型板来连接树莓派,这种方法比使用导线连接更为高效。同时,通过焊接,我们能保证各个元件正确连接,从而最大程度地降低导线缠绕的可能。

为节约空间,我们使用手机充电器上的公头 USB Type-C 板为树莓派供电。音频传输方面,我们采用了 TRS 音频插孔。

最后,我们用螺栓把树莓派固定在机身背部,至此完成了电源部分的安装。

此外,我们在正面采用了 2 mm 厚透明亚克力板,这可以掩盖住外盖和 LCD 模块之间的缝隙。

电路部分

编程

接着,我们开始编写生成情感的代码,其中舵机运动和动画是核心部分。为了实现这些复杂的功能,我们采用 Python 的 multiprocessing 包,这使机器人能够同时执行多个任务,从而提高运行效率。

我们已经为你编写好项目代码,你只需克隆到本地即可使用。git clone https://github.com/CodersCafeTech/Emo.git

值得一提的是,我们使用 Adobe After Effects 软件制作动画,并将其导出为图像序列,这使得它更易于集成到整个系统中。

调试

完成编程后,为确保机器人正常运行,我们需要对所有组件进行测试。

首先安装所需依赖:

pip install adafruit-blinka adafruit-circuitpython-servokit

进入代码文件夹(Code),并执行以下命令启动程序:

python3 final.py

现在你的 Emo 机器人已经开始运行了!当你对他说一些话时,他会分析您的语气并在屏幕上显示相应的表情。

成果展示

见证奇迹的时刻到了!

原文链接:https://www.hackster.io/coderscafe/emo-your-personal-companion-robot-dc8afe

项目作者:CodersCafe

这是一个简单的基于树莓派的人脸表情识别代码,使用OpenCV和Keras库实现。请注意,此代码仅供参考,您需要根据实际情况进行修改。 ```python import cv2 import numpy as np from keras.models import load_model # 加载人脸识别模型 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 加载表情识别模型 model = load_model('emotion_detection_model.h5') # 定义表情标签 emotion_labels = ['Angry', 'Disgust', 'Fear', 'Happy', 'Neutral', 'Sad', 'Surprise'] # 打开树莓派摄像头 cap = cv2.VideoCapture(0) while True: # 读取摄像头数据 ret, frame = cap.read() # 转换为灰度图像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 检测人脸 faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) # 遍历每个人脸并进行表情识别 for (x, y, w, h) in faces: # 提取人脸图像 face = gray[y:y+h, x:x+w] # 调整大小为48x48像素 face = cv2.resize(face, (48, 48)) # 归一化像素值 face = face / 255.0 # 转换为4D张量 face = np.expand_dims(face, axis=0) face = np.expand_dims(face, axis=-1) # 进行表情预测 predictions = model.predict(face) # 获取最大概率的表情标签 label = emotion_labels[np.argmax(predictions)] # 在图像上绘制人脸和表情标签 cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.putText(frame, label, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) # 显示结果 cv2.imshow('Face Emotion Detection', frame) # 按q键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放摄像头并关闭窗口 cap.release() cv2.destroyAllWindows() ``` 请注意,上述代码只是一个示例,您需要根据实际情况进行修改,比如修改人脸识别和表情识别模型的路径、调整人脸检测参数和表情标签等。此外,也需要注意摄像头的调用和权限,以免出现问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值