AKA-00

辰龙AI教育机器人


新闻

  • 2026-03-03 添加对zl-zp10s舵机的支持
  • 2026-02-12 小车模拟器可用了
  • 2026-02-06 AKA-00 小车添加了对 MG996R 舵机的支持,目前支持 STS3215 和 MG996R
  • 2026-01-30 opi5p 开发板可以驱动 AKA-00 小车了

开始使用

配置指南

使用文档

开发资料

项目介绍

AKA-00 是一个面向教学的低成本AI机器人,通过提供简单的平台实现多种算法的训练和仿真。

核心能力

能力说明
机械臂控制支持 STS3215、MG996R 等舵机
底盘运动N20 电机差速控制
远程控制Web 界面 + HTTP API

技术架构

AKA-00
├── tennis_hunter.py     # 机器人主程序
├── run.py               # Web 服务器
├── src/
│   ├── arm_control/     # 机械臂控制(舵机驱动)
│   ├── base_control/    # 底盘控制(电机驱动)
│   └── cameras/         # 摄像头模块
├── app/                 # Flask Web 应用
├── frontend/            # React 前端
└── models/              # YOLOv8 模型

硬件平台

组件型号
主控LicheeRV Nano
机械臂ZL-ZP10S / STS3215
电机N20 直流减速电机
摄像头USB 免驱摄像头

快速开始

本文档帮助你快速开始让 AKA-00 跑起来。

1. 组装

参考 硬件接线 完成机械臂、电机、摄像头的连接。

