分类 各种DIY 下的文章

注意:本教程仅用于libcamera操作。如果使用OpenCV操作,请勿配置本文第三节的内容!在完成第1、2、4节后,OpenCV可正常使用!

背景

最近为新买的树莓派4B安装摄像头。然而网上的教程非常老旧,仍然使用旧版系统进行配置,仍然使用raspistill命令来进行操作,这对于新版树莓派系统来说,会产生command not found报错。同时,网上关于无法使用新命令libcamera调用摄像头的排错教程异常缺乏,同时很多教程互相抄,也许能解决问题,但是多了很多额外配置,是否会对今后产生影响不明确。本教程旨在解决上述问题。
本文可解决以下问题:

  • 树莓派4B配置CSI摄像头
  • 使用libcamera命令操作树莓派摄像头
  • 解决raspistill command not found问题
  • 解决安装摄像头后VNC黑屏并显示Cannot currently show the desktop问题

1 安装摄像头

1、将摄像头安装到树莓派上
首先,查看排线最底部,会发现一面有蓝色胶带,另一面有纹路。
蓝色胶带一面:
有蓝色胶带一面

纹路一面:
有纹路一面

注意,本示意图为3B的示意图,4B的部件有所不同,请根据实际情况调整)找到红圈中的CSI接口,向上轻轻拉黑色的部分,打开CSI接口。然后将蓝色胶带一面朝向网线接口,有纹路一面朝向电源接口,插入到CSI接口中。如示意图所示:
示意图

其中,蓝圈1表示网线接口,蓝圈2右侧为电源接口(注意,本示意图为3B的示意图,4B的部件有所不同,请根据实际情况调整),中间红圈表示CSI接口

2 打开摄像头模块

1、在树莓派终端中输入以下命令,打开配置:

sudo raspi-config

效果如图所示:

然后选择上图中的第三项。
打开如下图所示的新界面,然后选择第一项,如图所示:

在新界面中选择Yes。返回后选择Finish,然后Reboot。此时摄像头已经打开,但还不能使用。

3 配置摄像头

注意:本教程仅用于libcamera操作。如果使用OpenCV操作,请勿配置本文第三节的内容!在完成第1、2、4节后,OpenCV可正常使用!
1、在终端中输入:

sudo nano /boot/config

在最下面添加下面的语句:

dtoverlay=ov5647

注意,上面的命令仅适用于用长长尾巴的CSI摄像头(如上面的图片),非此摄像头,在命令中替换成其他参数,如下表所示。

保存后重启。
重启后,在VNC下使用下面两个命令进行测试:

libcamera-hello
libcamera-jpeg -o test.jpg

其中第一个命令是检测摄像头,会打开界面,显示几秒摄像头拍摄内容后就关闭了。第二个命令是拍摄一张图片,保存在当前目录下面。

4 解决安装摄像头后VNC打不开的问题

使用如下命令

sudo nano /boot/config.txt

将hdmi_force_hotplug=1前面的#删掉即可。如图所示:

然后,输入以下命令进入配置:

sudo raspi-config

效果如图所示:

然后选择上图中的第二项。进去后,将分辨率调到最大,然后保存后reboot树莓派,问题顺利解决。

背景

闲来无事,在咸鱼上买了一个树莓派4B。买来配件都十分齐全,于是就想着启动来测试一下。下面是树莓派无显示器第一次启动的全过程,包含安装系统。
网上的教程大多需要额外使用显示器、鼠标、键盘之类的外设。然而,树莓派本身就是便捷灵活开发的代表,在真实开发环境下,一般不可能有单独的显示器,通常是只有笔记本电脑。所以,大部分网上的教程根本不适用。
本文提供在最通常情况下从新启动树莓派的教程。

1.2所需软件

(1)树莓派官方系统镜像
下载地址:https://www.raspberrypi.com/software/operating-systems/
选择Raspberry Pi OS with desktop即可。
在这里插入图片描述

(3)镜像写入软件win32diskimager-1.0.0-install
下载地址:https://sourceforge.net/projects/win32diskimager/
(4)网络IP地址扫描工具Advanced IP Scanner
下载地址:https://www.advanced-ip-scanner.com/cn/
(5)远程连接软件Xshell
下载地址:https://www.netsarang.com/zh/xshell/
(6)图形化远程连接软件VNC Viewer
下载地址:https://www.realvnc.com/en/connect/download/viewer/

2 烧录系统

