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

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

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

如何使用Raspberry pi和Python來(lái)控制Arduino

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:里沙布·耆那教 ? 2022-11-08 16:51 ? 次閱讀

雖然Raspberry PiArduino在應(yīng)用和結(jié)構(gòu)上是兩個(gè)不同的硬件,但它們都被認(rèn)為是兩個(gè)相互競(jìng)爭(zhēng)的開(kāi)源硬件平臺(tái)。他們都有非常強(qiáng)大的社區(qū)和支持。今天我們將稍微改變一下,并向您展示我們?nèi)绾卫盟鼈?。如果你同時(shí)擁有Arduino和Raspberry pi板,本文將向您展示如何使用Raspberry pi和Python來(lái)控制Arduino。

我們將使用PyFirmata 固件使用 Raspberry Pi python 腳本向 Arduino 發(fā)出命令。PyFirmata基本上是一個(gè)預(yù)構(gòu)建的python程序庫(kù)包,可以安裝在Arduino中,以允許任何計(jì)算機(jī)上的python腳本與Arduino之間進(jìn)行串行通信。這個(gè)python包可以訪問(wèn)在Arduino上讀取和寫入任何引腳。所以在這里我們將使用 Raspberry pi 在 Arduino 上運(yùn)行 python 程序。

因此,在本教程中,我們將利用這個(gè)庫(kù),并將在我們的Arduino 板中使用它來(lái)使用 Raspberry Pi 控制 Arduino。

要求

安裝了Raspbian OS的Raspberry Pi

Arduino Uno 或任何其他 Arduino 板

Arduino USB 電纜

發(fā)光二極管

在本教程中,我使用外部顯示器使用HDMI電纜與樹(shù)莓派連接。如果您沒(méi)有顯示器,則可以使用SSH客戶端(Putty)或VNC服務(wù)器通過(guò)筆記本電腦或計(jì)算機(jī)連接到Raspberry Pi。

使用 Raspberry Pi 在 Arduino 中安裝 PyFirmata

要在Arduino中上傳PyFirmata固件,我們必須在Raspberry Pi中安裝Arduino IDE。請(qǐng)按照以下步驟進(jìn)行安裝:

第 1 步:-將樹(shù)莓派連接到互聯(lián)網(wǎng)。打開(kāi)命令終端并鍵入以下命令并按回車鍵

sudo apt-get

-y

install arduino python-serial mercurial

等待幾分鐘,這需要時(shí)間。此命令將在Raspberry Pi中安裝Arduino IDE。

第 2 步:-現(xiàn)在,我們將使用給定的 github 安裝 pyFirmata 文件:

git clone

https://github.com/tino/pyFirmata

然后運(yùn)行以下命令:

cd pyFirmata

sudo python setup.py install

第 3 步:-我們已經(jīng)安裝了所有必需的文件和設(shè)置。

現(xiàn)在,使用USB電纜將Arduino板與Raspberry Pi連接,并通過(guò)在終端窗口中鍵入arduino來(lái)啟動(dòng)ArduinoIDE。

pYYBAGNqGJCALTxmAACBmzxZNQQ140.png

第 4 步:-然后鍵入lsusb命令以檢查 Arduino 是否與您的樹(shù)莓派連接。

在Arduino IDE中,轉(zhuǎn)到工具并選擇您的主板和串行端口。

第 5 步:-在Arduino上上傳PyFirmata固件,方法是單擊文件->示例->Firmata->標(biāo)準(zhǔn)Firmata,然后單擊上傳按鈕。如下圖所示。

poYBAGNqGJGAcmsdAABcUuGswMU315.png

我們已經(jīng)成功地在Arduino板中安裝了pyFirmata固件。現(xiàn)在,我們可以使用Raspberry Pi控制Arduino。

為了演示,我們將通過(guò)在Raspberry Pi中編寫python代碼來(lái)閃爍和淡化Arduino上的LED

代碼說(shuō)明

對(duì)于編碼部分,您應(yīng)該閱讀pyFirmata的文檔以更好地理解。我們將使用 pyFirmata 函數(shù)來(lái)編寫我們的代碼。您可以通過(guò)以下鏈接找到pyFirmata文檔。

