- 本项目用到了以下软件包:
- 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.
- Mjpg-streamer mjpg-streamer是一个命令行应用程序,可将JPEG帧从一个或多个输入插件复制到多个输出插件,从一个UVC内核摄像头读取内容,然后将它推送到本地的端口上。
- EasyLogger 是一款超轻量级(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志库。
- 运行环境:NanoPi NEO
$ git clone https://github.com/ROV-Master/rovmaster-embedded
$ cd rovmaster-embedded
在第一次运行程序之前,务必执行(build.sh
自动化安装依赖库)):
$ chmod +x build.sh
$ ./build.sh
build.sh 中安装相关依赖库
由于使用 WiringNP 库,需要 root 权限:
$ make
$ sudo ./rovmaster
若执行时提示无法打开某设备,输入 sudo npi-config
> Advanced Options
中使能相关设备:
$ sudo npi-config
若系统时间不对,为时区未进行更改:
在 npi-config
> Localisation Options
> Change Timezone
中选择修改。
当修改了lib库中文件,需要进行重新编译时,进行编译选择:
- 1.WiringNP
- 2.easylogger
- 3.mjpg-streamer
启动 compile.sh
脚本,输入对应库的编号,进行自动化编译,并自动拷贝相关库
$ ./compile.sh
视频推流命令在 video.sh
脚本中,指定相关视频参数,在其中修改摄像头视频推流参数即可。
-
驱动模块
- ADS1118 (ADC)
- 电压检测 (待实际测试)
- 电流检测 (待实际测试)
- PCA9685 (PWM)
- 深度传感器
- SPL1301
- MS5837
- 系统设备状态
- CPU使用率、温度
- 内存状态
- 硬盘状态
- 实时网速
- IO设备
- RGB
- 按键
- 蜂鸣器
- PWM设备 (待实际测试)
- 云台
- 探照灯
- 机械臂
- OLED
- 九轴
- 音频MIC
- ADS1118 (ADC)
-
功能模块
- OLED状态显示
- 视频推流
- 数据通信
- 下行-控制数据
- 上行-ROV状态数据
- 系统自检
- 日志记录
- 传感器融合
-
控制模块
- 手柄控制 (待实际测试)
- 定深控制 (待实际测试)
- 定向控制
- 变焦摄像头控制