1、将TF卡插入读卡器,然后插入笔记本电脑。
2、用格式化工具SDFormatter将TF卡格式化。在select card中选择TF卡对应的盘符(一般已经自动读取好了),然后选中Quick format,然后点击Format即可。
软件界面3、将下载好的系统镜像烧录进TF卡中。在映像文件中选中下载好的文件,在设备中选中TF卡对应的盘符,点击写入按钮。等待写入完成。
软件界面
4、烧录完成后,进入TF的根目录,新建一个名为ssh的文件,以便进行远程连接。
注意,该文件名为ssh,无扩展名。有些电脑自动隐藏扩展名,所以需要自行设置显示扩展名,然后将扩展名删除。
5、同样在此目录下,新建文件wpa_supplicant.conf,内容如下。其中,ssid是WIFI热点名称,psk是WIFI密码。

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
    ssid="Wifi名称"
    psk="密码"
    priority=1
}

6、同样在此目录下,新建创建 userconf.txt文件,该文件内输入用户名和密码的密文,如下所示,用来配置用户名和密码。注意:这一步为最新的系统新增,请务必按此操作,否则无法登录系统!

pi:$6$4ilokQRQxmURT.py$aJWBQ5yniJJPwV3CKawYJcnSK5JZGhrVZYF3K4omRUFv6KL0MysEH7F4NZRMNMcYF.U3xsQvWrx7ZL2GKxuv.1

3 启动树莓派

1、将TF卡装入树莓派中。
2、连接电源线,并将插头通电。此时,红灯亮起,绿灯会不规律闪烁直至熄灭。
此时树莓派情况如图所示(此图为3B+图片,此时只插了一根线)。

3、连接网线。一头连接树莓派4B的网线接口,一头连接笔记本电脑。
4、打开控制面板-》网络和Internet-》查看网络状态和任务-》更改适配器设置。
在这里插入图片描述

右击自己的wifi,选择属性,然后点击共享选项卡,如图勾选和设置。点击确定。
在这里插入图片描述
5、右击以太网,点击属性,双击IPv4协议,查看IP。如图所示。
在这里插入图片描述

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

一般情况应该是192.168.137.1.
win+R打开windows命令端输入cmd,然后输入

arp -a

找到接口为192.168.137.1下面的IP,如图:
在这里插入图片描述
找到除了192.168.137.255 的另一个,比如上图是192.168.137.77。如果有多个,都记下来。

6、启动Xshell。选择文件》新建,在主机处输入树莓派的IP地址。
Xshell设置
然后选择用户身份验证,在用户名处输入pi,在密码处输入raspberry。
Xshell设置
7、点击确定,然后点击连接。连接成功后,输入如下命令进入配置界面。

sudo raspi-config

在这里插入图片描述

6、选择第3项,接口配置选项。回车后选择I3 VNC,回车后出现确认页面,按方向键下键按键选择“Yes”,回车后提示设置成功,并跳转回主界面。参考图片如下:
在这里插入图片描述

VNC

VNC
7、按下方向键,选择finish,结束设置。
在这里插入图片描述8、配置wifi。
在终端输入ifconfig,发现没有wlan0。
在这里插入图片描述
此时需要打开射频。在终端输入:

rfkill list

在这里插入图片描述

这里就表示射频被锁住了,需要打开。输入:

rfkill unblock all

此时,输入ifconfig,发现显示wlan0,表示wif已经打开,配置完成。
在这里插入图片描述

9、在命令行中输入sudo reboot重启,此时SSH连接会断开,不必慌张。

10、使用VNC远程软件,以图形化界面操作树莓派。运行VNC Viewer软件,输入树莓派的网络IP地址后回车(图中地址仅为示例,请输入你自己的地址),选择continue,输入树莓派登陆用户名/密码,pi/raspberry,完成后点击“OK”,成功进入树莓派图形化界面。

VNC

VNC

VNC

VNC

至此,我们成功启动了树莓派。在今后的使用中,可以根据个人的兴趣爱好来选择命令行或者是图形界面。

4 参考文献

部分文字和图片参考了列表中的文献,其版权归原作者所有,在此表示感谢!

https://blog.csdn.net/Lyh_2015/article/details/90143748

修改记录

20230813 根据最新情况修改了文章,确保准确可用。

1 在自己的虚拟环境中安装ipykernel

1、激活自己的虚拟环境。

activate [Your enviroment name]

例如:

activate mindspore

2、在当前环境中安装ipykernel。

conda install ipykernel

3、添加环境到jupyter notebook。

