工作需要购置树莓派4b板子两块,现记录一下搭建开发环境的过程

一、树莓派系统镜像烧写

1、官网下载最新系统镜像,我下的文件名为:2020-08-20-raspios-buster-armhf.img

2、准备一张16G的内存卡,使用专门的格式化工具SDFormatter格式化SD卡。

3、Windows系统下下载安装烧写镜像工具Win32DiskImager。

(1)选择下载的系统镜像文件

(2)'设备'选择SD卡盘符.

(3)点击'写入'开始安装系统.安装结束后弹出完成对话框说明安装完成.

PS:在SD卡安装了Linux系统之后,再到Windows系统下查看,只剩下100多兆的容量.这是因为Linux系统下的分区Window是下是看不到的!装了Linux系统后,SD卡会分成三种格式的分区,分别是FAT32、EXT3、SWAP2

EXT3区属于Linux的文件系统,就和Windows的C盘一样;Swap区为Linux的虚拟内存区,主要在物理内存不够用的时候做缓存用的。以上两个,是Linux的分区。FAT32就是Windows看到的那100多兆了。

烧录成功后系统会因为无法识别分区而提示格式化分区,此时不要格式化,直接弹出内存卡即可。

二、启动树莓派

因为我没买显示器,所以我这里要用到 无屏幕有线远程启动树莓派(SSH)

1、开启SSH

将SD卡使用读卡器连接到电脑上,并打开SD卡盘符,新建“ssh”文件(无后缀)即可。

2、获取树莓派IP地址

首先确认连接方式,我这里使用的连接方式为:开发用的Windows电脑通过无线网连接到Internet,而树莓派我同过网线连在了提供无线网的路由器上。

我这里找到3种找到树莓派IP地址的方式:

(1)使用远程登陆软件Advanced IP Scanner ,点击‘扫描’,找到制作商为Raspberry Pi Foundation的地址信息,确认开机状态后记住该条信息的IP。

(2)在windows电脑上打开CMD命令行页面,输入arp -a可以找到树莓派的IP地址,但是这个会出来很多IP地址,你需要从中间选出树莓派的IP。

(3)用手机登陆路由器的后台管理员页面,可以看到已连接设备信息,包括IP地址。

3、使用SSH工具远程登陆树莓派

我这里没有用官方推荐的Putty工具,选择了MobaXterm这个软件,以前学习嵌入式Linux的时候看到韦东山老师用这个软件,发现很好用。

输入刚刚确认的树莓派的IP地址,用户名为pi,密码为raspberry

PS:输入密码的时候是不显示的,输入完直接回车就OK了

如果出现Access denied这个提示,说明你SSH没打开,重新进行一下第二章的第一步开始SSH

出现下图界面,说明树莓派已经成功启动了!!

因为我需要用它来驱动IDS相机并做图像处理,所以需要配置开发环境

一、安装远程桌面

因为用到相机,想着能看到运行情况会好很多。一般来讲,通过SSH管理树莓派已经足足够用。

(1)在树莓派上安装VNCServer

命令:sudo apt-get install tightvncserver

(2)启动一个VNC流,启动时会要求设置密码。

命令tightvncserver :1

(3)在实际使用的电脑上下载VNCViewer

安装完成后启动该程序,输入树莓派的IP地址和VNC流的代号(也就是刚刚的:1)最后输入刚刚设置的密码,就可以使用远程桌面了。

二、安装IDS相机驱动

到IDS官网下载相应型号相机的Linux驱动.我下载到的驱动文件为.tgz格式。通过MobaXterm将驱动文件发送到树莓派中,进入到驱动文件目录下,解压:sudo tar zxvf test.tgz

会得到一个.run文件,suod ./运行这个文件即可开始安装该驱动

三、安装python模块

安装任何软件前都要使用sudo apt-get update命令更新一下软件包。

(1)sudo pip install pyueye

(2)sudo apt-get install libopencv-dev python-opencv  安装opencv,如果出错,就执行一下sudo apt-get update命令

(3)sudo apt-get install python-qt4 python-qt4-doc

四、运行示例程序进行测试

