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

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

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

如何使用Raspberry pi和Python來控制Arduino

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

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

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

因此,在本教程中,我們將利用這個庫,并將在我們的Arduino 板中使用它來使用 Raspberry Pi 控制 Arduino。

要求

安裝了Raspbian OS的Raspberry Pi

Arduino Uno 或任何其他 Arduino 板

Arduino USB 電纜

發(fā)光二極管

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

使用 Raspberry Pi 在 Arduino 中安裝 PyFirmata

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

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

sudo apt-get

-y

install arduino python-serial mercurial

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

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

git clone

https://github.com/tino/pyFirmata

然后運行以下命令:

cd pyFirmata

sudo python setup.py install

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

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

pYYBAGNqGJCALTxmAACBmzxZNQQ140.png

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

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

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

poYBAGNqGJGAcmsdAABcUuGswMU315.png

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

為了演示,我們將通過在Raspberry Pi中編寫python代碼來閃爍和淡化Arduino上的LED。

代碼說明

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

因此,讓我們開始編寫代碼

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

import pyfirmata

定義 Arduino 上的引腳以連接 LED

led_pin = 9

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

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)備就緒,通過將擴(kuò)展名放入文件名.py來保存此代碼。

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

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

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

使用 pyFirmata 的 Arduino 上的衰落 LED

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

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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6481

    瀏覽量

    189071
收藏 0人收藏

    評論

    相關(guān)推薦

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

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

    請問Raspberry pi如何用python控制脈沖驅(qū)動BLDC伺服電機(jī)?

    請問Raspberry pi如何用python控制脈沖驅(qū)動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è)備,不過他們在工業(yè)環(huán)境中的功能性和靈活性在很大程度上還有待評估。Raspberry
    發(fā)表于 06-23 11:32 ?4553次閱讀

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

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

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

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

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

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

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

    電子發(fā)燒友網(wǎng)站提供《Raspberry PiArduino上的手寫數(shù)字識別.zip》資料免費下載
    發(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ù)字識別

    使用Raspberry PiArduino:DIY LED矩陣彩燈

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry PiArduino:DIY LED矩陣彩燈.zip》資料免費下載
    發(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)測

    電子發(fā)燒友網(wǎng)站提供《使用Raspberry PiArduino進(jìn)行花卉監(jiān)測.zip》資料免費下載
    發(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)測

    Raspberry Pi Zero W和Python 3入門

    電子發(fā)燒友網(wǎng)站提供《Raspberry Pi Zero W和Python 3入門.zip》資料免費下載
    發(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總線控制Arduino Uno,以及如何使用它
    的頭像 發(fā)表于 02-24 18:16 ?1421次閱讀
    使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>和<b class='flag-5'>Arduino</b> Uno構(gòu)建波表合成器

    使用PythonRaspberry Pi的實時圖表

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

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

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

    使用Raspberry PiArduino實現(xiàn)Web控制的LED動畫

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品