2. 通电

  1. 连接电源,等待控制板指示灯亮起
  2. 等待 60 秒,网络模块启动
  3. 连接机器人热点(格式:chenlong-robot-xxxxx
  4. 浏览器访问 192.168.4.1,进入配置 遥控器
  5. 之后可以通过手机上的遥控器控制小车

如果需要自定义启动流程需要初始化的详细步骤见 机器人连接

3. 修改代码常用命令

# SSH 登录控制板
# 在同一局域网下用ssh连接
ssh root@<机器人IP>

# 通过scp将修改的代码上传到主控上
scp 本地目录文件 root@<机器人IP>:

# 或者在主控上用vim进行修改
vim 目标文件

# 找到并杀死当前占用线程
ps | grep python*
kill -9 pid

# 启动服务
python run.py

详细部署见 软件部署

4. 使用

启动后通过以下方式控制:

  • Web 界面: 访问 http://<机器人IP>/
  • API: 使用 /api/control 接口

详细说明见 Web 界面API 文档

下一步

硬件参数

主控板

img.png

参数
型号LicheeRV Nano
CPU算能 SG2002
大核:1GHz RISC-V C906 / ARM A53 二选一;
小核:700MHz RISC-V C906;
NPU1 TOPS (INT8),支持 BF16

机械臂舵机和控制板

控制板

微雪UART串口通信控制板

主控图

使用的舵机

参数
型号ZL-ZP10S
通信串口 UART
设备/dev/ttyACM0
波特率115200

支持的舵机

  • STS3215
  • MG996R
  • ZL-ZP10S

电机控制板(DRV8833)

drv8833-2.png

使用的电机

参数
型号N20 直流减速电机
控制方式PWM 调速
GPIO Chip4

硬件接线

接线示意

主控接口图

img.png

本项目使用了以下接口:

  • 电机控制
    • A16:PWM4
    • A17:PWM5
    • A18:PWM6
    • A19:PWM7
  • 舵机控制
    • A28:UART2TX
    • A29:UART2RX
  • VBUS 5V
  • GND

底盘控制板接口图

img.png

  • VM:电机供电
  • NC:置空
  • GND:接地
  • A、BO1、2:接电机
  • A、BIN1、2:控制信号输入
  • STBY:SLEEP控制,底电平有效

机械臂控制板接口图

img.png

  • D:数据总线
  • V:舵机供电正级
  • G:舵机接地
  • DC+:主控供电正级
  • DC-:主控供电负极
  • TX:控制输入
  • RX:控制接收
  • GND:接地
  • A UART:UART总线控制模式
  • B USB:USB总线控制模式

控制电路连线图

img.png 接线前请确保断电操作。

机械臂UART控制

  • 机械臂串口连接至 /dev/ttyACM0
  • 波特率:115200

电机PWM控制

电机PWM ChipChannel
左电机40, 1
右电机42, 3

更多原理图

硬件原理图位于 hardware/ 目录:

  • LicheeRV_Nano-70418_Schematic.pdf - 主控板原理图
  • sg2000_trm_cn.pdf - SG2000 技术参考手册
  • 众灵舵机使用手册-250508.pdf - 舵机使用说明

第一次连接

如何连接机器人

第一步,连接机器人自身的热点,用于配置机器人

  1. 确保机器人已连接到电源,等待机器人控制板灯亮
  2. 等待20秒到30秒,此时控制板正在启动网络模块
  3. 开发者打开电脑/手机,进入wifi连接,找到控制板的热点并连接,例如chenlong-robot-02 img.png

第二步,让机器人连接到开发者的WiFi网络

  1. 连接热点之后,打开浏览器,输入192.168.4.1(不同的机器人可能不同,已实际为准),即可进入机器人的遥控界面
  2. 在配置页面中,刷新网络,找到开发者需要的WiFi网络,点击连接,如有密码需要输入密码 GitHub图标
  3. 连接成功后,网页会显示当前连接的WiFi网络名称以及为机器人分配的IP GitHub图标

第三步,ssh登录机器人的控制板

  1. 第二步进行完之后,开发者需要记下为机器人分配的IP,并且让自己的电脑和机器人连接到同一个WiFi网络 GitHub图标
  2. 开发者打开终端,输入ssh root@[机器人分配的IP],即可登录机器人的控制板,密码为root
  3. 登录成功后,即可在终端中操作机器人的控制板,输入ping www.baidu.com或者curl www.baidu.com,用来检测控制板网络是否成功连接并且能够访问互联网 GitHub图标

项目本地启动并部署到控制板

项目本地启动

  1. 安装Miniconda用于控制python的版本

安装miniconda,请按照官方安装指南

创建 python 3.11 环境

conda create -n aka python=3.11 -y
  1. 运行 pip install -r requirements.txt 安装依赖
pip install -r requirements.txt
  1. 安装前端依赖
cd frontend && npm i

4.打包前端项目

npm run build && cd ..
  1. 运行项目
python run.py

之后访问本地的80端口或443端口即可

本地对于硬件调用的接口进行了隔离,所以可以直接启动

代码修改完成后部署到控制板

修改完代码后先在本地查看修改和调用,确认无误后可以通过scp命令进行传输,要将修改了的文件替换主控上对应的文件。

scp 本地文件 root@<ip>:

之后通过 ps 命令确认当前是否有服务启动占用80和443端口,如果有会返回pid

ps | grep python*

并用 kill 关闭目标进程

kill -9 <pid>

之后再通过

python run.py

在主控板上启动项目进行调试

初始化配置

这部分为机器人的初始化部分,都会在用户拿到设备前实现,如果用户需要自行初始化也可以按照本流程实现。

烧录镜像

从Releases处下载最新镜像,通过烧入工具将镜像烧录到tf卡中,镜像中会自带一份项目文件。

连接主控

通过type-c接口可以将板子连接到电脑上

在win下在终端里输入ipconfig,找到一个新的以太网,例如 10.163.124.100。 之后可以使用ssh进行连接,ssh root@10.163.124.1

连接网络

启动一次根目录下的init_ap_web.sh这会让小车自己成为一个热点,方便个人设备的连接,同时将项目自启动脚本写入系统。

项目启动

可以选择重启机器人,或者手动启动项目。

chmod +x init.sh
./init.sh

如果没有生成过证书文件,会生成https的证书后运行项目

HTTPS 证书生成

  • 无交互生成自签名证书,有效期10年(3650天)
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/OU=MyDept/CN=localhost"

如果想通过指定 WiFi 的方式连接项目并自启动,可以遵循以下流程。

开机自启动

设置为sta模式,修改方式

在/etc/init.d 文件中 添加 一个appinit文件,输入

#!/bin/sh
# 程序路径
APP_PATH="/root/AKA-00"
# 程序运行用户(一般嵌入式用 root)
RUN_USER="root"

# 启动函数
start() {
    sleep 5
	chmod +x /root/AKA-00/init.sh
	/root/AKA-00/init.sh
}

# 停止函数(可选,便于手动管理)
stop() {}

# 重启函数(可选)
restart() {
    stop
    sleep 1
    start
}

# 脚本参数处理
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit 0

之后在 /etc/inittab 中加入一行,就可以开机自启动,代码要放在AKA-00下

app::sysinit:/etc/init.d/appinit start

网络配置

修改 /etc/wpa_supplicant.conf 文件

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
  ssid="wifi名"
  psk="wifi密码"
  priority=8
}

