在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣使用Python編程和控制Arduino

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-28 17:52 ? 次閱讀

Python席卷了編碼世界。除了這種新語言的興起之外,DIY電子產(chǎn)品領(lǐng)域也蓬勃發(fā)展。 Arduino和Raspberry Pi公司的開發(fā)板和單板計算機已經(jīng)改變了人們創(chuàng)建家用自釀電子產(chǎn)品的方式。如果可以用Python編程Arduino會很棒嗎?

沒有比結(jié)合兩個很棒的東西更好的感覺了。可悲的是,不可能用Python直接對Arduino進行編程,因為開發(fā)板上沒有用于語言解釋的選項。但是,可以使用Python程序直接控制USB

本文將向您展示如何設(shè)置Arduino UNO(盡管任何Arduino兼容板都可以在這里工作),以便通過該程序進行編程和控制使用Python程序的命令行。本教程是針對Windows 10編寫的,但也適用于Mac和Linux。您甚至可以使用此工作流程直接從Raspberry Pi控制Arduino,以獲得終極的雙向DIY體驗。

為Python設(shè)置Arduino

對于今天的項目,我們將使用Arduino Uno,以及適用于Python的pyFirmata接口。盡管在編寫pyFfirmata接口僅支持Arduino Uno,Mega,Due和Nano時,您幾乎可以使用任何與Arduino兼容的板。如果您已經(jīng)是Python專家,則可以在pyFirmata中添加自己的主板支持-如果需要,請確保更新其GitHub!

尚未安裝Arduino IDE。如果您不熟悉微控制器,那么我們的Arduino初學者指南將幫助您完成一切。

連接Arduino板并打開IDE。確保在工具菜單中選擇了正確的板卡和端口。加載 StandardFirmata 示例草圖并將其上傳到電路板上。只要您通過USB將Arduino連接到計算機,就可以直接控制Arduino。只要將草圖上傳到板上沒有任何錯誤,您就可以繼續(xù)。

Python和命令行控制

我們將使用Python 3.4來控制Arduino,因為您將要安裝的模塊將其指定為最新的兼容版本。在此之前的任何版本都應(yīng)該可以正常工作,并且據(jù)報導更高的版本可以工作。您可以從Python Software Foundation網(wǎng)站下載適用于Windows 10的Python 3.4。如果您想運行多個版本的Python,我們的Python虛擬環(huán)境指南將可以為您提供幫助。

一旦您安裝了Python,我們希望將其添加到系統(tǒng)的PATH變量中。這樣一來,我們就可以直接從命令行運行Python代碼,而無需進入安裝目錄。您可以通過打開控制面板,搜索環(huán)境,然后點擊編輯系統(tǒng)環(huán)境變量。在窗口底部,選擇環(huán)境變量。這將打開此窗口:

如果您已經(jīng)在列表中看到 PATH ,請單擊“編輯”,然后添加您的 Python 和 Python/Scripts 目錄。如果您沒有PATH變量,請單擊“新建”并添加它。請注意,此處將Python直接安裝在 C: 中。如果您將其安裝在其他位置,則需要對其進行修改以反映這一點。單擊“確定”返回窗口鏈,您幾乎已經(jīng)準備好使用Python控制Arduino!

神奇的潤滑脂

您將需要完成最后一個難題讓Python與我們的Arduino很好地對話。這以稱為 pyFirmata 的Python接口的形式出現(xiàn)。 Tino de Bruijn創(chuàng)建的該界面可以從github下載,盡管您可以直接在命令行中輸入以下內(nèi)容來安裝它:

pip install pyfirmata

一切正常,它應(yīng)該安裝并如下所示:

如果失敗,請繼續(xù)將Python添加到環(huán)境變量部分,并確保您已經(jīng)為您的Python目錄提供了正確的路徑。

使它發(fā)生

現(xiàn)在一切都已設(shè)置完畢,您可以為Arduino創(chuàng)建一個Python程序來對其進行測試。打開您選擇的IDE。今天我們將使用Eclipse,但您可以輕松地使用任何文本編輯器,甚至是云中的IDE。

創(chuàng)建一個新腳本并將其保存為 blink.py 。打破傳統(tǒng)的標準LED閃爍程序,您將要創(chuàng)建一個程序,該程序會提示用戶在LED閃爍之前希望其閃爍的次數(shù)。這是一個簡短的程序,如果您想直接使用它,可以在這里下載,但讓我們對其進行分解。

首先,您需要從 pyFirmata 模塊,以及標準的Python Time 模塊。

from pyfirmata import Arduino, util

import time

