栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

树莓派学习笔记——串口与摄像头

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

树莓派学习笔记——串口与摄像头

历时近乎一周终于将串口与摄像头调试完成,不知为何树莓派4B的参考资料很少,而且目前网络上可以查到的资料与调试错误的结果很多都有问题,在经历了无数的尝试之后现将总结在此写下

一、串口

树莓派内置了一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)在树莓派中,由于板载蓝牙模块,硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO(14,15),serial0是GPIO引脚对应的串口,serial1是蓝牙对应的串口。如图所示,serial0(GPIO串口)默认使用的是ttyS0(mini串口),serial1(蓝牙)使用的是ttyAMA0(硬件串口)

输入命令

ls -l /dev/serial*

默认情况下只有一个串口,我这个是已经把第二个打开了

树莓派4B的串口与3B或3B+有很大不同,树莓派4B的串口的调用配置与驱动方式系统和树莓派系统版本有关系,而且驱动的文件内容也发生了改变,在尝试的过程中发现有部分文件并不存在,或者名称发生了改变需要特别注意,armhf版本与32位的所有型号系统目前都没发现如何进行正确的配置,无论怎么去操作,mini串口与硬件串口都无法实现调换,而且树莓派4B与wiringpi库有些不兼容,可能无法安装需要去单独下载具体可以参考

树莓派学习笔记(番外篇)——调试bug及解决办法(不断更新)_天宠 貔貅的博客-CSDN博客

1.1方法一配置

可以在树莓派里面操作根目录里面的config.txt文件

sudo vi /boot/config.txt

打开文件后输入

dtoverlay=miniuart-bt.dtbo          #硬件串口与mini串口调换在树莓派3中为
                                    #dtoverlay=pi3-miniuart-bt
enable_uart=1                       #启动串口

注意树莓派4B中控制串口调换的文件时miniuart-bt.dtbo

 打开串口配置文件cmdline.txt

sudo gedit /boot/cmdline.txt

删除console=serial1,115200保存重启就可以了

sudo reboot        #重启

转换完成: 

 配置完成后可利用一下代码段结合电脑的串口助手进行验证:

#include 
#include 
#include 
#include 
#include 
#include 
 
int main()
{
	char buf[64] = {''};
	int n_read;
	wiringPiSetup();
	
	int fd =serialOpen("/dev/ttyAMA0",115200); 
	

		while(1){
			n_read = read(fd,buf,sizeof(buf));
			if(n_read != 0)
            {
			printf("data %dB:%sn",n_read,buf); 			 
            }	
	        else
            {
			serialPrintf(fd,"hello world!!n"); 
			delay(3000);
			}
               sleep(1);            
            }
 
	return 0;
}

1.2方法二

    如果觉得在树莓派中操作有些不方便可以在系统烧录后在系统虚拟出的系统盘进行操作,在系统盘中找到cmdline.txt文件和config.txt文件进行以上操作,就不用在进行重启,更改完成后可直接使用。

二.摄像头
摄像头使用的是mjpg-streamer对摄像头进行驱动

2.1配置步骤:

打开控制台:

    sudo raspi-config

  打开摄像头:

 

重启:

sudo reboot

2.2:安装所需模块

sudo apt-get update                     #更新软件列表
sudo apt-get upgrade                    #更新软件
sudo apt-get install subversion
sudo apt-get install libjpeg62-turbo-dev
                                        #JPEG支持库不同的系统可能不同,树莓派
                                        #3B是libjpeg8-devsudo,
                                        #4B的armfh支持libjpeg9-devsudo
                              #可以先运行这条命令,如若系统不支持时根据系统会提示正确的库型号安装
sudo apt-get install imagemagick         #安装imagemagick图像处理插件
sudo apt-get install libv4l-dev          #安装CSI摄像头插件uv4l不同版本的下载地址不同
sudo apt-get install cmake               #下载编译工具
sudo apt-get install git                 #安装git插件

2.3从git克隆一个源码

git clone https://github.com/jacksonliam/mjpg-streamer.git

2.4进入下载目录后进入左侧路径

cd mjpg-streamer/mjpg-streamer-experimental

2.5编译

make all

2.6安装

sudo make install

2.7如果使用的是USB摄像头此时只需要运行start.sh文件即可(这一点很奇怪,再后来验证过程中发现有时4B可以直接通过这个命令打开树莓派摄像头而不是USB摄像头,如果使用的是4B建议先用这个命令试一下,我使用的是arm64版本的系统,而且根据UV4l官网https://www.linux-projects.org/uv4l/installation/的描述UVl4好像并不支持4B的64位系统,而且在安装时也会提示不支持这一点很奇怪,如果调不出来,再进行下面2.8的操作)

./start.sh

否则需要更改此文件

sudo vi start.sh

 将./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
中的"./input_uvc.so"改为"./input_raspicam.so"

注意:此方法只可以在树莓派3B系列中使用

2.8在树莓派4B中需要安装uv4l驱动:

2.8.1安装必要的库:

    wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc && sudo apt-key add ./lrkey.asc

2.8.2修改sources list

    sudo vi /etc/apt/sources.list

2.8.3在最后加上一行:

    deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/stretch stretch main

2.8.4继续安装UV4L:

    sudo apt-get update
    sudo apt-get install uv4l uv4l-raspicam
    sudo reboot

2.8.5重启之后:

    sudo pkill uv4l
    sudo apt-get update
    sudo apt-get install uv4l-uvc
    sudo apt-get install uv4l-xscreen
    sudo apt-get install uv4l-mjpegstream
    sudo reboot

2.8.6再一次重启之后:

    sudo modprobe bcm2835-v4l2
    ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -n -y -f 25 -r 640x480" -o "./output_http.so -n -w /usr/local/www"

 如果在此过程中报错参考:

树莓派学习笔记(番外篇)——调试bug及解决办法(不断更新)_天宠 貔貅的博客-CSDN博客

注意: 

    sudo modprobe bcm2835-v4l2       #这条命令是每一次都要先执行然后才可以打开摄像头

2.9运行

./start.sh

然后打开浏览器输入以下地址即可以查看摄像头

http://raspi_IP:8080/index.html
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/847371.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号