network={
  ssid="#####"
  psk="********"
  priority=5
}

network={
  key_mgmt=NONE
  priority=1
}

Web 界面

启动服务后,访问 http://<机器人IP>/ 进入 Web 控制界面。

control_page

功能区域

遥控器

通过方向键控制机器人运动:

  • 前进/后退:前进/后退
  • 左转/右转:左转/右转

夹爪控制

  • 抓取:控制机械臂向下夹取夹爪闭合
  • 释放:控制机械臂夹爪张开

WiFi 配置

访问 WiFi 配置页面,可重新设置机器人连接的 WiFi 网络。

详细步骤见 WiFi 配置

进入试验平台

可进入自带的实验平台进行实验

API 文档

获取 IP 地址

GET /api/ip

响应:

{
  "ip": "192.168.1.100"
}

控制接口

GET /api/control?action=<action>&speed=<speed>&time=<time>

参数

参数类型必填说明
actionstring动作类型
speedint速度 0-50
timeint持续时间(毫秒)

action 可选值

说明
up前进
down后退
left左转
right右转
stop停止
grab抓取
release释放

示例

# 前进
curl "http://<ip>/api/control?action=up&speed=30&time=1000"

# 左转
curl "http://<ip>/api/control?action=left&speed=20&time=500"

# 抓取
curl "http://<ip>/api/control?action=grab"

# 释放
curl "http://<ip>/api/control?action=release"

使用sg2002

SG2002 是一款面向 AIoT 领域的高性能、低功耗 SoC,内置多个处理器核心,集成 TPU、视频编解码器、丰富外设接口,适用于智能视觉、边缘计算等场景。

硬件架构

  • 处理器

    主处理器: RISCV C906 @ 1.0Ghz 和 ARM Cortex-A53 @ 1.0Ghz 协处理器: RISCV C906 @700Mhz

  • TPU

    算力为 1TOPS(INT8),适用于AI推理计算

  • 视频子系统

    视频输出:支持 2L MIPI DSI 输出(分辨率 2880×1620@30fps),兼容 LVDS、BT.601/656/1120 等传统接口。
    视频输入:支持 ISP(图像信号处理器),最高 5MP@30fps;支持 4L 或 2L+2L MIPI CSI 接口,兼容 DVP、Sub-LVDS、HisPI 等。
    视频编解码:解码:H.264,支持 5MP@30fps。
    编码:H.264/H.265,支持 5MP@30fps。

连接方式

  • 串口连接

    sudo apt install minicom     # 安装minicom
    minicom -D /dev/ttyUSB0 -b 115200    # 连接串口,用户名:root,密码:root
    
  • usb rndis 网口连接

    ip a show     # 查看网口信息.如果主机是10.245.118.100,则开发板是10.245.118.1。
    ssh root@10.245.118.1    # 连接开发板,密码:root
    
  • wifi 连接

    # 假设分配的地址为192.168.1.2
    ssh root@192.168.1.2    # 连接开发板,密码:root
    

配置 UART 串口

  • 验证方法

    # 开发板上执行(利用Python的pyserial库)
    python3 -m serial.tools.miniterm /dev/ttyS0 115200    # 一般 UARTx 对应 /dev/ttySx
    
    # 主机上执行(利用minicom)
    minicom -D /dev/ttyUSB0 -b 115200    # 连接串口
    
  • uart0 默认开启,无需配置

  • uart1 默认开启,无需配置。但如果要同时使用uart1和uart2, 则需要进行配置。

    devmem 0x03001070 32 0x2 # GPIOA 28 UART2 TX
    devmem 0x03001074 32 0x2 # GPIOA 29 UART2 RX
    devmem 0x03001068 32 0x6 # GPIOA 18 UART1 RX
    devmem 0x03001064 32 0x6 # GPIOA 19 UART1 TX
    
  • uart3 引脚默认复用为SDIO。而SDIO被用于wifi连接。所以在有wifi连接的情况下,不能使用uart3。

    devmem 0x030010D0 32 0x5 # GPIOP 18 UART3 CTS
    devmem 0x030010D4 32 0x5 # GPIOP 19 UART3 TX
    devmem 0x030010D8 32 0x5 # GPIOP 20 UART3 RX
    devmem 0x030010DC 32 0x5 # GPIOP 21 UART3 RTS
    

