野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 433|回复: 1

[经验\资料] 野火[鲁班猫]卡片电脑创意氛围赛(第二期)基于LubanCat1的No...

[复制链接]
发表于 2023-11-18 08:20:40 | 显示全部楼层 |阅读模式
本帖最后由 flytianya2010 于 2023-11-22 23:28 编辑

基于LubanCat1的Node-Red云台视频物联网监控系统

一、背景介绍
现在网上买的摄像头,除了本地存储功能外,云端存储就需要缴费了。或者要通过供应商的服务器,个人隐私得不到保障。所以迫切想搭建自己一台私有云摄像头,借助强大的鲁班猫1开发板和Node-Red的各类功能让我实现起来更加方便。
二、系统框图设计如下:
利用鲁班猫1开发板实现远程视频监控,具体实现如下:1,鲁班猫1开发板上安装NodeRed软件,并安装摄像头驱动组件,通过USB连接摄像头,通过组件调取摄像头图像。2,利用鲁班猫1开发板上的PWM功能实现云台功能,通过nodered的交互界面实现控制摄像头转动。4,通过nodered组件连接腾讯云,使用微信腾讯连连小程序控制云台和查看一些监控数据的参数。
图d片1.png

系统框图

三、硬件设计
1、鲁班猫1开发板,运行Debian linux操作系统。
微信截图_20231113225534.png


主要性能参数

微信截图_20231113225615.png

2、海康威视USB摄像头,实现监控。
图片12.png

3、HDMI显示屏,用来查看摄像头图像和操作linux系统桌面,方便快捷。
] 图片1.png

4、舵机:通过开发板的PWM引脚控制转向,实现视频监控的云台功能。
图片2.png

舵机连接的圆盘小云台

微信图片_20231118142534.png

5、WIFI模块。
[ 图片3.png

四、软件设计
鲁班猫1开发板,运行Debian linux操作系统。
连接腾讯云平台:
图片4.png

选择物联网开发平台:
图片5.png

创建项目:
图片6.png

创建产品
图片7.png

使用Node-Red连接腾讯云平台、打开摄像头、输出指令控制linux开发板输出PWM控制舵机实现摄像头云台功能。实现摄像头的视频录制和下载查看。其中实现PWM输出参考该链接文章:https://doc.embedfire.com/linux/ ... ux_app/pwm/pwm.html
主要代码如下:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <sys/types.h>
  4. #include <sys/stat.h>
  5. #include <fcntl.h>
  6. #include <unistd.h>
  7. #include <string.h>


  8. static char pwm_path[75];
  9. static int pwm_config(const char *attr, const char *val)    //配置PWM
  10. {
  11.     char file_path[100];
  12.     int len;
  13.     int fd;
  14.     sprintf(file_path, "%s/%s", pwm_path, attr);
  15.     if ((fd = open(file_path, O_WRONLY))< 0) {
  16.         perror("open error");
  17.         return fd;
  18.     }
  19.     len = strlen(val);
  20.     if (len != write(fd, val, len)) {
  21.         perror("write error");
  22.         close(fd);
  23.         return -1;
  24.     }
  25.     close(fd); //关闭文件
  26.     return 0;
  27. }


  28. int main(int argc, char *argv[])
  29. {
  30.     /* 校验传参 */
  31.     if (4 != argc) {
  32.         fprintf(stderr, "usage: %s <id> <period> <duty>\n",argv[0]);
  33.         exit(-1);
  34.     }
  35.     /* 打印配置信息 */
  36.     printf("PWM config: id<%s>, period<%s>, duty<%s>\n",argv[1], argv[2],argv[3]);

  37.     /* 导出 pwm */
  38.     sprintf(pwm_path, "/sys/class/pwm/pwmchip%s/pwm0", argv[1]);
  39.     //如果 pwm0 目录不存在, 则导出
  40.     if (access(pwm_path, F_OK)) {
  41.         char temp[100];
  42.         int fd;
  43.         sprintf(temp, "/sys/class/pwm/pwmchip%s/export", argv[1]);
  44.         if (0 > (fd = open(temp, O_WRONLY))) {
  45.             perror("open error");
  46.             exit(-1);
  47.         }
  48.         //导出 pwm
  49.         if (1 != write(fd, "0", 1)) {
  50.             perror("write error");
  51.             close(fd);
  52.             exit(-1);
  53.         }
  54.         close(fd); //关闭文件
  55.     }
  56.    
  57.     /* 配置 PWM 周期 */
  58.     if (pwm_config("period", argv[2]))
  59.         exit(-1);
  60.     /* 配置占空比 */
  61.     if (pwm_config("duty_cycle", argv[3]))
  62.         exit(-1);
  63.     /* 使能 pwm */
  64.     pwm_config("enable", "1");
  65.     getchar();
  66.     /* 退出程序 */
  67.     exit(0);
  68. }
复制代码

  1. gcc pwm_test.c -o pwm_test
  2. #设置pwm周期 , pwm占空比

  3. #./pwm_test pwmchip2 周期 占空比
  4. sudo ./pwm_test 2 1000000 500000
复制代码

图片8.png

发送根据以上的PWM指令复制到以下节点中,第一个节点是滑轨输出的实时数据是用来更新PWM指令中的最后一个占空比的参数。


野火论坛202311222250514738..png


局域网内通过访问鲁班猫1的IP打开的界面


图片10.png

鲁班猫1屏幕显示Node-Re UI界面,可以实时显示监控视频,视频有录制、下载等功能,可以和linux命令终端进行数据交互。
微信图片_20231118142838.jpg

手机端腾讯小程序通过腾讯云实现云端下发数据到鲁班猫开发板控制输出PWM调整舵机转动角度。以下小程序操作界面是通过腾讯云的面板功能编辑的。编辑好之后,腾讯连连小程序就会自动同步该界面。编辑方便快捷。

图片11.png

腾讯连连小程序主界面

图片13.png

腾讯连连小程序控制界面

五、视频演示

六、总结
很幸运能够参加这个比赛,让我对linux开板的应用有了更深的了解。也越发觉得Node-Red在linux上的运行实在是太方便了,物联网需要的功能,基本都能在这上面找到。开发板的强大功能让我开发起来得心应手,摄像头图像无任何卡顿,云台控制响应快。
将以下node-red节点信息导入就可以看到上面的内容,会提示需要安装相关节点。
野火论坛202311222245121916..png 野火论坛202311222245505220..png
代码附件
NodeRedflow.rar (4.89 KB, 下载次数: 5)






图片7.png
图片1.png
图片3.png
图片9.png
回复

使用道具 举报

发表于 2023-11-20 19:21:46 | 显示全部楼层
真不错   
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 16:07 , Processed in 0.121022 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表