为NyBoard上传1.0版本程序

您可以使用Arduino IDE配置NyBoard并为之上传程序。

以下视频展示了如何使用Arduino IDE 对 Bittle 进行配置。 这些步骤与 Nybble 相同,您只需要将 OpenCat.h 中的产品定义更改为 Nybble。

//#include "InstinctBittle.h" //activate the correct header file according to your model 
#include "InstinctNybble.h" 

1 NyBoard

1.1 阅读用户手册

在 NyBoard 上找到主板的版本信息。如下图所示:

Nybble

相应的规格文档:NyBoard V0_1NyBoard V0_2NyBoard V1_0NyBoard V1_1(轻度修订)。

Bittle

相应的规格文档:NyBoard V1_0NyBoard V1_1

以 NyBoard V1_0 为例,如下图所示:

错误的操作可能会损坏您的 NyBoard!

1.2 把滑动开关拨到Arduino档.

滑动开关用于选择Nyboard上板载I2C设备(陀螺仪/I2C PWM控制器以及EEPROM)的连接属性。

当开关位于“Arduino”端的时候,这些I2C设备将同ATMega328P通信,Arduino可以访问这些设备

当开关位于“Pi”端的时候,这些I2C设备将断开和ATMega328P的连接,主板上的 树莓派接口 和 Grove I2C 接口上的设备将成为主设备。

有时,如果您无法启动,则可能是您不小心将开关拨到了“Pi”端。

以下部分保留用于 NyBoard 旧版本 (V0系统):

1.3 把电位器顺时针转至最低输出

从NyBoard V0_2开始,我们在板上添加了一个跳线帽选择开关,可以绕过降压芯片电路直接给舵机供电。如果您使用的是Nybble套件中的金属齿舵机,可以跳过这一小节。

高电压可以提升舵机的转矩,使Nybbles运动更迅速。代价是它同时会增大电流、缩短电池寿命,降低电路的稳定性,以及加速舵机的磨损。据我们测试,5.5V的电压可以得到一个比较平衡的性能表现。

在最初组装时,先不要把NyBoard的螺丝拧紧,因为可能还要调节电位器。在微调校准之前 ,确保所有舵机可以在当前电压设置下正常、稳定地转动。

1.4. 把NyBoard调节到最佳状态

在设计NyBoard时我考虑了两种使用场景:作为Nybble配套的驱动板,和DIY用户的开发板。

板载的降压电路可在5~8V输出之间调节,峰值电流不能超过5A。Nybble套件中的金属齿舵机可以承受高压,功率大,通过NyBoard的降压电路会有过载保护的问题,最好由电池直接供电。而DIY用户往往选用更便宜的塑料齿舵机,但它们不能承受高压,必须降压到5.5V左右才能使用。好在塑料齿舵机的工作电流更低,也不会触发降压电路的过载保护了。

所以如果使用的是配套的金属齿舵机,推荐直接由电池供电。对于初版NyBoard_V0_1,这需要一些焊接工作,可见论坛帖子。对于更新NyBoard_V0_2,可以更方便地把跳线帽SW3接在BATT和V_S之间(出厂时SW3默认接在V_S和V+之间,以免烧坏塑料齿舵机)。

V_S 表示舵机供电。跳线帽可以选择到底是由降压电路(V+)还是电池组(BATT)供电,所以BATT和V+永远不应该短接。

事实证明,当直接使用 BATT 而不是 V+ 为金属齿舵机供电时,NyBoard 的工作更稳定。 但是,如果您使用 NyBoard 驱动您自己的塑料齿轮伺服系统,则需要使用降压电路。

NyBoard用7.2V电池直接为金属舵机供电,电池充满电时为8.4V。您不能使用NyBoard直接驱动自己的塑料舵机(比如SG系列)。

2 下载和安装软件环境

您将需要配置Arduino集成开发环境,且最好是最新的版本,旧版本往往会编译出可能超出内存限制十六进制文件。Arduino的版本更新不会覆盖掉您之前的库和工程。

如果您先前已添加其他库并看到错误消息``XXX库已安装'',我建议您先删除它们