from pyueye importueyeimportnumpy as npimportcv2importsys#---------------------------------------------------------------------------------------------------------------------------------------

#Variables

hCam = ueye.HIDS(0) #0: first available camera; 1-254: The camera with the specified camera ID

sInfo =ueye.SENSORINFO()

cInfo=ueye.CAMINFO()

pcImageMemory=ueye.c_mem_p()

MemID=ueye.int()

rectAOI=ueye.IS_RECT()

pitch=ueye.INT()

nBitsPerPixel= ueye.INT(24) #24: bits per pixel for color mode; take 8 bits per pixel for monochrome

channels = 3 #3: channels for color mode(RGB); take 1 channel for monochrome

m_nColorMode = ueye.INT() #Y8/RGB16/RGB24/REG32

bytes_per_pixel = int(nBitsPerPixel / 8)#---------------------------------------------------------------------------------------------------------------------------------------

print("START")print()#Starts the driver and establishes the connection to the camera

nRet =ueye.is_InitCamera(hCam, None)if nRet !=ueye.IS_SUCCESS:print("is_InitCamera ERROR")#Reads out the data hard-coded in the non-volatile camera memory and writes it to the data structure that cInfo points to

nRet =ueye.is_GetCameraInfo(hCam, cInfo)if nRet !=ueye.IS_SUCCESS:print("is_GetCameraInfo ERROR")#You can query additional information about the sensor type used in the camera

nRet =ueye.is_GetSensorInfo(hCam, sInfo)if nRet !=ueye.IS_SUCCESS:print("is_GetSensorInfo ERROR")

nRet=ueye.is_ResetToDefault( hCam)if nRet !=ueye.IS_SUCCESS:print("is_ResetToDefault ERROR")#Set display mode to DIB

nRet =ueye.is_SetDisplayMode(hCam, ueye.IS_SET_DM_DIB)#Set the right color mode

if bytes(sInfo.nColorMode.value) ==ueye.IS_COLORMODE_BAYER:#setup the color depth to the current windows setting

ueye.is_GetColorDepth(hCam, nBitsPerPixel, m_nColorMode)

bytes_per_pixel= int(nBitsPerPixel / 8)print("IS_COLORMODE_BAYER:", )print("\tm_nColorMode: \t\t", m_nColorMode)print("\tnBitsPerPixel: \t\t", nBitsPerPixel)print("\tbytes_per_pixel: \t\t", bytes_per_pixel)print()elif bytes(sInfo.nColorMode.value) ==ueye.IS_COLORMODE_CBYCRY:#for color camera models use RGB32 mode

m_nColorMode =ueye.IS_CM_BGRA8_PACKED

nBitsPerPixel= ueye.INT(32)

bytes_per_pixel= int(nBitsPerPixel / 8)print("IS_COLORMODE_CBYCRY:", )print("\tm_nColorMode: \t\t", m_nColorMode)print("\tnBitsPerPixel: \t\t", nBitsPerPixel)print("\tbytes_per_pixel: \t\t", bytes_per_pixel)print()elif bytes(sInfo.nColorMode.value) ==ueye.IS_COLORMODE_MONOCHROME:#for color camera models use RGB32 mode

m_nColorMode =ueye.IS_CM_MONO8

nBitsPerPixel= ueye.INT(8)

bytes_per_pixel= int(nBitsPerPixel / 8)print("IS_COLORMODE_MONOCHROME:", )print("\tm_nColorMode: \t\t", m_nColorMode)print("\tnBitsPerPixel: \t\t", nBitsPerPixel)print("\tbytes_per_pixel: \t\t", bytes_per_pixel)print()else:#for monochrome camera models use Y8 mode

m_nColorMode =ueye.IS_CM_MONO8

nBitsPerPixel= ueye.INT(8)

bytes_per_pixel= int(nBitsPerPixel / 8)print("else")#Can be used to set the size and position of an "area of interest"(AOI) within an image

nRet =ueye.is_AOI(hCam, ueye.IS_AOI_IMAGE_GET_AOI, rectAOI, ueye.sizeof(rectAOI))if nRet !=ueye.IS_SUCCESS:print("is_AOI ERROR")

