522| 0
|
[M10项目] 基于行空板的开源“宠物”机器人——Tillu |
本帖最后由 zoey不种土豆 于 2025-1-10 11:55 编辑 本周分享一个基于行空板M10制作的开源“宠物”机器人——Tillu,其灵感来源于Otto机器人。Tillu具备行走、跳舞等动态功能,配备了显示屏用于展示表情,还集成了麦克风、陀螺仪等传感器,支持语音识别和触摸交互。项目完整开源了3D打印文件和Python代码,小伙伴们可以通过Fusion 360修改设计,使用Mind+进行可视化编程。整个项目的成本控制合理,制作难度适中,非常适合想要入门机器人开发的创客们进行学习和实践。 特色功能 趣味表情:通过行空板显示屏,来帮助Tillu显示各种灵活可爱的面部表情; 行走、舞蹈:Tillu通过两条腿上的四个舵机来实现行走,或向前后左右的移动,甚至完成一系列连续的舞蹈动作,共计含有约10种行动模式; 触摸传感和语音指令: 内置触摸传感器,每当有人触摸Tillu的头部,它就会开始一些随机的动作;由于行空板M10内置的麦克风,它可以识别语音指令,每当你对它说“Tillu,dance”(Tillu,跳舞),它就会开启一段随机舞蹈。它还可以根据你的指令来向前、退后或左右转动或舞蹈。 外观方面,使用深灰色和橙色丝线为Tillu打造酷炫的双色外观; 其它方面,头部背壳的开孔设计方便充电和连接电脑扩展编程。 作者分享 材料清单 硬件 行空板M10 DF15MG舵机 2路18650电池座 Type-C L型公对母转接线 (行空板M10专用) 触觉按钮 触摸传感器 螺丝套件 软件 Mind+ Autodesk Fusion 其他 3D 打印机 项目过程 第一步:CAD和3D打印 组件导入:我导入了所有标准组件,如行空板M10、舵机,并手动测量了尺寸以创建电池管理板。 机器人主体设计: 头部外壳:设计用于稳固地承载重型电池和行空板。 主体(中心框架):作为结构支柱,连接头部和腿部,同时确保稳定性。 盖板:提升机器人的美观性。 腿脚:灵感来自Otto DIY机器人,确保流畅运动和平衡。 耳机设计:为增添趣味和酷炫外观而设计,赋予Tillu更多个性, 整个机器人的部件使用螺丝组装固定,项目作者在外壳背面设计了电源按钮和两个USB Type-C接口的插槽,一个用于电池充电,另一个用于行空板编程。 你可以在 Fusion 360 中打开模型,以根据您的要求对其进行修改。或者可以直接下载用于 3D 打印的 STL 文件。 以下是要打印的部件: Main.stl Cover.stl Servo Housing Right.stl Servo Cover Right.stl Servo Cover Left.stl Right Leg.stl Left Leg.stl Head Phone P1.stl Head Phone P2.stl Head Phone P3.stl 第二步:3D打印部件组装 1.组装外壳和面罩: 所需打印部件:Housing.stl(灰色)+ Visor.stl(橙色) 步骤:
2.组装耳机: 所需打印部件:Head Phone P1.stl、 Head Phone P2.stl 、Head Phone P3.stl 步骤:
第三步:为舵机添加接线 舵机自带接线,但这些接线与行空板M10的接口不兼容。因此,需要对接线进行改造,以确保兼容性和正常连接。 行空板M10带有三个含PWM 信号的 GPIO 接口(P21、P22 和 P23),而在我们的项目中,需要连接四个舵机,为解决此问题,我们可以:
2.连接舵机: 使用两组接线分别连接两个舵机。按照下图所示的极性和接线图进行连接:
3.将两个舵机连接到一组接线上: 对于第三组接线:
检查所有连接,确保极性和接线图一致。 第四步:扩展按钮以控制电源开关 项目设计中的电池座包含一个小按钮,用于控制Tillu机器人的电源开关。然而,由于外壳设计的原因,无法触摸到按钮,并且由于尺寸过小,实际使用时不够方便。为了解决这个问题,我们将通过添加一个外部触摸按键来扩展其功能。 所需材料: 触觉按钮、焊接器材、用于扩展连接的绝缘线 步骤:
第五步:连接电池 在此步骤中,我们将使用电池座为行空板准备电源,并用同一个 USB Type-C 接口实现无缝编程。通过创建一个定制的扩展接线,我们将使电池组能同时为电路供电,并且可以访问行空板的Type-C 接口进行编程。 所需材料: USB Type-C 延长线、电池座、焊接器材、电线(处理电力负责) 步骤:
第六步:触摸传感器接线 所需材料: 触摸传感器模块、兼容接线(来自步骤三)、焊接器材、跳线(按需使用) 步骤: 取步骤三中准备好的接线,根据上面的电路图,将接线焊接到触摸传感器的引脚上。 第七步:编程测试 如上图所示,连接所有舵机和触摸传感器以及在前期步骤中准备的Type-C电池组。暂时不要焊接第四个伺服电机的裸露导线。 运行Mind+,测试程序 下载并安装Mind+,在菜单中读取行空板,切换到Python模式,开始编程。(如何连接?点击查看行空板Mind+编程说明) 从 Tillu GitHub 存储库下载提供的文件夹,解压缩后,将整个 Tillu 文件夹拖放到行空板的文件系统中,打开位于 Tillu 文件夹中的 forward.py 文件并运行该程序。
提醒:在测试前,要确保电池座电量充足。另外,如果有组件没按预期触发运行,则需要检查连接和接线。 第八步:安装行空板支架 所需材料: 行空板M10、3D打印的行空板支架、3颗M3螺丝、电池座 步骤:
第九步:安装触摸传感器 将触摸传感器安装到外壳主体上,用手按压几秒钟,直到胶水变干。 第十步:安装电池座 所需材料: 电池座、Type-C延长线、M2螺丝、螺丝刀 步骤:
第十一步:组装Tillu电机 所需材料: 2个舵机(髋部舵机)、M2螺丝、小型螺丝刀 说明: 由于舵机侧面的接线会与主体槽位的壳壁发生碰撞,导致舵机无法直接安装到主体槽位中。为了解决这个问题,我们需要暂时拆卸舵机外壳的一部分。 步骤:
第十二步:组装Tillu的脚 所需材料: 2个舵机(连接到一个共用接线)、2个舵机外壳、2个舵机盖板、M2螺丝、速干胶 步骤:
第十三步:组装Tillu的腿 所需材料:3D打印的腿部部件、4个舵机摆臂、M2螺丝 步骤:
第十四步:启用自运行(开机启动)功能 1.使用行空板上的导航按钮进入系统菜单。 2.启用自动启动功能: 导航到“服务切换” -> “自动启动”。 将选项切换为“启用”。 3.设置程序自动运行: 导航到“运行程序” -> “root/” -> “main.py”,选择“main.py”并运行一次。 手动运行程序后,该程序将被设置为开机时的默认运行程序。 关闭并重新启动行空板,确认main.py是否自动运行。 注意事项: 如果行空板已经安装到外壳中,导航按钮可能无法直接操作。在这种情况下,可以通过行空板的USB接口连接鼠标来完成这些步骤。 第十五步:将行空板安装到头部内壳
第十六步:主体组装 1.定位Type-C数据接口(用于编程和充电):
3.主体组装:
第十七步:封闭部件 取下外壳并将其与主体组件对齐,使用 3 个 M2 螺丝将外壳固定到主体组件上。 第十八步:完成总装 1.运行初始化脚本: 将行空板连接到电脑,运行initialize.py脚本。该脚本会将所有舵机调整到90°中立位,确保组装时正确对齐。 2.安装腿部: 取两条腿部部件,将它们安装到处于90°位置的舵机上,使用螺丝固定腿部。 3.安装脚部: 取出之前组装好的脚部舵机,将它们以90°位置安装到腿部上,用螺丝将脚部舵机固定牢固。 4.安装头部(耳机部分): 取出耳机部分(头部组件),小心地将其安装在机器人的头部。 现在所有部件都已组装完成,设备已通电并准备就绪,Tillu机器人可以开机了! 代码注释 1. 初始化
robot_control.py 用于控制舵机运动。 facial_expressions.py 用于显示基于视频的表情。 speech_text.py 用于语音命令识别。 Pin 用于与硬件按钮交互。
2. 关键功能 2.1. random_movement_and_expression 该函数随机选择一个动作和一个表情,并执行这些动作5秒:
持续监控触摸传感器,如果按下:
持续监听麦克风的语音命令(listen_for_command):
一个工具函数,用于重置机器人并停止正在运行的进程。 3. 主程序 main() 函数:
4.1. robot_control.py 通过舵机控制机器人的运动: 运动类型:
确保平滑过渡: 通过将舵机设置为休息位置(reset_positions)。 4.2. facial_expressions.py使用Pygame显示动态表情:
使用Google Web Speech API识别语音命令:包括噪声调整和错误处理,以提高识别流畅度。 交互性:用户可以通过触摸或语音触发动作。 并行执行:表情和运动可以同时进行。 可扩展性:通过扩展相应模块,可以添加新的动作或表情。 错误处理:处理无效语音命令,并确保动作之间的互斥性。 故障排除与自定义: 如果机器人的表现不符合预期,可能需要调整初始舵机角度以匹配你的机器人设置。这些角度定义了机器人的中立位置,并在robot_control.py的reset_positions函数中配置:
可以尝试微调这些值以优化机器人的姿态和运动:
提示: 测试时使用小幅度调整(例如±5度),并观察变化,以避免舵机过载或错位。 最终成果 Tillu 是一个兼具趣味性和挑战的的机器人项目,它结合了高质量的硬件、灵活的软件和定制的3D打印设计。行空板M10通过舵机实现精确的运动控制,而触摸传感器则为机器人增添了交互性。Tillu 机器人采用电池供电,便携性强,非常适合随时随地使用。 3D打印部件提供了设计灵活性,而 Mind+ 软件支持图形化编程和 Python 编程,适合不同水平的学习者。使用 Type-C 接口进行充电和编程,简化了设置和操作流程。这个项目提供了一个动手实践的学习体验,将编程、电子技术和设计融为一体,充满趣味性和吸引力。无论是个人使用、教学还是探索,Tillu 都为对机器人感兴趣的人提供了一个坚实的基础。 项目文件 项目作者:Mukesh Sankhla 发表时间:2024.12.15 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed