亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        談如何用Python控制Arduino

        2016-05-14 02:09:32羅亮陳紅盧解卿
        中國信息技術(shù)教育 2016年8期
        關(guān)鍵詞:程序代碼主控板下位

        羅亮 陳紅 盧解卿

        Python是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語言,它的設(shè)計(jì)哲學(xué)是優(yōu)雅、明確、簡單。因?yàn)槠溟_源免費(fèi)的精神與簡單易學(xué)的特點(diǎn),自1989年問世以來,尤其是2004年以后,Python的使用率呈線性增長并被TIOBE編程語言排行榜評(píng)為2010年度語言。

        Arduino是一款便捷靈活、方便上手的開源電子原型平臺(tái),它包含可以用來做電路連接的Arduino電路板和配套的程序開發(fā)環(huán)境(Arduino IDE)。基于Arduino的項(xiàng)目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運(yùn)行的軟件,如Processing、VB、Python等。

        當(dāng)我們使用Python語言通過串口控制Arduino讀取設(shè)備狀況并實(shí)施控制的時(shí)候,就構(gòu)成了上位機(jī)下位機(jī)系統(tǒng)。安裝有Python之類軟件實(shí)施控制的計(jì)算機(jī)為上位機(jī),能夠控制設(shè)備并獲取設(shè)備狀況的Arduino為下位機(jī),它們相互之間可以通過串行口或無線的方式進(jìn)行通訊,進(jìn)而實(shí)現(xiàn)控制與被控制。

        安裝Python

        Python主要分為兩大類,即Python2和Python3。Python2是目前應(yīng)用最廣泛的一個(gè)版本,最新版本號(hào)為2.7.11,適合初學(xué)者學(xué)習(xí)使用。Python3相對(duì)于Python2而言,有很多接口發(fā)生了變化并且可用的第三方庫不多且不成熟,雖然它代表以后的發(fā)展趨勢,但還是不建議初學(xué)者使用。Python下載地址為:https://www.python.org/downloads/。本例是下載了2.7.11版本,文件名為python-2.7.11.msi,安裝在文件夾“C:\Python27”,安裝過程中注意在如圖1的設(shè)置中添加可執(zhí)行文件搜索路徑。

        安裝Arduino

        Arduino主控板部分可在淘寶網(wǎng)上通過關(guān)鍵詞“arduino uno”“arduino mini”“arduino mega”搜索購買。Arduino集成開發(fā)環(huán)境(Arduino IDE)可訪問“https://www.arduino.cc/en/Main/Software”,根據(jù)需要下載安裝,最新版本為1.6.7,歷經(jīng)Arduino 00xx、Arduino 1.0.x、1.5.x BETA、Arduino 1.6.x四個(gè)系列的版本。本例硬件使用了Arduino Uno,軟件使用了Arduino1.5.8版本。軟件安裝在文件夾“C:\arduino158”,當(dāng)Arduino Uno主控板與計(jì)算機(jī)通過USB連接后,需要安裝驅(qū)動(dòng),驅(qū)動(dòng)文件默認(rèn)在文件夾“C:\arduino158\drivers”,安裝完成后,在設(shè)備管理器中可以看到Arduino Uno占用的串行端口號(hào),如圖2所示。

        安裝Pyserial

        Pyserial是協(xié)助Python控制串口通訊的第三方庫。pyserialv2.7下載地址為:http://sourceforge.net/projects/pyserial/,pyserialV3.0下載地址為:https://github.com/pyserial/pyserial。

        若非Windows 64位操作系統(tǒng),下載pyserial-2.7.win32.exe直接安裝即可,否則需要使用pyserial-2.7.tar.gz文件手動(dòng)進(jìn)行安裝。安裝方法為:將pyserial-2.7.tar.gz解壓至C盤根目錄后,運(yùn)行CMD命令,進(jìn)入文件夾“C:\ pyserial-2.7”,執(zhí)行安裝命令:“python setup.py install”。具體執(zhí)行過程可參考圖3的步驟。

        啟動(dòng)Arduino IDE作為下位機(jī)進(jìn)行通訊調(diào)試

        當(dāng)Arduino主控板連上PC主機(jī)并安裝好相應(yīng)的驅(qū)動(dòng)程序后,我們使用鼠標(biāo)雙擊Arduino安裝文件夾中的arduino.exe可以達(dá)到啟動(dòng)Arduino集成編輯環(huán)境的目的。

        啟動(dòng)完成后,可通過菜單“file→preferences”設(shè)置中文環(huán)境,通過菜單“工具→板”設(shè)置“Arduino Uno”,“工具→端口”設(shè)置“Com3(Arduino Uno)”。如表1所示,輸入相關(guān)程序代碼后,點(diǎn)擊“上傳”按鈕燒錄程序至Arduino主控板中。啟用串口監(jiān)視器后,根據(jù)程序代碼,輸入字符o,點(diǎn)擊按鈕“發(fā)送”可以發(fā)現(xiàn)Arduino主控板與數(shù)字引腳13相連的Led燈會(huì)變亮,輸入字符c,點(diǎn)擊按鈕“發(fā)送”可以發(fā)現(xiàn)Arduino主控板與數(shù)字引腳13相連的Led燈會(huì)停止發(fā)光。具體程序代碼的功能,請(qǐng)查看表1中相應(yīng)的注釋。

        啟動(dòng)Python并進(jìn)行初步通訊調(diào)試

        安裝完成Python運(yùn)行與編輯環(huán)境及涉及串口通訊的第三方庫pyserial后,通過“開始→所有程序→Python 2.7→IDLE(Python GUI)”或“Python(command line)”直接啟動(dòng)Python,亦可以找到Python安裝文件夾下的“python.exe”雙擊啟動(dòng)。啟動(dòng)完成后,在命令提示符“>>>”下依次輸入import serial、ser=serial.Serial(2)、ser.write(“o”)、ser.write(“c”)等命令就可以實(shí)現(xiàn)對(duì)Arduino主板上與數(shù)字引腳13相連Led燈的控制,ser.close()關(guān)閉打開的串行口,exit()退出Python運(yùn)行環(huán)境。

        注意:本例Arduino使用串行口3,故serial.Serial()中的參數(shù)為2,參數(shù)始終比串行口序號(hào)小1。

        有關(guān)pyserial的詳細(xì)用法,可以參考http://pythonhosted.org/pyserial/。以下的例子是先定義串行口ser,然后再對(duì)串行口ser進(jìn)行配置。

        趣味拓展:隨論壇在線人數(shù)變化的燈

        我們?cè)谠L問論壇時(shí),經(jīng)常會(huì)看到類似的統(tǒng)計(jì)數(shù)據(jù):。結(jié)合Python和Arduino各自擅長的功能,可以輕松做到讀取在線人數(shù)并根據(jù)在線人數(shù)多少?zèng)Q定亮燈情況。表2所示代碼是簡化情況,我們可以根據(jù)需要修改Python及相應(yīng)的Arduino程序,讓亮燈更加人性化。

        尤其應(yīng)引起注意的是:①字符編碼問題。安裝chardet模塊,可以準(zhǔn)確知道網(wǎng)絡(luò)中獲取字符的編碼,從而正確處理。②多空一行。Python構(gòu)成語句塊的代碼需要多增加一個(gè)空行。詳見第18行代碼。③適當(dāng)延時(shí)。在程序執(zhí)行方式下,串行口對(duì)象ser來不及初始化,就迅速執(zhí)行后面代碼,導(dǎo)致無效write,當(dāng)加了第13行代碼后,則一切正常。④確保論壇首頁有“總計(jì)”“人在線”相關(guān)關(guān)鍵字,若無,請(qǐng)根據(jù)實(shí)際情況修改。

        后記

        Python第三方庫——pyserial提供了豐富的函數(shù)對(duì)串行口進(jìn)行操作,從而使Phthon能夠很方便地對(duì)Arduino進(jìn)行通訊。

        在編寫程序代碼進(jìn)行控制的過程中,要注意Python、Arduino使用同樣的通訊速率并且不要太大,建議都使用9600,否則容易出現(xiàn)數(shù)據(jù)錯(cuò)誤。

        經(jīng)過試驗(yàn),若上位機(jī)PC、下位機(jī)Arduino均安裝藍(lán)牙,亦可以使用pyserial進(jìn)行無線通訊達(dá)到控制的目的,有興趣的同仁可以自行嘗試。

        Python的GUI編程似乎并不容易上手,其內(nèi)建的Tkinter只能進(jìn)行簡單GUI布局,若要做到VB集成開發(fā)環(huán)境所見即所得的效果,估計(jì)還需要安裝wxPython、Jython之類第三方庫才能做到。圖4是使用Python的Tkinter構(gòu)建的控制Arduino主控板Led燈GUI界面,相關(guān)程序可聯(lián)系linkall@sina.com取得。

        猜你喜歡
        程序代碼主控板下位
        一種快速可靠的主控冗余及切換機(jī)制的設(shè)計(jì)與實(shí)現(xiàn)
        發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
        升級(jí)雙主控板交換機(jī)ISO
        計(jì)算機(jī)網(wǎng)絡(luò)信息安全未來發(fā)展趨勢
        基于圖元裝接模式由程序流程圖自動(dòng)生成源代碼
        軟件工程(2016年11期)2017-01-17 16:56:57
        變頻器檢測臺(tái)的設(shè)計(jì)、制作及主控板的維修
        電子制作(2016年11期)2016-11-07 08:43:30
        景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
        基于看門狗原理的冗余保護(hù)機(jī)制
        亚洲性爱视频| 草逼视频污的网站免费| 中文字幕亚洲精品一区二区三区| 国产后入又长又硬| 亚洲 欧美 综合 在线 精品 | 99无码熟妇丰满人妻啪啪| 国产欧美亚洲精品a| 国产精品亚洲国产| 日韩一级137片内射视频播放 | 国产成人精品视频网站| 丰满少妇被爽的高潮喷水呻吟| 成人中文乱幕日产无线码| 装睡被陌生人摸出水好爽| 特级毛片全部免费播放a一级| 日本美女中文字幕第一区| 后入到高潮免费观看| 少妇被粗大的猛进69视频| 国产精品原创巨作av无遮 | 日韩中文字幕一区二十| 精品人妻少妇av中文字幕| 久久丫精品国产亚洲av不卡| 精品久久综合亚洲伊人 | 国产激情视频在线观看首页| 媚药丝袜美女高清一二区| 亚洲av中文无码乱人伦在线咪咕| 性动态图av无码专区| 在线亚洲AV不卡一区二区 | 国产乱人伦偷精品视频免观看| 欧美aaaaaa级午夜福利视频| 日本免费一区二区三区在线看| 日本一区二区在线播放| 暖暖 免费 高清 日本 在线| 日韩视频中文字幕精品偷拍 | 久久久精品国产亚洲av网| 久久精品国产熟女亚洲| 艳妇臀荡乳欲伦交换在线播放| 岛国精品一区二区三区| av一区二区三区综合网站| 亚洲性无码av中文字幕 | www夜插内射视频网站| 成人看片黄a免费看那个网址|