电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python實現樹莓派攝像頭持續錄像并傳送到主機的步驟

瀏覽:6日期:2022-07-03 15:59:49

關于樹莓派,想必從事嵌入式開發的開發者都有聽過,樹莓派原名為Raspberry Pi,也就是它的英文讀法,樹莓派誕生于英國,由“Raspberry Pi 基金會”這個慈善組織注冊開發。埃•厄普頓就是該項目的頭目。在2012年的3月,英國劍橋大學埃本•阿普頓(Eben Epton)正式發售世界上最小的臺式機,又稱卡片式電腦,外形只有信用卡大小,卻具有電腦的所有基本功能,這就是Raspberry Pi電腦板,中文譯名”樹莓派”!

樹莓派作為一個輕便迷你的小終端很受大眾的喜愛!!!

樹莓派的特點

與常見的51單片機和STM32等這類的嵌入式微控制器相比,不僅可以完成相同的IO引腳控制之外,還能運行有相應的操作系統,可以完成更復雜的任務管理與調度,能夠支持更上層應用的開發,為了開發者提供了更廣闊的應用空間。比如開發語言的選擇不僅僅只限于C語言,連接底層硬件與上層應用,可以實現物聯網的云控制和云管理,也可以忽略樹莓派的IO控制,使用樹莓派搭建小型的網絡服務器,做一些小型的測試開發和服務。

與一般的PC計算機平臺相比,樹莓派可以提供的IO引腳,能夠直接控制其他底層硬件的功能,這是一般PC計算機做不到的,當然,樹莓派體積小,成本低,照常可以完成一些PC任務與應用。

樹莓派自帶的攝像頭拍攝夜空是有先例的,起碼可以做到延時攝影。對于實時拍攝沒有研究,但是仍然有必要測試。樹莓派自帶的攝像頭是500萬像素,價格在26-29歐元(人民幣200+左右)

實時還是事后采集記錄結果?樹莓派上的攝像機,是使用一個 raspivid 命令操作的。 拋開這個命令的其他參數,其輸出數據有2種方式:

將數據保存成文件,儲存在SD卡上,以便事后讀取; 將數據按照字節流的形式,直接輸出到STDOUT標準輸出中,可以實時獲取。

選擇哪種方式,首先要考慮我們能否具有足夠的采集數據的能力。

raspivid 命令可以調節相機模塊的輸出比特率。輸出是以 H264 編碼輸出的,比特率一般默認是17Mbps,但是這個數字可以調小。 如果按照17Mbps算,就是一秒鐘2.12兆字節。 我們記錄數據或者獲取數據的速度不能低于這個值,否則長時間錄像可能造成樹莓派的緩存充滿,導致樹莓派崩潰。

樹莓派的網卡是使用了其USB總線,傳送速度是100Mb/s或者12.5MB/s。 實際上后文的實驗表明,目前能達到的傳送速度只有 3MB/s(TCP) 或者 6MB/s(UDP) 。

如果使用SD卡存儲,這個記錄速度也是可以達到的,但是,SD卡有寫入壽命,這是要考慮的。 例如,對于32GB的卡,即使我們能利用全部存儲空間,以2MB/s的速度錄像,也只能記錄4.55小時。

如何通過網絡實時傳送數據?

raspivid 命令的 -o 選項,就是用來指定輸出文件的。 在Linux系統中,輸出到文件并不等于寫入到磁盤(這里是SD卡)。 我們仍然可能使用 RAMDisk 這種技術,讓輸出只是暫時存儲在內存中,并稍后讀取,然后刪除之。 但是,樹莓派的可用內存可能只有 280MB ,這最多只能記錄差不多2分鐘的視頻。

如果我們有文件形式的攝像記錄,那么就似乎可以使用文件傳輸的協議,例如 sftp, scp 等等登錄到樹莓派下載文件了。 然而這是不對的。這些協議在傳輸中使用了加密。

樹莓派在向我們的電腦進行數據傳送的時候,如果用這些協議,就必須先對發送的數據進行加密。 在互聯網上,加密是很好的設計。但是在樹莓派和電腦之間只用一根網線連接的時候,就不是了。 樹莓派的運算能力是很有限的,使用加密只會讓傳送速度變慢,所以,不要使用加密!

我們使用最原始而簡單的方法:使用 netcat命令 ,在筆記本電腦這一端監聽數據輸入。 在樹莓派這一端,我們讓 raspivid 獲取一定周期(比如10分鐘,也許可以更長)的錄像, 將結果設定為直接輸出,然后利用Linux的管道機制,直接送進 netcat 發送。

配置由樹莓派和筆記本構成的網絡

樹莓派和筆記本電腦之間的連接,使用普通網線即可, 因為筆記本和樹莓派上的網卡都能自動適應網線,設定正確的模式(正常來說要使用交叉網線)。

重要的一步是,筆記本電腦和樹莓派連接后構成的網絡中,需要手動為兩個設備設定IP地址。 對于筆記本電腦的設定,就比較簡單了。 我們將筆記本電腦和樹莓派相連的網卡上,將電腦的 IP地址設定為xxx.xxx.x.xxx , 子網掩碼為255.255.255.0 , 網關不要填 ``。