代码结构

AKA-00/
├── run.py                      # 主入口,启动 HTTP/HTTPS 服务器
├── tennis_hunter.py            # 机器人主程序(网球收集逻辑)
├── requirements.txt            # Python 依赖
├── init.sh                     # 系统初始化脚本
│
├── app/                        # Flask Web 应用
│   ├── __init__.py             # Flask 应用工厂
│   └── routes/
│       ├── api.py              # 控制 API(运动、夹爪)
│       └── frontend.py         # 前端路由
│
├── src/                        # 硬件控制模块
│   ├── arm_control/            # 机械臂控制
│   │   ├── sts3215/            # STS3215 舵机驱动
│   │   ├── mg996r/             # MG996R 舵机
│   │   └── zl/zp10s/           # ZL-ZP10S 机械臂
│   ├── base_control/
│   │   └── n20/                # N20 电机驱动
│   └── cameras/
│       └── opencv/             # 摄像头模块
│
├── frontend/                   # React 前端
│   ├── src/
│   │   ├── App.tsx             # 主应用组件
│   │   ├── pages/
│   │   │   ├── BaseControlPage.tsx   # 遥控器页面
│   │   │   └── WiFiConfigPage.tsx     # WiFi配置页面
│   │   └── ...
│   ├── package.json
│   └── vite.config.ts
│
├── models/                      # YOLOv8 模型文件
│   ├── best.onnx               # CPU 推理模型
│   └── best.rknn               # RK3588 推理模型
│
├── static/                     # Flask 静态文件
└── templates/                  # Flask 模板

关键模块

文件功能
run.pyFlask 服务器启动,支持 HTTP/HTTPS
app/__init__.pyFlask 应用工厂,初始化硬件驱动
app/routes/api.pyHTTP API,提供运动/夹爪控制
src/arm_control/舵机通信协议实现
src/base_control/n20/PWM N20电机速度控制

调试方法

串口连接

# 安装 minicom
sudo apt install minicom

# 连接串口
minicom -D /dev/ttyUSB0 -b 115200

网络连接

USB RNDIS 网口

# 查看网口
ip a show

# 如果主机是 10.245.118.100,则开发板是 10.245.118.1
ssh root@10.245.118.1

WiFi SSH

ssh root@<机器人IP>

日志查看

# 查看运行日志
cat app.log

# 实时查看日志
tail -f app.log

测试硬件

# 测试电机
python car_test.py

网络诊断

# 检测网络连通性
ping www.baidu.com

# 检测外网访问
curl www.baidu.com

HTTPS 证书

如需启用 HTTPS,需生成自签名证书:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=MyOrg/OU=MyDept/CN=localhost"

常见问题

连接问题

Q: 机器人热点无法连接?

  1. 确保机器人已通电且指示灯亮起
  2. 等待 60 秒让网络模块完全启动
  3. 确认电脑/手机 WiFi 已开启

Q: 无法 SSH 登录?

  1. 确认电脑和机器人在同一 WiFi 网络
  2. 检查 IP 地址是否正确
  3. 尝试使用串口连接调试

Q: WiFi 配置页面打不开?

浏览器访问 192.168.4.1,确认已连接机器人热点。


运行问题

Q: 启动失败,提示缺少依赖?

pip install -r requirements.txt

Q: 机械臂不响应?

  1. 检查串口连接是否正确
  2. 确认舵机供电正常
  3. 检查 /dev/ttyACM0 设备是否存在

Q: 电机不转动?

  1. 检查 GPIO 连接
  2. 确认 PWM 引脚配置正确
  3. 检查电机供电

Q: 摄像头无法识别?

  1. 检查 USB 连接
  2. 确认设备文件 /dev/video0 存在
  3. 测试摄像头:ls -l /dev/video0

其他

Q: 如何查看机器人 IP?

访问 http://<机器人IP>/api/ip

Q: 如何开启 HTTPS?

  1. 生成证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 3650 -nodes
  1. 配置环境变量:
export APP_CERT_PATH=/path/to/cert.pem
export APP_KEY_PATH=/path/to/key.pem

Q: 如何设置开机自启?

参考 机器人连接 中的开机自启配置。