0
点赞
收藏
分享

微信扫一扫

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

历时近乎一周终于将串口与摄像头调试完成,不知为何树莓派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 <stdio.h>
#include <wiringPi.h>
#include <wiringSerial.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

int main()
{
char buf[64] = {'\0'};
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:%s\n",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-getinstall libjpeg8-dev #JPEG支持库不同的系统可能不同,树莓派
#3B是libjpeg8-devsudo,
#4B的armfh支持libjpeg9-devsudo
#可以先运行这条命令,如若系统不支持时根据系统会提示正确的库型号安装
sudo apt-getinstall imagemagick #安装imagemagick图像处理插件
sudo apt-getinstall libv4l-dev #安装CSI摄像头插件uv4l不同版本的下载地址不同
sudo apt-getinstall cmake #下载编译工具
sudo apt-getinstall 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文件即可

./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系列中使用,树莓派4B中由于V4L driver不支持的原因,所以更改文件的方法无效,需要进行2.8中的操作:

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/ wheezy 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博客

2.9运行

./start.sh

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

http://raspi_IP:8080/index.html

注意:

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

相关推荐

0 条评论