現(xiàn)在,您將要設(shè)置Arduino開發(fā)板。本文假設(shè)您正在使用 Arduino Uno 板,盡管還支持其他幾個Arduino板。請參閱pyFirmata github,以獲取有關(guān)主板支持的詳細信息

檢查Arduino IDE中使用的COM端口,并將其作為變量 board 輸入到您的代碼中。

p》 board = Arduino(“COM3”)

現(xiàn)在,您將設(shè)置用戶提示。那些熟悉Python的人會在這里識別所有內(nèi)容。使用 input 功能將問題打印到屏幕上,并將答案存儲為變量。用戶提供一個數(shù)字后,程序?qū)蟾鍸ED閃爍多少次。

loopTimes = input(‘How many times would you like the LED to blink: ’)

print(“Blinking ” + loopTimes + “ times.”)

要使LED閃爍適當?shù)拇螖?shù),請使用 for循環(huán)。如果您是Python的新手,請注意縮進,因為與其他語言不同,空格是語法的一部分。請注意,插針13是Arduino Uno的板載LED,如果您的電路板不同,則需要對其進行修改。

for x in range(int(loopTimes)):

board.digital[13].write(1)

time.sleep(0.2)

board.digital[13].write(0)

time.sleep(0.2)

您將投射 loopTimes 變量為整數(shù),因為來自用戶的輸入將自動存儲為字符串。在這個簡單的演示中,我們假設(shè)用戶將輸入一個數(shù)值。其他任何項(例如“八”)都將引發(fā)錯誤。

保存腳本,并打開命令提示符。

閃爍燈和其他啟示

一切準備就緒,您需要做的就是導航到腳本所在的位置并運行它。通過鍵入 cd [腳本目錄的路徑] ,然后鍵入 python blink.py 。

一切正常,您的程序?qū)⒁訟rduino初始化時會稍有延遲,提示您輸入一個數(shù)字,然后使用板載LED閃爍多次。

程序輸出應(yīng)如下所示:

在選定的眨眼次數(shù)后,一旦按Enter鍵,Arduino應(yīng)該執(zhí)行您的命令。

小開始

該項目是在Python和Arduino板之間進行通信的準系統(tǒng)。這種方法與通常的將腳本上傳到Arduino本身的工作流程完全不同,但是它為使用該平臺開辟了一種全新的方式,尤其是在您喜歡Python編程語言的情況下。

如果您使用在家中使用Linux服務(wù)器,這種與Arduino板通信的方法可以將該服務(wù)器擴展為成熟的DIY家庭自動化系統(tǒng)。通過將控制微控制器的Python腳本與DIY自動化電路相結(jié)合,您的NAS存儲盒可以承擔一套全新的有用功能。

要使其具有終極的DIY體驗,為什么不建造自己的NAS盒并用它來控制您的電器嗎?想象一下在Plex服務(wù)器上按播放并自動關(guān)閉燈光會多么酷!

責任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84690
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6469

    瀏覽量

    187091
