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

制作一个能对话能跳舞的otto机器人

OTTO机器人是一个开源外壳,硬件和软件的桌面机器人项目,非常适合新手研究和拓展。记住,他是一个能移动有表情能声音的机器人。

b站有很多演示和组装的视频,我就不多说了,照着做就好,因为硬件我也是刚入门,我这里主要关注软件和扩展。初学者可以买个外壳,arduino nano和四个舵机就能玩。随着深入慢慢加入超声波,led点阵屏,蜂鸣器,蓝牙,语音功能,噪音模块。

代码包含所有元件,有的元件接上就行,没得元件不接也不影响使用。添加离线语音并不需要修改代码,只是把蓝牙手机发送的指令使用语音模块发出来就行了。

硬件;

1.arduino nano十块出头X1,必须

2.sg90舵机三块多X4个,必须

3.anduino拓板2块多X1,必须

4.超声波雷达2块多X1

5无源蜂鸣器几毛一个X1

6max7219点阵屏点阵屏好像七块。

7,蓝牙HC05,06大概十块左右,jdy31b会便宜一些几块钱,品牌不重要,主要是要支持经典蓝牙,因为默认的手机端app使用的是经典蓝牙,除非你自己开发APP,否则搞个BLE是连不上的。

8.语音模块二十块左右,

打印外壳或者买个外壳,二十到四十不等,1,2,3是必须的,其他的看自己的荷包。价格看好不要买亏了,也可以多关注秒杀,舵机秒杀有时一块多一个,蓝牙几块就行。

一。如果希望看起来酷一些,那种像眼睛的超声波是需要的,代码里可以探测遮挡,遇到障碍可以转向

二需要他能吱吱叫,就需要蜂鸣,

三想显示一些表情了,就需要个点阵屏,

四想使用手机控制,就使用蓝牙,

五想语音控制,就使用语音模块,两个都要需要修改代码,

六,想让他听到噪音就起来跳舞,可以加个噪音传感器

arduino内存ROM有些小,功能多了需要会裁剪代码。

另外可能需要一个电源,18650,16340电池加电池盒就可以,USB似乎容易电压不够,

代码:

GitHub - blogercn/OttoDIY_Vbot: Mix from OttoDIY

https://github.com/blogercn/OTTO-DIY---app

蓝牙和语音助手有两种接法,一种是直接接rx,rt引脚,一种是接6,7引脚,两种接法代码不一样,6,7引脚是软串口,软件虚拟的串口,我这边使用不是很稳定,我使用的是rx,rt,下载固件时需要分辨,如果接的是rx,rt,那么载固件时要拔下来,因为会和下载的串口冲突导致无法下载。

如果你的是硬件不带蓝牙或者语音控制,那建议你使用下面的代码,因为带控制的代码需要接通蓝牙或者语音后发指令才会移动,不会自主移动,如果你懂串口通信,也可以使用计算机模拟串口给机器人发控制指令,但如果不懂的话,你就需要他可以不受控制的自由移动,这样就需要下面的代码。他能不需要控制的把自己会的动作从头循环演示,对应example里面带otto_allmovies的版本,如果有雷达,使用otto_avoid对应的代码。

https://github.com/OttoDIY/OttoDIYLib/tree/main

由于arduino的ram和rom很小,主频也很低,扩展很困难,无法满足AI和摄像头的扩展,后面可能会移植到esp32上开发。

控制指令可以参考我的上一篇博客。

OTTO奥托机器人开发总结-CSDN博客

视频可以看:

使用asppro语音模块控制otto机器人运动和表情,聊天_哔哩哔哩_bilibili

相关文章:

制作一个能对话能跳舞的otto机器人

OTTO机器人是一个开源外壳,硬件和软件的桌面机器人项目,非常适合新手研究和拓展。记住,他是一个能移动有表情能声音的机器人。 b站有很多演示和组装的视频,我就不多说了,照着做就好,因为硬件我也是刚入门&…...

git配置SSH

1 打开cmd窗口 2 在窗口中输入如下命令: 配置用户名: git config --global user.name “gyk” 配置邮箱: git config --global user.email “247929163qq.com” 继续在Git命令窗口中输入如下命令,即可生成SSH公钥和私钥 ss…...

mozilla/pdf.js view.html加载指定页码

mozilla/pdf.js view.html加载指定页码 在Mozilla’s PDF.js中,如果你想要在viewer.html加载时直接跳转到指定的页码,你可以通过修改URL来实现。 PDF.js使用查询参数来处理URL,其中page参数用于指定页码。你可以通过修改URL的查询字符串来设…...

Qt之QFuture理解

