【阿里云】图像识别 摄像模块 语音模块

USB 摄像头模块测试及配置

  • 一、首先将 USB 摄像头插入到 Orange Pi 开发板的 USB 接口中
  • 二、然后通过 lsmod 命令可以看到内核自动加载了下面的模块
  • 三、通过 v4l2-ctl 命令可以看到 USB 摄像头的设备节点信息为 /dev/video0
  • 四、使用 fswebcam 测试 USB 摄像头
  • 五、使用 motion 测试 USB 摄像头
  • 六、使用 mjpg-streamer 测试 USB 摄像头
  • 七、后续指令、脚本、开机自启

语音模块配置烧录及测试

USB 摄像头模块测试及配置

一、首先将 USB 摄像头插入到 Orange Pi 开发板的 USB 接口中

二、然后通过 lsmod 命令可以看到内核自动加载了下面的模块

lsmod 命令用于列出当前加载的内核模块。它会显示已加载模块的信息,包括模块的名称、大小、使用次数等。

orangepi@orangepi:~$ lsmod
Module Size Used by
uvcvideo 106496 0

如果你在终端上执行 lsmod 命令,它会输出当前加载的内核模块列表。

lsmod

示例输出可能如下:

Module                  Size  Used by
nls_utf8               12557  1
isofs                  39835  1
binfmt_misc            17213  1
snd_bcm2835            24427  0
snd_pcm                98501  1 snd_bcm2835
snd_timer              23968  1 snd_pcm
snd                    70032  3 snd_bcm2835,snd_timer,snd_pcm
uio_pdrv_genirq        12958  0
uio                    17843  1 uio_pdrv_genirq
fixed                  12556  0
i2c_dev                12848  0

每一行表示一个加载的模块,其中包括模块的名称、大小、以及使用该模块的其他模块等信息。

请注意,lsmod 命令通常需要 root 权限才能执行,你可能需要使用 sudo lsmod
在这里插入图片描述
在这里插入图片描述

三、通过 v4l2-ctl 命令可以看到 USB 摄像头的设备节点信息为 /dev/video0

orangepi@orangepi:~$ sudo apt update
orangepi@orangepi:~$ sudo apt install -y v4l-utils
orangepi@orangepi:~$ v4l2-ctl --list-devices
USB 2.0 Camera (usb-sunxi-ehci-1):
/dev/video0

在这里插入图片描述

四、使用 fswebcam 测试 USB 摄像头

1. 安装 fswebcam

orangepi@orangepi:~$ sudo apt update
orangepi@orangepi:~$ sudo apt-get install -y fswebcam

2. 安装完 fswebcam 后可以使用下面的命令来拍照

a) -d 选项用于指定 USB 摄像头的设备节点
b) --no-banner 用于去除照片的水印
c) -r 选项用于指定照片的分辨率
d) -S 选项用设置于跳过前面的帧数
e) ./image.jpg 用于设置生成的照片的名字和路径

orangepi@orangepi:~$ sudo fswebcam -d /dev/video0 --no-banner -r 1280x720 -S 5 ./image.jpg

在这里插入图片描述

3. 在服务器版的 linux 系统中,拍完照后可以使用 scp 命令将拍好的图片传到Ubuntu PC 上镜像观看

orangepi@orangepi:~$ scp image.jpg test@192.168.1.55:/home/test(根据实际情况修改 IP 地址和路径)

在这里插入图片描述

4. 在桌面版的 linux 系统中,可以通过 HDMI 显示器直接查看拍摄的图片

五、使用 motion 测试 USB 摄像头

1. 安装摄像头测试软件 motion

orangepi@orangepi:~$ sudo apt update
orangepi@orangepi:~$ sudo apt install -y motion

2. 修 改 /etc/default/motion 的 配 置 , 将 start_motion_daemon=no 修 改 为start_motion_daemon=yes

注意,Ubuntu22.04 不用设置这一步。

orangepi@orangepi:~$ sudo sed -i "s/start_motion_daemon=no/start_motion_daemon=yes/" /etc/default/motion