配置樹莓派的方法是,先將樹莓派斷電,然后取出所用的SD卡,用讀卡器插回電腦。 在SD卡的boot分區中,有個cmdline.txt,這是樹莓派開機時所用到的一些參數。

打開這個文件,會發現里面只有一行。這一行中用空格分開了很多設定參數。 我們在這一行的結尾,不添加空行,直接加上空格,然后寫上: ip=xxx.xxx.x.xxx

當然如果這一行里面已經有了ip=的參數,應該直接修改它。

這樣的結果就是,樹莓派開機之后,會自己選擇這個IP地址作為自己的地址。

實現在筆記本上監聽輸入

netcat命令,在每收到一個文件的EOF(End Of File,表明文件已經到結尾),就會退出。 我們為了讓接收能夠連續進行,需要用腳本連續運行這個命令。 這樣就會為每個新接收到的視頻,在筆記本電腦這一端建立一個文件用來存儲。

# -*- coding: utf-8 -*-import osimport signalimport subprocessimport sysimport uuid# 獲取程序運行的本地目錄,和用來存儲接收結果的recv文件夾目錄BASEPATH = os.path.realpath(os.path.dirname(sys.argv[0]))RECV = os.path.join(BASEPATH, ’recv’)# 如果接收目錄不存在,就自動新建print ' *** Received files are put into: %s' % RECVif not os.path.isdir(RECV): os.system(’mkdir -p %s’ % RECV)# 下面的部分用來記錄正在等待接收的文件。這個文件會以一個UUID.tmp的格式命名。# 在接收成功后,就會被重命名為UUID。(UUID是一個特定格式的唯一字符串,不會重復)。# 如果在接收過程中按下Ctrl+C,就會發送一個終止命令給程序,這樣程序會退出,# 并刪除沒有接收完整的那個文件。working = Falsefullname = Falsedef sigint_handler(signum, frame): global fullname, working print 'n' print ' *** SIGINT detected. End the program.' if working and fullname != False: print ' *** Unfinished recording deleted.' os.system(’rm -f %s.tmp’ % fullname) exit()signal.signal(signal.SIGINT, sigint_handler)# 使用一個死循環來不斷運行netcat(nc)命令。n = 1while True: recname = str(uuid.uuid1()) print ' [%8d] Listening for file [%s]. Use Ctrl+C to stop this script.' % (n, recname) fullname = os.path.join(RECV, recname) working = True # 標記接收開始 # 使用 nc -lp 10401 命令接收數據,表明端口為10401。 subprocess.call(’nc -lp 10401 > %s.tmp’ % fullname, shell=True) os.system(’mv %s.tmp %s’ % (fullname, fullname)) working = False # 標記接收完畢 n += 1

上文所述的腳本,在筆記本上運行之后,就會在本地開啟10401端口,等待樹莓派上傳送的文件。 傳送的會直接寫入一個由UUID(全局唯一ID)標識的文件中,可以供以后處理。

在樹莓派上攝像并發送攝像結果

在樹莓派上命令拍攝的方法是:

$ raspivid -o - -b 16000000 -t 100000 | nc xxx.xxx.x.xxx 10401

這條指令的意義如下:

-o - ,使用-o設定輸出,-表示直接輸出到標準輸出中,不寫入文件。 -b 16000000 ,設定輸出比特率為16000000 bit/s。這大約是2兆字節每秒。 -t 100000 ,設定錄像時間為100000毫秒,亦即100秒。 | nc xxx.xxx.x.xxx 10401 ,使用管道|將結果導入到nc中,nc是發送模式,目標是xxx.xxx.x.xxx計算機上的10401端口。

以上就是Python實現樹莓派攝像頭持續錄像并傳送到主機的步驟的詳細內容,更多關于python 樹莓派的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 | 餐饮小吃技术培训-火锅串串香培训「何小胖培训」_成都点石成金[官网] | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 玻璃钢罐_玻璃钢储罐_盐酸罐厂家-河北华盛节能设备有限公司 | 车牌识别道闸_停车场收费系统_人脸识别考勤机_速通门闸机_充电桩厂家_中全清茂官网 | 间甲酚,间甲酚厂家-山东祥东新材料 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 通用磨耗试验机-QUV耐候试验机|久宏实业百科| 阿米巴企业经营-阿米巴咨询管理-阿米巴企业培训-广东键锋企业管理咨询有限公司 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 丽陂特官网_手机信号屏蔽器_Wifi信号干扰器厂家_学校考场工厂会议室屏蔽仪 | 深圳市东信高科自动化设备有限公司| CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 空气能暖气片,暖气片厂家,山东暖气片,临沂暖气片-临沂永超暖通设备有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 快速卷帘门_硬质快速卷帘门-西朗门业 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 锂离子电池厂家-山东中信迪生电源 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 华禹护栏|锌钢护栏_阳台护栏_护栏厂家-华禹专注阳台护栏、楼梯栏杆、百叶窗、空调架、基坑护栏、道路护栏等锌钢护栏产品的生产销售。 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 |