国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

怎樣通過USB進行Arduino Python通信

454398 ? 來源:wv ? 2019-10-24 11:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:計算機環境

在計算機方面,我們將使用一個稱為PySerial的Python模塊。巧合的是,PySerial允許通過Python使用串行連接。在Windows上安裝PySerial是一個非常簡單的過程。 注意:此“假設”假設您已安裝Python 2. *!如果您不這樣做,PySerial仍然可以使用,但是您可能需要稍微更改代碼以適應新標準。

要在Windows上安裝,只需訪問PySerial的下載頁面,下載Windows二進制文件并運行它(在撰寫本文時為pyserial-2.7.win32.exe)。然后,通過打開新的Python解釋器實例并運行以下命令來測試安裝:

import serial

步驟2:初始連接

要從Python啟動與Arduino的連接,我們首先必須確定Arduino處于哪個 COM端口。幸運的是,Ardunio編程環境使此任務變得簡單。

只需查看Arduino IDE的右下角,您將看到一些包含COM端口號的文本。我們將使用它來啟動我們的Python串行連接,如下所示:

arduino = serial.Serial(‘COM1’, 115200, timeout=.1)

上面的代碼將在“ COM1”上使用“ 115200”波特創建一個名為“ ardunio”的新串行對象,速率和.1秒超時。保持選定的波特率非常重要,因為它必須與Ardiuno端的波特率完全匹配。

第3步:Ardiuno與Python的通信

在Ardunio和Python之間進行通信比通過其他方式更容易。首先,我們需要一些代碼來啟動Ardunio的串行連接,并傳遞一條消息。我們可以使用Arduino的Serial.write()函數來做到這一點,就像這樣:

void setup() {

Serial.begin(115200); // use the same baud-rate as the python side

}

void loop() {

Serial.println(“Hello world from Ardunio!”); // write a string

delay(1000);

}

這段代碼將編寫一個“來自Ardunio的Hello world!”。每秒一次連接到串行連接。現在,我們將構建一個Python腳本,該腳本能夠接收這些消息,并根據需要對其進行處理。首先,我們必須像上一頁一樣啟動連接,然后創建一個循環,該循環從流中獲取當前信息,并將其打印到控制臺。

import serial

arduino = serial.Serial(‘COM1’, 115200, timeout=.1)

while True:

data = arduino.readline()[:-2] #the last bit gets rid of the new-line chars

if data:

print data

請注意,在這種情況下,readline()處于阻塞狀態,因此它將等待直到新行完全通過串行緩沖區為止。通常,readline()會占據空白行,因此我放入了if語句來檢查數據是否實際包含任何內容。如果您想更精確地獲取非阻塞數據,則可以在Arduino端使用read()并使用Serial.write()(用于字節)或Serial.print()(用于ASCII字符),但是您需要

第4步:Python與Arduino通訊

這一步有點難,因為這需要我們在事物的Arduino方面解析數據。為了幫助加快速度,我繼續編寫了一個簡單的循環,該循環從Serial緩沖區中獲取當前數據,并創建一個以Null結尾的字符串(C字符串),然后將其傳遞回Serial連接。您可以使用此技術來編寫實際的解析器,方法是指定自己的數據包前綴和后綴,然后在串行緩沖區中掃描這些內容,并相應地創建字符串。

void setup() {

Serial.begin();

}

void loop() {

if(Serial.available() 》 0) {

char data = Serial.read();

char str[2];

str[0] = data;

str[1] = ‘’;

Serial.print(str);

}

}

現在我們可以編寫一個簡單的腳本,將數據從Python發送到Arduino,然后打印出返回的內容。

import serial, time

arduino = serial.Serial(‘COM1’, 115200, timeout=.1)

time.sleep(1) #give the connection a second to settle

arduino.write(“Hello from Python!”)

while True:

data = arduino.readline()

if data:

print data.rstrip(‘ ’) #strip out the new lines for now

# (better to do .read() in the long run for this reason