width=rectAOI.s32Width

height=rectAOI.s32Height#Prints out some information about the camera and the sensor

print("Camera model:\t\t", sInfo.strSensorName.decode('utf-8'))print("Camera serial no.:\t", cInfo.SerNo.decode('utf-8'))print("Maximum image width:\t", width)print("Maximum image height:\t", height)print()#---------------------------------------------------------------------------------------------------------------------------------------

#Allocates an image memory for an image having its dimensions defined by width and height and its color depth defined by nBitsPerPixel

nRet =ueye.is_AllocImageMem(hCam, width, height, nBitsPerPixel, pcImageMemory, MemID)if nRet !=ueye.IS_SUCCESS:print("is_AllocImageMem ERROR")else:#Makes the specified image memory the active memory

nRet =ueye.is_SetImageMem(hCam, pcImageMemory, MemID)if nRet !=ueye.IS_SUCCESS:print("is_SetImageMem ERROR")else:#Set the desired color mode

nRet =ueye.is_SetColorMode(hCam, m_nColorMode)#Activates the camera's live video mode (free run mode)

nRet =ueye.is_CaptureVideo(hCam, ueye.IS_DONT_WAIT)if nRet !=ueye.IS_SUCCESS:print("is_CaptureVideo ERROR")#Enables the queue mode for existing image memory sequences

nRet =ueye.is_InquireImageMem(hCam, pcImageMemory, MemID, width, height, nBitsPerPixel, pitch)if nRet !=ueye.IS_SUCCESS:print("is_InquireImageMem ERROR")else:print("Press q to leave the programm")#---------------------------------------------------------------------------------------------------------------------------------------

#Continuous image display

while(nRet ==ueye.IS_SUCCESS):#In order to display the image in an OpenCV window we need to...

#...extract the data of our image memory

array = ueye.get_data(pcImageMemory, width, height, nBitsPerPixel, pitch, copy=False)#bytes_per_pixel = int(nBitsPerPixel / 8)

#...reshape it in an numpy array...

frame =np.reshape(array,(height.value, width.value, bytes_per_pixel))#...resize the image by a half

frame = cv2.resize(frame,(0,0),fx=0.5, fy=0.5)#---------------------------------------------------------------------------------------------------------------------------------------

#Include image data processing here

#---------------------------------------------------------------------------------------------------------------------------------------

#...and finally display it

cv2.imshow("SimpleLive_Python_uEye_OpenCV", frame)#Press q if you want to end the loop

if cv2.waitKey(1) & 0xFF == ord('q'):break

#---------------------------------------------------------------------------------------------------------------------------------------

#Releases an image memory that was allocated using is_AllocImageMem() and removes it from the driver management

ueye.is_FreeImageMem(hCam, pcImageMemory, MemID)#Disables the hCam camera handle and releases the data structures and memory areas taken up by the uEye camera

ueye.is_ExitCamera(hCam)#Destroys the OpenCv windows

cv2.destroyAllWindows()print()print("END")

结果:

树莓派 python开发_树莓派4b开发之开发环境搭建相关推荐

  1. 树莓派python蓝牙_树莓派的蓝牙操作

    树莓派端的蓝牙操作 首先利用ssh登录树莓派(假设用户名为pi) ssh pi@xxx.xxx.xxx.xxx 更新软件源.软件包等相关操作: sudo apt-get update sudo apt ...

  2. 树莓派python实例_树莓派3 搭建 django 服务器的实例

    树莓派3的基本配置 这里接着上一章的搭建过程,在我新购置的树莓派3上完成一个网页服务器的搭建以及后台数据库的相关配置.关于树莓派的玩点实在是太多,限于篇幅不做展开.由于我们仅仅只是搭建一个服务器,所以 ...

  3. 树莓派python摄像头_树莓派摄像头Camera的使用

    树莓派摄像头Camera的使用 一.安装 1.硬件安装 2.打开Raspberry Pi配置工具开启Camera 二. 如何通过命令行控制摄像头模块 现在您的相机模块已连接且软件已启用,请尝试使用命令 ...

  4. 树莓派python设置_树莓派基础设置

    Raspbian系统 下载链接:http://downloads.raspberrypi.org/raspbian_latest 默认帐号:Username: pi Password: raspber ...

  5. 树莓派python蓝牙_树莓派3B 爬虫蓝牙播放器

    一直没有尝试使用一下树莓派3B 的蓝牙功能,今天特别想试试,于是就烧录了最新的raspbian镜像,然后接上5寸GPIO触摸屏和键盘鼠标,开始了调试,网上看了看其他人的教程,发现都很老了,有的还不能用 ...

  6. 树莓派 python 蜂鸣器_树莓派3b强行驱动无源蜂鸣器

    有源蜂鸣器:自带高频振荡,直接上电并加信号即可蜂鸣,一般引线有3根 无源蜂鸣器:不带高频振荡,需要外加震荡才能工作,一般引线有两根. 如果你想给树莓派加上个蜂鸣器但是又不想购买,从贺卡或闹钟拆下的蜂鸣 ...

  7. 树莓派 python 录音_树莓派使用 USB 麦克风录音

    前几天,有朋友从我们淘宝店买了USB 接口的麦克风, 说是无法识别, 没办法录音, 经过交流发现, 实际上是咩有开启麦克风的音量. 这篇帖子简单介绍一下怎么去利用 usb 麦克风录音,更多应用在后面给 ...

  8. 树莓派 python 入门_树莓派新手入门教程

    树莓派(Raspberry Pi)是学习计算机知识.架设服务器的好工具,价格低廉,可玩性高. 本文根据我的亲身经验,介绍如何从零开始,搭建一个树莓派服务器,控制 LED 灯.你会看到,树莓派玩起来实在 ...

  9. 树莓派 python 录音_树莓派 录音问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我用Python库里的pyaudio录制语音 录制频率8000的语音会报错. IOError: [Errno Invalid sample rate] - ...

  10. Java web小项目_个人主页(1)—— 云环境搭建与项目部署

    摘自:Java web小项目_个人主页(1)-- 云环境搭建与项目部署 作者:丶PURSUING 发布时间: 2021-03-26 23:59:39 网址:https://blog.csdn.net/ ...

最新文章

  1. ssm过滤器可以只过滤html吗,SSM登陆验证之过滤器实现
  2. 在Ubuntu Server上添加NFS共享文件夹
  3. citrix创建虚拟机服务器,在 ESXi 服务器上安装并配置 Citrix SD-WAN Center
  4. python使用snappy压缩
  5. 对弈程序基本技术---最小-最大搜索
  6. [react] React怎样跳过重新渲染?
  7. shell 自动回车_macos开机自动屏蔽独显
  8. 在Windows上编译Spark源码
  9. asp.net问题点集合
  10. PowerDesigner基础使用教程
  11. 初中女生数学不好能学计算机,初中数学成绩好的女生,多半有这3个“小特征”,学渣可装不来!...
  12. ideaIU-2021.3配置Git/SVN
  13. 虚拟拨号服务器怎么用,windows实现虚拟拨号服务器
  14. python print 退格_Python+Selenium练习篇之12-组合键-退格键删除文字/鼠标右键
  15. 神经网络降噪python_Python实战图片验证码降噪处理
  16. 2020年5月面试精心整理java面试题,覆盖了大部分面试题(附答案)
  17. 基于心电芯片 KS1081的微小穿戴心电方案
  18. 关于debian基本配置,便于初学者使用
  19. ADI实验室电路:带抗混叠滤波器的宽带接收机
  20. 我的生命该如何度过?

热门文章

  1. 拿不到offer全额退款|编程测试与数据竞赛特训
  2. 写一个分析双色球历史开奖趋势的代码
  3. 2014,智能电视与功能电视的岔路口
  4. 在自己的网站中添加看板娘
  5. php接入招行收款通支付国密sm2
  6. Actran17.1安装教程
  7. 「1024程序员节」一句话证明你是程序员
  8. Linux应用编程网络编程
  9. [The Path to QUANT] 《Volatility Trading》by Euan Sinclair 读书笔记 Chapter 3
  10. 2020HNUST湖南科技大学计算机学院计算机网络学习通上习题及其复习总结