3. 修改/etc/motion/motion.conf 的配置

orangepi@orangepi:~$ sudo sed -i "s/stream_localhost on/stream_localhost off/" /etc/motion/motion.conf

4. 另外还需确保/etc/motion/motion.conf 的 videodevice 设置为了 USB 摄像头对应的设备节点

注意,video 的序号不一定都是 video0,请以实际看到的为准。

orangepi@orangepi:~$ sudo vim /etc/motion/motion.conf
# Video device (e.g. /dev/video0) to be used for capturing. 
videodevice /dev/video0

5. 然后运行 motion

orangepi@orangepi:~$ sudo motion -b

6. 使用 motion 前请先确保 Orange Pi 开发板能正常连接网络,然后通过 ip addrshow 命令获取开发板的 IP 地址

7. 然后在和开发板同一局域网的 Ubuntu PC 或者 Windows PC 或者手机的火狐浏览器中输入【开发板的 IP 地址:8081】就能看到摄像头输出的视频了

六、使用 mjpg-streamer 测试 USB 摄像头

1. 下载 mjpg-streamer

a) Github 的下载地址:

orangepi@orangepi:~$ git clone https://github.com/jacksonliam/mjpg-streamer

b) Gitee 的镜像下载地址为:

orangepi@orangepi:~$ git clone https://gitee.com/leeboby/mjpg-streamer

2. 安装依赖的软件包

a) Ubuntu 系统

orangepi@orangepi:~$ sudo apt-get install -y cmake libjpeg8-dev

b) Debian 系统

orangepi@orangepi:~$ sudo apt-get install -y cmake libjpeg62-turbo-dev

3. 编译安装 mjpg-streamer

orangepi@orangepi:~$ cd mjpg-streamer/mjpg-streamer-experimental
orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ make -j4
orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ sudo make install

4. 然后输入下面的命令启动 mjpg_streamer

注意,video 的序号不一定都是 video0,请以实际看到的为准。
orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ export LD_LIBRARY_PATH=.
orangepi@orangepi:~/mjpg-streamer/mjpg-streamer-experimental$ sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -u -f 30" -o "./output_http.so -w ./www"

这里可以根据里面自带shell脚本来配置
在这里插入图片描述

修改 start.sh脚本,将start.sh里的:

./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"

字段修改为:

./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -u -f 30" -o "./output_http.so -w ./www" 
#注意这里的video1需要根据实际情况修改

在这里插入图片描述
在这里插入图片描述
这样就可以通过执行./start.sh运行摄像头了。

5. 然后在和开发板同一局域网的 Ubuntu PC 或者 Windows PC 或者手机的浏览器中输入【开发板的 IP 地址:8080】就能看到摄像头输出的视频了

在这里插入图片描述

6. 推荐使用 mjpg-streamer 来测试 USB 摄像头,比 motion 流畅很多,使用mjpg-streamer 感觉不到任何卡顿

七、后续指令、脚本、开机自启

拍照指令

sudo fswebcam -d /dev/video0 --no-banner -r 1280x720 -S 5 ./image.jpg
wget http://192.168.1.254:8080/?action=snapshot -O /tmp/garbage.jpg

shell脚本garbage.sh

# !/bin/bashcd /home/orangepi/Image_recognition/mjpg-streamer/mjpg-streamer-experimental/
./start.sh

在这里插入图片描述

开机自启动 /etc/xdg/autostart路径.desktop文件