结构 #mermaid-svg-J9J683RG8QjtEqoM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-J9J683RG8QjtEqoM .error-icon{fill:#552222;}#mermaid-svg-J9J683RG8QjtEqoM .error-text{fill:#552222;stroke:#552222;}#merm…...

求二叉树的高度(递归和非递归)

假设二叉树采用二叉链表存储结构,设计一个算法求二叉树的高度。 递归: int getTreeHight(BiTree T){if(TNULL){return 0;}else {int lh getTreeHight(T->lchild);int rh getTreeHight(T->rchild);return (lh>rh?lh:rh)1;}}时间复杂度O(n)&a…...

Java查找算法——(四)分块查找(完整详解,附有代码+案例)

文章目录 分块查找1.1普通分块查找 分块查找 1.1普通分块查找 分块原则: 块内无序,块间有序:前一块中的最大数据,小于后一块中所有的数据,块与块之间不能有数据重复的交集。块的数量一般等于数字个数开根号 核心思路&#xff…...

进制数知识(2)—— 浮点数在内存中的存储 和 易混淆的二进制知识总结

目录 1. 浮点数在内存中的存储 1.1 浮点数的大V表示法 1.2 浮点数的存储格式 1.3 浮点数的存入规则 1.4 浮点数的读取规则 1.5 补充:移码与掩码 1.6 题目解析 2. 易错的二进制知识 2.0 符号位到底会不会参与运算? 2.0.1 存储前的编码变化运算 …...

类似QQ聊天功能的Java程序

实现一个类似QQ聊天功能的Java程序需要考虑以下几个关键点: 用户界面:用于展示消息和输入消息。网络通信:用于客户端之间的信息传输。用户管理:用于管理用户的登录、注册和状态。消息存储:用于存储聊天记录。 这里提…...

Redis 键值对数据库学习

目录 一、介绍 二、安装以及连接 三、设置连接密码 四、连接报错 五、redis 操作字符串以及过期时间 六、 redis 列表操作 七、redis 集合操作 八、hash 哈希操作 九、redis 发布和订阅操作 十、RDB和AOF的两种数据持久化机制 十一、 其他机器连接redis 十二、 pyt…...

逆向推理+ChatGPT,让论文更具说服力

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 使用ChatGPT辅助“逆向推理”技巧,可以显著提升论文的质量和说服力。逆向推理从结论出发,倒推所需的证据和论点,确保整个论证过程逻辑严密且无漏洞。…...

「JavaScript深入」一文说明白JS的执行上下文与作用域

JavaScript深入 — 执行上下文与作用域 上下文执行上下文生命周期创建阶段执行阶段回收阶段 执行栈作用域链作用域词法作用域(静态作用域) 上下文 变量或函数的上下文决定了它们可以访问哪些数据,以及它们的行为。 每个上下文都有一个关联的…...

Qt C++设计模式->组合模式

组合模式(Composite Pattern)是一种结构型设计模式,允许你将对象组合成树形结构以表示部分与整体的层次关系。组合模式使得客户端可以以统一的方式对待单个对象和组合对象,简化了对复杂树形结构的操作。 组合模式的应用场景 组合…...

Acwing Bellman-Ford SPFA

1. Bellman-Ford 该算法适用于有负权边的情况,注意:如果有负权环的话,最短路就不一定存在了。时间复杂度 O ( m n ) . O(mn). O(mn).该算法可以求出来图中是否存在负权回路,但求解负权回路,通常用SPFA算法&#xff0c…...

我能禁止使用某协议的ip禁止访问我的资源吗

