由于保密原因,只公开文档

Device Size

1. 介绍

  • 本项目用到了以下软件包:
    • WiringNP This is a GPIO access library for NanoPi. It is based on the WiringOP for Orange PI which is based on original WiringPi for Raspberry Pi.
    • Gstreamer gstreamer跟ffmpeg一样,也是一个媒体框架,可以实现采集,编码,解码,渲染,滤镜等一条龙的媒体解决方案。。
    • EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库。

2. 使用

  • 运行环境:NanoPi NEO
$ git clone https://github.com/ROV-Master/rovmaster-embedded
$ cd rovmaster-embedded

2.1 安装相关依赖

在第一次运行程序之前,务必执行(build.sh 自动化安装依赖库)):

$ chmod +x build.sh
$ ./build.sh

build.sh 中安装相关依赖库

2.2 编译与执行

由于使用 WiringNP 库,需要 root 权限:

$ make 
$ sudo ./rovmaster

2.3 注意事项

2.3.1 设备未打开

若执行时提示无法打开某设备,输入 sudo npi-config > Advanced Options 中使能相关设备:

$ sudo npi-config

若系统时间不对,为时区未进行更改: 在 npi-config > Localisation Options > Change Timezone 中选择修改。

2.3.2 lib库编译

当修改了lib库中文件,需要进行重新编译时,进行编译选择:

  • 1.WiringNP
  • 2.easylogger
  • 3.Gstreamer

启动 compile.sh 脚本,输入对应库的编号,进行自动化编译,并自动拷贝相关库

$ ./compile.sh

2.3.3 视频推流

视频推流命令在 video.sh 脚本中,指定相关视频参数,在其中修改摄像头视频推流参数即可。

3.协议

编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
功能 包头 包头 数据长度位 深度锁定位 方向锁定位 X轴动力模拟量 Y轴动力模拟量 垂直运动方向位 旋转运动方向位 油门量 灯亮度控制位 变焦摄像头动作位 云台控制位 机械臂控制位 树莓派开机位 Reserve Reserve Reserve 启动停止位 校验位
取值 AA 55 10 0/1 0/1 0~255 0~255 0~255 0~255 0~3 0~3 1/2/11/12 x x x SUM
数组编号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
  • 数据皆为16进制
  • 以X正方向为机器人正面。

4. 进度

  • 驱动模块

    • ADS1118 (ADC)
      • 电压检测 (待实际测试)
      • 电流检测 (待实际测试)
    • PCA9685 (PWM)
    • 深度传感器
      • SPL1301
      • MS5837
    • 系统设备状态
      • CPU使用率、温度
      • 内存状态
      • 硬盘状态
      • 实时网速
    • IO设备
      • RGB
      • 按键
      • 蜂鸣器
    • PWM设备 (待实际测试)
      • 云台
      • 探照灯
      • 机械臂
    • OLED
    • 九轴
    • 音频MIC
  • 功能模块

    • OLED状态显示
    • 视频推流
    • 数据通信
      • 下行-控制数据
      • 上行-ROV状态数据
    • 系统自检
    • 日志记录
    • 传感器融合
  • 控制模块

    • 手柄控制 (待实际测试)
    • 定深控制 (待实际测试)
    • 定向控制
    • 变焦摄像头控制