由于Arduino IDE安装的配置不同,如果您在以后的编译过程中看到有关缺少库的任何错误消息,只需用baidu他们(google也可以)并将其安装到IDE中即可。

如果您在 2022 年 1 月 3 日之后从 GitHub 下载了最新的 OpenCat 代码,则可以跳过以下库安装步骤。

2.1 通过库管理器安装所需的库文件

在Arduino的库管理器(操作指南 : https://www.arduino.cc/en/Guide/Libraries)中,搜素并安装以下的库:

  • Adafruit PWM Servo Driver

  • QList(非必须)

  • IRremote

    IRremote库在近期有更新,甚至更改了按键的编码。你可以安装2.6.1版本实现对我们代码的兼容。

    为节省编程空间,你可以禁用IRremote.h中没用到的解码器,这样可以省出10%的flash空间!

    在Mac上,找到Documents/Arduino/libraries/IRremote/src/IRremote.h,并把没用到的解码器置0:

    #define DECODE_RC5           0
    #define SEND_RC5             0
    
    #define DECODE_RC6           0
    #define SEND_RC6             0
    
    #define DECODE_NEC           1
    #define SEND_NEC             0
    
    #define DECODE_SONY          0
    #define SEND_SONY            0
    
    ...
    
    #define DECODE_HASH          1 // special decoder for all protocols

2.2 使用压缩包(.zip)安装库

使用被广泛使用的I2Cdev库和MPU6050库,传送门:jrowberg/i2cdevlib: I2C device library collection for AVR/Arduino or other C++-based MCUs

我相信你们的git用的很好,下载下来就OK。无论是用git clone或者download zip。注意选一下是Arduino下的,主要要红色箭头指示的2个库,I2Cdev是负责I2C通信的;MPU6050是启用DMP(数字融合处理器,做姿态解算的),当然也可以全部下载下来。

在IDE里点击:项目 -> 加载库 -> 添加.zip库,把刚刚下的ZIP直接导入即可

服务到位给您下载好了:

2.3 增加NyBoard支持

对于V1版本的Nyboard (NyBoard V1_*) 完全兼容UNO,选UNO即可。

以下部分适用于旧版本 (V0)

  • 如果你手上的是NyBoard V0_*,因为它超频到了20MHz,你需要按下列步骤添加配置文件:

自动添加NyBoard支持

感谢A-Ron对这一节的贡献!

  1. 打开Arduino首选项面板。

  2. 附加开发板管理器网址处,添加: https://raw.githubusercontent.com/PetoiCamp/OpenCat/main/Resources/NyBoard/boardManager/package_petoi_nyboard_index.json。如果里面已经有其他网址了,可以用逗号或者换行来分隔它们。

  3. 点击“好”关闭首选项面板(需要先关闭之前的网址编辑器)。

  4. 工具 -> 开发板: XXXX -> 开发板管理器... 打开 开发板管理器

  5. 搜索“nyboard”。

  6. 安装NyBoard。

  7. 关闭开发板管理器

  8. 工具 -> 开发板 选择 开发板 ATmega328P (5V, 20 MHz) NyBoard XXXX (NyBoardV0_1 和 NyBoardV0_2 选用同样的开发板)。

手动添加NyBoard支持

只有当以上方法无效时使用!

  • 找到开发板配置文件 boards.txt

苹果系统:

/Users/UserName/Library/Arduino15/packages/arduino/hardware/avr/version#/

/Applications/Arduino.app/Contents/Java/hardware/arduino/avr

右键点击Arduino.app图标显示程序包内容。

Windows系统:

C:\Program Files(x86)\Arduino\hardware\arduino\avr\

通过Microsoft商店安装的程序可能会安装在隐藏目录,可以直接从Arduino官网下载IDE并手动选择安装位置。

Linux

从终端命令行下载到的也许不是最新版本,可以从Arduino官网下载IDE然后解压安装:

sudo install.sh

boards.txt 的位置可能随Linux版本有不同:

Fedora:

/etc

Arch:

/usr/share/arduino/hardware/archlinix-arduino/avr/

Mint:

location_of_installation/arduino/hardware/arduino/avr

Ubuntu (on 18.04 when installing with `apt-get install arduino`):

/usr/share/arduino/hardware/arduino/boards.txt

找到 boards.txt 后:

  • 备份 boards.txt 便于回滚操作

  • 新建一份 boards.txt

您可以下载我修改后的boards.txt或者自行修改您原来的boards.txt,可能需要管理员权限。

用文本编辑器打开boards.txt,找到pro.name=Arduino Pro or Pro Mini的代码段,插入

## Arduino Pro or Pro Mini (5V, 20 MHz) w/ ATmega328P
## --------------------------------------------------
pro.menu.cpu.20MHzatmega328=ATmega328P (5V, 20 MHz) NyBoard

pro.menu.cpu.20MHzatmega328.upload.maximum_size=30720
pro.menu.cpu.20MHzatmega328.upload.maximum_data_size=2048
pro.menu.cpu.20MHzatmega328.upload.speed=57600

pro.menu.cpu.20MHzatmega328.bootloader.low_fuses=0xFF
pro.menu.cpu.20MHzatmega328.bootloader.high_fuses=0xDA
pro.menu.cpu.20MHzatmega328.bootloader.extended_fuses=0xFD
pro.menu.cpu.20MHzatmega328.bootloader.file=atmega/ATmega328_20MHz.hex

pro.menu.cpu.20MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.20MHzatmega328.build.f_cpu=20000000L

## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P
## --------------------------------------------------

如下图:

##############################################################
pro.name=Arduino Pro or Pro Mini

pro.upload.tool=avrdude
pro.upload.protocol=arduino

pro.bootloader.tool=avrdude
pro.bootloader.unlock_bits=0x3F
pro.bootloader.lock_bits=0x0F

pro.build.board=AVR_PRO
pro.build.core=arduino
pro.build.variant=eightanaloginputs

## Arduino Pro or Pro Mini (5V, 20 MHz) w/ ATmega328P
## --------------------------------------------------
pro.menu.cpu.20MHzatmega328=ATmega328P (5V, 20 MHz) NyBoard

pro.menu.cpu.20MHzatmega328.upload.maximum_size=30720
pro.menu.cpu.20MHzatmega328.upload.maximum_data_size=2048
pro.menu.cpu.20MHzatmega328.upload.speed=57600

pro.menu.cpu.20MHzatmega328.bootloader.low_fuses=0xFF
pro.menu.cpu.20MHzatmega328.bootloader.high_fuses=0xDA
pro.menu.cpu.20MHzatmega328.bootloader.extended_fuses=0xFD
pro.menu.cpu.20MHzatmega328.bootloader.file=atmega/ATmega328_20MHz.hex

pro.menu.cpu.20MHzatmega328.build.mcu=atmega328p
pro.menu.cpu.20MHzatmega328.build.f_cpu=20000000L

## Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328P
## --------------------------------------------------

保存并退出编辑器。

  • 下载 ATmega328_20MHz.hex 并保存到Arduino文件夹 ./bootloaders/atmega/。 在该文件夹中应该还有其他开发板的后缀为.Hex的文件。

重启Arduino IDE。在工具->开发板中,选择Arduino Pro or Pro Mini。在子目录里会出现 ATmega328P (5V, 20 MHz) NyBoard

如果完成以上操作后仍找不到NyBoard,可能是您的Arduino IDE的有效配置文件存在其他位置。在电脑的所有位置搜索boards.txt,看看是不是有新的发现。

只有当引导程序崩溃时才需要进行下列操作!

2.4 为板子烧录Arduino的Bootloader(这不是常规操作)

每块NyBoard在出厂时都经过了功能性测试,这意味着它们已经预先烧录了引导程序。但是,在极个别情况下,引导程序可能会崩溃并导致无法上传Arduino代码。

当然,不能上传代码往往是由其他原因造成的,而不是因为引导程序崩溃:

  • 有时USB驱动可能会检测到一个USB设备的电流过大而主动禁用该设备。这时需要更换USB端口甚至重启电脑来再次激活USB端口;

  • 需要安装FTDI USB到UART上传器的驱动;

  • 在Arduino IDE中没有选对串口;

  • 接触不良;

  • 运气不好 ☯️ 过两天可能又好了。

如果您确实需要重新烧录引导程序:

  • 如果你手上的是NyBoard V1_*,在Arduino IDE的Tool下选用Arduino Uno

  • 如果你手上的是NyBoard V0_* ,就需要选用NyBoard (ATmega328P 5V, 20MHz)

  • 选择您的烧录工具。上面的截图突出显示了两种常用的编程器,高亮的 USBtinyISP是一种小巧便宜的专门的编程器,打勾的Arduino as ISP用另一块Arduino板作为编程器

  • 把编程器接到NyBoard的2x6的SPI端口,注意接插方向和良好接触

  • 点击烧录引导程序进行烧录。如果这是您第一次尝试烧录,请耐心多等一会儿,直到看见进度条达到100%并不再有新进度条或新信息跳出为止。

2.5 连接USB上载器(USB适配器)

此步骤不需要将Nyboard安装在机器人身上。

下图显示了之前套件中的两个 FTDI 板。

红色上传器上有电平选择跳线帽,拔到5V。在连接上传器和NyBoard的6针母座时要注意方向,可以用地线GND作为参考。

先用 miniUSB-USB 线缆连接电脑和FTDI上传器。红色款上传器有三个LED灯,电源,Tx和Rx,蓝色款上传器没有电源灯。在接通电脑USB的瞬间,Tx和Rx灯会闪一下然后会熄灭,表明有初始的信息传输。然后您可以在Arduino IDE的工具->端口找到对应的串口 “/dev/cu.usbserial-xxxxxxxx”(苹果系统) 或 “COM#” (Windows系统)。

通过USB到micro-USB电缆将您的计算机与USB上载器连接。

USB上载器具有三个LED,即电源(红色),Tx和Rx。连接后,Tx和Rx应该闪烁一秒钟,指示初始通信,然后变暗。仅电源LED指示灯应保持点亮状态。您可以在“工具”->“端口”下找到一个新端口,名称为:

“ /dev/cu.usbserial-xxxxxxxx” (Mac)

“ COMX ”(Windows,注意一定不是COM1,COM1一般台式机有,RS232串口)

“ttyUSB” (Linux,注意Arduino是否有读写该设备的权限,没有就chmod)

如果Tx和Rx灯常亮,也不闪烁,则串口通讯可能存在问题,这时串口也不会显示在串口列表里。这往往是由于NyBoard在驱动舵机时没有外接电源,USB端口被过流保护禁用导致的。

特别提一下Linux,将上载器连接到计算机后,您将在串行端口列表中看到“ ttyUSB#”。但是上传时,您仍然可能会遇到串行端口错误。您将需要授予串行端口权限。请转到此链接并按照说明进行操作 https://playground.arduino.cc/Linux/All/#Permission

2.6 连接蓝牙模块 (可选)

连接蓝牙模块, 您可以使用智能手机 APP 或 Web API 控制机器人。

在标准机器人套件中包含我们的官方蓝牙模块。 波特率请设置为 115200。

您需要像使用蓝牙 AirPod 一样将其连接到计算机。 默认密码为 0000 或 1234。然后您可以在 Arduino IDE 的 Tools->Port 下选择它,使用方法与USB上载器相同。

具体连接方法请参考双模蓝牙模块相应章节。

如果您使用的是NyBoard V0_* 主板,您需要将其波特率设置为 57600

在 Mac 上,蓝牙可能会在多次上传后断开连接。 在这种情况下,请删除连接再重新连接。

在矽递及其代理渠道销售的版本中不包含蓝牙模块,请向support@petoi.com咨询购买方式。

2.7 下载OpenCat软件包

  • 从 GitHub 下载 1.0 OpenCat 存储库:https://github.com/PetoiCamp/OpenCat/tree/1.0

  • 如果下载代码的Zip文件,则解压缩后将获得一个OpenCat-1.0文件夹。您需要在打开OpenCat.ino之前将其重命名为OpenCat(Arduino规定代码必须放在同名文件夹之下)。

无论您将文件夹保存在何处,文件结构都应为:

  • ModuleTests文件夹中有几个名为testX(X代表外设,比如蜂鸣器陀螺仪).ino的代码。您可以上传它们以分别测试某些模块。打开任何带有前缀“ test”的testX.ino的工程。 (我建议您使用testBuzzer.ino作为第一个测试项目)。

  • 打开串行监视器并设置波特率:

    • 使用NyBoard V1_ *,将开发板选为Arduino Uno,然后在代码和串口监视器中将波特率设置为115200。

    • 使用NyBoard V0_*,将开发板选为NyBoard (ATmega328P 5V, 20MHz),然后在代码和串行监视器中将波特率设置为 57600。

  • 编译代码,应该没有错误提示。如果有请根据提示查找问题,一般问题为缺少某些库,根据需要安装即可。随后上传到您的开发板上,您应该看到Tx和Rx LED快速闪烁。一旦它们停止闪烁,消息应出现在串口监视器上。

  • 在输入命令之前,请确保串口监视器设置为“没有结束符” (No line ending)。否则,不可见的' \n'或' \r'字符将使解析函数失效。

对于Linux计算机,您初次编译时可能会看到错误消息,例如“ permission denied(权限被拒绝)”。

您将需要向avr-gcc添加执行特权才能编译Arduino程序:

sudo chmod +x filePathToTheBinFolder/bin/avr-gcc

此外,您需要为/ bin中的所有文件添加执行权限,因此命令为:

sudo chmod -R +x /filePathToTheBinFolder/bin

3 使用串口通信协议

通过连接NyBoard和Arduino IDE的USB上载器 /蓝牙模块,就可以和Nyboard直接通信了。

我们预先定义了一些指令,指令和参数表如下:

所有的命令都是以单个ASCII字符开头,并区分大小写。通常指令为小写。

有的指令,如“c”和“m”是复合命令:

比如:连续命令如:“ m8 40”,“ m8 -35”,“ m 0 50”可以写为“ m8 40 8 -35 0 50”。您最多可以组合四个相同类型的命令。确切地说,字符串的长度应小于30个字符。您可以在代码中更改限制,但是串行缓冲区可能会有系统的限制。

一些命令尚未实现,例如“h”。 命令“i”和“l”在软件版本 1.0 中仍然存在一些错误。

4 使用树莓派接口

机器人的运动是不需要树莓派的,树莓派是机器人的主控上位机。

您需要断开USB上载器才能与 Pi 的串行端口进行通信。

您可以在NyBoard上焊接2x5插座,就可以连接Raspberry Pi。 Pi 3A +最适合Bittle的型号。

Nybble

Bittle

焊上了2x5的插座后,Bittle的盖子就盖不上了。

红色的树莓派卡扣可以3D打印。

串行协议所示,Arduino IDE的串口监视器支持的命令参数全部编码为AscII码字符串,主机(例如RasPi)支持额外的命令,大多数命令都编码为二进制字符串以进行有效编码。例如,当编码角度为65度时:

  • Ascii码字符串: 2个字节的char,'6' 和 '5'

  • 二进制字符串: 1个字节的char,‘A’

值 -113 如何处理? 它需要四个字节作为 AscII码字符串,但在二进制编码中仍然只需要一个字节,尽管内容将不再可作为字符打印。

显然,二进制编码比AscII码字符串有效得多。但是,传输的消息将不会直接被人类读取。在OpenCat存储库中,有一个简单的Python脚本ardSerial.py,它可以处理NyBoard和Pi之间的串行通信。

4.1 配置树莓派的串行接口

打开树莓派的终端,输入 sudo raspi-config

Interface(接口)选项,选择 Serial(串行接口)选项以启用串口。禁用串行登录 shell 并启用串行接口以使用主 UART:

  1. 使用 sudo 权限命令运行 raspi-config:sudo raspi-config

  2. 找到 Interface Options-> SerialPort

  3. 选项 Would you like a login shell to be accessible over serial? 选择No

  4. 选项 Would you like the serial port hardware to be enabled? 选择Yes

  5. 退出 raspi-config 并重新启动机器人(关闭、打开电池电源)以使更改生效。

你还需要禁用Pi的1-wire接口防止Pi的GPIO 4不断地发送重启信号。

树莓派官方网站上有一个很好的教程

只要把树莓派和NyBoard通过可选的2x5插座相连,它们的串口就自动连接起来了,逻辑电平是3.3V。如果您连接的是其他AI芯片,就要注意Rx和Tx的连接,以及它们的逻辑电平。外接板上的Rx要连接NyBoard的Tx,外接板上的Tx要连接NyBoard的Rx,还需要连接NyBoard的参考电平输入和外接板的逻辑电压。

注意:如果您在树莓派上安装了 Ubuntu 操作系统,请进行如下配置:

  • /boot/config.txt 添加 enable_uart=1

  • 在 Ubuntu系统的文件 /boot/firmware/cmdline.txt中删除

console=serial0,115200(类似于在树莓派系统中文件/boot/cmdline.txt)

  • 运行以下命令关闭串行控制台:

sudo systemctl stop serial-getty@ttyS0.service && sudo systemctl disable serial-getty@ttyS0.service

  • 请确保您已安装python 串行库 pyserial,而不是来自 apt 的 python-serial。

  • 创建 udev file (/etc/udev/rules.d/50-tty.rules),并添加以下内容:

    KERNEL=="ttyS0", SYMLINK+="serial0" GROUP="tty" MODE="0660"
    KERNEL=="ttyAMA0", SYMLINK+="serial1" GROUP="tty" MODE="0660"
  • 运行以下命令重载 udev 规则:

sudo udevadm control --reload-rules && sudo udevadm trigger

  • 运行以下命令更改新的串口设备的用户组:

sudo chgrp -h tty /dev/serial0

sudo chgrp -h tty /dev/serial1

  • 这些设备现在位于 tty 组下。 运行以下命令将用户添加到 tty 组和dialout 组:

sudo adduser $USER tty

sudo adduser $USER dialout

  • 运行以下命令更新设备上组读取的权限:

sudo chmod g+r /dev/ttyS0

sudo chmod g+r /dev/ttyAMA0

  • 重启树莓派(关闭、打开机器人电池电源)

或者创建一个自动执行这些操作的脚本。

4.2 给 ardSerial.py 增加执行权限给

如果您想在bash里运行ardSerial.py,您还需要为它添加可执行权限:

chmod +x ardSerial.py

同时您可能需要把文件第一行的Python安装路径#!/user/bin/python改成您电脑上的设置。

4.3 用 ardSerial.py 向机器人发送指令

NyBoard 只有一个串口。 如果你想用树莓派的串口控制机器人,你需要拔掉USB上载器。

在树莓派的终端输入./ardSerial.py <args> 就相当于之前在Arduino串口监视器里输入 <args> 。比如,./ardSerial.py kcr 表示“执行 skill crawl”。

Python脚本ardSerial.pyNybble.ino里对应的解析代码都比较简略,需要逐渐完善。

对于Nybble:

连接到树莓派时可能会降低运动能力! 需要更强的电池。

某些快速的步态,比如小跑(trot,指令是ktr),可能会导致系统重启。目前系统由两节14500电池串联供电,您可以升级供电方案,比如模型专用的锂聚合物动力电池。

在改装过程中需要综合考虑软硬件的协作。对于Nybble小巧的身躯而言,最好是把它作为一个编程平台来研究系统整合与决策树,而不是作为一台遥控赛车。

5 电池

尽管通过USB上载器供电是可以给Nyboard上传程序的,但是仅使用USB上载器为 NyBoard 供电时,舵机存在明显的充电和放电现象,并导致黄色 LED 闪烁。USB 数据线的电流不足以维持舵机正常工作。 因此,舵机必须由外部电池供电才能正常工作。

Bittle

5.1 电压

NyBoard需要7.4〜8.4V外部电源来驱动舵机。我们在Bittle套件中包括了带有内置充电和保护电路的定制锂电池。短按电池按钮将显示其状态。蓝灯表示有电,红灯表示电量低。

5.2 连接插头和打开电源

连接电源时,请注意极性。 NyBoard上的插座具有防呆功能(防止反向插座),因此您将无法以错误的方向插入。详情请看这里(请不要 大 力 出 奇 迹!)

长按按钮3秒钟以打开/关闭电池。

反接电池有可能会损坏Nyboard!虽然我们也设计了简单的防反接电路~

5.3 电池续航能力

电池寿命因使用情况而异

如果您主要是编码和测试姿势,则可以持续几个小时,如果保持Bittle的运行,则可以持续不到30分钟。

电量不足时,电池指示灯将变为红色。电源将自动切断。

5.4 充电

请使用输出为5V-1A 的 USB充电器为电池充电。我们不建议使用快速充电器。电池在充电过程中无法供电。充电时请注意电池安全。

完全充电大约需要1.5至2小时,为确保安全,防止将其置于无人处持续充电。

5.5 玩耍结束该做的事情

请记住长按电池上电源键2.5秒以上关闭电源。建议您最好在关闭电源后把电池从NyBoard板上拔下来。

Nybble

5.1. 电压

NyBoard需要7.4~9V 外接强力电源来驱动舵机。在调试狸宝时,我们用的是8V电源,通常可以通过串联两节锂离子或锂聚合物电池来获得。一节电池充满电是4.2V,在3.6V以上都可以正常工作,串联后就是8.4~7.2V的电压区间。如前所述,驱动套件配送的舵机最好采用电池直连,也就是把跳线帽SW3连接在BATT和V_S之间。

在购买电池时,搜索关键词“14500 3.7V 锂离子电池”,最好再加上“无保护板”。我注意到有些有过载保护的电池可能会过早地触发断电保护(<2.5A),导致狸宝不能正常工作,比如重启或死机。电池的放电能力越大越好,比如能稳定以2A放电,或2C以上。

我们的用户在论坛上对各国能买到的电池品牌作了汇总

5.2. 尺寸

套件中的电池盒适用于14500锂离子电池,14表示直径为14mm,50表示电池长度,有时会差±2mm,但仍可适用。这个尺寸和常见的5号AA干电池一样,但是同尺寸的锂电池电压更高。

注意不要和普通5号电池混淆而误装到其他设备上!

另外,要选购正极有按钮状突起的电池。如果您在美国,可以在沃尔玛网购“EBL 14500 Li-ion”电池;在中国,可以在淘宝上试试运气。不要买标榜900mAh以上的电池,至少它们在容量上就不诚实。

您也可以自己设计电池盒来安装其他的电源方案,尤其是当您想添加树莓派做一些严肃的开发 ,或者纯粹想让狸宝跑得更快的时候。

5.3. 接线

接线时要注意极性,确保您能清楚地区分NyBoard电源接线端子和电池上的正负号(+/-)。

电源反接几乎必然会损坏NyBoard!

把NyBoard电源端子的螺丝拧松,插入电池盒引出的电源线,然后拧紧螺丝。闭合开关后,蓝光(主控)和黄光(舵机供电)LED都会点亮。

1月1日之后发货的套件中,端子更换为防反接插座,这样您就不会插错方向了。

5.4. 续航时间

续航时间取决于使用场景。如果您主要是用狸宝编程和测试一些动作,电池可以支持几个小时。如果您一直让狸宝跑来跑去,那就玩不到一个小时,大约四十分钟左右。

当电量不足时,黄色LED可能会不稳定地抖动。这时NyBoard仍可驱动一两个舵机,但更多舵机的负载的叠加会使电路极不稳定,导致持续重启或舵机的异常转动。在极个别情况下,电压波动会恰好翻转EEPROM中的关键常数,那就需要重新上传代码来恢复数据了。

5.5 充电

最好使用与电池配套的锂电池智能充电器,比如“充电器+4节电池”的套装。在充电期间最好在场以防发生意外 。

5.6 归置

使用后,记得把电池从电池盒中取出,以防无意中接通开关导致电池过度放电。

5.7 信号干扰

可以同时连接FTDI上载器和外接电源。事实上,如果在不接外接电源时命令舵机转动,会使USB端口负载过量电流,导致USB端口被禁用。在电池电量不足时,多个舵机的负载的叠加会波及逻辑电路,导致输出乱码、重启或死机。

Last updated