日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

怎樣通過(guò)USB進(jìn)行Arduino Python通信

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

掃碼添加小助手

加入工程師交流群

第1步:計(jì)算機(jī)環(huán)境

在計(jì)算機(jī)方面,我們將使用一個(gè)稱(chēng)為PySerial的Python模塊。巧合的是,PySerial允許通過(guò)Python使用串行連接。在Windows上安裝PySerial是一個(gè)非常簡(jiǎn)單的過(guò)程。 注意:此“假設(shè)”假設(shè)您已安裝Python 2. *!如果您不這樣做,PySerial仍然可以使用,但是您可能需要稍微更改代碼以適應(yīng)新標(biāo)準(zhǔn)。

要在Windows上安裝,只需訪問(wèn)PySerial的下載頁(yè)面,下載Windows二進(jìn)制文件并運(yùn)行它(在撰寫(xiě)本文時(shí)為pyserial-2.7.win32.exe)。然后,通過(guò)打開(kāi)新的Python解釋器實(shí)例并運(yùn)行以下命令來(lái)測(cè)試安裝:

import serial

步驟2:初始連接

要從Python啟動(dòng)與Arduino的連接,我們首先必須確定Arduino處于哪個(gè) COM端口。幸運(yùn)的是,Ardunio編程環(huán)境使此任務(wù)變得簡(jiǎn)單。

只需查看Arduino IDE的右下角,您將看到一些包含COM端口號(hào)的文本。我們將使用它來(lái)啟動(dòng)我們的Python串行連接,如下所示:

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

上面的代碼將在“ COM1”上使用“ 115200”波特創(chuàng)建一個(gè)名為“ ardunio”的新串行對(duì)象,速率和.1秒超時(shí)。保持選定的波特率非常重要,因?yàn)樗仨毰cArdiuno端的波特率完全匹配。

第3步:Ardiuno與Python的通信

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

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);

}

這段代碼將編寫(xiě)一個(gè)“來(lái)自Ardunio的Hello world!”。每秒一次連接到串行連接?,F(xiàn)在,我們將構(gòu)建一個(gè)Python腳本,該腳本能夠接收這些消息,并根據(jù)需要對(duì)其進(jìn)行處理。首先,我們必須像上一頁(yè)一樣啟動(dòng)連接,然后創(chuàng)建一個(gè)循環(huán),該循環(huán)從流中獲取當(dāng)前信息,并將其打印到控制臺(tái)。

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

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

第4步:Python與Arduino通訊

這一步有點(diǎn)難,因?yàn)檫@需要我們?cè)谑挛锏腁rduino方面解析數(shù)據(jù)。為了幫助加快速度,我繼續(xù)編寫(xiě)了一個(gè)簡(jiǎn)單的循環(huán),該循環(huán)從Serial緩沖區(qū)中獲取當(dāng)前數(shù)據(jù),并創(chuàng)建一個(gè)以Null結(jié)尾的字符串(C字符串),然后將其傳遞回Serial連接。您可以使用此技術(shù)來(lái)編寫(xiě)實(shí)際的解析器,方法是指定自己的數(shù)據(jù)包前綴和后綴,然后在串行緩沖區(qū)中掃描這些內(nèi)容,并相應(yīng)地創(chuàng)建字符串。

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);

}

}

