日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

ESP32+PMW3901MB光流傳感器實現(xiàn)運動檢測與測速實戰(zhàn)

ESP32+PMW3901MB光流傳感器實現(xiàn)運動檢測與測速實戰(zhàn) 最近在做一臺小型的室內(nèi)循跡底盤常規(guī)輪式編碼器一到瓷磚地面就瘋狂打滑超聲波方案又太靠不住。折騰了幾天后我重新把手邊的 PMW3901MB 光流傳感器接到 ESP32 上用 SPI 直接讀回位移增量運動檢測這個問題立刻變得清爽了很多。這篇文章我就把從硬件連接到運動檢測的完整踩坑過程、驅(qū)動代碼和幾個容易被忽視的細節(jié)一次講清楚給準(zhǔn)備做無人機懸停、小車測速或者低成本表面運動檢測的朋友一份可以直接抄作業(yè)的參考。PMW3901MB 并不是一塊攝像頭模塊它本質(zhì)上是把光學(xué)成像單元和運動算法做在一個小封裝里的專用芯片。它不輸出畫面而是直接告訴你“物體表面相對于傳感器在 X 方向移動了多少、Y 方向移動了多少”這個特性讓它在很多嵌入式運動檢測場景里特別好用。但光有傳感器還不夠想要實時、多任務(wù)、甚至把數(shù)據(jù)無線傳出去ESP32 是個非常合適的搭檔。下面是整個方案從設(shè)計到實測的完整記錄。1. 為什么是“ESP32 PMW3901MB”這個組合1.1 光流傳感器到底在測什么很多第一次接觸光流傳感器的人會以為它和攝像頭一樣輸出一幀一幀的圖像然后在單片機里跑光流算法。實際上 PMW3901MB 這類器件內(nèi)部已經(jīng)集成了專用的運動引擎它通過內(nèi)部的一小塊低分辨率圖像傳感器連續(xù)拍攝表面紋理再在芯片內(nèi)部完成特征跟蹤和位移計算最后把當(dāng)前幀相對上一幀的位移增量也就是 Delta X 和 Delta Y通過 SPI 或 I2C 接口輸出給外部單片機。這個設(shè)計思路和辦公室里最常見的“光電鼠標(biāo)”很接近區(qū)別在于 PMW3901MB 的工作距離、幀率和算法調(diào)校更偏向機器人、無人機這類需要低空測速的場景。它給你的不是圖像而是“相對位移量”所以單片機端不需要任何 OpenCV 級別的運算幾個寄存器就能拿到當(dāng)前時刻的相對運動狀態(tài)。另外它還有一個非常重要的字段叫 SQUAL全稱是 Surface Quality也就是當(dāng)前捕獲到的表面紋理質(zhì)量。這個值可以用來判斷傳感器是不是“看得到”有效紋理數(shù)值太低時讀到的位移基本沒有參考價值。1.2 為什么用 ESP32 而不是 STM32 或 Arduino UNO選 ESP32 不是因為它比 STM32“高級”而是因為這顆芯片在開發(fā)效率、外設(shè)資源、無線通信集成三個維度上非常均衡。ESP32 自帶雙核 240MHz CPU硬件 SPI 接口可以直接跑 PMW3901MB同時它還有 BLE 和 Wi-Fi運動數(shù)據(jù)讀回來后可以直接推給手機或者上位機不需要外加藍牙串口模塊。如果拿 STM32 來對比STM32 當(dāng)然也能讀 SPI而且實時性可能更穩(wěn)定但大部分場景下開發(fā)者還得自己處理無線傳輸、協(xié)議棧、固件升級這些事。Arduino UNO 的問題則主要是主頻太低PMW3901MB 那種以毫秒為周期的連續(xù)采樣雖然不算重負載但后續(xù)要疊加濾波、PID 或者無線發(fā)送UNO 就會顯得很吃力。ESP32 在 Arduino 生態(tài)和 PlatformIO 生態(tài)下都有非常成熟的庫支持編譯下載極其順手這在我實際項目里省下的時間遠比想象中要多。1.3 這個組合適合哪些場景最常見的應(yīng)用就是室內(nèi)無人機懸停。無人機在 GPS 信號不好的地方需要靠光流傳感器測量對地速度再配合加速度計和氣壓計做位置估計。PMW3901MB 因為體積小、重量輕、功耗低是很多開源飛控的常見選型。第二個典型場景是低成本機器人測速尤其是那種在瓷磚、水泥地面跑的輪式機器人輪子打滑會讓編碼器數(shù)據(jù)失真光流傳感器可以當(dāng)作一個不依賴輪子轉(zhuǎn)動的“視覺里程計”來用。第三個場景是手勢識別、人機交互或者傳送帶測速之類的工業(yè)小項目只要表面紋理清晰這個組合都能勝任。我實際做的項目是給一臺雙輪差速小車補一個測速通道用來和編碼器數(shù)據(jù)做交叉驗證。一開始我用的是普通鼠標(biāo)傳感器改裝后來換成 PMW3901MB 模塊后體積、接口和驅(qū)動難度都改善了不少這個方案很快就成了我測速部分的主力。2. 硬件連接把模塊和 ESP32 正確接起來2.1 PMW3901MB 引腳與供電注意事項市面上的 PMW3901MB 模塊通常會引出 6 個甚至更多引腳最常見的是 VCC、GND、MOSI、MISO、SCLK、CS。有些模塊還帶中斷引腳或者輔助接口但核心的部分就是這六根線。它的工作電壓是 3.3V絕對不能直接接到 5V 電源上否則芯片很容易燒壞。ESP32 開發(fā)板的 3V3 引腳給這個小模塊供電沒有問題因為它的工作電流只有幾十毫安但如果你準(zhǔn)備把傳感器安裝在無人機或者小車上建議給光流模塊單獨配一個低噪聲 LDO不要讓電機驅(qū)動的大電流波動直接砸到傳感器電源上。接線時還要留意模塊的引腳順序不是統(tǒng)一的。不同賣家做的 PCB 板可能把 MOSI 和 MISO 交換位置或者把 CS 放在另一邊。我吃過這個虧拿到模塊后第一件事應(yīng)該是去翻商家給的原理圖或者模塊絲印千萬別默認所有模塊引腳排列都一樣。我也建議你在焊接或插線之前用萬用表量一下 VCC 和 GND確認沒有反接的風(fēng)險。2.2 ESP32 接線表與一種可靠的引腳分配我使用的是 ESP32 DevKitC 開發(fā)板上面引出的 GPIO 很多光流模塊我直接接到了硬件 SPIVSPI對應(yīng)的默認引腳上。這里的接線方式如下PMW3901MB 模塊 ESP32 DevKitC VCC ----------- 3V3 GND ----------- GND MOSI ----------- GPIO23 MISO ----------- GPIO19 SCLK ----------- GPIO18 CS ----------- GPIO5如果你用的是 NodeMCU-32S 這類板子引腳名稱可能略有差異但 GPIO 編號是一致的。CS 引腳可以選擇任意空閑 GPIO只要在代碼里初始化指定即可。我選 GPIO5 是因為它離 SPI 引腳比較近飛線方便而且和當(dāng)時測試用的其他外設(shè)不沖突。SPI 模式必須用 Mode 3也就是 CPOL 1、CPHA 1這一點在代碼初始化時會再次強調(diào)。2.3 供電濾波和飛線避坑硬件連接看起來很簡單但影響穩(wěn)定性的往往是細節(jié)。PMW3901MB 內(nèi)部的紅外 LED 在啟動和運動檢測過程中會產(chǎn)生一定的電流波動如果供電線上長了、細了或者電源紋波很大SPI 通信就會出現(xiàn)偶發(fā)誤碼典型表現(xiàn)是讀出來的位移值突然跳一個很大的數(shù)或者 ID 都讀不對。我實際測試時在模塊的 VCC 和 GND 之間加了一顆 10uF 的電解電容和一顆 0.1uF 的陶瓷電容異常跳數(shù)的情況明顯減少。飛線長度也需要注意。杜邦線在桌面測試階段問題不大一旦裝到小車上電機啟停帶來的震動和電磁干擾就會讓杜邦線成為小天線。我的建議是原型階段用杜邦線控制在 10cm 以內(nèi)正式裝配時盡量使用短而粗的導(dǎo)線直接焊接或者做一塊小的轉(zhuǎn)接板。還有一點非常容易被忽略就是 PMW3901MB 模塊的鏡頭和傳感器表面非常嬌貴手指碰到就容易留下指紋甚至劃傷。我有一塊模塊在測試時不小心被螺絲刀蹭到了鏡頭邊緣結(jié)果 SQUAL 值整整掉了一半位移數(shù)據(jù)也變得斷斷續(xù)續(xù)。3. SPI 通信與數(shù)據(jù)寄存器深度解讀3.1 SPI 讀寫格式和時序PMW3901MB 是一個 SPI 從設(shè)備工作在 SPI Mode 3。讀寄存器的過程是主機先把片選 CS 拉低然后發(fā)送一個 8 位的寄存器地址地址最高位要置 1 表示讀操作。隨后主機再發(fā)送一個任意字節(jié)的時鐘同時從 MISO 引腳上讀回該寄存器的數(shù)據(jù)。寫寄存器則是先把片選拉低發(fā)送最高位為 0 的寄存器地址然后緊跟著發(fā)送要寫入的字節(jié)最后拉高片選。這套邏輯和很多普通 SPI 傳感器芯片是一致的唯一的坑在于“讀一個寄存器必須連續(xù) transfer 兩個字節(jié)”。我第一次寫驅(qū)動時只發(fā)了一個地址字節(jié)就立刻讀 MISO結(jié)果讀回來的永遠是 0xFF浪費了不少時間。另外SPI 時鐘頻率建議先保守一點我用的 1MHz 在杜邦線連接下非常穩(wěn)定后面嘗試 10MHz 也能跑但沒有必要冒這個風(fēng)險。3.2 關(guān)鍵寄存器一覽根據(jù)我手上這顆 PMW3901MB 的資料和參考驅(qū)動主要需要關(guān)注的寄存器如下地址名稱說明0x00Product_ID芯片型號標(biāo)識讀到 0x49 表示通信正常0x01Revision_ID版本信息不同批次可能略有差異0x02Motion運動狀態(tài)標(biāo)志位bit7 為 1 表示當(dāng)前幀檢測到運動0x03Delta_X_LX 方向位移增量低字節(jié)0x04Delta_X_HX 方向位移增量高字節(jié)0x05Delta_Y_LY 方向位移增量低字節(jié)0x06Delta_Y_HY 方向位移增量高字節(jié)0x07SQUAL表面紋理質(zhì)量數(shù)值越低說明越看不清楚0x08Raw_Data_Sum內(nèi)部像素幀總能量調(diào)試光照時有用0x09Raw_Data_Max內(nèi)部像素最大值0x0ARaw_Data_Min內(nèi)部像素最小值0x0BShutter_Upper曝光時間高字節(jié)0x0CShutter_Lower曝光時間低字節(jié)有一點要注意網(wǎng)上能找到的 PMW3901MB 寄存器表有多個版本有的把 Motion 放在 0x03Delta X 從 0x04 開始SQUAL 在 0x08。不同批次或者不同封裝可能在寄存器定義上有細微差別所以最好以你買到模塊附帶資料為準(zhǔn)。我下面代碼里的寄存器定義是按 0x02 Motion、0x03 到 0x06 為位移、0x07 為 SQUAL 這個版本寫的這也是我實測可用的一組。Delta X 和 Delta Y 是帶符號的 16 位整數(shù)數(shù)據(jù)格式是小端也就是低字節(jié)在前。每次讀取時應(yīng)該把高字節(jié)左移 8 位再和低字節(jié)按位或起來然后根據(jù)最高位判斷是正數(shù)還是負數(shù)。正數(shù)代表沿對應(yīng)坐標(biāo)軸正方向移動負數(shù)代表反方向。3.3 上電初始化和 ID 校驗很多驅(qū)動資料里都提到 PMW3901MB 上電后可以自動從內(nèi)部 Flash 加載配置所以理論上直接讀數(shù)據(jù)也能工作。但為了保險我在代碼里加上了一段喚醒操作往 0x00 寄存器寫 0x5A延時幾毫秒后再寫回 0x00。這個操作在某些省電版本或者從睡眠模式喚醒時非常關(guān)鍵不加的話傳感器可能一直停在低功耗狀態(tài)。初始化完成后讀一次 Product_ID判斷是否等于 0x49能讀到這個值基本就說明 SPI 接線和時序沒大問題。4. 運動檢測實戰(zhàn)與完整代碼實現(xiàn)4.1 Arduino 環(huán)境下的 SPI 初始化要點在 Arduino 環(huán)境中使用 ESP32 的硬件 SPI需要調(diào)用 SPI.begin(SCLK, MISO, MOSI, CS)。注意這里不是傳統(tǒng) Arduino 的 begin() 無參數(shù)版本而是顯式傳入引腳編號的版本因為 ESP32 的 SPI 引腳可以映射到多個 GPIO。初始化時還要設(shè)置 SPI 模式為 SPI_MODE3時鐘頻率先降到 1MHz等確認通信穩(wěn)定后再慢慢往上提。有一個隱藏比較深的坑如果你同時在項目里掛了 SD 卡、LCD 或者其他 SPI 外設(shè)多個設(shè)備的 CS 必須分開管理并在每次讀寫前用自己的 CS 引腳。如果 CS 沒有正確拉高拉低另一個 SPI 設(shè)備可能會響應(yīng)原本發(fā)給 PMW3901MB 的指令導(dǎo)致數(shù)據(jù)錯亂。我在調(diào)試期間就遇到過這個問題后來把所有 SPI 設(shè)備的片選引腳分別定義才徹底解決。4.2 完整可編譯代碼下面的代碼可以直接在 Arduino IDE 或者 PlatformIO 中編譯目標(biāo)是 ESP32 DevKitC。代碼結(jié)構(gòu)分成三部分SPI 讀寫寄存器封裝、PMW3901 驅(qū)動類和運動檢測主循環(huán)。我保留了足夠的注釋方便你根據(jù)自己的引腳修改。#include SPI.h // 自定義引腳根據(jù)自己的接線修改 #define PMW_CS 5 #define SPI_MISO 19 #define SPI_MOSI 23 #define SPI_SCLK 18 // PMW3901MB 關(guān)鍵寄存器地址 #define REG_PRODUCT_ID 0x00 #define REG_MOTION 0x02 #define REG_DELTA_X_LOW 0x03 #define REG_DELTA_X_HIGH 0x04 #define REG_DELTA_Y_LOW 0x05 #define REG_DELTA_Y_HIGH 0x06 #define REG_SQUAL 0x07 struct MotionData { bool motion; // 當(dāng)前幀是否有運動 int16_t deltaX; // X 方向位移增量 int16_t deltaY; // Y 方向位移增量 uint8_t squal; // 表面質(zhì)量 }; class PMW3901Driver { public: bool begin() { pinMode(PMW_CS, OUTPUT); digitalWrite(PMW_CS, HIGH); SPI.begin(SPI_SCLK, SPI_MISO, SPI_MOSI, PMW_CS); SPI.setDataMode(SPI_MODE3); SPI.setClockDivider(SPI_CLOCK_DIV64); // 約1MHz delay(50); // 喚醒芯片防止處于低功耗狀態(tài) writeRegister(0x00, 0x5A); delay(5); writeRegister(0x00, 0x00); delay(5); uint8_t pid readRegister(REG_PRODUCT_ID); Serial.printf(Product ID: 0x%02X\n, pid); if (pid ! 0x49) { Serial.println(PMW3901 ID 校驗失敗請檢查接線和SPI時序); return false; } return true; } uint8_t readRegister(uint8_t reg) { uint8_t value 0; SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE3)); digitalWrite(PMW_CS, LOW); SPI.transfer((reg 0x7F) | 0x80); // 讀地址最高位置1 value SPI.transfer(0x00); // 產(chǎn)生時鐘并讀回數(shù)據(jù) digitalWrite(PMW_CS, HIGH); SPI.endTransaction(); return value; } void writeRegister(uint8_t reg, uint8_t data) { SPI.beginTransaction(SPISettings(1000000, MSBFIRST, SPI_MODE3)); digitalWrite(PMW_CS, LOW); SPI.transfer(reg 0x7F); // 寫地址最高位為0 SPI.transfer(data); digitalWrite(PMW_CS, HIGH); SPI.endTransaction(); } MotionData readMotion() { MotionData data; uint8_t motion readRegister(REG_MOTION); data.motion (motion 0x80) ! 0; uint8_t xLow readRegister(REG_DELTA_X_LOW); uint8_t xHigh readRegister(REG_DELTA_X_HIGH); uint8_t yLow readRegister(REG_DELTA_Y_LOW); uint8_t yHigh readRegister(REG_DELTA_Y_HIGH); data.deltaX (int16_t)((xHigh 8) | xLow); data.deltaY (int16_t)((yHigh 8) | yLow); data.squal readRegister(REG_SQUAL); return data; } }; PMW3901Driver sensor; // 累計位移用于驗證 int32_t accumX 0; int32_t accumY 0; uint32_t lastPrintTime 0; void setup() { Serial.begin(115200); delay(500); if (!sensor.begin()) { Serial.println(傳感器初始化失敗進入死循環(huán)); while (1) delay(100); } Serial.println(PMW3901MB 初始化成功); } void loop() { MotionData data sensor.readMotion(); // 只要檢測到表面質(zhì)量足夠就累計位移增量 if (data.squal 15) { accumX data.deltaX; accumY data.deltaY; } // 每 50ms 打印一次數(shù)據(jù) if (millis() - lastPrintTime 50) { lastPrintTime millis(); Serial.print(Motion:); Serial.print(data.motion ? Y : N); Serial.print( DeltaX:); Serial.print(data.deltaX); Serial.print( DeltaY:); Serial.print(data.deltaY); Serial.print( SQUAL:); Serial.print(data.squal); Serial.print( AccumX:); Serial.print(accumX); Serial.print( AccumY:); Serial.println(accumY); } }這段代碼的核心邏輯是在 loop 里不斷讀取 Motion、DeltaX、DeltaY 和 SQUAL然后累計位移。打印頻率控制在 50ms 一次避免串口輸出拖慢主循環(huán)。實際測試時把模塊放在桌面上慢慢向正前方移動能看到 DeltaX 產(chǎn)生正負變化SQUAL 在正常表面通常在 30 到 120 之間。4.3 方向判斷和位移積分的處理思路拿到裸的 Delta X 和 Delta Y 后下一步是把它變成有實際意義的方向和距離。方向判斷可以這樣理解如果 |DeltaX| 明顯大于 |DeltaY|說明當(dāng)前運動主要發(fā)生在 X 軸DeltaX 為正就是沿 X 軸正向移動為負就是反向。如果兩個方向的差值不大說明傳感器在走斜線此時可以用 atan2 函數(shù)計算運動角度。位移積分則要注意累積誤差。光流傳感器的位移增量不是絕對位置它更像是每一幀的“變化量”所以積分時間越長、誤差累積越多。我的做法是維護兩個 32 位整數(shù) accumX 和 accumY每次讀到有效數(shù)據(jù)就累加需要測一段距離時先清零測完再算差值。另外如果 SQUAL 低于閾值我會直接跳過本次累加因為不明智的數(shù)據(jù)比沒有數(shù)據(jù)更危險。很多資料里會提到“每 count 對應(yīng)多少毫米”這個數(shù)值并不是固定的它跟 PMW3901MB 芯片到被測表面的高度、表面紋理、甚至環(huán)境光都有關(guān)系。比較靠譜的辦法是做一個簡單的標(biāo)定讓小車或模組直線移動已知距離比如 20 厘米讀取這段時間的累加位移值然后算出 counts 到厘米的換算系數(shù)。我在桌面上標(biāo)定的系數(shù)是 1 count 大約對應(yīng) 0.045 毫米但換到地毯上這個值就變了所以正式使用時一定要針對自己實際場景重新標(biāo)定。4.4 如何判斷“當(dāng)前數(shù)據(jù)是否可信”PMW3901MB 不會主動告訴你“我現(xiàn)在讀數(shù)很準(zhǔn)”但你可以通過幾個寄存器組合起來判斷。首先看 Motion 標(biāo)志位如果為 0說明芯片內(nèi)部算法認為目標(biāo)在當(dāng)前幀沒有明顯移動此時 DeltaX 和 DeltaY 即使不是 0 也不需要太在意。其次看 SQUAL我實際測試的經(jīng)驗是 SQUAL 低于 15 時數(shù)據(jù)幾乎不可用低于 30 時只能用于粗略方向判斷大于 50 才適合做積分測距。最后看快門值也就是 Shutter 寄存器如果曝光時間過長說明環(huán)境太暗過短說明環(huán)境太亮這些都是傳感器在努力適應(yīng)光照的表現(xiàn)可以作為環(huán)境判斷的輔助信號。在運動檢測的工程實現(xiàn)里我只會在 SQUAL 15 且 Motion 標(biāo)志位為 1 時才更新累積位移否則當(dāng)前幀直接丟棄。這個策略雖然會讓有效數(shù)據(jù)出現(xiàn)一點點斷續(xù)但換來的穩(wěn)定性是巨大的。畢竟光流傳感器本身就很容易受表面紋理影響與其讓臟數(shù)據(jù)污染積分結(jié)果不如寧可少取一點也不要取錯。5. 常見問題與排查技巧實錄5.1 現(xiàn)象對照速查表底下列出我實際使用和幫助朋友排查時遇到頻率最高的問題用表格整理出來方便快速定位?,F(xiàn)象可能原因解決思路串口打印 Product ID 為 0xFF 或亂值接線錯誤、SPI Mode 不對、模塊供電異常檢查 MOSI/MISO/SCLK/CS確認使用 SPI_MODE3Product ID 為 0x00模塊沒有正常上電、電源紋波太大、芯片損壞測量 VCC 電壓給模塊加濾波電容SQUAL 一直為 0鏡頭保護膜未撕掉、表面無紋理、距離過近或過遠清潔鏡頭換到有紋理表面調(diào)整高度到 8~30cmDeltaX/DeltaY 數(shù)值跳變特別大電源干擾、SPI 時序不穩(wěn)、CS 與其他外設(shè)沖突加濾波電容降低 SPI 時鐘頻率檢查 CS 引腳靜止時累積位移仍然一直增加表面紋理太弱、震動影響、SQUAL 過低時錯誤累計提高 SQUAL 閾值增加靜止判斷邏輯移動時讀數(shù)正常但方向反了X/Y 軸定義與機械方向不一致交換接線或?qū)?deltaX/deltaY 取反5.2 讀不到 ID 時的詳細排查步驟如果你燒錄代碼后串口打印的 Product ID 不對不要急著懷疑芯片壞了。我的排查順序是先確認模塊供電用萬用表量 VCC 對 GND 的電壓必須穩(wěn)定在 3.3V變化幅度不超過 0.1V。然后檢查 MOSI 和 MISO 這兩根線很多人在這上面栽跟頭。模塊的 MOSI 要接到 ESP32 的 GPIO23也就是主機 SPI 的 MOSI 引腳MISO 接到 GPIO19如果你把這兩根線接反了讀出來的數(shù)據(jù)就會全是 0xFF。排除了接線之后還需要確認代碼里的 SPI 初始化參數(shù)。PMW3901MB 必須工作在 SPI Mode 3如果誤寫成 Mode 0芯片不會正常響應(yīng)。我把SPI.setDataMode(SPI_MODE3)放在SPI.begin之后同時在每次傳輸時用SPISettings再強制指定一次避免被其他庫影響。還有一種情況是模塊本身已經(jīng)進入低功耗模式。上電后如果一直沒有人去“喚醒”它部分模塊會保持睡眠狀態(tài)此時任何寄存器讀取都返回異常。我的代碼里在初始化時寫了 0x5A 到 0x00 寄存器這個操作對省電版本是必需的。如果你用的是比較老的 PMW3901 模塊可能還需要額外的初始化序列建議找商家要出廠配置表。5.3 數(shù)據(jù)漂移和 SQUAL 不穩(wěn)定的實戰(zhàn)避坑我在測試中遇到過這么一件事模塊靜止在桌面上串口里的累積位移卻在十幾秒內(nèi)慢慢漂了 20 多個 count。最開始我以為是算法問題后來排查發(fā)現(xiàn)是模塊底部墊的一塊雙面膠在微微變形加上周圍有人走動引起桌面輕微震動傳感器把這些低頻震動當(dāng)成真實運動了。解決方法是加一個簡單的“靜止檢測”如果連續(xù) N 幀的 DeltaX 和 DeltaY 都小于某個閾值就強制認為當(dāng)前處于靜止?fàn)顟B(tài)把累積位移清零或者凍結(jié)輸出。SQUAL 不穩(wěn)定最常見的原因是表面紋理不夠清晰。純色桌面、玻璃、鏡面這些表面會讓芯片內(nèi)部的光學(xué)算法抓不住特征點SQUAL 自然上不去。還有一個容易被忽略的情況是使用環(huán)境里的強紅外干擾。陽光直射、白熾燈近距離照射都會影響內(nèi)部傳感器靈敏度。我后來給傳感器加了一個簡單的遮光罩效果非常明顯戶外測試時 SQUAL 從不到 20 提升到了 60 以上。如果你發(fā)現(xiàn)模塊離地面太近時數(shù)據(jù)反而不準(zhǔn)那很正常。PMW3901MB 有一個最小工作高度大概是 80 毫米左右太近會導(dǎo)致視場太小、紋理無法對焦。太遠也不行超過一兩米后表面紋理在傳感器上已經(jīng)小到無法跟蹤。我實際使用下來比較舒服的高度范圍是 10 到 30 厘米。5.4 和 ESP32 一起使用時的特殊坑ESP32 本身是顆高度集成的芯片Wi-Fi 和 BLE 同時啟用時占用的資源不少。雖然 SPI 外設(shè)和無線外設(shè)底層互不沖突但在極端情況下無線協(xié)議棧的中斷優(yōu)先級和 CPU 調(diào)度會影響你讀取光流數(shù)據(jù)的實時性。我的做法是把光流讀取放在 loop 里高頻執(zhí)行數(shù)據(jù)不做復(fù)雜處理直接緩存無線發(fā)送單獨在一個任務(wù)里消費緩存。這樣即使無線在忙于重傳也不會讓運動數(shù)據(jù)采集停頓太久。另外要留意 ESP32 DevKitC 板載的 3V3 穩(wěn)壓器輸出能力有限。如果你同時接了 PMW3901、LED 燈、蜂鳴器、SD 卡等外設(shè)3V3 電壓可能會被拉低到 3.1V 甚至更低。PMW3901 對電壓波動比較敏感我建議在供電吃緊時把光流模塊的供電直接走單獨 LDO或者至少用萬用表量一下實際電壓再決定。6. 擴展玩法與個人調(diào)試體會6.1 把數(shù)據(jù)變成遙控指令或上位機曲線PMW3901MB 輸出的是相對位移增量拿來當(dāng)手勢控制傳感器非常順手。你可以把 DeltaX 和 DeltaY 映射成鼠標(biāo)的相對移動再用 ESP32 模擬 USB 鼠標(biāo)或者通過 BLE 發(fā)送給手機 App。如果你只需要調(diào)試觀測最好的方式是通過 WebSocket 把位移數(shù)據(jù)實時傳到瀏覽器畫一條曲線看起來直觀很多。我在調(diào)試階段就是這么做的ESP32 作為 WebSocket 服務(wù)端PC 瀏覽器打開一個簡單頁面實時顯示 DeltaX、DeltaY 和 SQUAL 的曲線。ESP32 自帶 Wi-Fi省去了一根串口線調(diào)試小車在屋里跑來跑去時非常方便。如果你糾結(jié)藍牙和 Wi-Fi 能不能一起用我的經(jīng)驗是兩者可以同時開啟但要注意合理分配任務(wù)和中斷優(yōu)先級。簡易的運動數(shù)據(jù)廣播用 BLE 更省電需要高頻率大數(shù)據(jù)量傳輸時用 Wi-Fi 更合適。6.2 融合其他傳感器才是完整方案光流傳感器不是萬能的它只解決“相對位移”這一個問題。要做完整的測速或定位通常還需要 IMU 做加速度計融合、高度傳感器做距離修正。因為光流的位移增量受高度影響很大如果你知道了相對地面的高度就能把 counts 更準(zhǔn)確地換算成實際距離。我的小車后來加了一個超聲波模塊測高配合 PMW3901MB 的位移數(shù)據(jù)測速精度比單獨用編碼器提升明顯。在融合思路上最常用的是卡爾曼濾波或互補濾波。把光流輸出的位移當(dāng)作速度觀測值把 IMU 的加速度當(dāng)作運動模型輸入融合后既能避免加速度計的漂移又能濾掉光流的跳變。我在 ESP32 上用 Arduino 環(huán)境實現(xiàn)了一個簡單的互補濾波其實核心就幾行代碼但效果提升是肉眼可見的。6.3 我給后來者的三點調(diào)試建議第一先把寄存器 ID 讀出來再談算法。PMW3901MB 只要能穩(wěn)定讀到 0x49說明硬件通路已經(jīng)打通后面的一切工作才有意義。不要一上來就急著看運動數(shù)據(jù)那樣出了問題你根本分不清是硬件還是軟件。第二務(wù)必把 SQUAL 打印到串口并且養(yǎng)成隨時觀察它的習(xí)慣。SQUAL 是傳感器在告訴你“我到底看不看得清表面”這個值在醫(yī)院上經(jīng)常能幫你快速判斷問題。很多看似是算法或者時序問題最后都出在表面紋理不清或者高度不對上。第三做一個可重復(fù)的移動測試流程。把傳感器固定在一個滑臺上以固定速度移動固定距離然后看累積位移是否線性增長。我最早做標(biāo)定時用手推著小車走數(shù)據(jù)散得沒法看后來改用緩慢勻速的滑臺后標(biāo)定系數(shù)才穩(wěn)定下來。這個流程看起來簡單但能省下后面大量排查時間。把這些細節(jié)都處理好之后ESP32 加 PMW3901MB 這套組合會變得非??煽俊N以谛≤図椖坷锇压饬鲾?shù)據(jù)作為編碼器數(shù)據(jù)的交叉驗證通道連續(xù)跑了幾個小時位移趨勢始終對得上。說實話光流傳感器并不算一個特別復(fù)雜的外設(shè)真正的難點是搞清楚它的數(shù)據(jù)語義、工作邊界和影響精度的外部因素。只要你愿意花一點時間把底層的寄存器行為弄明白后續(xù)不管是做懸停、做測速還是做手勢控制都會輕松很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
免费视频观看60秒| 激情图片亚洲色图| 大香蕉琪琪日本女优不卡| 97干在线视频| 亚洲天堂区| 男人天堂免费| 人人操人人搞人人草| 亚洲。日韩。欧美| 中文字幕在线免费观看 | 人妻丝袜一区二区三区在线| α√在线| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 人人人摸人人| 伊人国产av| 夜夜欢天天干| 超碰超碰欧美| 日韩小电影| 免费无码国产精品v片在线观看| 99ri视频| 婷婷爽人人婷婷爽视频| 欧美色图片91| 成人无码在线视频网站| 啊啊啊啊啊啊啊啊啊啊在线观看| 国产黄片精品在线| 久久九九精品一区二区| 欧美十八禁在线看| 嗯嗯不要 视频| 亚洲操操操| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 黄片免费看黄片免费看| 综合大香蕉美。| 无码人妻丰满热妇又大又粗| chaopen97久久| 日韩不卡av一二三| yiqicaoav| 国产亚洲一黄| 色悠悠伊人网五月天| 中文久久爆乳| 久操免费观看| 欧美成人精品一区二区三区| 久久东京伊人一本到鬼色| 神马久久网| 欧美精品一区二区少妇免费A片 | 欧美精品,四区。五区| 亚洲欧美自拍偷拍| 偷拍导航视频网站| 亚洲熟女国产综合另类| 欧美精品三区| 无码久| 在线一道啪| 国产热av| 99色| 极品国产内射| 亚洲性猛交| 久久久久久精品免费看A级| 久久天堂网| 九九九九九九九精品视频| 屁股久久久久久| 麻豆精品A片免费观看| 777琪琪午夜免费A片| 欧美大战久久久伊人| 久久美女国产| 美女91AV| 久久精品成人一区二区三区蜜臀 | 婷婷精品| 日本孕妇一区二区视频操逼免费看| 国产欧美日韩臀| 成在线人在线观看视频| 久久精品人妻一区二区三区| 啊啊啊啊视频免费| AV无码久久久精品| 五月婷亚洲精品天堂| 蜜桃成人1区2区3区| 日韩操逼HD| 91狠狠综合久久| 久久国产精品91| 偷拍亚洲熟女视频播放| 久久久久久九九九九九| 亚洲av热热色| 另类小说五月天| 91被操| 人妻精品一区一区三区蜜桃91| 亚洲欧美大香蕉| 日韩综合成人免费视频| 久久加勒比| 亚洲人91| 天天干,天天日| 亚洲 中文字幕 精品| 性欧美| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 欧美亚州综合网图片| 综合激情97| 97在线精品| 岛国激情视频在线观看| 精品九九| 另类老少妇| 久久97资源 网| 日本理论在线| 国产一区免费午夜视频| 91bbb| 经典丝袜一区| 久九9精品| 日韩人妻操B| 激情五月天色播| 国产精品69人妻无码久久久| 99这里只有精品国产| 91欧美网| 深夜视频| 国产精品免费久久久久久久久久 | 国产精品动态一区二区三区四四| 成人日本精品九区| 在线观看一卡二卡| 欧美丰满熟妇XXXX性ppX人交| 天天色天天干天天爱| 国产9l 大屁股| 高清不卡 中文 人妻| 久久久久久久少妇| 亚洲天堂男人在线| 日本欧美国内在线| 欧美强奸一区二区诱惑| 国产一进一出视频网站| 亚洲天天操| 久久天堂网| 欧美人妻中出| 日本顶级天天操狠狠操夜夜操中文字幕| av婷婷色网| 色婷婷电影网| 91丨九色丨东北熟女| 人人插人人摸人人| 久久久久免费少妇| 久久综合乱子伦国产免费| 国产又粗又又黄又猛| 99热婷婷| 成人综合网 欧美| 毛片17S| www四虎| 成人无码专区精品视频| 综合久欧洲| 亚洲丝袜B诱惑| 日本青青草在线| 九九久久九九久久| 日韩97超碰中文字幕| 亚洲人人操| 天堂九九九九九九九九九| 国产亚洲在线观看| 欧美夜夜狠| 婷婷久久综合久| 人妻嗯啊啊在线播放| 色五月婷婷麻豆在| 欧美最婬乱婬爆婬性视频 | 99re在线视频国产| 国产精品对白自产拍| 曰本道人妻久久久在线不卡色视频| 少妇久久久免费| 狠色婷婷久久一区二区三区_| 日韩激情视频| 精品999日本| 91强在线播放| 天天操熟妇| 唯美清纯 妖精视频| 国产精品999aaa| 精品亚洲成人免费在线| 秋霞曰韩R级| 亚洲av乱伦色图网站| 色婷视频| 久久久9视频| 啊啊啊啊啊啊好湿好爽视频| 欧洲一区二区三区四区在线观看| 人妻精品一区二区三区| 啪啪啪东京| 色网亚洲人| 亚洲欧美黄| 日韩av在线精品观看| 欧美精品二区视频在线| 思思热在线cao| 国产99 中文字幕日韩小视频| 日韩啪啪视频| 欧美狠狠鲁| 精品二区三四区五电影 | 欧美 亚洲 另类 综合| 日韩精彩视频| 伊人黄色片| AV一起草在线| 精品国产乱码久久| 超碰人人干| 久操大香蕉手机视频在线看| 69一区二区三区| 色婷婷一区二区三区久久| 国产婷婷综合在线观看| 日本三级韩三级99久久| 91 丝袜在线| 欧美后入式| 亚洲在线A| 国产精品美女| 在免费jIzzjIzz在线视频| 国产精品久久久亚洲一区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 精品妇女一区二区三区| 亚洲AO在线| 日韩有码回春沙龙第一页| 男人的天堂 在线一区| 欧美亚洲日本视频久久久| 18一区二区三区| 亚洲情色无码一区二区三区| 嫩草在线视频| 青青草在线成人视频| 欧美图片色五月天| 秋霞无码av鲁丝片一区| a男人的天堂| 蜜臀久久久99久久久久| 人人爱操| 久超碰这里只有精品| 蜜乳AV.COM| 亭亭丁香激情| 日产欧美电影一区二区三区| 美女啊啊啊啊啊啊啊| 久久超碰天天| 久久亚洲不卡| 久久久久久999| 天天色综亚洲91污| 欧美最大综合网| 成人免费看吃奶视频网站| 久久9亚洲| 伊人影院日本| 青娱乐av在线| 小说区 图片区色 综合区| 后入美女国产| 亚洲色综合| 婷婷色一区| 亚洲综合999| 五月婷婷激情网| 亚州性色| 啊啊啊啊啊啊在线看| 久艹日日日| 人妻啊啊人妻啊| 午夜男人的天堂| 吻戏激情性巴克| 熟妇一区二区| 97精品视频免费| 精品国产无码中文| 黑人精品久久97| 亚洲av综合色| 97在线欧| 婷婷五月天补不补| 亚洲精品一区二区精华| 欧美一级专区免费大片| 深夜激情无码| 精品人妻一区二区三区不卡断| 欧美一级色| 色97干| 精品.99999| 免费看黄片现成| 天天天天做夜夜夜夜做| 色婷婷亚洲婷婷| 中国特猛少妇色xxx| 日韩人妻大香蕉| 日韩一级欧美一级国产一级台湾| 91久久久老司机| 欧美强奸一区二区诱惑| 欧洲视频在线| 天天看高清麻豆| 成人性爱高清视频免费看| 亚洲国产福利视频| 美女诱惑爱爱| 激情无码日韩| 操人妻视频| 97高清啪啪| 日韩国产成人自拍视频| 又粗又长又大国产不卡| 亚州色国| 97人人干| 无码精品人妻一区二区三区妖精| 亚洲成人贴图| 爱爱久久| 67914在线精品观看| 91九色蝌蚪在线观看| 午夜视频久久久| 久久国产精品一级二级三级| 淫荡少妇免费| 亚洲97| 国产精品网站www| 日本亚洲熟女视频| 成人av福利在线观看| 蜜臀在线网站| 大吊色| 偷看洗澡一二三区美女| 午夜福利一区二区影院| 欧美亚洲首页| 亚洲综合骚逼| 欧美亚州手机在线| 丁香五月久久| 黄色电影观看久久9| 蜜臀久久99精品久久久久久| 秋霞福利网| 精品对白久久不卡| 美女让帅哥通她小鸡鸡| 欧美一区二区情色| 涩五月婷婷| 亚洲欧美综合区自拍另类| 亚洲丝袜少妇在线| 亚洲色棕合| 亚洲大色堂| 调教熟妇 久久久久久| 亚洲人妻在线一区| 日本一道在线播放高清| 综合亚洲欧美| 91热热色| 久久熟女嫩草成人片免费| 麻豆乱码久久精| 激情五月丁香五月| 岛国黄色短视频| 国产自制av蜜乳| 精品97久久| 天天日熟妇| 情色五月天网| 激情终合网| 99啪| 亚洲自拍另类丝袜综合| 1956日韩精品| 日韩精品一区二区三区四虎影视| 99久久99九九99九九九| 人妻久久| 成人情色综合网| 2017超碰| 亚洲少妇激情一区二区三区| 精品中文一区二区| 成人精品视频| 北条麻妃性愛视频| 日本高清加勒比| 妇女视频网站| 狠狠夜色午夜久久综合在线| 91殴美大片| 欧亚第一综合网| 中文字幕av久久爽Av| 婷婷五月天小说| 99ri视频| 中文字幕精品一区二区精品| 六月婷婷综合| 99久热| 色97| 啊a一区在线| 色av中文字| 天天欧美色| 无码人妻一区二区一牛影视| 中文字幕乱碼在线| 久久水蜜臀亚洲AV无码精品| 久久精品国产99国产精品亚洲| 91伊人大香蕉| 超碰 国产熟女精品一区| 久久久国产护士丝袜美腿一| 91成人亚洲色图| 久久伊人东京热| 日日干日日摸| 九九久久玖玖| 国产无码精品无码| 亚洲无无码αⅴ每日更新| 国内毛片热久久思思热| 夜夜操青青草| 中文字幕性感少妇av| 国产成人久久久精品免费AV| 日韩偷拍色图| 日本欧美色| 黄色一区三区| www欧美91| 免费操逼91| 色色网91| 国产成人无码网站在线视频| 久久,精品一二三| 厕所偷拍在线| 人妻无码一区二区三区久久99| 精品久久久久成人码免| 96精品久久久久久久久久| 日韩有码 一区二区三区| 操逼啊啊啊91| 男人的天堂亚洲| 蜜桃中文字日产乱幕4区| 91九九九小逼| 精品久久久久综合无码| 中文字幕一区二区三区字幕| 久久精品国产72国产精品福利| 国产日韩欧美三级片| 偷拍 精品另类 凸凹了四区| 嗯嗯,好大,好爽,好骚| 亚洲少妇激情一区二区三区| 97亚洲在线| 一区二区三区亚洲| 欧美日不卡| 今日头条成人一区二区三区四虎精品| 日本布卡一区二三区| 俺去啦俺来也久久综合| 国产 丝袜 欧美中文 另类| 伊人成人中文字幕久久网| 91电影色诱| 欧美美逼| 午夜偷拍久久熟女| 中文一区二区婷婷视频| 中文字幕熟女人妻丝袜丝| 欧美精品成人一区二区在线观看| 成人三级片无码| 伊人影院在线理论播放| 日韩99999| 午夜无遮挡男女啪啪视频| 婷婷99| 狠色婷婷久久一区二区三区_| 94色色电影网| 一级久久性爱视频| 亚洲自拍一区夜夜操| 亚州性色| 一块操欧美| 国产精品熟妇一区二区三| 97精品一区二区三区免费| 色呦呦呦在线观看视频| 国产精品国产自产拍高清AV| 欧美性91| 精品一区二区成人动漫| 亚码人妻| 日韩欧美成人性爱在线| 一二三啪啪专区| 国产精品伦理| 白嫩国模丰满一二三区| 欧美 牲| 欧洲在线性爱视频| 亚洲美乱| 久久精品超碰| 中文字幕精品资源在线| av天天在线| 国产精品第一区第一页| 99国产精品人妻人伦| 日本二区不卡| 久久精品国产72国产精品福利| 91高跟美女在线播放| 色综合一区二区三区| 婷婷五月天网| 综合网少妇| 国产高清成人传媒影视| 亚洲 欧美 日韩另类 麻豆| 欧美性爱www免费版| 亚洲综合影片| 中国操逼无码| 91色图片| 久久黄色视频一区二区三区| 久久m| 国产成年精品高清在线观看91| 亚洲aw毛茸茸在线| 97超碰磁| 欧美韩国你懂得在线| 中字幕人妻一区二区三区| 美女黄页| jizz啪啪| 欧日韩在线观看| 99re公开精品免费视频| 91美女視頻| xxx0国产在线播放| 久久九九精品一区二区| 超碰人人超在线观看| 蜜桃臀久久| 国产精品无码AV网站| 国产蜜臀在线| www久久久| 九九九九精| 日韩人体偷拍| 51国产午夜精品视频| 好看的91视频| 国产乱人伦AVA麻豆软件.| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 五月婷婷色| 青娱乐啪啪视频| 精品国产自在在线99| 97超碰欧美| 五月婷婷hd| 久久综合亚洲色1080p| 9999久久久久| 人妻久久久| 人妻夜夜爽天天爽三区麻豆AV网站| 欧美日韩国产中文精品字幕自在自线, | 久久久久久久九九九九| 亚洲熟妇乱女区二区三区| 无码不卡八戒| 日本97久久| 嗯嗯啊中文字幕| 人人搞人人插人人操| 九九久久99| 成人福利视频网| 91亚洲网站| 日韩 人妻 精品| 亚洲囯产精品女人久久久| 另类老少妇| 青青草密桃在线播放| 国产亚洲精品A在线观看下载| 中亚黄色三级大片| 91 刺激在线| 欧美性爱精品七区| 国产超碰欧美| 青青草日逼视频| 日韩欧美tv一区二区在线观看| 麻豆一区二区AV天美| 久久久久久久久久久久久9999| 国产一在线观看| 91欧美网| 久久亚洲色图中文字幕| 吻戏激情性巴克| av天堂天堂av日韩| 亚洲高清自拍| 人妻大香蕉| 日本不卡三级网在线播放| 高清成年美女黄网站免费大全| 欧美日韩狠狠爱| 1二区9| 五月婷婷丁香| 国产www色在线观看| 屁股久久久久久| 久久久一区二区| 日日日啊啊啊| 加勒比大香蕉视频在线| 伊人影院综合是一个与深夜成人在线| 夜夜精品视频| 亚洲素人综合| 麻豆精品天美| 精品91摸| 亚洲无码99| 看黄片视频免费| 亚洲天堂在线怕怕视频| 狠狠爱大香蕉| 黑丝制服中文字幕| 久久久久久久久久精| 毛片视频白嫩| 九九九九久久久| 在线性黄高清免费视频| 日韩精品一区二区日韩| 91AV入口| 国产精品免费久久久久久久久久| 欧美色图亚洲色,麻豆| 玖玖爱一区在线| 日韩人妻操B| 丁香久久| 国产欧美一区激情交| 国产A v无码专区| 精品无码久久久久久久久果冻糖心| 5252色欧美在线男人的天堂| 久久人妻一区二区三区高清| 强奸熟女一区二区三区| 性老妇一区二区三区| 麻豆九九九| 精品久久久久,69国产成人精| 色婷婷电影网| 9999久久久久| 日本色色色| 色官网在线| 国产成人无码高清| 秋霞曰韩R级| 国产麻豆福利av在线播放| 免费一级精品啪啪视频| 操婢日韩| 精品中文字幕一区二区| 人人艹亚洲| 天天插夜夜操| 欧美大香蕉同搞| 免费人成在线观看网站品爱网| 欧美Aⅴ| 伊人丁香五月婷婷| 中日亚韩免费视频| 岛国艾薇凹凸视频天堂| 国产一级作爱毛片| 中文字幕av乱伦| 人妻精品视频一区二区| 91久久久久久久| 五月天婷婷成人网| 熟女丰满人妻一区| 中文字幕视频2区| 色爱欲亚洲| 一牛一区二区三区久久| 久草精品视频| 天堂亚洲精品| 国内外内射高清视频| 2024黄色视频| 在线观看免费视频国产| 国产亚洲日本精品在线| 色噜噜婷婷| 欧美|91色综合| 密臀在线免费观看| 动漫av中文| 国产精品69久久久久孕妇欧美| 97人人夜| 国产精品视频内谢女人| 翔田千里AⅤHD无码| 欧美日韩国产中文精品字幕自在自线 | 老司机老司机午夜影院| 9+1视频网址| 91原创在线观看| 日韩情色AV| 十八禁电影伊人网| 中文字幕在线免费观看| 呦呦影院| 日本熟妇人妻中出视频| 亚洲男人天堂2019| 一本一首道人妻少妇免费久久| 国产精品国产| 人妻久久一区二区三区 | 国产懂色精品国产av| 日本大片日本一区二区免费高清| 9热9热综合网| 男人的天堂三级| 2019天天干| 乱伦图一区| 亚洲高潮少妇| 日本亚洲熟女视频| 九九玖玖精品| 亚洲AV不卡在线观看| 欧美综合天天| 日本一区二区成人在线| 久妇网| 伊人少妇久久久| 毛片一区二区| 综合自拍| 亚洲揄拍网| 欧美激情视频一区二区| 岛国大片在线观看网站入口| 国产按摩一区二区三区| 国产性爱欧美性爱在线| 中日韓欧美高清| 欧美少妇性爱网站| 久草久热| 91美女视频直播| 久操操AV电影| 欧美色棕合| 欧洲一区二区三区四区在线观看| 黄色成人网久久久久久| 欧美在线视频99| 国产妇女精品视频青青草| 久操电影| 天天色播| 人妻无码一区二区三区久久99| 88xx成人精品视频| 日本三级黄页| 熟妇一区,二区,三区。| 亚洲国产一区二区入口| 九九九九九九亚洲| 深夜国产福利| 91粉嫩萝控精品福利网站_精品影音先锋国 | 久久动漫精品视频这里只有精品| 亚洲天天综合| 五月婷婷深深爱| 久久精品成人一区二区三区蜜臀| 免费观看网黄| 亚洲人精品久久久喷水| 午夜啊啊| 欧美日韩操逼嗦吊| 啊嗯嗯啊好大好爽| 一牛影视成人片免费| 成人日本精品九区| 探花视频免费观看国产专区| 日韩欧美视频青青| 亚洲av资源| 国产无马av| 久久精品国产97欧美精品亚洲 | 51国产午夜精品视频| 亚 欧 美 综合| 黑人在线91| 欧美做爰无码A片视频| 风月影院男女十八禁| 可能人人看人人摸| 中文字幕女同在线| 一区二区三区视频国产免费| 99xav| 日韩高清黄片| 91视频成人福利网站在线一区| 中文字幕丰满人妻日本| 亚洲天堂另类美腿| 国产无码精品无码| 97色色色综合网站| 欧美A片中文字幕| 久久久久久91香蕉国产| 久操操AV电影| 少妇内射www在线观看视频| 370p日韩欧美亚洲精品| 欧美亚洲美少妇一区二区| 秋霞网—男女啪啪亚洲免费体验区 | 在线视频日韩欧美国产| 欧美后入式| 国产日比| 啊啊啊啊啊啊好多水| 欧美 亚洲 制服 精品| 免费操逼91| 无码人妻丰满熟妇奶水区毛片| 不卡中文字幕aⅴ在线| 无码视频一区二区| 国语国产操逼伊人AV网| 日韩特一级久久| 色五月首页| 中文字幕后石码四区五区| 99国产精品人妻人伦| 综合亚洲欧美精品日韩?v| 欧美色997| 无码操逼网| 成人开心网在线视频| 天天色播| 中英熟女操女| 色色色色色色色色综合| 欧美精品自慰系列寂寞少妇| 熟妇最新先锋一二三区| 伊人一区二区在线播放| 大香蕉青青9| 五月婷婷性爱| 狠狠婷婷亚洲中文综合久久| 超碰综合色| 日韩性爱网址| 亚洲精品久久久久毛片A片拉屎 | 丝袜人妻av一区二区| 韩日巨乳美女免费视频在线观看| 人人做人人妻人人夜视频| 国产精品久久久久久久久久久久久久| 久久女人视频| 激情综合网五月婷婷五月天| 激情欧美97| 久久97资源 网| 干婷婷综合网| 欧美激情久操网| 夜夜 中文视频rt| 91大学精品激情戏| 久久亚洲欧美中文字幕国语| 老熟乱一区二区三区四区| 91亚洲精品青草| 可以在线观看AV的网站| 91视频在线观看18| 97丝袜亚洲在线播放| 亚洲 日本 一 二 三| 午夜福利无毒不卡| 久久一区二区蜜桃| 97操在线| 欧亚综合一卡二卡中文字幕| 黄色在线网站| 欧美天天弄| 国产精品久久久久久久久久二区三区| 国产后入精品| 天天日天天干天天整| 人人摸人人入| 色欧美色交综合| 亚洲自拍另类丝袜综合| 热久久这里只有精品| 少妇啪啪自拍| 色综合加勒比| 91亚洲黄色网| 久久精品中文| 超碰 另类 欧美 | 夜夜操av亚洲一区二区| 国产亚洲99久久精品| 青青操日韩| 国产极品久久久| 91粉芽高清在线一区二区| 综合五月婷婷亚洲一区| 青娱乐淫乱1314| 久久成人东京热人妻| 97超视频在线观看| 日本青青草在线| 色玖玖| 久久久久成人亚洲国产| 老熟女乱伦一区| 狠狠超| 日本三级精品| 国产九九九九九九| 久久久久密臀视频| 97超碰逼| 精品久久久中文字幕不| 色婷婷在线视频精品导航| 99re国产精品视频| 欧美色图私拍91| 欧美高清18A片| 98精品国产乱码久久久久久| 天天日天天搞天天干| 国产一级作爱毛片| 久久草草亚洲蜜桃臀| 亚洲熟女诱惑| 密臀在线视频| 国产夫妻性生活视频| 久久久久久久久久久久九| 日韩AV一区二区三区三州三州| 狠狠操狠狠| 丁香五月激情啪啪| 国产AV高清AV无码| 91小视频| 国产精品一级片在线看| 涩涩这里只有精品视频| 免费福利视频中文字幕| 在线中文字幕| AV一起草在线| 人人玩人人添人人澡免费| 91AV入口| 91精品人妻偷情| 久久超碰国产一区二区三区| 91肉片| 成人精品无码| 日韩一级久久毛片| 丰满美女一级毛片在线播放| 2025年A片视频精品| 超碰97人妻免费在线| 蜜乳成人AV| 无码人妻精品一区二区中文 | 欧美一二三级精品在线| 国产v片在线免费观看| 激情天天视频| 亚洲欧美综合区自拍另类| 国产一区二区a毛片| 日本操逼视频导航| 911粉嫩人妻| 九九色热| 精品久久久九九九孕妇| 性欧美天天| 国产精品天干天干综合网麻豆| 91超碰碰在线| 日韩午夜国产| 60秒免费视频| 亚洲猛交| 91在线欧美| 为用户提供免费看黄网址在线观看| 91碰超| 这里都是精品在线观看| 蜜臀久久99精品久久久老,,| 国产夜夜艹| 亚热日本熟女| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 艹精品| 偷看洗澡一二三区美女| 超踫中文字幕| 美女大乳久久久久久久女人18| 久久久99999久网站| 亚洲色棕合| 火箭成精品视频884必出精品| 91免费看一区二区三区| 思思热免费在线视频| 国内毛片无码一级毛片| 久久久久久久极品香蕉视频| 欧美72网页| 日本二区不卡| 女性喷水高潮在线观看| 精品偷拍13p欧美dodk视频| 97人妻碰碰中文无码久热丝袜| 欧洲综合视频| 校园春色欧美| 97视频在线播放| 免费公开人人操| 人妻少妇一区二区| 亚洲淫色网中文| 日韩天天综合| 人人做天天爱| 亚洲成人在线播放| 中文字幕久久精品一区| 日本亚洲嫩草影院啪啪| 欧美五十路熟| 激情五月综合网| 日本黄色裸日本黄色裸体| 人妻激情视频| 九九热久久99精品re| 天天弄天天操| 中文字幕一区二区三四五区日日骚| 色香天天| 精品一区二区综合熟妇| 一区二区三区 丝袜 高跟 美腿| 2019午夜福利视频| 丰满人妻aA一区二区三区| 一级啊性爱在线视频| 亚洲中文字幕妇伦久久| 香蕉国产97| 国产精品久久久久久照片| 人妻AV 中文字幕的| 天美一区在线| 四虎午夜影院| 亚洲成人在线播放| 插入粉嫩少妇视频| www久久国产精品| 男女91| 黄日韩| 3PAV乱伦视频| 激情综合亚洲| 日韩精品一区,二区 九九...老司机| 人人操人人色网| 五月婷久久| 色香欲天天天天综合色| 亚洲av国产av综合av卡| 天综合网| 亚洲天天自拍| 国产树林里野战在线看| 97爱b| 日本黄色精品专区网站| 久久精品一区二区三区不卡| 久热网| 国产美女mm131爽爽爽爽| 久久中文色图| 国产无码成人无码| 人妻激情另类| 日韩十八禁| 伊人五月天| 免费国产| 黑人无码一区二区| 久久精品99久久久久久| 日日噜噜夜夜狠狠视频无| 欧美一区二区三区大综合| 91精片| 亚洲情色第一页| 欧美九九九九九| 五月大香蕉| 九七超碰人人乐| 国产一级片| 综合亚州欧美| 大香蕉520| 啪啪啪男女亚洲中文字幕99| 亚洲国产成人高清在线| 亚洲人精品久久久| 日本123区操B视频| 日本 情色 1区2区3区| 亚洲码专区| 无码人妻毛片丰满熟妇精品区| h无码动漫在线观看| 欧美一区二区三区成人性生活| 美女极品一区二区三区| 亚洲的天堂网| 亚洲中文字母在线播放| 青青草原成人| 九九综合色| 伊人麻豆传媒| http://qxhbdz.com| 亚洲中文字幕在现观看| www.操| 91av一区二区在线观看| 欧美韩国你懂得在线 | 五月天久久婷婷亚洲| 韩国一级婬片A片无码天美 | 欧美一区二区三区成人性生活| 国产h片在线观看视频| 欧美激情亚洲情色| 强奸xx国产| 天天日天天干少妇日| 97视频观看| 超清福利精品视频在线| 91天射| 人妻少妇av在线观看| 97国产|免费| 亚洲色图在线视频| 国产探花日韩援交| 久久久久久久久9| 色官网色综合| 国产AV天美传媒一区二区三区| 看一级黄色视频| 在线不欧美| 99re8免费高清在线| 国产大学生口爆吞精合集| 舔人妻中文免费视频| 人妻久久久久久久久久久久久久久 | 亚州综合AⅤ| 午夜高清成人在线视频| 96久久久久| 久久男人网| 久久AV无码网址| 天天影视亚洲| 亚洲色图国产另类| 日本午夜久久电影| 日韩综合无码一区久久92| 新视频sss国产| 超碰免费人人| 日欧操屄| 怡红院网站在线视频| 久操B网| 把腿张开老子CAO烂你| 91 丝袜在线播放| 曰本91情色| 蜜桃臀av在线观看| 少妇无码av专区线| 欧美 亚洲精品首页| 97久久精品国产| 国产精品国产拍高清AV| 日韩一级久久毛片| 国内精品久9| 爱干爱射网啊啊啊| 亚欧韩av| 欧美成熟性爱精品| 97精品全部| 伊人一区二区三区| 久草婷婷| 中文字幕精品日韩中文字幕| 中文字幕在线免费观看| 亚精品无码毛片一区二区三区| 污啪啪啪视频| 欧美另类综合久久| www.av家庭乱伦| 成人九九| 青青草色插素人| 91N欧美| 熟女六十路| 天天懆天天日| 91天堂网| 欧美 日韩第一性色| 一区二区 电影 亚洲| 人妻激情另类| 91精品国产高清久久久久久,亚洲成人 | 国产精品视频内谢女人| 亚洲熟女一区二区| 国厂麻豆77q4| 日本不卡三级网在线播放| 精品超碰国产| 国产成年免费大片黄在线观看| 囯产精品久久久久久久久久二区三区| 校园春色家庭伦理欧美激情| 欧州激情视频在线一区二区| 麻豆久久久一区二区| 在线v中文字幕一区二区三区| 免费αV在线视频| 91麻豆天美传媒在线| 蜜臀一二三区| 伦理弟一页| 久久久穴999| 九九九九88| 骚逼高潮久久精品| 性爱av在线免费观看| 日韩欧美国产一区二区三区四区 | 操国产高清| 91色欧美| 骚日日av| 青青青草伊人精品| 亚洲网污污污污| 欧美亚洲AN| 妇女视频网站| 大香蕉综合| 97视频观看| 欧美熟爽综合| 骚逼高潮久久精品| 91狠狠综合久久| 亚洲AV成人无码一区二区三区在线观看| 国产日韩精品无码去免费专区国产| 老熟女91| 亚洲综合影院| 亚洲天堂欧美| 69一区二区三区| 欧美翘臀视频网站一区二区三区| 青青草原av| 久肏视频字幕| 风间由美日韩欧美久久| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美78| 国产精品视频在线播放| 亚洲第91页 | 乱伦av.com| 大香网站| 国产精品成人蜜臀AV在线| 中国国国产一级特黄毛片| 一级特级aaaa毛片免费观看| 日韩A优精品在线观看| 秋霞无码av鲁丝片一区| 久久久久久精品免费看A级| 国产91精品福利在线| 91成人久久 | 天天干天天操天天干天天操| 亚洲精品一区二区三区在线播放| 美女极品一区二区三区| 操我无码| 日本 欧美 国产一区| 国产精品熟女乱伦| 久久香蕉网| 99热色这里只有精品| 伊人国产av| 国产二区三区粉嫩在线| 亚洲精品 欧美精品| 日韩八十路老熟女| 亚洲国产97在线精品一区| 东京热av影院| 精品人妻一二三| 久久久久亚洲三级电影| 成年女人黄网站| 日本在线视频导航| 激情第四色| 人妻天天爽夜夜爽精品2| 欧美成人色| 天天综合网亚洲综合网| 人妻精品一区二区| 免费精品国偷自产在线在线 | 丝袜av一区二区三区| 九九九九九九九九九九九蜜桃| 亚洲在线综合| 久久大| 久久久久久日韩| 免费毛片在线播放| 日本有码影片下载| 亚洲综合性网址| 国产视频97| 97超碰人人模人人拍人人| 黄色激情电影在线观看| 国产97色在线| 少妇毛片久久| 最新9久久久9免费视频| 欧美性性性| 操婢日韩| 亚洲欧美日韩综合在线尤物 | 天天综合~91| 人人操,人人液| 日韩一性一交一A片俄罗斯| 五月婷婷色| 美女裸体麻豆天美蜜桃91| 中文字幕第95页| 欧美第一页| 久久‘黄片视频| 大鸡吧尹人在线| 91视频综合在线| av影片在线观看不卡| 国产欧美一级在线观看| 精品妇女一区二区三区| 福利天堂| 亚洲图片激情小说| 精品性爱一二三区| 亚州操操穴网| 自拍第一页| 色欲久久久久综合网| 色爱国产| 亚洲人妖网| 欧州91高潮| 国产三级日产三级韩国三级| 夜夜夜久久| 玖色av| 欧美亚洲第一页| 亚洲熟妇极品| 精品国产乱码久久久久久日本公司| 百度百度日本操逼| 自拍鲍鱼一区在线高清观看免费| 欧美性,色九九| 妇女一区二区三区| 91动漫操逼视频| 人人澡综合涩| 色欧美综合| 性做久久久久久免费观看软件| 97 视频在线| 中欧人妻丝袜中文字幕| 国产欧美亚洲精品a第2页| 综合网久久| 亚洲综合首页| 黄网在线播放| 久湿久久| 吖在线不卡一区二区国产剧情| 一区二区三区四区色图| 夜夜嗨老熟女AV一区二区三区| 人人操人人操人人人操| 日本美女性生活久久久久久久| 久久久极品| 日韩精品永久在线观看| 青青草乱入乱欲视频在线观看| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 夜夜狼人妻| 美女诱惑久久| 日本精品一区二区中文字幕| 免费啊啊啊| 成人AV超碰免费在线| 国产精品女同| 999精品女人| 激情色色| 亚洲玖玖爱| 亚洲码专区| 嫩草 我啊~嗯~在线| 操迟操逼在巾线Fre看| 亚洲蜜臀懂色| 国产亚洲福利第一页丝袜| 好淫网一二三视区| 日韩一二三区| 在线观看一卡二卡| 欧美性暴力猛交|