5/21记录 —— ESP32小智ai

这两天一直在折腾小智AI的开发板。前天在网上买了一套小智AI的散件,想着自己动手组装练练手。

  • 成功刷机

里面包括了 ESP32OLED 屏语音模块喇叭面包板跳线啥的。到手后鼓捣了几个小时,勉强拼好了,程序也烧进去了,OLED 正常显示。

搭好了的效果

结果插拔喇叭接口的时候,可能接口设计太差,几下就给搞坏了,喇叭直接没声音了,换也换不了
本来想着联系商家换个零件,结果刚好刷闲逛的时候又看到有卖小智AI整机的——成品,一个才 68,两个一共 110
算下来比我买散件组装的都便宜,就动了心思直接下单了两个(打算留一个、卖一个)。

但买完又有点后悔,毕竟加起来差不多花了 170 元 了。虽然有点积蓄,但第一次一下子花过这么多搞硬件也受不了,功能稳不稳定还不知道。
反复算了下账:

  • 散件那套成本 61 元,喇叭坏了还可以退
  • 成品下单两个,110 元,退货不包邮
  • 手头还有个 ESP8266 开发板(10 元入手),想着能不能把它拿来烧录测试一下小智AI的功能,省一个也不错

理论上,如果:

  • 成品留一个用,另一个能在闲鱼卖到 65 元
  • 散件那套退掉;

那我最后就只花了不到 50 元

于是计划是:
先别急着退,把 ESP8266 拿出来试试看能不能跑 OLED 显示。虽然 ESP8266ESP32 还是有差距,但先测个简单的功能看看能不能通。

测试内容设定很简单:

  • GPIO4(D2)GPIO5(D1)OLED,用 Wire.begin(4, 5) 初始化
  • 然后让 OLED 在屏幕正中循环倒计时显示 60 秒

中间遇到几个小坑:

  • Adafruit_GFX.h 没有安装,装一下库就好了
  • D2D1 编译报错,直接用 GPIO 编号就行
  • Wire.begin(4, 5) 后面漏了分号,编译失败
  • 烧录成功了,但 OLED 没有显示内容,估计是初始化顺序或者 I2C 地址的问题

最后多试了几次,成功在屏幕上显示倒计时和文字。
虽然是个很简单的测试,但感觉还是挺有意思的,起码手头的这些零件也不是白买的。


  • 经过了几次调试成功在屏幕上显示内容

下面是两个功能的完整示例,使用 ESP8266 + OLED屏(SSD1306),语言是 Arduino:


1. 屏幕输出 HELLO WORLD

#include <Wire.h>                    // I2C通信库
#include <Adafruit_GFX.h>           // 基础图形库
#include <Adafruit_SSD1306.h>       // SSD1306 OLED 屏幕驱动库

#define SCREEN_WIDTH 128            // OLED 宽度
#define SCREEN_HEIGHT 64            // OLED 高度
#define OLED_RESET -1               // 没有用到RESET引脚

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  Wire.begin(4, 5);  // ESP8266的 D2 = GPIO4 (SDA), D1 = GPIO5 (SCL)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // 默认 I2C 地址 0x3C

  display.clearDisplay();               // 清空屏幕
  display.setTextSize(2);               // 字体大小(1~3)
  display.setTextColor(SSD1306_WHITE);  // 白色字体
  display.setCursor(10, 20);            // 设置文字位置
  display.print("HELLO WORLD");         // 输出文字
  display.display();                    // 显示到屏幕上
}

void loop() {
  // 什么都不做
}

2. 屏幕倒计时 60 秒

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

int countdown = 60;  // 倒计时起点

void setup() {
  Wire.begin(4, 5);  // D2 = GPIO4, D1 = GPIO5
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.setTextSize(3);               // 大号字体
  display.setTextColor(SSD1306_WHITE);
}

void loop() {
  if (countdown >= 0) {
    display.clearDisplay();            // 每次都清空再写
    display.setCursor(40, 20);         // 居中位置大约是 (40,20)
    display.print(countdown);          // 显示数字
    display.display();                 // 推送到屏幕
    countdown--;
    delay(1000);                       // 等待 1 秒
  }
}

结语:
不过说起来,我老早之前在尝试搭建一个像这样的智能AI了,比如这个
AI-Interactive-LLM-VTuber:https://github.com/toke648/AI-Interactive-LLM-VTuber
以及这个
基于自然语言的AI自动化终端:
也已经有人先做出来了(不行去贡献代码,别自己搞得了…)

因此看到有实际的产品被先创造出来,说实在的,有些不甘心。但是既然已经出来了那也不得不继续学习跟进,精进技术,争取更早的实现AI的全面集成化
小智AI的Github:https://github.com/78/xiaozhi-esp32
(浅看了下代码)

说起来这个东西支持集成各种第三方工具,非常适合用于集成开发出各种大型的AI产品
多模态模型+语言交互+长短记忆+情感检测(就差个视觉,已经完全算是一个小型大脑了)
可以预料到将会成为未来AI的基础外设,个人感觉非常有发展前景

除此以外也有很多设想:

  • 实时对话蓝牙耳机
  • AI智能AR眼睛(里面有一个内置的小型操作系统,能够操作实现各种任务)
  • 令AI能够自动操作系统终端,并能够打开第三方程序交互
  • 一个中央化集成的AI系统,能够适配各种环境,自动装载AI,能够同时控制多台设备及其他子AI
  • 认知系统架构
  • 自适应强化学习
  • 以及以上的所有集合

总之,路还很长,边走边看吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值