制作一个能对话能跳舞的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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/883157.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

golang操作mysql利器-gorm

1、傻瓜示例 GORM通过将数据库表中的数据映射到面向对象的模型中,简化了数据库操作,使得开发者可以很方便的使用代码来操作数据库,而无需编写SQL语句。 目前有个mysql表:miniprogram_orders,其存储了所有用户对应的订…

Android SystemUI组件(07)锁屏KeyguardViewMediator分析

该系列文章总纲链接:专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明: 说明:本章节持续迭代之前章节的思维导图,主要关注左侧上方锁屏分析部分即可。 为了更好理解本文的内容,优先说明下SystemUI中与Ke…

CoreDNS实现跨集群service解析实践

CoreDNS实现跨集群service解析实践 背景介绍使用条件实现方案 CoreDNS是一款使用Go语言实现的专为云原生应用而生的DNS服务器。本文介绍CoreDNS在特定实际场景下的一种进阶使用实践,也许能为其他也在使用CoreDNS做服务发现的同学提供一些启发和思考。 背景介绍 在…

luceda ipkiss教程 76:设计光栅耦合器

案例分享:设计光栅耦合器 全部代码如下: from si_fab import all as pdk from ipkiss3 import all as i3 import numpy as npclass grating_coupler(i3.PCell):"""SOI grating coupler."""_name_prefix "grating_c…

mysql 05 InnoDB数据页结构

01.数据页结构的快速浏览 02.记录在页中的存储 在页的7个组成部分中,我们自己存储的记录会按照我们指定的 行格式 存储到 User Records 部分。但是在一开始生成页的时候,其实并没有 User Records 这个部分,每当我们插入一条记录&#xff0c…

单词记忆的化境:用思想的流水去淹没坚硬的石块

其实,鹅卵石通常都是很硬的。但是河底的石子,几乎大多都成了鹅卵石,它们被流水淹没,日复一日、夜以继日的冲刷着,没有了棱角。 在单词的记忆过程中,我们有太多的人,都有着不堪回首的往事&#x…

面试系列-携程暑期实习一面

Java 基础 1、Java 中有哪些常见的数据结构? 图片来源于:JavaGuide Java集合框架图 Java 中常见的数据结构包含了 List、Set、Map、Queue,在回答的时候,只要把经常使用的数据结构给说出来即可,不需要全部记住 如下&…

爬虫逆向学习(九):记录一个集cookie、请求参数、请求体、响应文本加密的站点反爬

此分享只用于学习用途,不作商业用途,若有冒犯,请联系处理 反爬前置信息 站点:aHR0cHM6Ly96d2Z3LmNxLmdvdi5jbi9pY2l0eS9pY2l0eS9lbmdpbmVlcmluZy9uYXZpZ2F0aW9u 接口:/icity/api-v2/cq.app.icity.engineering.Engine…

江科大51单片机

文章目录 led灯led点亮led闪烁流水灯 独立按键按键点灯按键消抖按键实现二进制流水灯按键实现流水灯 数码管静态数码管显示动态数码管显示 矩阵键盘定时器/中断串口通信led点阵屏DS1302实时时钟蜂鸣器AT24C02DS18B20LCD1602直流电机驱动AD/DA红外遥控 led灯 创建项目&#xff…

打印沙漏(最蠢的办法)

直接给代码&#xff0c;很好理解的 #include<bits/stdc.h> using namespace std; int s(int b){if(b<1)return 0;if(b2)return 1;for(int i3;i<sqrt(b);i){if(b%i0)return 0;}return 1; } int main(){int n;cin>>n;char c;cin>>c;vector<int>s;…

网络原理之IP协议(网络层)

目录 前言 什么是IP协议&#xff1f; IP协议的协议头格式 16位总长度&#xff08;字节数&#xff09; 16位标识、3位标志位和13位片偏移 8位生存时间 IP地址管理 1.动态分配IP 2.NAT机制&#xff08;网络地址转换&#xff09; NAT机制是如何工作的 NAT机制的优缺点…

解决启动docker desktop报The network name cannot be found的问题

现象 deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name…

Windows驱动调试方法

单步调试驱动 驱动的调试不能直接在本机上进行&#xff0c;而是要放在虚拟机&#xff08;或其它设备&#xff09;中。这是因为在内核模式下&#xff0c;一个断点的触发将会停下整个系统而不只是单个进程。 在前面的文章里&#xff0c;使用了DbgPrint函数来进行日志的输出&…

基于python+django+vue的旅游景点数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

Elasticsearch 分片迁移与移除集群节点操作

Elasticsearch 分片迁移与移除集群节点操作 问题背景 在单台服务器上部署了 7 个 Elasticsearch 节点&#xff0c;分别为 es-node1 到 es-node7&#xff0c;端口从 9201 到 9207。每个节点都承载大量数据&#xff0c;但没有设置副本分片。由于多个节点共享同一台服务器的硬件…

论文阅读 - SWATTING Spambots: Real-time Detection of Malicious Bots on X

https://web.archive.org/web/20240523035749id_/https://dl.acm.org/doi/pdf/10.1145/3589335.3651564 目录 ABSTRACT INTRODUCTION METHODOLOGY 3 RESULTS ABSTRACT 在 X&#xff08;前身为 Twitter&#xff09;等社交网络平台上&#xff0c;垃圾邮件机器人的活动日益…

【SpringBoot整合Redis测试Redis集群案例】

1、第一步&#xff0c;创建springboot项目&#xff0c;并导入依赖 如图&#xff0c;创建项目遇到的第一个问题就是&#xff0c;当type选择maven&#xff0c;jdk选择1.8时&#xff0c;java部分没办法选择1.8的版本&#xff0c;这怎么办呢&#xff1f; 原因&#xff1a;搜了一下…

【windows 11 安装maven】

从下载网址下载maven 解压&#xff08;路径无中文&#xff09; 配置本地仓库&#xff0c;用来存储jar包 配置仓库路径 配置文件路径&#xff1a;./conf/settings.xml(conf文件夹中的settings.xml文件中&#xff09; 定位到53行修改 <!-- localRepository| The path to the l…

第 1 章:Vue 核心

1. Vue 简介 1.1. 官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/&#xff1a;中文官网里面【教程】和【API】是比较重要的。用到api就去查询&#xff0c;实践当中记忆更牢靠。 风格指南&#xff1a;官方推荐写的一个代码风格cookbook&#xff1a;编写v…

从更底层的角度理解网站的访问过程

文章目录 1.示例&#xff0c;访问www.baidu.com是如何返回数据的1.输入www.baidu.com回车2.检查本机的C:\Windows\System32\drivers\etc\hosts配置文件夹下有没有这个域名对应的映射&#xff1a; 1.示例&#xff0c;访问www.baidu.com是如何返回数据的 1.输入www.baidu.com回车…