久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Python控制Arduino與樹莓派:串口、Firmata與GPIO實戰(zhàn)指南

Python控制Arduino與樹莓派:串口、Firmata與GPIO實戰(zhàn)指南 前陣子有個做智能家居的朋友問我想用Python控制Arduino或樹莓派感覺網(wǎng)上資料很散不知道該從哪條路入門。這個問題我太熟了剛接觸硬件時我也被這兩種設(shè)備搞暈過Arduino是微控制器跑的是C樹莓派是一臺小電腦跑的是Linux。用Python把它們管起來最關(guān)鍵的從來不是Python語法而是搞清通信鏈路和設(shè)備邊界。這篇文章就把我實測過的幾種方案、對應(yīng)的坑和完整示例一次講清楚覆蓋串口通信、Firmata協(xié)議和GPIO直控給正在做自動化項目的朋友一份能直接上手的路線圖。1. 先想清楚你需要的究竟是哪種控制方式1.1 什么是“用Python控制”三條主流路徑Arduino和樹莓派雖然常被放在一起比較但本質(zhì)完全不同。Arduino是基于AVR或ARM微控制器的開發(fā)板沒有操作系統(tǒng)上電后只能反復(fù)執(zhí)行一段用C/C寫好的循環(huán)程序樹莓派則是一臺完整的ARM Linux迷你電腦有CPU、內(nèi)存、存儲和圖形界面Python可以直接跑在上面。正因如此“用Python控制它們”這句話在不同設(shè)備上對應(yīng)的實現(xiàn)方式完全不一樣。我實測下來主流玩法有三條路徑路徑一Arduino跑自己的固件電腦上的Python通過USB串口向Arduino發(fā)送指令。Arduino收到指令后執(zhí)行動作比如點亮LED、驅(qū)動電機、采集傳感器數(shù)據(jù)再把結(jié)果發(fā)回電腦。路徑二給Arduino燒錄Firmata固件把Arduino變成一個“USB外設(shè)”。電腦上的Python用pyFirmata或pymata4直接讀寫Arduino的引腳相當(dāng)于Python直接控制硬件。路徑三在樹莓派上直接安裝Python和GPIO庫通過樹莓派的GPIO引腳控制外設(shè)代碼和Python進程跑在同一臺設(shè)備上。三條路徑不是非此即彼的排他關(guān)系很多時候可以混用。我做過一個自動澆灌系統(tǒng)樹莓派負責(zé)天氣API和數(shù)據(jù)庫Arduino負責(zé)控制水泵和讀取土壤濕度兩者之間用USB串口通信。樹莓派是大腦Arduino是手腳Python是膠水。1.2 選型判斷從實時性、開發(fā)效率和成本切入選擇哪條路徑主要看三個維度實時性要求、開發(fā)效率、設(shè)備成本。Arduino串口方案實時性最好。Arduino固件在中斷和循環(huán)中執(zhí)行響應(yīng)時間可控特別適合PWM調(diào)速、步進電機脈沖、傳感器連續(xù)采樣這些需要確定性的任務(wù)。Firmata方案開發(fā)效率最高燒錄一次固件后之后所有邏輯都在Python里寫改代碼不用反復(fù)燒板適合原型驗證、實驗室數(shù)據(jù)采集但同一個引腳被上位機不斷讀寫時延遲會比原生固件高幾毫秒到幾十毫秒做小車避障這種對響應(yīng)速度敏感的項目就得斟酌。樹莓派GPIO方案適合任務(wù)多、邏輯復(fù)雜、需要聯(lián)網(wǎng)或圖像識別的項目但樹莓派跑的是非實時Linux線程調(diào)度不確定如果你需要用微秒級精度做波形建議還是交給Arduino或者用pigpio的硬件PWM輔助。用生活場景類比Arduino是那種任勞任怨的直屬員工你告訴它做什么它就不停執(zhí)行Firmata像是把員工變成遠程操作員你隨時發(fā)指令但它一次只能處理一件樹莓派更像一個部門經(jīng)理能同時協(xié)調(diào)多件事但每件事的響應(yīng)時間不是絕對保證。所以我的選型建議很簡單外設(shè)簡單、交互頻率低可以用Firmata快速出Demo要做高確定性控制老老實實用串口協(xié)議需要跑攝像頭和AI模型直接用樹莓派的Python環(huán)境。項目的技術(shù)棧永遠跟著需求走而不是反過來。2. Arduino串口通信最通用、最穩(wěn)定的控制方案2.1 環(huán)境準備從安裝到接線一次到位先把基礎(chǔ)環(huán)境搭好。電腦端需要Arduino IDE現(xiàn)在叫Arduino IDE 2和PythonPython需要pyserial安裝一行命令pip install pyserialArduino IDE主要用于寫Arduino固件和確認串口狀態(tài)。安裝后用USB線把Arduino接到電腦Windows下Arduino一般會識別成COM口比如COM3、COM5Linux/macOS下是/dev/ttyACM0或/dev/cu.usbmodem14101這類路徑。第一次接上時如果系統(tǒng)沒自動裝驅(qū)動多半是板子上的USB轉(zhuǎn)串口芯片驅(qū)動沒裝常見芯片有CH340、CP2102、ATmega16U2按芯片型號裝驅(qū)動就好。硬件接線這件事很多教程寫得過于神秘。如果你只是想測試串口通信不需要任何外部電路直接用USB線連電腦和開發(fā)板板載LED就是最好的實驗對象。Arduino Uno的板載LED通常焊在D13引腳部分板子上叫L直接控制它不需要額外接線。如果要外接LED記住LED長腳接正極短腳接負極串一個220歐姆到330歐姆的電阻到D13另一端接GND。這個電阻不是可選項沒有它電流容易超過LED額定值燒壞LED甚至可能影響引腳。接線時還有兩個細節(jié)容易踩坑。一是外部供電時一定要和Arduino共地也就是外部電源的地線要和Arduino的GND接在一起否則串口信號沒有參考零點數(shù)據(jù)全是亂碼二是不要在板子通電狀態(tài)反復(fù)插拔杜邦線容易造成引腳瞬間短路。我的習(xí)慣是斷電狀態(tài)下接線確認無誤再通電。2.2 最小示例讓Python點亮Arduino板載LED現(xiàn)在做一個最簡單的閉環(huán)Python向串口發(fā)一個字符Arduino收到后點亮或熄滅板載LED。Arduino端固件如下char cmd; void setup() { Serial.begin(9600); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); } void loop() { if (Serial.available() 0) { cmd Serial.read(); if (cmd 1) { digitalWrite(LED_BUILTIN, HIGH); } else if (cmd 0) { digitalWrite(LED_BUILTIN, LOW); } } }要點是Serial.begin(9600)的波特率和Python端必須完全一致這是串口通信最容易出問題的地方一個9600一個115200讀到的全是亂碼。Serial.available()判斷緩沖區(qū)有沒有字節(jié)Serial.read()每次讀取一個字符固件循環(huán)里的指令處理是實時的收到一個字符就執(zhí)行一次。這個固件雖小但已經(jīng)包含了一個完整的串口指令解析邏輯讀取、判斷、執(zhí)行。真實項目里這幾十行基礎(chǔ)結(jié)構(gòu)完全夠用你只需要在if后面添加更多指令分支比如a控制舵機、m控制電機、r讀取傳感器。Python端代碼import serial import time ser serial.Serial(COM3, 9600, timeout1) time.sleep(2) ser.write(b1) # 點亮LED time.sleep(1) ser.write(b0) # 熄滅LED ser.close()這里有兩個必修知識點。第一time.sleep(2)不是亂加的。Arduino在USB連接后會自動復(fù)位一次復(fù)位過程中會重新啟動此時上位機立刻發(fā)數(shù)據(jù)容易丟等2秒是讓板子完成啟動。第二ser.write(b1)必須傳字節(jié)串而不是普通字符串Python3里字符串和字節(jié)串是兩種類型普通字符串需要先encode()否則會報錯。串口打開時經(jīng)常會遇到PermissionErrorWindows下通常是串口被Arduino IDE的串口監(jiān)視器占用關(guān)掉監(jiān)視器再運行Linux下則是當(dāng)前用戶沒有訪問串口設(shè)備的權(quán)限后面常見問題部分會詳細說。2.3 為什么不能直接發(fā)字符串給自己設(shè)計一個指令協(xié)議很多初學(xué)者做到上一步就停了然后把代碼堆成幾百行在Arduino和Python兩側(cè)用無數(shù)if和字符串比較處理數(shù)據(jù)遇到數(shù)據(jù)錯亂才回頭補協(xié)議。我的經(jīng)驗是串口通信別看它簡單真正的坑全在“消息邊界”上。串口本質(zhì)上是字節(jié)流數(shù)據(jù)一個字節(jié)一個字節(jié)地從TX口送到RX口沒有像報文那樣的消息間隔。如果你的Python程序連續(xù)發(fā)1和2Arduino先收到的是1再收到2這沒問題但如果你發(fā)的是12Arduino可能會完整收到1,2也可能因為時序問題只讀到1下一條指令就成了2。環(huán)境干擾、電源紋波、系統(tǒng)調(diào)度抖動都可能讓字節(jié)流“切”出問題。所以稍微復(fù)雜一點的通信都要自己約定協(xié)議。最簡單的做法是給每條指令加固定的幀頭和長度。比如幀頭0xAA 0x55兩個字節(jié)長度1個字節(jié)表示后面數(shù)據(jù)個數(shù)數(shù)據(jù)N個字節(jié)校驗1個字節(jié)對長度和數(shù)據(jù)做異或單片機端收到后先判斷幀頭再讀長度然后讀夠N個字節(jié)做異或校驗校驗通過才執(zhí)行命令。這樣即使一個壞幀出現(xiàn)也能通過幀頭同步恢復(fù)不會影響后續(xù)指令。Python端組裝一幀的代碼可以這樣寫def build_command(data: bytes) - bytes: frame_header b\xaa\x55 length len(data) checksum length for b in data: checksum ^ b return frame_header bytes([length]) data bytes([checksum])這只是很簡單的示意實際協(xié)議要根據(jù)項目復(fù)雜度裁剪。如果只需要控制幾個開關(guān)用單字符或帶換行符的字符串也完全夠如果要做傳感器數(shù)據(jù)回傳和命令下發(fā)建議把幀結(jié)構(gòu)固定下來并且最好帶上應(yīng)答和超時重發(fā)機制。這會在調(diào)試上省下大量時間。還要注意Arduino Uno的串口緩沖區(qū)默認最大64字節(jié)如果你要一次性傳輸大批數(shù)據(jù)可以把數(shù)據(jù)切片發(fā)送或者調(diào)大緩沖區(qū)。我做過一次八軸機械臂的指令解析一幀正好60字節(jié)超過緩沖區(qū)就出現(xiàn)丟幀最后是靠把幀長減到48字節(jié)才規(guī)避的這種問題到后面排查時會很痛苦。3. Arduino Firmata把Arduino變成可插拔的USB外設(shè)3.1 Firmata協(xié)議的原理與固件燒錄如果你只需要快速驗證一個想法不想每次改功能都去改Arduino固件、重新燒錄那Firmata是很好的選擇。Firmata是一種通用協(xié)議它定義了上位機比如電腦上的Python和Arduino之間的通信格式是發(fā)送指令、讀引腳還是寫引腳都用一套標準消息來承載而不是自定義字符。先用Arduino IDE打開固件文件 - 示例 - Firmata - StandardFirmata選擇你的板子和串口直接燒錄。這個固件是官方維護的燒進去之后Arduino就不再執(zhí)行你自己的邏輯而是變成一個“聽話的USB轉(zhuǎn)IO設(shè)備”Python通過協(xié)議告訴它引腳幾、模式是什么、是輸出高電平還是讀模擬值它就照做。需要注意StandardFirmata默認的波特率通常是57600pyFirmata在連接時也會默認用這個值如果你手動設(shè)置波特率必須兩邊保持一致。另外Firmata不是萬能的燒錄后如果串口波特率選錯上位機連不上一次只能有一個程序占用Arduino串口不能同時開著串口監(jiān)視器和Python。如果你頻繁調(diào)用引腳讀寫serial上的延遲會成為瓶頸。3.2 Python端使用pyFirmata控制引腳安裝依賴pip install pyfirmata然后連接from pyfirmata import Arduino, util import time port /dev/ttyACM0 # Windows下是COM3 board Arduino(port) # 寫數(shù)字引腳13 board.digital[13].write(1) time.sleep(1) board.digital[13].write(0) # 讀模擬引腳A0 analog_input board.analog[0] it util.Iterator(board) it.start() time.sleep(0.1) print(analog_input.read()) board.exit()需要注意讀取模擬值必須開啟Iterator否則Arduino不會主動往電腦發(fā)數(shù)據(jù)第一次讀取之前等一小段時間等引腳采樣穩(wěn)定。還要留意pyFirmata在部分Python新版本下可能會因為依賴庫版本問題報錯如果遇到可以換成pymata4API類似但更現(xiàn)代pip install pymata4from pymata4 import pymata4 board pymata4.Pymata4(com_port/dev/ttyACM0) board.set_pin_mode_digital_output(13) board.digital_write(13, 1) board.set_pin_mode_analog_input(0) board.analog_read(0) board.shutdown()pymata4的寫法更清晰文檔也更完整我現(xiàn)在做原型項目一般直接用pymata4。3.3 什么情況下該用Firmata什么情況別用在硬件原型階段Firmata能把“改代碼”的工作從Arduino搬到Python效率提升非常明顯特別適合做課程設(shè)計、數(shù)據(jù)采集、傳感器標定這類場景。但正式項目里我更建議回到自定義串口協(xié)議原因有幾個第一Firmata的每一條引腳讀寫消息都有協(xié)議開銷連續(xù)操作大量引腳時實時性不夠穩(wěn)定。第二StandardFirmata固件固定了引腳模式有些高級功能比如外部中斷、高精度PWM、特殊I2C配置要么不支持要么需要改固件那就失去了不燒固件的意義。第三如果Arduino在現(xiàn)場還要獨立工作不能依賴電腦那Firmata方案直接出局因為它離了上位機就是一塊“木頭”。所以我的結(jié)論是Firmata擅長給原型加分不擅長給產(chǎn)品兜底。當(dāng)一個項目從Demo走向落地我會把通信層從Firmata切換到自定義固件這個切換越早做越好因為協(xié)議變更會影響上層Python邏輯。4. 樹莓派直接跑PythonGPIO控制與更多可能4.1 從Arduino切換到樹莓派先理解物理引腳和邏輯電平樹莓派本身就是一臺電腦所以用Python控制樹莓派的GPIO思路和Arduino完全不同。不需要USB串口不需要上位機Python進程直接訪問Linux系統(tǒng)映射出的GPIO接口。樹莓派最常用的是40Pin GPIO排針布局基本兼容。開發(fā)時我手邊常備一張引腳圖可以搜索“Raspberry Pi GPIO pinout”并保存。重點區(qū)分兩類編號物理編號比如從左上角開始數(shù)第1腳和BCM編號Broadcom芯片的端口編號。比如物理第11腳對應(yīng)的BCM是17RPi.GPIO和gpiozero默認使用BCM編號所以代碼里寫GPIO17基本不會錯但接線時要對著物理引腳確認。硬件上的電平也需要格外小心樹莓派的GPIO是3.3V邏輯不是5V。把5V設(shè)備的TX信號直接接到樹莓派RX引腳長時間可能燒壞CPU需要用電平轉(zhuǎn)換模塊或者分壓電阻。Arduino Uno的引腳邏輯是5V所以和樹莓派直接連串口時Arduino TX的5V電平不能直接進樹莓派RX必須加轉(zhuǎn)換。這是我見過燒板最高發(fā)的原因沒有之一。4.2 GPIO庫怎么選RPi.GPIO、gpiozero、pigpio樹莓派上常見的Python GPIO庫有三個它們各有各的脾氣。RPi.GPIO是最老牌、資料最多的庫很多教程都用它。語法直白GPIO.setmode(GPIO.BCM)、GPIO.setup(17, GPIO.OUT)、GPIO.output(17, GPIO.HIGH)一看就懂。但它的維護已經(jīng)趨于停滯在新的樹莓派系統(tǒng)上偶爾會遇到運行時錯誤而且對異步支持不好。我第一個GPIO項目就是用它寫的但對新手來說現(xiàn)在有更好的選擇。gpiozero是官方推薦的庫API設(shè)計非?!癙ythonic”。它把LED、Button、Motor、Servo這些外設(shè)封裝成了類代碼讀起來像自然語言比如led LED(17)、btn Button(2)而且封裝了設(shè)備異步事件、防抖邏輯甚至?xí)詣忧謇硗顺鰻顟B(tài)。對快速做項目、寫教學(xué)Demo我強烈推薦它。pigpio走的是守護進程模式樹莓派上跑一個pigpiod守護進程你的Python腳本通過socket連接這個進程好處是PWM波形更精確、支持遠程GPIO局域網(wǎng)內(nèi)另一臺機器控制樹莓派還能同時監(jiān)聽多個引腳。它適合對時序要求高、需要PWM或者邊緣檢測的場景。缺點是多了后臺服務(wù)調(diào)試時多一個故障點。我用表格總結(jié)一下庫維護狀態(tài)適合場景底層實現(xiàn)備注RPi.GPIO停止活躍維護舊項目遷移直接操作寄存器資料最多但API略老gpiozero官方持續(xù)維護快速開發(fā)、教學(xué)封裝底層庫外設(shè)類豐富易上手pigpio持續(xù)維護高頻PWM、遠程控制C守護進程socketPWM精確功耗略高選型建議很簡單99%的新項目直接用gpiozero如果遇到它解決不了的高頻需求再切pigpio別在一個庫上死磕。4.3 一個按鈕控制LED的完整示例用gpiozero寫一個按鈕控制LED的完整示例。接線按鈕一端接GPIO2另一端接GNDLED接GPIO17串聯(lián)一個電阻到GND。from gpiozero import LED, Button led LED(17) btn Button(2) btn.when_pressed led.toggle input(按鍵控制LED回車退出...\n)只用三行核心代碼就實現(xiàn)了事件驅(qū)動按鈕按下時LED切換狀態(tài)不需要while循環(huán)輪詢。gpiozero在內(nèi)部用了線程和回調(diào)input()保持主進程存活。這里注意GPIO2在樹莓派上默認帶1KΩ上拉電阻Button默認就是上拉輸入所以按鈕另一端接GND按下時電平被拉低識別為按下這是最常見的接法。如果用RPi.GPIO寫輪詢版本大致是這樣import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(2, GPIO.IN, pull_up_downGPIO.PUD_UP) GPIO.setup(17, GPIO.OUT) GPIO.output(17, GPIO.LOW) try: while True: if GPIO.input(2) GPIO.LOW: GPIO.output(17, not GPIO.input(17)) time.sleep(0.3) # 防抖 finally: GPIO.cleanup()對比能看出gpiozero封裝掉了輪詢、去抖和狀態(tài)管理的細節(jié)代碼更少出錯的概率也更低。不過封裝也意味著你想完全控制引腳時序時不太方便這是取舍不是bug。4.4 把GPIO能力封裝成網(wǎng)絡(luò)接口給后續(xù)項目鋪路樹莓派既然跑著完整系統(tǒng)就沒必要只拿GPIO做開關(guān)。我常用的一個模式是把GPIO控制封裝成HTTP接口這樣手機、另一臺電腦甚至網(wǎng)頁都能控制樹莓派。用FastAPI寫一個最小接口from fastapi import FastAPI from gpiozero import LED app FastAPI() led LED(17) app.get(/led/on) def led_on(): led.on() return {status: ok} app.get(/led/off) def led_off(): led.off() return {status: ok}這樣就已經(jīng)是一個局域網(wǎng)內(nèi)的智能開關(guān)服務(wù)器了。更進一步可以接入MQTT讓設(shè)備通過主題home/led/17接收指令再配合一套控制面板就能脫離電腦和IDE實現(xiàn)真正的遠程控制。別被這么多技術(shù)名詞嚇到核心仍然是我們剛才的GPIO庫外面包了一層網(wǎng)絡(luò)協(xié)議而已。5. 常見問題與排查技巧實錄5.1 串口識別不到、權(quán)限被拒Arduino接上電腦后設(shè)備管理器看不到新增COM口或者Python報could not open port。按順序排查檢查USB線是不是純充電線很多USB線只接電源不接數(shù)據(jù)接上后板子能通電但沒有任何串口。換一根已知能傳數(shù)據(jù)的線。檢查USB轉(zhuǎn)串口驅(qū)動。CH340、CP2102芯片在Windows下容易驅(qū)動識別異常去芯片官網(wǎng)裝驅(qū)動或者換用原生USB串口的Arduino板。Windows下打開設(shè)備管理器查看端口COM和LPT確認端口號。如果顯示黃色感嘆號更新驅(qū)動。Linux/macOS下用ls /dev/tty*或ls /dev/cu*查看設(shè)備。如果能看到設(shè)備但Python打不開幾乎都是權(quán)限問題把當(dāng)前用戶加進dialout組后重新登錄sudo usermod -a -G dialout $USER如果Arduino IDE能打開串口監(jiān)視器但Python打不開檢查是否同時開著兩個串口監(jiān)控程序同一個串口同一時刻只能被一個程序獨占。5.2 亂碼、丟包、卡死串口通信三大頑疾串口出現(xiàn)亂碼優(yōu)先檢查波特率是否一致、地線是否可靠共地。波特率不一致最典型如果Arduino端Serial.begin(9600)Python端定為115200那讀到的基本是天書。另外如果Arduino供電電壓不穩(wěn)比如用劣質(zhì)USB線或者電源電流不足也可能在通信過程中偶發(fā)亂碼。丟包和卡死多半和寫入時機有關(guān)。Python端調(diào)用serial.write()后立即close()Arduino可能還沒讀完緩沖區(qū)數(shù)據(jù)進程就退了。正確做法是寫入后等待一小段時間或者讀取Arduino發(fā)回的確認字符再繼續(xù)下一步。尤其不要在循環(huán)里不加延時地往串口扔數(shù)據(jù)Arduino的串口緩沖區(qū)一旦被填滿后續(xù)數(shù)據(jù)全部丟棄程序看起來就是“卡死”。解決卡死還有一個很實用的技巧在串口讀取上設(shè)置超時。Python端serial.Serial的timeout參數(shù)一定要設(shè)置不要用默認的-1timeout1表示讀操作最多阻塞1秒避免Arduino長時間不響應(yīng)時Python進程無限等待。如果你用ser.read()讀取不定長數(shù)據(jù)可以先用ser.in_waiting獲取當(dāng)前緩沖區(qū)可用字節(jié)數(shù)再讀指定數(shù)量這樣不會一次讀太多導(dǎo)致超時。5.3 電流不夠和電平不匹配硬件安全紅線很多新手把LED直接接在GPIO上或者把一個小電機直接接在Arduino引腳結(jié)果引腳發(fā)燙、芯片損壞。原因是微控制器GPIO的驅(qū)動能力有限Arduino的IO引腳通常只能提供20mA左右的電流樹莓派GPIO更是只有16mA左右。LED串個電阻就能解決但電機啟動電流很容易達到數(shù)百毫安必須用電機驅(qū)動板比如常見的L298N、TB6612或者用MOSFET模塊。計算LED限流電阻的公式很簡單R (Vcc - Vf) / I。以Arduino的5V驅(qū)動一個紅色LED為例導(dǎo)通壓降Vf約2V工作電流選10mA那么R (5 - 2) / 0.01 300Ω取標準值330Ω就很安全。樹莓派3.3V驅(qū)動藍色LEDVf約3VR (3.3 - 3) / 0.01 30Ω但藍色LED亮度很高實際可以用100Ω甚至220Ω限制到更小電流。電平匹配方面上面已經(jīng)提過樹莓派GPIO不能接受5V邏輯信號。如果要讓樹莓派讀取一個5V傳感器的輸出最簡單是使用電平轉(zhuǎn)換模塊或者用電阻分壓串一個1K電阻后再接一個2K電阻到地中間抽頭接樹莓派引腳這樣5V經(jīng)過分壓后約3.3V。分壓只適用于低速信號高速串口建議還是用專用模塊。5.4 程序退出后引腳狀態(tài)殘留與代碼健壯性寫Python控制GPIO最詭異的現(xiàn)象是程序崩潰后LED仍然亮著或者引腳電平異常。原因是GPIO狀態(tài)不會被自動清理Linux內(nèi)核保持最后一次寫出的電平直到下一個進程重新控制或者板子重啟。gpiozero在正常退出時會清理但如果遇到CtrlC、異常退出清理邏輯不一定會執(zhí)行。所以代碼要養(yǎng)成這樣的習(xí)慣主邏輯盡量包在有finally的結(jié)構(gòu)里退出前做清理。用gpiozero時可以顯式調(diào)用led.close()用RPi.GPIO時調(diào)用GPIO.cleanup()。如果你寫任何長時間運行的服務(wù)還要考慮信號處理比如在SIGTERM時把引腳拉低防止斷電前外設(shè)出現(xiàn)不該有的動作。同樣Python腳本里如果使用了atexit注冊清理函數(shù)最好把硬件的停止邏輯也放進去例如關(guān)閉所有PWM、拉低電機使能腳這能防止下次啟動時設(shè)備突然原地動作。產(chǎn)品現(xiàn)場偶爾重啟機器這類問題最容易被忽略。5.5 調(diào)試習(xí)慣日志、模擬器和版本管理最后想分享一個很多教程不會提的調(diào)試習(xí)慣。硬件項目調(diào)試時不要靠print盲猜尤其不要在主循環(huán)里寫一堆print導(dǎo)致時序偏移。建議用標準的logging模塊輸出到文件串口接收數(shù)據(jù)時記錄十六進制原始內(nèi)容比如import logging logging.basicConfig(levellogging.DEBUG, filenamedebug.log) ... logging.debug(RX: %s, raw.hex())這樣一旦出問題直接翻日志看原始字節(jié)流比起在終端前守著要省心得多。如果你身邊沒有硬件也完全可以用模擬環(huán)境做上層邏輯開發(fā)。樹莓派這邊gpiozero提供了模擬引腳實現(xiàn)配合pytest可以寫單元測試來驗證業(yè)務(wù)邏輯Arduino那一側(cè)可以用Python的fake serial類替換真實串口讓Python代碼在本地跑通到了現(xiàn)場再切回真實設(shè)備。我的很多項目都是這樣分層處理的復(fù)雜的算法邏輯在模擬環(huán)境里先驗證硬件只是最后一步的“設(shè)備驅(qū)動”。版本管理也不可忽略。Arduino固件和Python代碼放在同一個git倉庫建立firmware/和python_controller/兩個目錄每次改動留下記錄非常重要。硬件問題有時候是代碼回歸有時候是接線錯誤git能幫你快速對比老版本代碼省掉很多重復(fù)排查。6. 寫在最后的實操體會這幾套方案我陸陸續(xù)續(xù)用了很長時間最大的感受是工具永遠在變但通信鏈路和硬件常識不會變。無論是Arduino串口、Firmata還是樹莓派GPIO本質(zhì)都是把Python的邏輯翻譯成硬件能理解的信號。如果正在起步別貪多先把“串口發(fā)一個1點亮LED”這個閉環(huán)跑通再慢慢往協(xié)議、網(wǎng)絡(luò)、多設(shè)備協(xié)作上擴展。等這三條路都熟練了再回頭看很多所謂的高端項目無非是這些基礎(chǔ)模塊的組合。最后提醒一句任何時候插拔線路都先斷電數(shù)據(jù)丟了可以重跑板子燒了只能掏錢換。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品成人亚洲午夜电影| 天天碰久久入| 人人看人人插| 天天摸,夜夜摸| 91狠狠狠| 国产精品视频精品一二| 啊啊啊啊好疼视频| 天堂俺去俺来也www久久婷婷| 伊人97色天使| 亚洲日韩av专区无码| 色色色五月婷婷| 97在线日韩中文字幕| 美中日韩无码| 综合性视频99| 97久久超碰| 美女91av| 久久午夜色播影院免费高清| 99re在线| 亚洲精品久| 久热精品在线| 动漫爆乳3D奶水一区在线观看| 青青伊人加勒比海| 国产三级中文有码在线视频| 欲女人妻性色av| 天天搞在线综合网| 激情久久日韩精品中文字幕麻豆| 中文字幕一区二区在线日韩精品| 欧美日韩婷婷中文| 欧美1区二区三区公司| 日韩超碰精品综合| 国产亚洲日韩在线三区黑人| 天天影视之亚洲综合网| 日韩女模中文造逼| 一级AAA片一区二区三区| 国产精品免费视频不卡| 欧美色网络| 猛交交| 9999久久久| 四虎影库国产精品免费| 国产亚洲精品美女久久久m| 怡红院亚洲怡春院av| 亚洲综合一区二区| 欧美成人一级麻豆| 精品一二三区女同| 黄片www.| 在线不欧美| 久操99| 欧美成年人性爱视频免费观看| 熟妇艹鸡八| 丰满人妻一区二区三区性色| 91劲爆| 亚洲综合性网址| 国产亚洲精品精AV.| 九一综合网| 天天搞在线综合网| 欧州91高潮| 青青草视频久久久久| 日韩精品黄片免费观看| 少妇淫妇久久久久久久| 夜夜操91744565| 免费啪啪av| 天堂亚洲精品| 蜜桃精品一区二区三区ww| 黄色激情电影在线观看| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 五月天激情四射| 日本影视久久免费| 亚洲色综网| 九九内射在线| 亚洲精品一区二区三区在线播放| 国产在线播放成人免费| 女上位精品在线| 精品四五区| 无码逼| 天天舔九色婷婷| 视频国产精品未满十八禁止在线观看| 九九九偷拍| http://qxhbdz.com| 操B视频日韩无码| 久久9999 | 欧美激情久久久久| 精品免费1| 亚洲h片在线免费观看| 高清孕妇孕交 交孕妇| 五月天伊人| 成人97人人超碰人人| 国产九九九九九九| 欧洲Au麻豆| 天天天天天干夜夜夜夜夜操| 成人七区| 日韩av电影成人在线| 韩国一级做A片免费的| 亚洲天天自拍| 330dv亚洲成年视频网| 看日韩美女二区三区免费操逼视频| 亚洲国产91精品一区二区久久| 亚洲丝袜二区在线| 欧美色图在线视频少妇| av天天在线| 欧美亚洲玖玖玖| 日本一区二区不卡精品| 久久受www免费人成| 亚洲精品九九九| 欧美91色| 4虎在线视频| 亚洲人成色9999精品久久| 日本午夜久久电影| 影音先锋中文字幕日本好一区二区| 玖草在线视频| 婷婷色香伊人| 精品人妻一区二区三区不卡断| 欧美97视频| 操美女人妻| 天天看片天天爽| 人妻少妇久久久| 久久久97| 色情婷婷| 色丁香五月婷婷| 亚卅熟女乱色| 蜜乳av首页| 日韩视频啪啪| 久久婷综合| 桃花色涩综合影院| 五月香婷婷| 欧美日韩国产色图在线| 成熟熟女国产精品一区二区| 精品176精品2| 九九九九九九九九九九九九九九九女| 精品美女少妇一区二区三区| 色哟哟1区2区| 国产伊人自拍| 亚洲综合性网址| 操人妻逼91| 97在线欧洲| 美女97超碰| 青青草视频久久久久| yirendaxiangjiashipin| 第二页中文字幕| 国产夜夜艹| 天天碰操中国年青熟妇| 西西美女视频网| 97精品视频免费| 欧美激情色婷婷花野真衣一区二区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产高清自拍| 最新岛国大片| 九九黄色视频在线观看| 一二三四日本视频高清| 干b在线性社区| 91成人社区| 色悠久久久av| 先锋女优在线观看视频| 老司机午夜精品视频| 夜夜草我| 大香交伊人网| 综合激情97 | 天天看夜夜看日日干| 中文字幕高清精品一区| 破苞ⅩXXX性无码动漫无码| 插欧洲美女欧美精品| 超碰狠狠操| 91在线视频免费中出| 99操| 大逼色网站| 97超碰人人操人人操| 人人操人人操人人操人人操人人操人人人11.CM | 97久精品| 久久久免费懂色| 欧美在线大香999| 97视频在线播放| 伊人影院综合是一个与深夜成人在线| 99久久久久| 欧美美女啪啪视频| 992视频一区| 人妻一区二区三区视频| 噜噜噜狠狠色综合| 少妇人妻精品| 九九九色| 日本肏逼视频在线观看| 久九九九九九九热| 9.1小视频| 中文字幕av亚洲精品| 欧美αv.com| 五月天色五月| 91网站在线播放| 试看60秒 爽| 天堂а√在线最新版在线| 亚洲中文一区二区三区| 99热这里| 性爱AV天堂| 大色综合| 亚洲最大91网| 99精品无码| 精品国模无码| 97久久精品亚洲| 999 久久久| 97天天操| 日本在线一二| 美女网站黄页| 大香蕉中文在线| 免费亚洲黄色视频在线观看| 国产11页| 亚洲综合嫩| 成人乱人伦一区二区| 午夜人妻精品综合在线| 欧美性视频二区三区| 国产高清自拍视频| 99亚洲精品| 亚州Av天美传媒| 国产黄色在线播放观看| 亚洲不卡不卡中文字幕不卡| 蜜臀久久99精品久久久久久成人小说 | 天天日天天操天天射河南省| 中文字幕在线免费观看视频| 久欲AV| av无线看| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 成人av影院在线观看| 嗯嗯嗯啊啊啊在线免费观看| 国产一线二线三线av| 每日更新AV| 日韩啪啪啪视频| 亚洲中文字幕在现观看| 97人肏| 国内毛片四区| 色色色色网站| 欧美综合自拍亚洲综合图| 色操逼网| 天天综合网入口~91| 26UUU欧美日本| 91 亚洲 欧洲| 国产精品白丝| 国产天天骚| 久久久久久久9最新免费视频观看| 啊啊啊啊嗯嗯在线久久久| 一区二区三区看视频| 亚欧高清在线| 超碰偷拍| 大香蕉九九| 日本2020一区二区| 亚洲高清无码免费观看视频| 国产精品午夜精品| 国产吞精a级片激情电影| 很很很很操| 狠日操| 五十路二区在线 | 日韩性爱高清免费视频| 免费男人的天堂| 操99| 强被迫伦姧在线观看无码网站| 欧美另类色图片| 亚欧美色| 亚洲Av噜噜一区二区三区妖精| 国产精品久久久久久久AV大片| 麻豆天美传媒在线视频天堂| 中文字幕交换人妻| 超碰97人人乐| 日韩丝袜人妻AV| 大香蕉免费3| 97亚洲欧美日韩| 日欧亚洲二三区大片不卡| 日韩青久久| 超碰在线人妻| 亚洲精品一区二区精华| 久热精品在线| 嗯……啊…嗯嗯…啊…好舒服| 91性高朝久久久久久久久| 成人天天看站长推荐 | 天天日B夜夜干B时时操B| 激情啪啪视频| 亚洲,欧美,春色,另类| 丰满人妻被猛烈进入中| 99久在线精品99re8热视频在线| 久久久 国产精品| 天天干18禁| 欧美五区| 日韩乱插| 爱妃国产亚洲视频中文字幕| 国产和美国毛片| 婷婷丁香五月综合| 国产精品麻豆免费视频| 天天影视综合色| 色穴精品| 99精品在线| 欧美一二三级精品在线| 欧亚韩国999| 香一区二区三区| 深夜国产一区二区三区在线看| 九九热精品视频六| 欧美亚州色的图| 伊人AAA| 一级性爱啪啪视频| 亚洲欧美日韩激情不卡| 超碰97亚洲区| 午夜久久一区二区无码中出| 自慰白浆在线观看| 色天使亚洲综合在线观看| 91情色在线| 动漫区日韩区欧美区| 日本99久久| 亚洲色系另类精品国产| 加勒比伊人| 亚洲色图自拍| 大香蕉99热| 五月丁香成人网| 国产AV久久野战精品| 美女黄网| 91中出在线| 青娱乐手机日韩在线视频| 亚洲婷婷五月天| 黄色电影观看久久9| 青草成人免费视频一com| 夜夜嗨免费视频| 99xav| 大香蕉碰碰| 日韩人妻 中文字幕| 思思热在线视频免费| 色天天野狼综合社区| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 天天插天天操| 欧洲一级性爱视频在线观看| 性在久久久久久| 91网九色蝌蚪操熟女| 久久久女人| 久久久久921| 日韩99神马视频片| 有码人妻系列| 高凊专区人人操| 五月天精品| 自拍偷拍2025在线观看| 国产精品成人蜜臀AV在线| 91精品微拍福利| 91亚洲色图| 男同专区一区二区三区在线| 校园春色美腿丝袜 | 91处女在线视频| 欧美日韩国产电影| 麻豆人妻少妇在线免费观看| 熟妇艹鸡八| 800zy一区二区| 精品久久在线区一区| 丁香五月影院| 中文字幕精品一区二区精品| www.狠狠| 男人的天堂2019AV| 亚洲综合97中文网| 欧美美女啪啪视频| 日韩99神马视频播放| 操我啊啊啊啊啊| 97精彩视频网站| 好湿好紧好爽 视频| 亚洲免费精品一区| 九九成人精品| 老熟妇一区二区三区| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 亚洲交性| 超碰欧美| 亚瑟国产精品久久无码| 秋霞无码av鲁丝片一区| 国产成人自拍视频在线| 亚洲人成网www| 青青草密桃在线播放| 亚洲91av| 久久精品国产精品| 美女视频尤物网在线看| 亚洲图片日本AⅤ欧美在线| 尤物网址| 一区在线观看中文字幕| 日本三级韩国三级99| 九色 人妻 大香蕉| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 国产日韩美女小穴视频网站不卡| 亚洲情色 欧美| 综合久久少妇中文字幕| 第四色奇米影视777| 午夜啪啪片| 999岛国大片| 亚 欧 美 综合| 亚欧中文字幕在线视频| 人妻少妇无码| 亚洲精品国语在线播放| 操逼逼中文字幕| 日本久久天堂| 久久久久久久78| 91青青在线视频| 欧美美女视频| 天天搞在线综合网| 99热超碰| 美女91色黄18| 欧美91精品国产自产| 日韩性爱毛片操骚逼| 天天躁日日躁AAAXX| 日韩另类色图| 神马影院午夜福利久久久| 亚洲图片视频小说| A片A5445444| 亚洲图片偷拍视频区| 中文字幕第页| 青青草日韩免费观看高清在线| 天美麻豆一区二区三区| 91社操逼| 日本一区二区三区欧美日韩中文字幕| 久久草视频污视频| 天天综合网91| 在线观看黄色电话| 免费人人搞97| 中文字幕在线免费观看| 日韩欧美中文| 欧美性爱一内片一区二区三区| 国产精品午夜精品| 福利操逼| 亚洲射综合网| 欧美牲| 8050午夜少妇无码| 欧美页片| 精品性爱| 久久久人体| 亚洲激情深爱文学小说网站| 国产精品盗摄 偷窥盗摄| 激情综合五月天| 色偷偷超碰亚洲| 国产精品白丝在线播放| 99热这里| 91热热色| 青青草天天亲夜夜操网| 男人的天堂在线| 日韩有码 一区二区三区| 久久激情综合| 久久华人网| 97超碰天天爱天天爱| 亚洲图片视频小说| 久久久久久久久成人av解说| 大香蕉在线视频重口味毛片在线| 精品午夜福利| 久久思思热| 男人的天堂三级| 免费簧片在线观看| 欧美 日韩 婷婷 五月| 日韩精品在线放| www四虎| 久久久无码视频| 91欧美| av天堂加勒比| 99视频自拍| 日本亚欧爱爱| 操比国产| 亚洲综人网| 亚洲偷拍自拍在线视频| 国产精品97超碰| 丝袜美腿制服人妻二区中文字幕| 天天躁狠狠躁av| 人妻 丝袜美腿 中文字幕| 亚欧中文字幕在线视频| 先锋激情∨在线视频播放| 2019AV天堂| 欧美一二三级精品在线| 91麻豆天美传媒HD| 国产综合在线视频网站| 日韩啪啪啪视频| 国产a片操逼| 久久久久久久久久久999| 人人做天天爱| 欧美在线中M| 国产成人免费观看在线视频| 欧美爱国产综合、| 色青青久久影视| 久久大香蕉97| 97久久资源| 色综合国产在线观看| 蜜桃久久综合视频| 99久久精品欧美国产| 亚洲国产一级中文综合久久天堂在线免费观看 | 麻豆成人av| 亚洲最大AV网| 97色亚洲| 一区二区不卡| 秋霞欧美性爰视频| 亚洲天堂男人天堂网| 国产精品乱人伊人网| 成人午夜高潮av猛片| 97色色,97综合| 亚洲图片欧洲图片aⅴ| 日韩精品人妻中文字幕不卡乱码| 免费视频无码| 一个色导综合| 精久久久| 丰满人妻一区二区三区四| 国产无码久久高清| 亚洲国产青青| 色情五月婷婷| 国产精品久久久吖| 久操av在线| 日韩精品一二三四| 一起草欧美| 我爱操| 神马久久久久眼| 久久男人精品| 激情在线青青操| 看黑丝美女操逼青青网站| 青青伊人这里只有精品| 亚洲欧美清纯| 天天综合网入口~91| 综合色播| 岛国黄| 色香天天| 99久在线精品99re8热视频在线| 五月丁香综合| 久久久久免费看少妇A片特黄| 少妇高潮九九九九九九九| 亚洲国产综合久久久性感熟妇| 青椒国产97在线熟女| 蜜臀久久99精品久久久久久成人小说 | 天天日美女的B| 日韩天美| 国产精品视频白浆免费| 乱伦熟女论坛| 97在线免费视频观看| 天美传媒AV国产在线| 日本在线一二| 性爱乱伦网址| 激情 欧美 亚洲 小说| 国产日本顶级一区二区三区| 97公开久久| 久久,精品一二三| 日韩av一级黄片| 日产欧美电影一区二区三区| 天天日天天看| 天天干夜夜操一区二区| 欧洲亚洲人妻无码中字久久三区四区| 久久久com| 草草影院日本第一页| 精品视频一二三中文| 亚洲精品国产熟女久久久| 伊人丝袜美腿高跟在线观看高清| 色九九九九久| 欧美黄色大香蕉一区二区| 激情抓乳插进去啪啪啪日韩 | 色噜噜人妻av中文字幕| 九七毛片九九毛片| 国产午夜视频| 少妇一区二区三区在线观看| 熟妇人妻精品一区二区视频色欲| 色婷婷丁香| 国产精品久久久久久久黄无码 | 欧美 综合 亚洲| 超碰99热中文字幕| 亚洲一二三四区机械| 亚洲天堂区| 99热精品在线播放| 国产三级电影免费观看| 98精品国产乱码久久久久久| 亚洲成人一二三区| 亚州成人A√| 亚州色交| 久悠悠av| 极品白嫩福利在线| 1024亚洲中文字幕久在线看片你懂的 | 色小视频蜜乳| 曰韩无码777| 秋霞一级视频在线观看免费| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 久久久久久日韩| 精品久久久久久AV无码| 亚洲日韩精品久久久久一区壹牛| 国产精品com| 2024黄色视频| 亚洲黄色视频在线观看视频| 欧美中文字幕日韩在线| 69少妇一区二区| 午夜超爽| 色噜噜精品一区二区三| 日韩欧美字幕亚洲一区二区| 亚欧高清v| 欧美黄片视频在线观看免费 | 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久久亚洲AV成人精品无码| 伊人久久综合精品欧美| 久久久久久久国产视频| 把腿张开老子CAO烂你| 日韩性爱电影一区| 99热在线播放| 999久久久久久久精| 超碰在线974| 天天看高清麻豆| 亚洲综合大片| 欧美 色 亚洲| 视频一区二区免费在线| 九九精品99| 91成人久久| 99综合| 看看小穴| 欧美青青视频| 全国男人天堂网| 国产精品久久久久久久久久久久| 亚洲精品一二牛牛| 草草网站影院白丝内射| 色综合久久888| 亚洲色堂免费视频| 91美女看B| 97资源站国产精品| 成年人黄色视频免费| 日韩精品国产一区二区| 免费毛片在线播放| yirendaxiangjiashipin| 2000亚洲男人天堂| 人妻第一页| 日韩激情无码影院| 岛园激情| 97色插| 9997se| 看全色黄大色大片免费视频| 911av网站免费观看| 二色av| 欧美 日韩 国产传媒| 呻吟 欧美 日本 中出| 亚洲成人贴图| 国产69精品久久久久99尤物| 91N欧美| 中文字幕乱偷人妻久久艾草网| 天躁夜夜躁2021| 成人av福利在线观看| www久久久| 久久久久78| 久久区| 操逼操逼视频操逼| 九一亚洲国产免费| 欧美日韩制服| 东北丰满熟女国产一区| 久久精品人体| 日本亚欧爱爱| 东北丰满熟女国产一区| 中文字幕 av v| 亚洲成人在线乱码色午夜| 国产一进一出视频网站| 黄页大片在线观看| 少妇精品| 欧美日本国产日韩激情视频| 人妻无码后入| 久操电影| 天天综合精品| 午夜经典| 伊人色综合网电影| 91丨精品丨国产丨丝袜| 欧洲黄色网| 老女人爆菊| 久久精品国产亚洲av水密被窝| 思思热影视| 诱惑人妻欧美一区在线播放| 五月婷亚洲精品天堂| 99热婷婷| 亚春色色| 丰满人妻大屁一区二区| 久久久久久少妇| 国产黄色影片在线观看| 91jk色拍| 乱性AV| 亚洲男人的天堂一区二区| 成人怡红院| 污啪啪啪视频| 九九九九精| 日韩AV片| 女人综合网| 红杏大香蕉| 综合 亚洲 欧美| 亚洲欧美精品91| 久久国产精品m码| 97人人操人人干| 九久久精| 九九热在线视频| 亚洲资源一区| 日本在线一二 | 97国产中文| 中文字幕一区日韩精| 密臀成人视频久久久| 破苞ⅩXXX性无码动漫无码| 国产AV线| 99热精品在线播放| 97超碰香蕉| 青青青国产| 国产欧美日本亚洲精品| 日本不卡二三区| 噜噜噜在线视频| 中文字幕乱偷人妻久久艾草网| h无码动漫在线观看| 少妇久久久免费| 精品少妇一区二区三区在线视频| 91国产丝袜白虎| 久久麻豆一区二区| 偷拍偷窥与盗摄视频专区| 欧美狠狠弄| 99re国产精品视频| 亚洲国产中文字幕| 91黑人无码激情在线| 97欧美色| 亚洲成人碰碰| 资源在线观一 二| 麻豆成人影音在线| 欧美日韩情色一区二区| 久久免费99精品久久久久久| 国产25页| 免费A V在线| 九九九九亚洲| 久久精品视频久久久| 亚洲精品自拍| 狠狠做深爱婷婷久久二区| 亚洲一区二区精品福利| 天天亚洲| 天天综合网在线| 亚洲精品第一| 91久久国产精品| 中文一区二区婷婷视频| AV一区观看| 五十路熟女,国产欧美精品区一区二区三区 | 久久精品国产72国产精品福利| 少妇大屁屁| 高清不卡国产| 国产精品干干干| 亚洲深夜福利| 中文字幕在线观看网页| 午夜久久无码1000合集| 无马一区二区| 99啪啪| 天天色综亚洲91污| 国产强奸乱伦第1页| 水澄无码AV| 国产乱伦性爱区| 死我十八禁| 91在线限制级| 日韩激情啪啪| 丰满人妻aA一区二区三区| 人人妻人人色| 一区二区 韩日AV| 国产精品麻豆成人av| 91插B网站| 日本不卡卡一区| 很很热性爱视频| 天天综合网91| 偷拍亚洲情色| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 蜜臀AV网站| 中文字幕三四区| 欧美亚洲色的图| 大香蕉十区| 丁香五月成人| 强奸乱伦大香蕉| 久久激情婷婷| 久久r精品| 国产精品制服丝袜中文字幕日韩一区二区三区 | 97干色天堂| 国产一级做a爰大片免费久久| 人人弄人人摸| 蜜臀中文无码午夜| 粉嫩久久久久| 可以免费观看的AV| 国产无码一二三区| 无码天天操| 91熟女视频| 999国产精品999久久久久久| 久久香蕉超碰97国产精品 | 亚洲日韩AV视色| 国产亚洲综合欧美一区| 黑人美精品 A片| 91欧洲国产成人久久精品网站| 亚洲双插| 中文字幕二区| 蜜臀久久99精品| 吉田爱美AV在线| 男人天堂一区二区| 午夜一区| 97欧美性爱| 中文字幕精品一区二区精| 亚洲精品久久久久毛片A片拉屎| 九九九999久久久网站| 东京热不卡视频| 欧美日韩精品国产91| 国产97色在线| 一区二区三区欧美激情| 神马久久69| 欧洲天天在线| 中文无码一二三区| 午夜色婷婷| 日本黄 R色 成 人网站| 波多野结衣先锋影音| 人人 操人人 操人人| 97爱爱| 亚洲欧美综合| 91人妻在线视频| 91国模| 亚洲男人天堂手机版| 亚洲人妻日日日| 亚洲第一页综合在线| 激情文学小说一区二区| 东方亚洲在线操逼天堂| 黑人粗大V S日韩女优视频| 天天激色| 久久视频少妇美女| 黑人粗大V S日韩女优视频| 中文字幕一区二区三四五区日日骚| 九九九九免费高| 亚洲男人天堂2016| 9999九九九久久久| 国产精品一区二区后入| 五月天亚洲网| q2午夜理论片夜色av| 男人天堂最新手机版在线青青草| 蜜桃狠狠色伊人亚洲综合 | 性爱综合一区二区| 国产一区在线观看无码AV| 无码直播久久久| 飘花国产午夜精品不卡| 啪啪资源网| 亚洲午夜福利在线影院| 综合色色网| 99色在线| 在线综合 亚洲 欧美中文字幕 | 色色婷婷五月天| 亚洲天天精品| 欧美中文字幕一区| 亚洲色图久久成人| 一区二区娱乐网站| 亚洲精品a人片在线观看视| 五十路六十路七十路熟婆| 亚洲黄色电影| 亚洲少妇综合| 亚洲精品1区| 亚洲情色在线| AV天堂丝袜| 中文字幕高清20页视频| 国产精品久久久久久久久AV大片| 两性色网| 三级AV入口| 国产一区二区在线播放量| 亚洲人成网站7777| 干少妇视频| 97免费在线观看| 91欧美www| 熟女熟妇一区二区三四区| 青青草一区二区三区四| 国产精品乱码久久久、久久| 久久久不卡区一区二区三区久久久| 久久25| 少妇 综合| 久久精品视频久久久| 人妻日日夜夜精品| 久久国产精品一级二级三级| 玖玖视频在线资源一区二区三区| 成人精品在线| 天天欧美欧美亚洲网| 四虎AV在线观看| 免费看美国人人爽,人人操| 久久亚洲精品成人av| 免费强奸av| 精品人人插人人操| 国产大学生高潮在线播放| 日本黄 R色 成 人网站| 久操精品网| 亚洲AV小说| 在线观看AV不卡| 欧美午夜色妇色鬼| 美日韩一卡二卡三卡免费人妻精品| 天天操综合网| 婷婷久久网| 另类天堂| 插入综合网| 日本天堂网| 欧美激情亚洲色图| 久久人妻精品| 久久久工口| 老汉网| 麻豆色99999| 精品人妻丰满熟妇一区二区三| 午夜αv| 国产无码高清操逼视频| 欧美一级久久久丰满| 男人的天堂一区三区| 成人电影一区| 欧美综合色站| 欧美大片一区二区三区| 午夜美女诱惑电源网| 久久精品导航| 影音先锋每日最新资源在线观看| 人人操人人插人www| 国岛片视频| 日日狠狠久久偷偷色综合免费| 肥臀熟女福利视频一区二区| 久久噜| 亚洲美女高潮喷水视频| 亚洲高清自拍| AV不卡在线| www.91色| 大香蕉在线视频重口味毛片在线| 超碰97久久国| 日韩欧美日韩| 欧美日韩 强奸乱伦| 超碰人人干| 99 国产丝袜在线| 日本亚欧爱爱| 五码视频在线观看| 日韩簧片免费看| 婷婷亚洲色| 2017大香蕉国产精品久久| 久久后入制服| 91痴汉| 清纯唯美综合| 思思热免费在线视频| 狠狠狠狠狠狠| 美美91成人国产精品欧美精品久久久久久久 | 色噜噜精品一区二区三| 天天狠| 激情五月天校园春色网| 久久在线观看免费视频| 天天操夜夜操狠很操| 人妻激情偷乱视频一区二区三区 | 91操碰| 亚洲综合校园春色| 高颜值美女口爆高潮浪叫| 在线综合 亚洲 欧美中文字幕| 这里只有精品视频在线| 亚洲污污网站| 亚洲97成人在线观看| 精品婷婷| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 亚洲精品国产熟女| 人妻少妇蜜桃视频欧美一区| 91蜜桃传媒精品久久久一区二区| 成人小说另类在线| 蜜臀久久99精品久久久老,,| 丝袜无码a片| 色在线视频导航| 久久午夜伦| 人妻人久久精品中文字幕| 免费的很黄很污的全部视频| 欧美国产日韩高清在线| 精品中文一区二区| 亚洲欧洲综合成人av一区| 精品国产乱码久久久久久久久1 | 亚洲一区日韩精品中文字幕| 夜色五月天| 亚洲在线观看| 亚洲中文一区二区三区视频| 欧美色997| 国产精品视频内谢女人| 天天91~综合入口| 日本二区不卡| 免費黃色視頻觀看一| 久久久久久久久国产| 日韩熟女乱伦中出| 亚洲在高跟鞋自慰久久在色线| 色综合加勒比| 伊人97色天使| 少妇厨房愉情理伦片bd在线观看| 蜜臀久久一区二区| 91亚洲网| 日韩免费人妻色情网站| 欧美综合天天| 人妻在线臀日韩| 国产日韩久久| 区一在线观看| 老司机深夜18禁污污网站| 日韩伦理视频| 翔田千里爆乳巨臀无码| 久久最新免费视频23| 操逼网站网站| 高潮嗯啊性感美女久久久| 久久精品国产亚洲AV清纯| 人人操天天爽| 超碰97护士| 亚洲成人一二三区| 热无码中文亚洲H一道本一区二区| 热天堂一区二区| 无码免费在线观看黄色片| 色 亚洲 91| 手机在线A片| 97在线欧| 97操操| 亚洲天堂久久久久久粉红视频| 亚洲。日韩。欧美| 国产精品精品系列在线观看| 韩国女主播青草在线| 欧美日韩 强奸乱伦| 在线小说视频一区| www.激情| 日韩性爱啪啪视频| 国产精品视频在线播放| 92午夜免费福利视频| 亚洲色天堂九9| 992这里有精品| 91大神精品长腿在线观看网站| 久久神马影院| 亚洲最大AV网| 欧美在线电影| 色999偷自拍拍| 92午夜免费福利视频| 激情综合 婷婷五月 红杏| 日本不卡码黄色| 岛国片国产成人亚洲播放| 我想要啊 啊 啊| 91人妻超碰| 日韩熟女三十乱伦| 亚洲国产中文字幕| 日本有码影片下载 | 亚洲成人久久美女| 男人综合网| 性色国产东北露脸精品视频| 女人爽到高潮潮喷18禁网站| 天天肏天天干| 91 亚洲情侣偷拍 久久| 艹精品| 99中文字幕| 国产视频小说| 久久久中文| 亚洲图片激情综合另类| 97中文热色| 一区二区精品更新提醒| 国产又大又硬又长又粗| 国产精品高潮久久久无码| 欧美亚洲涩涩| 3571色综合一区二区二区| 在线无码网站| 久久久久久久唑| 亚州九九九精品视频| 五月天婷婷色| 秋霞久久亚洲精品成人| 超碰97久久| 欧美天天谢综合网| 五月丁香六月激情综合| www.伪伪| 99999re| 国产乱不卡| 亚洲AV高潮| 99热官网| 极品白嫩美女白浆成人福利在线看| 综合伊人激情| 黑人精品欧美一区二区蜜桃| 日韩美女高潮喷水视频| 国产精品经典一卡久久久| 亚洲黄色网址视频| 久9爱精品| 丰满少妇一区二区三区四区观看| 久久久免费一级黄片| 国产多人在线观看视频| 超碰97精品| 亚洲女人毛茸茸91| 色老牛| 狠狠中文字幕| 精品一二三区久久AAA片| 天天操天天射天天日| 激情熟女12P| 日韩小电影| 九九九久久久W精品| 夜夜做夜夜爽精品视频| 91精品成人| 综合亚洲情色| 伊人大香蕉在线| 淫妻综合网| 婷婷五月花| 91超级碰碰碰| 国产激情av女片自拍| 亚洲日韩美国人妻| 亚洲第一精品在线视频| 一起草三级AV电影在线观看| 欧美日韩1234| 97日韩| 视频二区美腿制服人妻欧美| 超碰色美女| 国产精品白丝AV| 久久人体一区二区| 久久人妻一区二区三区高清| 日韩八十路老熟女| 欧美青青视频| 超碰97首页| 99久久9| 涩涩久久精品| 九九av| 爱丝福利| wuyechaopeng| 91丝袜人妻| 亚洲欧美清纯| 变态综合色| 亚洲欧美97| 欧美97爱| 欧美日韩大香蕉| 亚洲在线网站| 草草影院最新网址| 老熟女乱子伦中文字幕一区二区| 另类亚洲一区二区三区| 国产强奸乱伦xd| 黄在线| 99精品久久久久久久婷婷| 日韩精品视频在线观看一卡二卡| 欧美网站免费| 日韩午夜啪啪视频| 久久香蕉国产传媒一区剧情天美| 极品丝袜无码| 黄网站黄视频网站进入口 | 欧美日动态视频| 精品无码人妻一区二区免费蜜桃| 欧美色色人| 青青草在线视频播放器| 日韩欧美麻豆 | baiduhicn.com。| 国产不卡的视频| 国产麻豆91欧美一区二区久久婷婷国产精品| 中文无线日韩一区| 亚洲熟女乱综合一区二区三区| 韩国国产欧美情侣视频在线| 任我爽在线视频免费观看| 台湾佬大香蕉| 日韩精品资源专区二区| 大香蕉www.超碰| 国产日本久久免费精品| 蜜臀av在线播放一区二区三区| 97国产色综合| 九九九精品一区二区无码| 熟人人妻少妇精品久久| 国产午夜精品在线观看| 中文字幕精品一区二| 爱av免费| 久久久工口| 91处女视频在线观看| 夜夜春夜夜操| 国产精品一区二区手机看片| A级国产欧美激情在线| 亚洲综合另类| 蜜奶av| 久久精品视| 加勒比色99999| 中文字幕美女91| 亚洲福利中文字幕在线| 9色在线| 清清草影| 久九色| av在线播放国产一区| 91小视频| 亚洲熟妇乱女区二区三区| 亚洲一二三四区在线免费看视频| 91色欧美| 日韩中文字幕人妻视频| 天堂蜜桃无码视频一区二区| 欧美黑人猛交春色影视大全| 青青草久草AV| 精品人妻一二三| 国产激情av女片自拍| 亚洲av夫妻操穴网| 99re在线视频国产| 精品国产Av无码久久久伦古装| 伊人女女资源在线观看| 精品四五区| 欧美色蜜桃97| 先锋色眉乱伦资源| 五月天婷婷欧美三区| 嗯嗯啊啊日韩精品| 免费家庭乱伦视频| 国产按摩一区二区三区| 欧美一区二区成人一卡| 欧美激情一区| 天天干美少妇一区| 神马午夜久久久| 久久久久久九九九|