不難看出如何進一步擴展此方法以允許兩個設備之間進行復雜的通信。我將在以后的“ ible”中介紹這種通信的一個示例,在該示例中,我將制作一種能夠在任何PC游戲上工作的游戲手柄設備!

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

    關注

    60

    文章

    8440

    瀏覽量

    284541
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90040
  • Arduino
    +關注

    關注

    190

    文章

    6526

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Texas Instruments USB-TO-GPIO2接口適配器技術解析

    橋接器。USB 接口適配器與主機 PC 之間的通信通過 USB 實現。USB接口適配器與目標器件之間的
    的頭像 發表于 09-10 15:47 ?994次閱讀

    基于USB的多虛擬設備通信

    接口性能使MCU不僅能夠處理典型的設備/主機通信,還可以通過USB虛擬化多個設備或數據通道。這一特點有效滿足了各種應用的多樣化需求。 USB 虛擬多復合設備:
    發表于 09-05 06:51

    termux如何搭建python游戲

    模擬器,支持通過APT包管理器安裝軟件。搭建Python游戲開發環境前需完成以下基礎配置: 1. 更換國內源 為提升下載速度,需替換Termux默認源為清華源,執行以下命令: ```bash
    發表于 08-29 07:06

    怎么導出python邊緣計算中的APP,想進行修改又找不到源碼?

    怎么導出python邊緣計算中的APP,想進行修改又找不到源碼
    發表于 08-06 07:33

    USB為什么不適用于工業通信

    USB(通用串行總線)雖然廣泛應用于消費電子領域,但在工業通信場景中存在顯著局限性,主要源于其設計目標、技術特性與工業環境需求的不匹配。以下是具體分析: 一、USB的核心設計目標與工業需求的沖突
    的頭像 發表于 07-25 10:00 ?1120次閱讀

    基于FPGA和USB3.0通信的UVC攝像機設計方案

    本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下稱 FX3),該芯片是標準的USB3.0 PHY,可以大大簡化使用USB通信時FPGA的設計,主需要使用狀態機
    的頭像 發表于 07-21 16:20 ?6914次閱讀
    基于FPGA和<b class='flag-5'>USB</b>3.0<b class='flag-5'>通信</b>的UVC攝像機設計方案

    STM32H747的USB無法連接到電腦,電腦提示“未知USB設備,(設備描述符請求失敗)”,怎么解決?

    USB部分電路抄的 arduino GIGA RI WiFi。通過BOOT0拉高強制進入DFU 和 正常上電鏈接都不行,電腦顯示一致。“未知USB設備,(設備描述符請求失敗)”
    發表于 07-11 08:24

    STM32H747 的USB口,燒錄程序就損壞,提示“NO DFU capable USB device available”怎么解決?

    板子抄的 arduino GIGA RI。通過SWD燒錄正常,控制點燈正常。 通過USB連接電腦,正常。如圖一。arduino IED能正常
    發表于 07-10 08:28

    【正點原子STM32MP257開發板試用】2.USB攝像頭使用

    ) (usb-482f0000.usb-1.3): /dev/video7 /dev/video8 /dev/media2 最后一個(UVC Camera)就是設備,要記下是video多少,后期opencv-python需要
    發表于 06-16 19:16

    CYUSB3014與PC通信幾小時后斷開,通過bus hound抓不到任何通信數據,為什么?

    PC是WIN7系統,PC端APP通過USB3與下位機通信幾個小時以后,通信就會斷開,通過bus hound抓不到任何
    發表于 06-04 08:27

    帶有USB C的便攜式設備可以通過USB C轉USB A電纜連接到計算機的USB A嗎?

    通過 PC 進行數據傳輸。 但是我們現在正在解決USB A到PC的向后兼容問題,這樣即使沒有USB C連接器,用戶也可以將我們的設備連接到PC并使用該程序。 有一條
    發表于 05-27 06:29

    請問PMG1設備可以通過USB CC引腳或D+ D-線進行編程嗎?

    在生產線上對 PMG1 設備(特別是 CYPM1011-24LQXI)進行編程時,是否可以通過 USB 連接器進行編程? 或者是否需要通過
    發表于 05-19 08:19

    通過USB對I2C進行編程,CONTROL IN傳輸失敗的原因?怎么解決?

    我正在嘗試通過 USB 對 I2C 進行編程。 該板包含 CX3 并連接了我們的相機。 但由于某種原因,CONTROL IN 傳輸失敗,錯誤代碼:997。 此外,只有 Cypress USB
    發表于 05-13 07:54

    請問k230可否和樹莓派通過USB-typeC線來通信

    能否讓一根線接樹莓派的USB接口同時接到k230的tpyeC接口,同時供電和通信,將k230視覺獲取的信息傳給樹莓派。這個能實現嗎有沒有什么學習的例程?求各位大佬教教 你好,可以讓樹莓派做usb主機,230做從機,
    發表于 04-28 08:25

    有沒有大神使用cubeMX生成初始代碼開發實現通過USB(HID)進行OTA升級功能的?

    求助,有沒有大神使用cubeMX生成初始代碼開發實現通過USB(HID)進行OTA升級功能的
    發表于 04-22 13:35