在 Linux 中,/etc/xdg/autostart 路径通常包含 .desktop 文件,这些文件用于配置在用户登录时自动启动的应用程序。这些文件使用桌面文件格式,以下是该目录下的 .desktop 文件的简单解析:

  1. 桌面文件格式: .desktop 文件是桌面应用程序的启动器文件,使用 FreeDesktop 标准的格式。它包含了应用程序的名称、图标、执行命令等信息。

  2. 样例 .desktop 文件: 以下是一个简单的 .desktop 文件的例子:

    [Desktop Entry]
    Name=MyApp
    Exec=/path/to/myapp
    Icon=myapp-icon
    Type=Application
    
    • Name: 应用程序的显示名称。
    • Exec: 启动应用程序的命令。
    • Icon: 应用程序的图标文件名。
    • Type: 应用程序类型,可以是 ApplicationLink 等。
  3. Autostart 目录: /etc/xdg/autostart 目录中的 .desktop 文件用于配置在用户登录时自动启动的应用程序。这些文件指定了在用户登录后要运行的命令。

  4. 用户自定义 Autostart 目录: 用户的 autostart 目录通常位于 ~/.config/autostart。用户可以在这个目录中放置他们自己的 .desktop 文件,配置在他们登录时自动启动的应用程序。

  5. 启动时执行命令: .desktop 文件中的 Exec 字段指定了在启动时执行的命令。这可以是应用程序的可执行文件或者是一个脚本。

注意:在 /etc/xdg/autostart 目录中的 .desktop 文件通常是系统范围的,而用户的 autostart 目录中的文件是用户特定的。系统级别的 autostart 文件影响所有用户,而用户级别的 autostart 文件只影响特定用户。

mjgp.besktop

在这里插入图片描述

语音模块配置烧录及测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/155676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chrome内置路径合集

设置黑夜模式: 输入网址:chrome://flags/ 搜索dark 改为enable 实验项目路径 chrome://flags/ 可用来启用或者关闭某些 Chrome 的实验功能 chrome://settings 将快速打开 Chrome 浏览器的设置页面,页面的内容分类划分为基础和高级设置选项 …

以太网_底层

【实物图】 【网线接口】 MAC(媒体访问控制器):控制数据的收发和管理,和用户层打交到;通过MII/RMII、SMI接口和PHY进行通信。 PHY(以太网物理层收发器):中间体,负责收发信号的转换 常见PHY芯片有:LAN8720…

PIL如何批量给图片添加文字水印?

PIL如何批量给图片添加文字水印? 1 简单引入2 关于PIL3 本文涉及的PIL的几个类4 实现原理5 实现过程5.1 原始图片5.2 导入相关模块5.3 初始化数据5.4 水印字体设置5.5 打开原始图片并新建存储对象5.6 计算图片和水印的大小5.7 选择性设置水印文字5.8 绘制文字并设置…

基于yolov8的车牌检测训练全流程

YOLOv8 是Ultralytics的YOLO的最新版本。作为一种前沿、最先进(SOTA)的模型,YOLOv8在之前版本的成功基础上引入了新功能和改进,以提高性能、灵活性和效率。YOLOv8支持全范围的视觉AI任务,包括检测, 分割, 姿态估计, 跟踪, 和分类。这种多功能…

Java项目实战《苍穹外卖》 三、登录功能

测测你是什么人格吧,地址: MBTI 16种人格测试官网 系列文章目录 苍穹外卖是黑马程序员2023年的Java实战项目,作为业余练手用,需要源码或者课程的可以找我,无偿分享 Java项目实战《苍穹外卖》 一、项目概述Java项目实战…

Redis从入门到精通(三)-高阶篇

