BiBoard V0 快速上手指南

1. 简介

BiBoard是一款Petoi制作的一款基于ESP32的机器人控制器,主要面向社区开发者和极客发烧友。相比基础的NyBoard,配备了高性能的处理器,更大的内存和存储空间,蓝牙和WiFi连接,还配置了音频电路以满足更多的开发需求。

2. BiBoard功能模块简介

BiBoard功能模块分区图如下所示:

区域编号模块功能简介

电源区

1

电池接口

接入 Bittle 的电池或外接 8.4V 供电

2

电源指示灯

左蓝色为 5V/3.3V 供电,右橙色为舵机 8.4V 供电

3

供电电路

提供 5V 以及 3.3V 供电

板载模块区

4

USB 下载电路

用于下载程序和软复位控制器

5

陀螺仪

MPU6050 6 轴陀螺仪, 地址 0x68, 中断连接 1026

6

EEPROM

64Kbit I2C EEPROM, 地址 0x51

7

DAC 功放

单声道功放, 连接 1025

8

红外模块

红外接收器, 连接 1023

扩展接口

9

PWM 舵机接口

12 路 ESP32 直出的 PWM 引脚

10

3路扩展接口

4 路模拟输入, 2 个串口, 1 个 I2C, 5V 电源

按键

11

Boot模式键及

Reset复位键

经常使用的是复位键,重启程序。按键边有丝印。

电路的功能框图如下图所示:

3. 功能模块详细介绍 :

3.1 电源设计

主板的供电方式有2种:通过USB接口供电和电池插座供电。

当使用USB供电时,主板上的舵机和外置5V电源接口没有供电。主板芯片和其他外设工作正常。

当使用电池插座供电时,最大的建议电压为7.4V(最大为8.4V)。此时舵机将获得供电,同时5V开关电源(TPS565201)输出5V电压,可以为树莓派供电。线性稳压器得到5V电压后输出3.3V为主板上的传感器和ESP32主芯片供电。

3.2 板载模块

3.2.1 准备ESP32开发环境

注意:

  • Arduino IDE 2.0 版本目前无法增加 large_spiffs_16MB (4.5MB APP with OTA/6.93MB SPIFFS)配置选项。

  • Arduino IDE 1.8.* 中SPIFFS文件上传插件是用 Java 编写的。 而 Arduino IDE 2.0 是用不同的语言编写的(TypeScript + Golang),因此之前的上传插件不能在Arduino IDE 2.0 中使用。目前还没有支持Arduino IDE 2.0 SPIFFS文件上传插件。

因此建议您暂时安装使用 Arduino IDE 1.8.* 版本集成开发环境

打开Arduino的“首选项”,添加ESP32开发板的地址:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

保存后退出。

打开“开发板管理器...”,搜索 "esp32" 并安装开发板支持库:

当前最新可用版本是2.0.12,安装2.0.13及以上版本可能导致主板无法正常启动。

当显示“INSTALLED”时,BiBoard的支持库就安装好了。

3.2.2 USB及下载电路

因为ESP32不带USB电路,我们使用了官方推荐的CP2102 USB转串口桥接芯片,最大下载波特率为921600bps。桥接芯片连接了ESP32的第一串口。

USB使用了最新的TypeC接口,在CC1和CC2脚位上加入了识别电阻。原理图如下图所示:

我们参考了ESP32官方推荐的下载电路以及NodeMCU的下载电路,均不能完美工作。根据ESP32的下载时序我们设计了电路,增加了第三个三极管并修改了EN脚对地电容的阻值,问题解决。

三极管电路接受标准的Modem信号RTS和DTR后产生组合时序控制ESP32进入下载状态并复位。具体原理图如下,若有更好的改进意见也请反馈给我们!

3.2.3 陀螺仪 IMU

陀螺仪使用的是经典的MPU6050,I2C地址为0x68,数字运动处理器(DMP)的中断脚连接的是IO26。

借助Jrowberg的I2Cdev和MPU6050DMP库,不熟悉姿态融合算法的新手也可以轻松获得动作状态。ESP32如果直接使用MPU6050库需要做一些修改,主要是AVR的8位数据类型以及PGMSpace的问题。增加ESP32的宏定义即可解决,我们也提供修改好的库,直接替换掉原来的文件即可(记得备份)。替换过之后AVR也可以使用。

3.2.4 EEPROM

BiBoard上有64Kbit的EEPROM,这样可以直接使用UNO的EEPROM操作程序存储陀螺仪校准的数值,操作也比较方便。

请注意ESP32中有一个名为EEPROM的示例程序,这个程序并不是操作EEPROM的,而是使用ESP32模块的Flash模拟EEPROM操作。

3.2.5 DAC与音频输出

为了让Bittle的声音更加好听,Biboard使用了DAC输出,并连接了一个单声道D类功放(PAM8302A)。您可以使用以下3种方法驱动音频模块,记得连接扬声器并调节合适的音量大小。

  1. 使用系统自带的Tone()函数,即标准的无源蜂鸣器的方法。

  2. 使用ESP库函数,dacWrite(). 用法类似analogWrite(),但是精度会比通过PWM调节的analogWrite()精度更高。

  3. 使用MP3解码库,使用XTronical开发的ESP32音频库,在Biboard库文件中我们已经为您封装好,需要注意的是ESP32的MP3播放需要文件系统(SPIFFS或者FAT)的支持,以及Flash分区和上传数据的操作。

URL:https://www.xtronical.com/basics/audio/dacs-on-esp32/

3.2.6 红外模块

Biboard的红外模块和Nyboard型号相同,使用的库也相同(IRremote)。因为Biboard的Flash容量非常大,所以不再需要注释掉IRremote.h中非NEC_DECODE的解码配置,所以可以适配更多的遥控器了。

4. 舵机接口

BiBoard一共设置了12个PWM舵机接口。每个PWM接口对应的IO号被标注在正面的焊盘旁边。

由于ESP32模块体积较大,所以变更了排针的方向。请接线后再装入Bittle。

5. 扩展接口

BiBoard一共有3个扩展接口,对应的丝印号为P15、P16和P17。

5.1 模拟输入接口(P15)

该接口用于模拟输入扩展,可以作为脚底压敏传感器接口。

5.2 总线接口(P16)

该接口用于板载ESP32的总线扩展。

5.3 树莓派接口 (P17)

此接口与树莓派通信,但是无法直接将树莓派安装到BiBoard上,请使用飞线或中间转接板连接。

Last updated