python -m ipykernel install --user --name [Your enviroment name] --display-name "[Name you want to show in jupyter]"

例如:

python -m ipykernel install --user --name mindspore --display-name "mindspore(Python3.9)"

4、重启jupyter notebook。
5、在jupyter notebook界面中kernel菜单下面可以切换啦。

2 问题解决

2.1 在切换kernel时,出现ImportError: DLL load failed while importing _device: 找不到指定的模块

原因:pyzmq的版本不匹配。

解决办法:在刚才的虚拟环境下,安装以下版本的pyzmp:

pip install pyzmq==23.0.0

重新运行,即可解决。

2.2 在切换kernel时,出现ImportError: DLL load failed while importing _sqlite3: 找不到指定的模块

解决方法:
进入库下载地址:https://sqlite.org/download.html
下载自己需要的版本,比如:

解压后,将这两个文件放置在该虚拟环境的DLLs文件夹下,例如:

问题解决。

3 删除kernel

相关命令:
jupyter kernelspec list
输入jupyter kernelspec remove + kernel名称即可删除。

本文首发于我的学习之路,点击访问我的学习之路(liguang.wang)

1 背景

最近使用起了Mac Mini,需要安装Pytorch。网上的教程非常老旧,可读性较差,于是记录下自己的安装过程,分享给大家。

2 详细过程

2.1 安装Miniconda

miniconda比Anaconda更加轻量,使用起来几乎一样,根据网上现有信息,很多都是在推荐安装miniconda,所以我们此处也是安装miniconda。
为了追求速度更快,我们使用清华源。
1、下载miniconda。
本文推荐使用此版本(https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_23.3.1-0-MacOSX-arm64.sh),可以直接点击下载,也可以使用此命令下载:

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_23.3.1-0-MacOSX-arm64.sh

注意,本文以此推荐版本为准,使用其他版本时本文命令和最终效果可能有出入!

2、安装miniconda。
使用如下命令安装miniconda:

zsh ./Miniconda3-py39_23.3.1-0-MacOSX-arm64.sh

如果没有权限,使用如下命令加权限:

chmod +x  ./Miniconda3-py39_23.3.1-0-MacOSX-arm64.sh

注意:请先进入到下载文件所在的目录再执行本小节。
3、检查安装结果。
首先,关闭终端,然后再重新打开。
如果用户名前出现(base)字样,说明安装成功,请跳过本小节。
如果没有出现,请继续阅读本小节。
使用如下命令:

cd ./miniconda/bin

然后执行以下命令,对miniconda进行初始化:

conda init zsh

然后关闭终端,再重新打开,此时(bash)出现。
如果提示command not found,请继续按下面的命令操作:
在终端输入

vim ~/.zshrc

在里面添加这一句,即将conda所在路径添加到环境变量中

export PATH=/Users/qianying/miniconda3/bin:$PATH

保存后,退出,在终端输入:

source ~/.zshrc

完成后,关闭终端重新打开,输入:

conda init zsh

完成初始化。
注意:以上命令请根据自己的目录情况进行相应调整。本小节仅适用于shell为zsh的情况(如果未做调整,M2电脑默认shell均为zsh),如果默认shell不是zsh,请根据相应shell调整第二条命令!
4、关闭自动激活base。
输入以下命令关闭自动激活base:

conda config --set auto_activate_base false

至此,miniconda安装完成。

2.2 安装Pytorch

1、为保证网速,先修改为清华源。

cd ~
vim ./.condarc

然后输入i,写入如下内容:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

然后按下ESC按键,输入:wq保存。
最后在终端中执行以下命令:

conda clean -i

从而清除缓存。
2、建立一个新的conda环境。
使用以下命令:

conda create -n torch python=3.9

3、使用以下命令安装Pytorch:

conda install pytorch::pytorch torchvision torchaudio -c pytorch

4、使用以下命令激活新创建的conda环境:

conda activate pytorch

5、输入python,然后依次输入下面的语句,如果和图片一致,说明安装成功。
截屏2023-07-21 22.00.04.png

3 修订记录

2023.7.21 完成初稿
2023.11.04 针对command not found进行修改。

其中

proxy_ip对应的代理服务器的ip, proxy_port对应的代理服务器的port

filename对应想要传输的文件

username对应目标主机的用户名, target_ip对应目标主机的ip,target_path对应想要传输的目标地址

scp -o "ProxyCommand=nc -X connect -x proxy_ip:proxy_host %h %p" filename username@target_ip:/target_path