文章目录 0. 前言[【高阶篇】3.1 Redis协议(RESP )详解](https://blog.csdn.net/wangshuai6707/article/details/132742584)[【高阶篇】3.3 Redis之底层数据结构简单动态字符串(SDS)详解](https://blog.csdn.net/wangshuai6707/article/details/131101404)[【高阶篇】3.4 Redis…

Java实现堆算法

堆是一种特殊的数据结构,它是一棵完全二叉树,且满足堆的性质:对于每个节点,它的值都不小于(或不大于)它的孩子节点的值。根节点的值就是堆中的最大值(或最小值)。 Java中提供了一个…

自然语言处理:Transformer与GPT

Transformer和GPT(Generative Pre-trained Transformer)是深度学习和自然语言处理(NLP)领域的两个重要概念,它们之间存在密切的关系但也有明显的不同。 1 基本概念 1.1 Transformer基本概念 Transformer是一种深度学…

HarmonyOS基础组件之Button三种类型的使用

简介 HarmonyOS在明年将正式不再兼容Android原生功能,这意味着对于客户端的小伙伴不得不开始学习HarmonyOS开发语言。本篇文章主要介绍鸿蒙中的Button使用。 HarmonyOS中的Button相较于Android原生来说,功能比较丰富,扩展性高,减…

mysql binlog

binlog日志介绍 什么是 binlog binlog是server层共有的,是记录的数据更新历史,主要用来做主从同步和数据的实时备份。 binlog 怎么开启 mysql的配置文件添加相关配置并重启mysql # 1. linux打开mysql配置文件 vi /etc/my.cnf# 2. 添加binlog配置 [mysql…

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用

STC单片机选择外部晶振烧录程序无法切换回内部晶振导致单片机不能使用 1.概述 在学习51单片机过程中,选择了STC的12C2052AD型号单片机作为入门芯片。前几个课题实验使用默认的内部晶振烧录程序,运行都没有问题。 选择一个LED亮度渐变的课题做实验&…

nvm管理node版本过程记录

写在前面 今天记录一下windows电脑安装nvm同时使用nvm管理node版本的,为什么写windows版本的呢?因为mac版本的基本上是不需要进行记录的,相对windows的安装是简单很多的,行了废话不多说,我们直接开始 安装nvm nvm下载…

redis运维(十二)

一 位图 ① 概念 1、说明:位图还是在操作字符串2、位图玩字符串在内存中存储的二进制3、ASCII字符通过映射转化为二进制4、操作的是字符串value ② ASCII字符铺垫 1、控制ASCII字符 2、ASCII可显示字符 ③ SETBIT 细节: setbit 命令的返回值是之…

C++ 多态和虚函数详解

本文章内容来源于C课堂上的听课笔记 多态基础 多态(Polymorphism)是面向对象编程中的一个重要概念,它允许使用统一的接口来表示不同的对象和操作。多态性有两种主要形式:静态多态性(编译时多态性)和动态多…

华为无线ac+fit三层组网,每个ap发射不同的业务vlan

ap管理dhcp在ac控制器上,业务dhcp在汇聚上 配置WLAN业务 (1)配置VAP模板 • 配置员工网络的VAP模板(employee) [AC-wlan-view] security-profile name employee //创建名为“employee”的安全模板 [AC-wlan-sec-prof-…

Git面经

Git八股文 第一章 git基础 1.1 什么是git git是一款免费的开源的分布式版本控制系统 1.2 为什么要使用git 为了保留之前的所有版本,方便回滚或修改 1.3 集中化版本控制系统和分布式版本控制系统的区别 集中化版本控制系统如svn,客户端连接到中央服…

C语言——用递归函数计算n!

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 比别人多一点努力,你…

国产化区块链平台-FISCO BCOS 区块链

目录 FISCO BCOS 版本信息 系统概述 关键特性 组件服务 开发运维工具 FISCO BCOS作为一种企业级区块链平台,为企业和组织提供了高性能、隐私保护和可定制的区块链解决方案。其强大的架构和丰富的功能使得企业能够在安全可信的环境中开展区块链应用&#xff0…

基数排序详解(LSD方法+MSD方法+思路+图解+代码)

文章目录 基数排序一、基数排序概念1.LSD排序法(最低位优先法)2.MSD排序法(最高位优先法) 基数排序 一、基数排序 概念 基数排序是一种非比较型整数排序算法 将整数按位数切割成不同的数字,然后按每个位数分别比较 …

小程序开发平台源码系统 各行各业都可使用 功能强大 附带完整的搭建教程

当前,数字化转型已经成为各行各业的重要趋势,而小程序作为数字化转型的重要工具之一,具有广泛的应用前景。因此,我们开发了这个源码系统,以帮助各行各业快速开发出符合需求的小程序。 以下是部分代码示例:…