日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发

發布時間:2024/9/19 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ByToradex秦海

1).簡介

Python?編程語言因其極強的可讀性、可移植、易于維護,以及豐富的第三方擴展組件,如數據庫、數學計算、圖形,甚至機器視覺、人工智能、深度學習框架都提供Python支持。隨著嵌入式處理的計算性能逐漸增強,原來主要用于?PC、服務器端的開發語言,目前也正越來越多地被嵌入式項目所采納,加速項目的開發,縮短產品上市時間。接下來的內容,我們將介紹如何在嵌入式計算機模塊基于?Embedded?Linux?使用?Python,并演示基于?Python?和OpenCV的條形碼、二維碼掃描功能。

本文所演示的平臺來自于ToradexColibri?iMX6ARM嵌入式平臺,這是一個基于NXP?iMX6?ARM處理器,支持單核/雙核Cortex-A9的計算機模塊平臺。

2.準備

a).Colibri?iMX6?ARM核心版配合ColibriEvaBoard載板,連接調試串口UART1到開發主機方便調試。

b).ColibriiMX6系統默認的?BSP?中并沒有包含Python?和?OpenCV組件,用戶可以通過在線安裝或者使用基于Ycoto/OpenEmbedded框架重新編譯生成包含所需功能的?BSP;我們推薦采用第二種方法,定制化的?BSP?有利于產品進行量產編程。

./在線安裝?Python?以及擴展組件相關命令

------------------------------------

root@colibri-imx6:~#?opkg?update

root@colibri-imx6:~#?opkg?list?|?greppython

root@colibri-imx6:~#?opkg?install?python[optionally?list?additional?packages…]

------------------------------------

./基于OpenEmbedded框架編譯,基本操作請按照這里的說明進行編譯,需要修改的文件請參考如下,image更新方法請參考這里。

./local.conf文件

添加如下內容,在生成的image中增加qtwebengine組件

------------------------------------

IMAGE_INSTALL_append?=?"?opencvpython3?python3-pip?zbar"

PACKAGECONFIG_append_pn-opencv?=?"python3gstreamer"

------------------------------------

3.測試Python環境

在開發板上命令終端執行

------------------------------------

root@colibri-imx6:~#?python3

Python?3.5.3?(default,?Apr?11?2018,16:03:29)

[GCC?7.3.0]?on?linux

Type?"help","copyright",?"credits"?or?"license"?for?moreinformation.

>>>?import?cv2

>>>?cv2.__version__

'3.3.0-dev'

------------------------------------

生成的?BSP?包含了?Python3.5.3?和OpenCV?3.3。由于?Python?是一種解釋型的語言,不需要預編譯,你現在就可以直接在Colibri?iMX6?上學習?Python?開發或者運行你現有的??Python?程序。但是這個時候你可能會遇到??Python?模塊沒有安裝的問題,從而無法運行你自己開發的??Python?項目。

4.?Python模塊安裝

./Python?的一個優勢是可以直接在本地下載并安裝模塊組件,這在嵌入式設備上也同樣適用。由于之前在OpenEmbedded/Yocto中我們已經添加了??python3-pip,那么現在可以是?pip?命令來安裝,如imutils,這是我們接下來所需的組件。

------------------------------------

root@colibri-imx6:~#?pip3?install?imutils

------------------------------------

./除了在線安裝,Python?模塊也可以通過離線交叉編譯后進行編譯。Zbar默認只支持?python2,我們需要安裝pyzbar來支持我們?BSP?中的??python3。

首先你需要安裝Linux?SDK,其提供了所需的交叉編譯器、頭文件、庫文件以及一些基本的編譯配置文件。另外建議在開發電腦上也安裝和?BSP?上版本一致的?Python。

------------------------------------

ben@ben-T430u:~$?cd/usr/local/oecore-x86_64

ben@ben-T430u:~$.environment-setup-armv7at2hf-neon-angstrom-linux-gnueabi

ben@ben-T430u:~$?exportCFLAGS="$CFLAGS?-I$SDKTARGETSYSROOT/usr/bin/python3.5m"

ben@ben-T430u:~$?exportHOSTPYTHON=/usr/local/bin/python3.5

ben@ben-T430u:~$?$HOSTPYTHON?setup.py?build

ben@ben-T430u:~$?$HOSTPYTHON?setup.pybdist_egg

------------------------------------

將編譯完成的?pyzbar-0.1.7-py3.5.egg?復制到開發板上,使用??easy_install-3.5?安裝

------------------------------------

root@colibri-imx6:~#?easy_install-3.5pyzbar-0.1.7-py3.5.egg

Processing?pyzbar-0.1.7-py3.5.egg

creating/usr/lib/python3.5/site-packages/pyzbar-0.1.7-py3.5.egg

Extracting?pyzbar-0.1.7-py3.5.egg?to?/usr/lib/python3.5/site-packages

Adding?pyzbar?0.1.7?to?easy-install.pthfile

Installing?read_zbar.py?script?to?/usr/bin

Installing?read_zbar?script?to?/usr/bin

------------------------------------

./另外OpenEmbedded還提供了大量?Python相關的組件,可以方便地集成到?BSP?中。

到此,我們已經在開發板上完成??Python?環境搭建,所需的組建也都已經安裝。下面我們將通過幾個??Python?項目來演示條形碼、二維碼圖片的識別,以及在?USB?攝像頭上實時讀取二維碼。

5.?PyZbar條形碼和二維碼讀取

./識別靜態圖片上的條形碼

------------------------------------

root@colibri-imx6:~#./barcode_scanner_image.py?-i?barcode1.png

------------------------------------

./識別靜態圖片上的二維碼

------------------------------------

root@colibri-imx6:~#./barcode_scanner_image.py?-i?QR-tdx.png

------------------------------------

./通過USB?攝像頭實時識二維碼

------------------------------------

root@colibri-imx6:~#./barcode_scanner_video.py?-o?rec.csv

------------------------------------

上面相關測試的完整Python代碼可以從這里下載。

6).總結

通過上面的介紹,我們發現借助??Python?可以方便、快捷地實現一些復雜功能,如果采用其他語言工具開發,可能需要更多的代碼和時間。由于??Python?本身的特性,在嵌入式上,特別是CPU和?RAM?資源有限的平臺,需要充分考慮??Python?運行所帶來的開銷,確保應用能夠可靠運行。

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

總結

以上是生活随笔為你收集整理的python 嵌入式 linux 产品 发布_基于嵌入式Linux进行Python应用开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。