99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

怎樣使用Python編程和控制Arduino

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-28 17:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

沒有比結(jié)合兩個(gè)很棒的東西更好的感覺了。可悲的是,不可能用Python直接對(duì)Arduino進(jìn)行編程,因?yàn)殚_發(fā)板上沒有用于語(yǔ)言解釋的選項(xiàng)。但是,可以使用Python程序直接控制USB。

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

為Python設(shè)置Arduino

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

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

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

Python和命令行控制

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

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

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

神奇的潤(rùn)滑脂

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

pip install pyfirmata

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

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

使它發(fā)生

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

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

首先,您需要從 pyFirmata 模塊,以及標(biāo)準(zhǔn)的Python Time 模塊。

from pyfirmata import Arduino, util

import time

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

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

p》 board = Arduino(“COM3”)

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

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

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

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

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ù),因?yàn)閬碜杂脩舻妮斎雽⒆詣?dòng)存儲(chǔ)為字符串。在這個(gè)簡(jiǎn)單的演示中,我們假設(shè)用戶將輸入一個(gè)數(shù)值。其他任何項(xiàng)(例如“八”)都將引發(fā)錯(cuò)誤。

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

閃爍燈和其他啟示

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

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

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

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

小開始

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

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

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

責(zé)任編輯:wv

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

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86830
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192272
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【BPI-CanMV-K230D-Zero開發(fā)板體驗(yàn)】+燈效控制Python編程

    ,在學(xué)習(xí)Python編程的基礎(chǔ)上通過GPIO來實(shí)現(xiàn)LED燈的控制。 在開發(fā)板上,僅有的2個(gè)可供GPIO控制的器件是RGB_LED和按鍵,其中RGB_LED的電路如圖1所示。 但要點(diǎn)亮W
    發(fā)表于 06-27 17:33

    Arduino與LabVIEW聯(lián)合編程指南

    Arduino編程并與LabVIEW上位機(jī)結(jié)合實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制與數(shù)據(jù)采集。
    發(fā)表于 06-19 15:54 ?0次下載

    免費(fèi)分享Arduino入門+進(jìn)階(全套例程+書籍)

    創(chuàng)意,比如控制燈光、傳感器、電機(jī)等。以下是Arduino入門+進(jìn)階學(xué)習(xí)資料1.Arduino編程語(yǔ)言說明(相關(guān)文件可在下文掃碼領(lǐng)取)2.Arduin
    的頭像 發(fā)表于 05-22 11:40 ?277次閱讀
    免費(fèi)分享<b class='flag-5'>Arduino</b>入門+進(jìn)階(全套例程+書籍)

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)

    的發(fā)展,在Arduino出現(xiàn)以前,雖然也有很多公司在推廣一些簡(jiǎn)單易用的可編程控制器,但是由于開發(fā)平臺(tái)種類繁多,而且使用這些控制器基本上都需要對(duì)電子技術(shù)、數(shù)字邏輯、寄存器等內(nèi)容進(jìn)行多方面的了解和學(xué)習(xí),才能
    發(fā)表于 05-13 09:28

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    是一種非常有用的編程語(yǔ)言,其語(yǔ)法易于閱讀,允許程序員使用比匯編、C或Java等語(yǔ)言更少的代碼行。Python編程語(yǔ)言最初實(shí)際上是作為L(zhǎng)inux的腳本語(yǔ)言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?771次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    DLP6500能否用Python編程進(jìn)行開發(fā),是否有API接口?

    本人第一次接觸DLP的開發(fā)板,想知道DLP6500這款板子能否用Python編程進(jìn)行開發(fā),是否有API接口?
    發(fā)表于 02-28 06:58

    Triton編譯器支持的編程語(yǔ)言

    Triton編譯器支持的編程語(yǔ)言主要包括以下幾種: 一、主要編程語(yǔ)言 Python :Triton編譯器通過Python接口提供了對(duì)Triton語(yǔ)言和編譯器的訪問,使得用戶可以在
    的頭像 發(fā)表于 12-24 17:33 ?983次閱讀

    對(duì)比Python與Java編程語(yǔ)言

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

    如何使用Python實(shí)現(xiàn)PID控制

    PID控制(比例-積分-微分控制)是一種常見的反饋控制算法,廣泛應(yīng)用于工業(yè)控制系統(tǒng)中。在Python中實(shí)現(xiàn)PID
    的頭像 發(fā)表于 11-14 09:09 ?1602次閱讀

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

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

    Python中多線程和多進(jìn)程的區(qū)別

    Python作為一種高級(jí)編程語(yǔ)言,提供了多種并發(fā)編程的方式,其中多線程與多進(jìn)程是最常見的兩種方式之一。在本文中,我們將探討Python中多線程與多進(jìn)程的概念、區(qū)別以及如何使用線程池與進(jìn)
    的頭像 發(fā)表于 10-23 11:48 ?1029次閱讀
    <b class='flag-5'>Python</b>中多線程和多進(jìn)程的區(qū)別

    EtherCAT運(yùn)動(dòng)控制器上位機(jī)開發(fā)之Python+Qt(三):PDO配置與SDO讀寫

    PC上位機(jī)Python+Qt混合編程實(shí)現(xiàn)PDO配置與SDO讀寫
    的頭像 發(fā)表于 08-21 15:56 ?2082次閱讀
    EtherCAT運(yùn)動(dòng)<b class='flag-5'>控制</b>器上位機(jī)開發(fā)之<b class='flag-5'>Python</b>+Qt(三):PDO配置與SDO讀寫

    esp32用什么軟件編程

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

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

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

    EtherCAT運(yùn)動(dòng)控制器上位機(jī)之Python+Qt(一):鏈接與單軸運(yùn)動(dòng)

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