标签:
本文主要包括如下内容:
拿到树莓派后第一件事当然是装系统。安装树莓派系统所需配置:
对于机器视觉应用,选择一张大于8G的卡,我的是32G,装完本文所有内容后约使用6G空间。如果费劲的装完所有软件后怕一朝回到解放前,则另外需要约7G空间用于备份。
下载树莓派操作系统Raspbian,下载地址:
下载系统Raspbian系统和安装工具NOOBS (NewOut Of Box System)。
将下载的系统文件解压后的镜像文件xxx-raspbian-jessie.img"拷贝进SD卡根目录。
将NOOBS 解压后的NOOBS_v1_9_1文件夹中的所有文件拷贝到SD卡根目录,注意要进入NOOBS_v1_9_1文件夹拷贝里面的所有文件,而不是直接拷贝文件夹。
拷贝完成后SD卡根目录应该是类似这个样子:
我使用的是USB无线wifi网卡,插好自动配置,找到wifi热点输入密码连接即可上网。我们可以在树莓派的LX终端命令行使用如下命令查看网络连接情况
ifconfigetho的部分为有线网络连接情况,wlan0的部分为无线网络连接情况,inet addr: xxx.xxx.xxx.xxx 就是树莓派的IP地址。
默认情况下树莓派的IP是DHCP动态配置的,为了下文使用VNC登录方便,通常做法是将IP改为静态地址。改 /etc/network/interfaces配置文件
sudo nano /etc/network/interfaces
将打开的配置文件wlan0的相应部分修改如下:
allow-hotplug wlan0 iface wlan0 inet static wpa-conf/etc/wpa_supplicant/wpa_spplicant.conf address 192.168.0.112 netmask 255.255.255.0 gateway 192.168.0.1
修改后的配置文件类似下图:
Ctrl+O保存,Ctrl+X退出编辑。然后重启树莓派使配置生效
sudo reboot网络配置方法还有许多,就不一一罗列了,可参考其他相关文章。
sudo apt-get install ttf-wqy-zenhei将安装文泉驿的开源中文字体,现在可以正常显示中文了。
sudo apt-get install scim-pinyin安装好拼音输入法后,可以直接命令行输入scim激活,下次启动是会自动启动的。快捷键是Ctrl+空格。或者直接点击屏幕右上角的输入法图标选择。
命令行运行:
sudo raspi-config进行系统设置。选择Internationalisation Options-->Change Locale-->zh_CN.UTF-8-->OK,然后重启系统,设置为中文操作系统。
Secure Shell(SSH)是Linux的一个功能可以使你从主机电脑上快速打开一个树莓派的终端会话。要使用SSH,首先需要打开它。最简单的方式是使用Raspi Config,目前的Raspbian系统已经默认打开SSH功能。
有网络连接的情况下,SSH是一个远程连接电脑的常用方式;可以在Secure Shell中使用可以在树莓派上执行的任何命令。同时,基于它的通信都是加密的。
该方式的缺陷是基于命令行而非图形界面。如果想要远程访问图形桌面环境,请参考下一节使用VNC。
windows系统使用SSH需要安装Putty以建立SSH会话。
putty下载地址:
解压缩后运行putty.exe
putty基本设置里“连接类型”选择SSH,主机名称或IP地址填写树莓派的IP地址,点击“打开”。弹出命令行提示输入登录用户名,输入:pi,稍等提示输入密码,输入raspberry即可实现命令行远程控制树莓派。
通过SSH只能使用命令行控制树莓派,而VNC可远程登录树莓派图形界面系统。VNC包括服务端(VNC server)和客户端(VNC viewer)
首先给树莓派安装VNC服务端,通过LX终端命令行安装tightvncserver:
sudo apt-get intsall tightvncserver
sudo tightvncserver
启动服务端,第一次启动需要输入两次秘码,并确认是否使用只观察模式登录,可选择否。
启动后可以看到 服务端已启动:New ‘X‘ desktop is raspberrypi: 1,1为电脑登录时的端口号。也可以同时启动多个服务端,以不同编号区分。
(3)获取树莓派IP地址
获取树莓派的IP地址,在LX终端输入:
ifconfig
显示结果为192.168.0.112,就是我们之前设置的静态IP。如果没有设置静态IP,需要通过此步骤获取树莓派的IP用于客户端登录。
在电脑上安装VNC客户端,有很多可选的软件,推荐RealVNC,连接稳定,下载地址:
安装VNC Viewer后打开弹出如下对话框:
VNC Sever栏输入192.168.0.112:1(1为vnc服务端的端口号),点击连接,然后输入树莓派VNC服务端第一次启动时设置的登录密码完成登录。
(5)让树莓派开机启动VNCserver
以下是一个简单易行的开机启动VNCserver的方法。创建开机启动文件
cd /home/pi cd .config mkdir autostart cd autostart nano tightvnc.desktop打开的文件中输入如下代码:
[Desktop Entry] Type=Application Name=tightVNC Exec=vncserver :1 StartupNotify=false重启树莓派
sudo reboot这样每次通电开机,我们不需要外接屏幕也可以用电脑使用树莓派的静态IP和VNCserver端口1远程登录树莓派的图形界面系统了。
使用UBS转TTL线连接树莓派,连接图如下图所示:右下角GPIO接口倒数第5~第3个引脚,依次连接绿色、白色、黑色USB接线,红色为电源供电线,理论上可以接外侧倒数第1个引脚给树莓派供电,我测试了一下因功率不够导致树莓派无法启动。
打开putty,选择“串口”连接,端口为计算机分配给USB转TTL线的端口号,通过:计算机--右键--设备管理器--端口,查看串口号,本机为COM5,波特率填115200,点击putty对话框下方的“打开”按钮进行连接。
弹出的命令行连接窗口中输入pi,然后输入密码:raspberry,即可通过串口连接树莓派。
OpenCV的安装费了很大劲。网上有许多指南,尝试安装成功后,但树莓派中的Python2无法导入cv2库,也尝试了配置环境变量等方式仍然无法调用。后来按照书上方法一个个包安装才能与Pyhton配合使用。这里提供3个安装方法:官方安装指南,网上教程连接,以及我自己安装成功的方法。
官方指南地址:
安装编译器:
sudoapt-get install build-essential
sudoapt-get install cmake git libgtk2.0-dev pkg-config libavcodec-devlibavformat-dev libswscale-dev
sudo apt-get install python-devpython-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-devlibjasper-dev libdc1394-22-dev
(3)获取OpenCV源代码:Getting OpenCV Source Code
OpenCV下载地址:
方法1:
方法2:
wget -O opencv-2.4.13.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.13/opencv-2.4.13.zip/download unzip opencv-2.4.13.zip
创建一个存放Makefiles、工程文件、目标文件和输出二进制文件的临时文件夹,这里用<cmake_binary_dir>表示,例如在解压后的opencv-2.4.13/文件夹中创建release文件夹,则<cmake_binary_dir>= opencv-2.4.13/release,例如命令行代码如下:
cd ~/opencv mkdir release cd release
命令行进入cd opencv-2.4.13/release文件夹,输入:
cmake [<some optional parameters>] <path to the OpenCV source directory>
例如:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
命令行进入文件夹opencv-2.4.13/release文件夹,输入
<pre name="code" class="plain">make sudo make install
完成编译和安装,此步骤耗时约6小时。
更新搜索动态链接库
sudo ldconfig
(5)测试安装
pkg-config --modversion opencv
命令行进入/opencv-2.4.13/release/bin目录,输入
cd ~/opencv-2.4.13/release/bin ./opencv_test_core
显示测试安装的结果:
参考文章:
apt是一个在Debian系统中用于安装和卸载软件的工具,我们用它来更新Pi上的软件
sudoapt-get update
sudo apt-get upgrade
sudo rpi-update
sudo apt-get install <package-name>
<package-name>如下表所示
|
|
|
libopencv-dev |
libpng3 |
libdc1394-22-dev |
build-essential |
libpnglite-dev |
libdc1394-22 |
libavformat-dev |
zlib1g-dbg |
libdc1394-utils |
x264 |
zlib1g |
libv4l-0 |
v4l-utils |
zlib1g-dev |
libv4l-dev |
ffmpeg |
pngtools |
libpython2.6 |
libcv2.4 |
libtiff4-dev |
python-dev |
libcvaux2.3 |
libtiff4 |
python2.6-dev |
libhighgui2.4 |
libtiffxx0c2 |
libgtk2.0-dev |
python-opencv |
libtiff-tools |
libpngwriter0-dev |
opencv-doc |
libjpeg8 |
libpngwriter0c2 |
libcv-dev |
libjpeg8-dev |
libswscale-dev |
libcvaux-dev |
libjpeg8-dbg |
libjpeg-dev |
libhighgui-dev |
libavcodec-dev |
libwebp-dev |
python-numpy |
libavcodec53 |
libpng-dev |
python-scipy |
libavformat53 |
libtiff5-dev |
python-matplotlib |
libgstreamer0.10-0-dbg |
libjasper-dev |
python-pandas |
libgstreamer0.10-0 |
libopenexr-dev |
python-nose |
libgstreamer0.10-dev |
libgdal-dev |
libeigen3-dev |
libxine1-ffmpeg |
python-tk |
libgtkglext1-dev |
libxine-dev |
python3-dev |
libpng12-0 |
libxine1-bin |
python3-tk |
libpng12-dev |
libunicap2 |
python3-numpy |
libpng++-dev |
libunicap2-dev |
|
上述步骤安装好所有包后,安装OpenCV
sudo apt-get install python-opencv注意这是给Pyhton安装opencv最简单的方法,但缺点是不一定是最新的OpenCV版本。写本文时,用此方法安装的是2.4.9版。
现在终于可以在树莓派上的Python中使用OpenCV了,打开Pyhton测试一下安装版本:
<pre name="code" class="python"><<<import cv2 <<<cv2.__version__ <<<'2.4.9.1'
如果经过半天折腾完成了Pi的机器视觉编程环境搭建,担心出问题要重装的话,可以选择使用以下方法备份SD卡,它只备份SD卡使用到的空间,而非整个SD卡。
此方法参考文章
sudo apt-get install dosfstools sudo apt-get install dump sudo apt-get install parted sudo apt-get install kpartx
下面命令生成块大小为1MB,总大小为7500MB的镜像文件
sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=7500
sudo parted raspberrypi.img --script -- mklabel msdos sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1
loopdevice:执行 losetup连接 img文件的 loop device
device:执行完 kpartx后,虚拟磁盘代号。
partBoot:由 device加上 p1组合而成的 FAT32虚拟磁盘分区。
partRoot:由 device加上 p2组合而成的 EXT4 虚拟磁盘分区。
loopdevice=`sudo losetup -f --show raspberrypi.img` device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` device="/dev/mapper/${device}" partBoot="${device}p1" partRoot="${device}p2"
sudo mkfs.vfat $partBoot sudo mkfs.ext4 $partRoot
sudo mount -t vfat $partBoot /media sudo cp -rfp /boot/* /media/ sudo umount /mediaext4linux虚拟磁盘分区用dump & restore备份
sudo mount -t ext4 $partRoot /media/ cd /media sudo dump -0uaf - / | sudo restore -rf - cd sudo umount /media
sudo kpartx -d $loopdevice sudo losetup -d $loopdevice
经过以上六步树莓派中的数据文件就全部备份到raspberrypi.img中了,你既可以在Windows中用Win32DiskImager将镜像恢复到SD卡,也可以在Linux用dd还原到SD卡,而且不要求恢复SD卡的大小跟原来的一样,这样就可以很方便的更换SD卡。在home/pi目录下生成了一个raspberrypi.img的备份文件如下:
创建一个脚本文件,保存在任意位置(如home/pi/backup),任意文件名(如backup.sh)
cd backup sudo nano backup.sh
向打开的文件中拷贝内容如下:
#!/bin/sh sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=7500 sudo parted raspberrypi.img --script -- mklabel msdos sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1 loopdevice=`sudo losetup -f --show raspberrypi.img` device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1` device="/dev/mapper/${device}" partBoot="${device}p1" partRoot="${device}p2" sudo mkfs.vfat $partBoot sudo mkfs.ext4 $partRoot sudo mount -t vfat $partBoot /media sudo cp -rfp /boot/* /media/ sudo umount /media sudo mount -t ext4 $partRoot /media/ cd /media sudo dump -0uaf - / | sudo restore -rf - cd sudo umount /media sudo kpartx -d $loopdevice sudo losetup -d $loopdevice
按Ctrl+O保存文件,Ctrl+x退出,需要备份时可执行:
sudo sh backup.sh执行完成后可以看到生成的备份文件
转载请注明出处(本文更新链接):http://blog.csdn.net/iracer/article/details/51620051
标签:
原文地址:http://blog.csdn.net/iracer/article/details/51620051