現(xiàn)在我們可以編寫(xiě)一個(gè)簡(jiǎn)單的腳本,將數(shù)據(jù)從Python發(fā)送到Arduino,然后打印出返回的內(nèi)容。

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8480

    瀏覽量

    286064
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4889

    瀏覽量

    90330
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6527

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    使用Python/MyHDL創(chuàng)建自定義FPGA IP

    使用 Python/MyHDL 創(chuàng)建自定義 FPGA IP,與 Vivado 集成,并通過(guò) PYNQ 進(jìn)行控制——實(shí)現(xiàn)軟件上的簡(jiǎn)單硬件設(shè)計(jì)。
    的頭像 發(fā)表于 04-09 09:53 ?293次閱讀
    使用<b class='flag-5'>Python</b>/MyHDL創(chuàng)建自定義FPGA IP

    使用PYTHON進(jìn)行的跨平臺(tái)仿真

    。 使用Python進(jìn)行跨平臺(tái)參數(shù)掃描 我們將演示如何使用Python在VirtualLab Fusion中運(yùn)行參數(shù)掃描仿真。
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python進(jìn)行跨平臺(tái)參數(shù)掃描

    如何收集結(jié)果,這些結(jié)果可以通過(guò)Python提供的所有功能進(jìn)一步處理。以光柵為例,嚴(yán)格分析了光柵的衍射效率。 **此用例展示了… ** 在哪里找文件 README文件 **準(zhǔn)備Python
    發(fā)表于 03-31 09:36

    極海APM32F427如何實(shí)現(xiàn)自定義USB HID設(shè)備與PC進(jìn)行通信

    最近需要使用到 APM32F427 枚舉成Custom HID設(shè)備進(jìn)行用戶自定義通信,但是官方的例程只有提供的HID枚舉為鼠標(biāo)或者鍵盤(pán)類(lèi)型的設(shè)備。這里記錄一下,怎么使用Geehy官方的USB中間件,實(shí)現(xiàn)自定義的
    的頭像 發(fā)表于 03-30 09:30 ?2801次閱讀
    極海APM32F427如何實(shí)現(xiàn)自定義<b class='flag-5'>USB</b> HID設(shè)備與PC<b class='flag-5'>進(jìn)行</b><b class='flag-5'>通信</b>

    如何在 VisionFive 上使用 Python 包?

    Fedora 并確保 VisionFive 已連接到互聯(lián)網(wǎng)。有關(guān)詳細(xì)說(shuō)明,請(qǐng)參閱通過(guò)以太網(wǎng)使用 SSH或使用 USB 轉(zhuǎn)串行轉(zhuǎn)換器部分中的VisionFive 單板計(jì)算機(jī)快速入門(mén)指南. 執(zhí)行pip命令
    發(fā)表于 03-30 08:28

    Texas Instruments USB-TO-GPIO2接口適配器技術(shù)解析

    橋接器。USB 接口適配器與主機(jī) PC 之間的通信通過(guò) USB 實(shí)現(xiàn)。USB接口適配器與目標(biāo)器件之間的
    的頭像 發(fā)表于 09-10 15:47 ?1256次閱讀

    基于USB的多虛擬設(shè)備通信

    接口性能使MCU不僅能夠處理典型的設(shè)備/主機(jī)通信,還可以通過(guò)USB虛擬化多個(gè)設(shè)備或數(shù)據(jù)通道。這一特點(diǎn)有效滿足了各種應(yīng)用的多樣化需求。 USB 虛擬多復(fù)合設(shè)備:
    發(fā)表于 09-05 06:51

    怎么導(dǎo)出python邊緣計(jì)算中的APP,想進(jìn)行修改又找不到源碼?

    怎么導(dǎo)出python邊緣計(jì)算中的APP,想進(jìn)行修改又找不到源碼
    發(fā)表于 08-06 07:33

    USB為什么不適用于工業(yè)通信

    USB(通用串行總線)雖然廣泛應(yīng)用于消費(fèi)電子領(lǐng)域,但在工業(yè)通信場(chǎng)景中存在顯著局限性,主要源于其設(shè)計(jì)目標(biāo)、技術(shù)特性與工業(yè)環(huán)境需求的不匹配。以下是具體分析: 一、USB的核心設(shè)計(jì)目標(biāo)與工業(yè)需求的沖突
    的頭像 發(fā)表于 07-25 10:00 ?1466次閱讀

    STM32H747的USB無(wú)法連接到電腦,電腦提示“未知USB設(shè)備,(設(shè)備描述符請(qǐng)求失?。保趺唇鉀Q?

    USB部分電路抄的 arduino GIGA RI WiFi。通過(guò)BOOT0拉高強(qiáng)制進(jìn)入DFU 和 正常上電鏈接都不行,電腦顯示一致。“未知USB設(shè)備,(設(shè)備描述符請(qǐng)求失?。?/div>
    發(fā)表于 07-11 08:24

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

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

    CYUSB3014與PC通信幾小時(shí)后斷開(kāi),通過(guò)bus hound抓不到任何通信數(shù)據(jù),為什么?

    PC是WIN7系統(tǒng),PC端APP通過(guò)USB3與下位機(jī)通信幾個(gè)小時(shí)以后,通信就會(huì)斷開(kāi),通過(guò)bus hound抓不到任何
    發(fā)表于 06-04 08:27

    帶有USB C的便攜式設(shè)備可以通過(guò)USB C轉(zhuǎn)USB A電纜連接到計(jì)算機(jī)的USB A嗎?

    通過(guò) PC 進(jìn)行數(shù)據(jù)傳輸。 但是我們現(xiàn)在正在解決USB A到PC的向后兼容問(wèn)題,這樣即使沒(méi)有USB C連接器,用戶也可以將我們的設(shè)備連接到PC并使用該程序。 有一條
    發(fā)表于 05-27 06:29

    請(qǐng)問(wèn)PMG1設(shè)備可以通過(guò)USB CC引腳或D+ D-線進(jìn)行編程嗎?

    在生產(chǎn)線上對(duì) PMG1 設(shè)備(特別是 CYPM1011-24LQXI)進(jìn)行編程時(shí),是否可以通過(guò) USB 連接器進(jìn)行編程? 或者是否需要通過(guò)
    發(fā)表于 05-19 08:19

    通過(guò)USB對(duì)I2C進(jìn)行編程,CONTROL IN傳輸失敗的原因?怎么解決?

    我正在嘗試通過(guò) USB 對(duì) I2C 進(jìn)行編程。 該板包含 CX3 并連接了我們的相機(jī)。 但由于某種原因,CONTROL IN 傳輸失敗,錯(cuò)誤代碼:997。 此外,只有 Cypress USB
    發(fā)表于 05-13 07:54
    苍山县| 黄山市| 桃源县| 清河县| 兴化市| 仁寿县| 古浪县| 桦南县| 会泽县| 周至县| 张北县| 岢岚县| 贵德县| 南靖县| 永靖县| 绥芬河市| 肥乡县| 大化| 临湘市| 都江堰市| 化隆| 安远县| 萨迦县| 西昌市| 彭山县| 靖州| 施秉县| 岳阳市| 宣城市| 江津市| 台江县| 邮箱| 崇明县| 衢州市| 体育| 穆棱市| 乌拉特后旗| 闽侯县| 陵水| 晋州市| 建湖县|