因此,讓我們開(kāi)始編寫代碼

在Raspberry Pi上打開(kāi)您喜歡的文本編輯器并導(dǎo)入pyFirmata庫(kù)。

import pyfirmata

定義 Arduino 上的引腳以連接 LED

led_pin = 9

現(xiàn)在,我們必須使用 pyfirmata 編寫連接 Arduino 板的串行端口名稱。Arduino()函數(shù),然后通過(guò)在板變量中分配端口來(lái)創(chuàng)建一個(gè)實(shí)例。

board = pyfirmata.Arduino("/dev/ttyACM0")

print "Code is running”

在 while 循環(huán)中,使用board.digital[].write() 函數(shù)使 LED 引腳高電平和低電平,并使用board.pass_time()函數(shù)給出延遲。

while True:

board.digital[led_pin].write(0)

board.pass_time(1)

board.digital[led_pin].write(1)

board.pass_time(1)

我們的代碼已準(zhǔn)備就緒,通過(guò)將擴(kuò)展名放入文件名.py來(lái)保存此代碼。

打開(kāi)命令終端并鍵入pythonblink.py以在Arduino板上運(yùn)行代碼。確保您的Arduino板使用USB電纜與Raspberry Pi板連接。

現(xiàn)在,您可以在Arduino板上看到閃爍的LED。

最后給出了使用 pyFirmata 閃爍 LED 的完整代碼。

使用 pyFirmata 的 Arduino 上的衰落 LED

現(xiàn)在,我們將編寫用于淡入 LED 淡入淡出的代碼,以使您更熟悉 pyFirmata 函數(shù)。此代碼與上一個(gè)代碼一樣簡(jiǎn)單。您必須使用兩個(gè)用于循環(huán),一個(gè)用于增加亮度,另一個(gè)用于降低亮度。

Python code for LED blink:


import pyfirmata


led_pin = 9


board = pyfirmata.Arduino("/dev/ttyACM0")



while True:

board.digital[led_pin].write(0)

board.pass_time(1)

board.digital[led_pin].write(1)

board.pass_time(1)





Python code for Fading LED:


import time

import pyfirmata


delay = 0.3

brightness = 0


board = pyfirmata.Arduino("/dev/ttyACM0")


led = board.get_pin('d:9:p')

while True:

# increase

for i in range(0, 10):

brightness = brightness + 0.1

print "Setting brightness to %s" % brightness

led.write(brightness)

board.pass_time(delay)


# decrease

for i in range(0, 10):

print "Setting brightness to %s" % brightness

led.write(brightness)

brightness = brightness - 0.1