收藏 人收藏

    評論

    相關(guān)推薦

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學者。
    的頭像 發(fā)表于 11-15 09:31 ?316次閱讀

    Python編程:處理網(wǎng)絡(luò)請求的代理技術(shù)

    在網(wǎng)絡(luò)編程中,代理技術(shù)扮演著至關(guān)重要的角色,尤其在處理網(wǎng)絡(luò)請求時。通過代理服務(wù)器,我們可以實現(xiàn)請求的轉(zhuǎn)發(fā)、緩存、負載均衡以及安全控制等功能。Python作為一種功能強大的編程語言,為提
    的頭像 發(fā)表于 11-12 07:23 ?195次閱讀

    esp32用什么軟件編程

    。 概述 ESP32具有豐富的外設(shè)接口和靈活的編程方式,支持多種編程語言和開發(fā)環(huán)境。本文將詳細介紹ESP32的編程軟件,包括開發(fā)環(huán)境、編程語言、庫函數(shù)、開發(fā)工具等。 開發(fā)環(huán)境 2.1
    的頭像 發(fā)表于 08-19 17:24 ?3529次閱讀

    pytorch和python的關(guān)系是什么

    在當今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區(qū)支持,使其成為了數(shù)據(jù)科學、機器學習和深度學習等領(lǐng)域的首選語言。而在深度學習領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?1967次閱讀

    EtherCAT運動控制器上位機之Python+Qt(一):鏈接與單軸運動

    PC上位機Python+Qt混合編程,助力智能制造高效開發(fā)。
    的頭像 發(fā)表于 07-31 09:43 ?429次閱讀
    EtherCAT運動<b class='flag-5'>控制</b>器上位機之<b class='flag-5'>Python</b>+Qt(一):鏈接與單軸運動

    opencv-python和opencv一樣嗎

    的。以下是對OpenCV和OpenCV-Python的比較: 編程語言: OpenCV是一個跨平臺的庫,支持多種編程語言,如C++、Java、Python等。而OpenCV-
    的頭像 發(fā)表于 07-16 10:38 ?1195次閱讀

    如何使用Python進行神經(jīng)網(wǎng)絡(luò)編程

    。 為什么使用PythonPython是一種廣泛使用的高級編程語言,以其易讀性和易用性而聞名。Python擁有強大的庫,如TensorFlow、Keras和PyTorch,這些庫提
    的頭像 發(fā)表于 07-02 09:58 ?410次閱讀

    esp32-S3支持arduino編程嗎?

    arduino選開發(fā)板的時候沒有es32-s3, 只有s2可選。 請問: 1. esp32-S3支持arduino編程嗎 2. arduino下sample下的BLE庫能用嗎? 3.
    發(fā)表于 06-27 08:23

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫,例如我此時需要使用arduino的第三方庫blinker,怎樣使用
    發(fā)表于 06-12 07:21

    教你一招,簡化儀器Python編程控制

    許多行業(yè)的工程師都使用自動化來擴展其測試儀器的功能,而大多是選擇免費的編程語言——Python來完成。作為適用于自動化的主要編程語言,Python具備許多顯著優(yōu)勢
    的頭像 發(fā)表于 03-15 14:31 ?2390次閱讀
    教你一招,簡化儀器<b class='flag-5'>Python</b><b class='flag-5'>編程控制</b>!

    arduino控制步進電機代碼

    Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設(shè)備,包括步進電機。步進電機是一種電動機,可以通過下達特定的指令來控制每個步進的角度,從而使電機旋轉(zhuǎn)到指定的位置。在本文
    的頭像 發(fā)表于 02-14 16:29 ?2043次閱讀

    如何使用Arduino控制RGB LED

    在本指南中,您將學習如何使用Arduino控制RGB LED。RGB(紅-綠-藍)LED可以通過混合不同強度的紅、綠、藍光來產(chǎn)生多種顏色。您將學習創(chuàng)建一個基本Arduino RGB LED電路,并以一些基本顏色為例循環(huán)。
    的頭像 發(fā)表于 02-11 10:28 ?4973次閱讀
    如何使用<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>RGB LED

    如何使用Arduino UNO板和電位器控制伺服電機

    在本Arduino伺服電機教程中,您將學習如何使用Arduino UNO板和電位器控制伺服電機。
    的頭像 發(fā)表于 02-11 10:11 ?2829次閱讀
    如何使用<b class='flag-5'>Arduino</b> UNO板和電位器<b class='flag-5'>控制</b>伺服電機

    Python智能家居系統(tǒng)代碼介紹

    Python智能家居系統(tǒng)是一種基于Python編程語言開發(fā)的智能家居控制系統(tǒng),在現(xiàn)代家庭中得到了越來越廣泛的應(yīng)用。本文將詳細介紹Python
    的頭像 發(fā)表于 01-25 09:46 ?1367次閱讀

    【核桃派1B 開發(fā)板試用體驗】+ Python編程

    用于編程開發(fā)。 由于暫時還沒有解決HDMI接口的轉(zhuǎn)換問題,因此還無法使用Python IDE,只好用Thonny來進行測試。 對于Thonny也有2種使用方式,一種是以指令語句的方式來使用,另一種則是
    發(fā)表于 01-03 22:08
    主站蜘蛛池模板: 国产资源视频在线观看| 久久久久久久国产精品影院| 11111日本网站| 香蕉操| 天天干天天干天天操| 久久天天躁夜夜躁狠狠85台湾| yyy6080韩国三级理论| 免费看黄色片网站| 调教r18车肉高h男男| 亚洲插插| 高清欧美性xxxx成熟| 欧美 亚洲 一区| 亚洲欧美日韩在线精品2021| 深夜一级毛片| 久久久久久青草大香综合精品| 国产美女精品三级在线观看| 亚洲黄色小说网站| 一区三区三区不卡| 五月婷婷在线视频观看| 免费一级大片| 91新地址| 高清一本之道加勒比在线| 日本毛片大全| 色综合久久天天综合绕观看| 久久99精品一级毛片| 我爱操| 欧美精品黑人性xxxx| 国产99在线| 黄 色 片免费观看| 天天干狠狠操| 国产精品久久久精品三级| 国产综合色精品一区二区三区| 色多多福利网站老司机| 在线免费公开视频| 免费的黄色大片| 干中文字幕| 三级网站在线播放| 999色综合| 美女张开腿让男生桶出水| 欧美日韩啪啪| 天天操夜夜操天天操|