是的,你可以禁止使用某个协议的IP地址访问你的资源。这种操作通常涉及网络防火墙、服务器配置或应用程序设置,具体方法取决于你的网络环境和使用的技术。以下是一些常见的实现方法: 1. 使用防火墙 大多数防火墙(硬件或软件&…...

快速理解TCP协议(二)——TCP协议中的拥塞控制机制详解

在计算机网络中,TCP(传输控制协议)是一种广泛使用的面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过一系列复杂的机制来确保数据的可靠传输,其中拥塞控制是至关重要的一环。本文将深入探讨TCP协议中的拥塞控制机制&…...

Linux:debug: systemtap: ubacktrace

https://docs.huihoo.com/systemtap/sourceware.org/systemtap/SystemTap_Beginners_Guide/ustack.html 这个函数可以帮助将user level的backtrace打印出来。 stap -d /bin/ls --ldd \ -e probe process("ls").function("xmalloc") {print_usyms(ubacktra…...

使用AI进行需求分析的案例研究

生成式 AI 的潜在应用场景似乎无穷无尽。虽然这令人兴奋,但也可能让人不知所措。因此,团队在使用这项技术时需要有明确的目标:关键是要明确生成式 AI 在团队工作中能产生哪些实质性影响。 在软件工程中,一个引人注目的应用场景是…...

Python内置的re库

Python内置的re库是专门用于处理正则表达式的标准库。它提供了一系列函数和类,使得在Python程序中可以使用正则表达式进行字符串的搜索、替换、分割等操作。re库的使用非常广泛,几乎任何需要复杂文本处理的场景都可以用到它。 主要函数 1、complie函数…...

毕业设计选题:基于ssm+vue+uniapp的面向企事业单位的项目申报小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…...

jQuery 简介⑤属性操作

九、属性操作 jQuery的属性操作方法一览表 $("selector").val(); // 获取第一个匹配元素的value值(一般用于表单控("selector").val("Hello"); // 设置所有匹配元素的value值为"Hello" $("selector").html();// 获取第一个…...

OpenSpeedy终极指南:如何通过开源游戏加速工具突破帧率限制

OpenSpeedy终极指南:如何通过开源游戏加速工具突破帧率限制 【免费下载链接】OpenSpeedy 🎮 An open-source game speed modifier. 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy 你是否厌倦了游戏中的卡顿和帧率限制?Open…...

避坑指南:在Unity 2022 LTS中配置XCharts插件时遇到的3个常见问题及解决方法

Unity 2022 LTS中XCharts插件实战避坑手册 当数据可视化成为现代应用的核心需求时,Unity开发者常会选择XCharts这类开源图表插件来快速实现专业级图表展示。但在实际项目落地过程中,版本兼容性、环境配置和平台适配等问题往往会让开发进程意外卡壳。本文…...

【Canvas动画录制实战】从WebM到MP4:MediaRecorder全流程解析与避坑指南

1. Canvas动画录制基础与准备工作 如果你正在开发一个数据可视化项目或者HTML5小游戏,可能会遇到需要将动态内容保存为视频的需求。Canvas动画录制就是解决这个问题的关键技术方案。相比传统的录屏软件,直接通过代码录制能获得更清晰的画质,还…...

从理论到实践:三维形状上下文(3DSC)如何构建鲁棒的点云局部描述符

1. 为什么我们需要三维形状上下文(3DSC) 想象一下你正在玩一个拼图游戏,但所有碎片都被随机撒上了胡椒粉,有些碎片还被书本盖住了一角。这就是计算机处理含噪声、遮挡的点云数据时的真实处境。在机器人导航、自动驾驶或者工业质检中,我们经常…...

开源PCB自动布线神器FreeRouting:5分钟上手,效率提升300%

开源PCB自动布线神器FreeRouting:5分钟上手,效率提升300% 【免费下载链接】freerouting Advanced PCB auto-router 项目地址: https://gitcode.com/gh_mirrors/fr/freerouting FreeRouting是一款功能强大的开源PCB自动布线工具,它能帮…...

企业级自动化运维平台OpenClaw:微内核插件化架构与实战部署指南

1. 项目概述:企业级开源自动化运维平台的构建最近在和一些做企业IT运维的朋友聊天,大家普遍提到一个痛点:随着业务系统越来越复杂,服务器、中间件、数据库的规模成倍增长,传统的运维方式已经力不从心。半夜被报警电话叫…...

NeoPixel电源设计全攻略:从电流估算到多电源分配

1. 项目概述:为什么NeoPixel电源设计是成败关键如果你玩过NeoPixel或者类似的WS2812B可编程LED,大概率经历过这样的场景:精心设计的动画点亮了十几个灯珠,效果惊艳;但当你兴冲冲地把灯珠数量加到一百个,准备…...

低成本接入GPT-4级能力:从开源模型自建到安全API实践

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫a37836323/-chatgpt4.0-api-key。光看这个标题,很多朋友可能会立刻联想到“免费API密钥”、“共享资源”之类的。确实,在AI工具日益普及的今天,如何高效、低成本地使…...

神经网络建筑负荷预测与供暖优化【附程序】

✨ 长期致力于BP神经网络、负荷预测、空气源热泵、优化控制研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于BP神经网络的公共建筑热负荷预测模型&…...

CircuitPython嵌入式开发实战:从GPIO到音频输出的完整指南

1. CircuitPython嵌入式开发入门:从GPIO到音频的实战指南如果你刚拿到一块Adafruit的开发板,刷好了CircuitPython,看着板子上那些密密麻麻的引脚,是不是既兴奋又有点无从下手?别担心,几乎所有嵌入式开发者都…...