board.pass_time(delay)



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

    關(guān)注

    187

    文章

    6455

    瀏覽量

    186352
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    黑科技!使用Raspberry PiPython GUI控制伺服電機(jī)(原理圖、源碼、項(xiàng)目教程)

    教程中,我們將介紹如何使用Raspberry PiPython TK GUI精確控制伺服。硬件組件:Raspberry
    發(fā)表于 10-16 16:49

    請(qǐng)問(wèn)Raspberry pi如何用python控制脈沖驅(qū)動(dòng)BLDC伺服電機(jī)?

    請(qǐng)問(wèn)Raspberry pi如何用python控制脈沖驅(qū)動(dòng)BLDC伺服電機(jī)?
    發(fā)表于 09-27 08:17

    Learn Raspberry Pi Programming with python

    使用pythonRaspberry pi上進(jìn)行編程,好fashion的一件事!
    發(fā)表于 11-03 17:43 ?0次下載

    工業(yè)環(huán)境中的Raspberry PIArduino

    Raspberry PIArduino板是快速電子成型和家庭DIY應(yīng)用中非常有名的設(shè)備,不過(guò)他們?cè)诠I(yè)環(huán)境中的功能性和靈活性在很大程度上還有待評(píng)估。Raspberry
    發(fā)表于 06-23 11:32 ?4358次閱讀

    Arduino Uno 和 Raspberry Pi系列開(kāi)發(fā)

    處理速度、響應(yīng)時(shí)間、I/O 能力是 SoM 的顯著特征。但是,嵌入式系統(tǒng)中經(jīng)常也會(huì)集成 SBC,例如 Arduino Uno 和 Raspberry Pi 系列,因?yàn)檫@些產(chǎn)品同樣擁有廣泛的支持
    的頭像 發(fā)表于 08-31 15:53 ?5589次閱讀

    “添加”少許FPGA :ArduinoRaspberry Pi新玩法

    ArduinoRaspberry Pi開(kāi)發(fā)板是顛覆嵌入式系統(tǒng)開(kāi)發(fā)方式的登峰造極之作。從前,嵌入式系統(tǒng)的開(kāi)發(fā)從硬件開(kāi)始。
    發(fā)表于 08-02 15:26 ?1036次閱讀
    “添加”少許FPGA :<b class='flag-5'>Arduino</b>和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>新玩法

    使用Raspberry Pi進(jìn)行PWM控制

      通過(guò)使用每塊板上的 USB 接口以及現(xiàn)成的 pySerial 庫(kù),可以從 Raspberry Pi 發(fā)送命令來(lái)控制 Arduino 的多
    的頭像 發(fā)表于 08-12 10:09 ?1689次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>進(jìn)行PWM<b class='flag-5'>控制</b>

    Raspberry PiArduino上的手寫數(shù)字識(shí)別

    電子發(fā)燒友網(wǎng)站提供《Raspberry PiArduino上的手寫數(shù)字識(shí)別.zip》資料免費(fèi)下載
    發(fā)表于 10-19 09:23 ?0次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>Arduino</b>上的手寫數(shù)字識(shí)別

    使用Raspberry PiArduino:DIY LED矩陣彩燈

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry PiArduino:DIY LED矩陣彩燈.zip》資料免費(fèi)下載
    發(fā)表于 11-04 14:55 ?2次下載
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>或<b class='flag-5'>Arduino</b>:DIY LED矩陣彩燈

    使用Raspberry PiArduino進(jìn)行花卉監(jiān)測(cè)

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry PiArduino進(jìn)行花卉監(jiān)測(cè).zip》資料免費(fèi)下載
    發(fā)表于 11-11 15:11 ?0次下載
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>Arduino</b>進(jìn)行花卉監(jiān)測(cè)

    Raspberry Pi Zero W和Python 3入門

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi Zero W和Python 3入門.zip》資料免費(fèi)下載
    發(fā)表于 12-16 11:10 ?0次下載
    <b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> Zero W和<b class='flag-5'>Python</b> 3入門

    使用Raspberry PiArduino Uno構(gòu)建波表合成器

    不久前,我們研究了如何使用Raspberry Pi的I2C總線來(lái)控制Arduino Uno,以及如何使用它
    的頭像 發(fā)表于 02-24 18:16 ?1152次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>Arduino</b> Uno構(gòu)建波表合成器

    使用PythonRaspberry Pi的實(shí)時(shí)圖表

    電子發(fā)燒友網(wǎng)站提供《使用PythonRaspberry Pi的實(shí)時(shí)圖表.zip》資料免費(fèi)下載
    發(fā)表于 06-13 10:47 ?0次下載
    使用<b class='flag-5'>Python</b>和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>的實(shí)時(shí)圖表

    ArduinoRaspberry Pi平臺(tái)進(jìn)行編碼

    電子發(fā)燒友網(wǎng)站提供《ArduinoRaspberry Pi平臺(tái)進(jìn)行編碼.zip》資料免費(fèi)下載
    發(fā)表于 06-29 11:31 ?0次下載
    <b class='flag-5'>Arduino</b>和<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>平臺(tái)進(jìn)行編碼

    使用Raspberry PiArduino實(shí)現(xiàn)Web控制的LED動(dòng)畫

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry PiArduino實(shí)現(xiàn)Web控制的LED動(dòng)畫.zip》資料免費(fèi)下載
    發(fā)表于 07-03 14:52 ?0次下載
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>Arduino</b>實(shí)現(xiàn)Web<b class='flag-5'>控制</b>的LED動(dòng)畫