欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

基于C# WinForms的MPU6050上位機(jī)開發(fā):從串口協(xié)議到姿態(tài)解算

基于C# WinForms的MPU6050上位機(jī)開發(fā):從串口協(xié)議到姿態(tài)解算 最近手里有塊GY-521模塊也就是最常見的MPU6050六軸傳感器板子憋著想做個姿態(tài)采集的小項目。可是每次調(diào)試都只能開著串口助手盯那堆十六進(jìn)制數(shù)字?jǐn)?shù)據(jù)一變滿屏滾動根本看不出門道。于是花了一個周末直接用Visual Studio寫了個簡單的MPU6050上位機(jī)把加速度和陀螺儀數(shù)據(jù)實時畫成波形還加了一個姿態(tài)角顯示區(qū)。這篇文章就把這一整段折騰過程完整記錄一遍硬件怎么接、串口協(xié)議怎么定、C#界面怎么寫、姿態(tài)解算怎么落地每一步都盡量講透。適合手里有MPU6050模塊、準(zhǔn)備搞畢業(yè)設(shè)計、或者想入門上位機(jī)開發(fā)的同學(xué)參考看完你完全可以照著搭出一套能用的工具。1. 項目拆解與方案選型1.1 這個項目到底要做什么先把這個項目是什么說清楚。MPU6050是一個六軸運(yùn)動傳感器內(nèi)部整合了三軸加速度計和三軸陀螺儀能輸出X/Y/Z三個方向的加速度值以及繞三個軸旋轉(zhuǎn)的角速度值。所謂上位機(jī)就是運(yùn)行在電腦上的數(shù)據(jù)接收、顯示和控制軟件。所以整個項目做的事就是下位機(jī)單片機(jī)讀取MPU6050的原始數(shù)據(jù)通過串口把數(shù)據(jù)打包發(fā)送給電腦上位機(jī)接收并解析數(shù)據(jù)幀把數(shù)據(jù)繪制成實時波形并解算出姿態(tài)角度roll/pitch這個鏈路看起來直接但里面涉及的細(xì)節(jié)很多。串口數(shù)據(jù)是對字節(jié)流沒有任何結(jié)構(gòu)怎么讓上位機(jī)準(zhǔn)確區(qū)分出“一幀完整的數(shù)據(jù)”單片機(jī)發(fā)出來的原始量程數(shù)值和實際物理角度之間怎么換算界面實時刷新怎樣才不會卡頓這些問題不親手做一遍光看書是體會不到的。1.2 上位機(jī)技術(shù)方案為什么是C# WinForms做上位機(jī)的技術(shù)路線其實不少我自己常用的幾種方案對比如下方案優(yōu)點缺點適合場景C# WinForms串口類內(nèi)置、界面拖拽快、資料多界面風(fēng)格偏傳統(tǒng)中小型工具類上位機(jī)Python PyQt開發(fā)快、繪圖庫豐富打包發(fā)布麻煩、實時性能一般快速原型Qt C跨平臺、性能好學(xué)習(xí)成本高、環(huán)境略重大型工業(yè)項目Web前端 WebSerial界面炫、免安裝瀏覽器兼容性折騰展示型Demo我最后選了C# WinForms原因是這個項目本身不復(fù)雜.NET自帶的SerialPort類開箱即用Visual Studio里拖控件就能搭界面Chart控件也夠畫實時曲線完全不用引入第三方庫。對于“簡單上位機(jī)”這個定位它是最快能落地的組合。另外一個很現(xiàn)實的因素是資料量。無論是博客還是視頻社區(qū)C#上位機(jī)開發(fā)的案例一搜一大把遇到問題基本都能查到現(xiàn)成答案。對新手來說這條路的容錯率要高得多。1.3 整體架構(gòu)和數(shù)據(jù)處理流程整個系統(tǒng)的數(shù)據(jù)流是這樣的MPU6050傳感器 → I2C總線 → 單片機(jī)Arduino/STM32→ 串口 → 上位機(jī)串口接收 → 數(shù)據(jù)幀解析 → 波形顯示/姿態(tài)解算 → 界面刷新下位機(jī)負(fù)責(zé)采集和發(fā)送上位機(jī)負(fù)責(zé)接收、解析和可視化。兩者之間的“語言”就是通信協(xié)議后面我會重點講協(xié)議設(shè)計這是整個項目的關(guān)鍵一環(huán)。2. 開發(fā)環(huán)境與硬件準(zhǔn)備2.1 Visual Studio 2022安裝與配置用Visual Studio 2022社區(qū)版就夠了官方免費(fèi)下載功能對這個項目完全夠用。安裝的時候有一個非常關(guān)鍵的步驟工作負(fù)載一定要勾選“.NET 桌面開發(fā)”。漏掉這個的話你打開新建項目會發(fā)現(xiàn)找不到Windows窗體應(yīng)用模板回頭還得去修改安裝。如果安裝過程中遇到“Windows Installer服務(wù)不可用請重啟系統(tǒng)”這種報錯多半是系統(tǒng)服務(wù)被停用了或者是后臺還有VS的殘留進(jìn)程在占用。先重啟電腦用管理員身份重新運(yùn)行Visual Studio Installer一般就能解決。還有個小建議安裝路徑盡量別帶中文部分老項目對路徑編碼敏感容易埋坑。新建項目時選“Windows窗體應(yīng)用”框架我建議選.NET Framework 4.7.2或者.NET 6以上版本都行。WinForms項目里不需要額外裝包用到的SerialPort和Chart控件都是自帶的。2.2 硬件清單與接線要點我手頭的配置是一塊GY-521模塊和一塊Arduino Uno另外準(zhǔn)備了一個USB轉(zhuǎn)TTL小板。如果你手里是STM32開發(fā)板原理完全一樣只是底層讀取代碼需要按寄存器操作重寫。GY-521模塊的引腳和開發(fā)板接法如下GY-521引腳Arduino Uno引腳VCC3.3V或5VGNDGNDSCLA5SDAA4這里有個常見坑GY-521模塊的VCC雖然很多板子標(biāo)5V但MPU6050芯片本身是3.3V器件模塊上通常帶穩(wěn)壓芯片才敢接5V。接之前看一下模塊背面有沒有穩(wěn)壓IC沒有的話老老實實接3.3V。我第一次就是把3.3V的傳感器接到了5V上結(jié)果模塊直接發(fā)燙報廢了一塊。2.3 串口通信基礎(chǔ)參數(shù)串口參數(shù)也就是波特率、數(shù)據(jù)位、停止位和校驗位這些參數(shù)下位機(jī)和上位機(jī)必須嚴(yán)格一致否則收到的就是亂碼。下位機(jī)里設(shè)置115200波特率、8個數(shù)據(jù)位、1個停止位、無校驗上位機(jī)的SerialPort控件也要配成同樣的參數(shù)。波特率不是越大越好。雖然115200確實能傳輸更多數(shù)據(jù)但對這個項目來說每幀數(shù)據(jù)十幾個字節(jié)9600波特率都綽綽有余。選115200主要是考慮調(diào)試時輸出的調(diào)試信息可能比較多留足了余量。3. 下位機(jī)MPU6050數(shù)據(jù)采集與協(xié)議設(shè)計3.1 MPU6050初始化步驟下位機(jī)我用Arduino來演示因為代碼可讀性最好。初始化MPU6050的步驟可以拆成三步第一步初始化I2C總線并喚醒傳感器。MPU6050在剛上電時是休眠狀態(tài)必須往電源管理寄存器寫入喚醒命令才能讀到數(shù)據(jù)。第二步確認(rèn)I2C地址。MPU6050的I2C地址是0x68還是0x69取決于AD0引腳的電平。AD0接地就是0x68接高電平就是0x69。絕大多數(shù)模塊默認(rèn)接地用0x68。第三步設(shè)置量程。加速度計可選±2g、±4g、±8g、±16g陀螺儀可選±250、±500、±1000、±2000 dps。量程越大能測的范圍越大但分辨率越低。我這個項目放在桌面測試不會劇烈運(yùn)動所以加速度計用±2g陀螺儀用±250dps。Arduino的初始化代碼很簡單用的Jeff Rowberg的MPU6050庫#include Wire.h #include MPU6050.h MPU6050 mpu; void setup() { Wire.begin(); mpu.initialize(); // 內(nèi)部會自動喚醒并設(shè)置默認(rèn)量程 mpu.setFullScaleAccelRange(MPU6050_ACCEL_FS_2); mpu.setFullScaleGyroRange(MPU6050_GYRO_FS_250); Serial.begin(115200); }讀數(shù)據(jù)的代碼更簡單int16_t ax, ay, az; int16_t gx, gy, gz; mpu.getMotion6(ax, ay, az, gx, gy, gz);這里讀出來的int16_t原始值就是三個軸的加速度原始值和三個軸的陀螺儀原始值。后面的換算在上位機(jī)做或者也可以在單片機(jī)里先換成物理單位再發(fā)送兩種方案我都試過。在單片機(jī)上換算是以占用MCU計算時間為代價的但對于Arduino Uno這種性能比較弱的板子建議把換算放到上位機(jī)單片機(jī)只負(fù)責(zé)采集和發(fā)送把壓力留給PC端。3.2 數(shù)據(jù)幀協(xié)議設(shè)計防亂碼的關(guān)鍵一步這是整個項目里最值得講的部分。串口傳數(shù)據(jù)是一個字節(jié)流上位機(jī)收到的是一串沒有邊界的字節(jié)。如果下位機(jī)只是把六個int16原始值直接往外發(fā)上位機(jī)根本不知道哪里是一幀的開頭、哪里是結(jié)尾。更麻煩的是串口線纜或USB轉(zhuǎn)TTL在干擾下可能丟字節(jié)、錯字節(jié)導(dǎo)致數(shù)據(jù)錯位后一直錯下去。解決思路就是給每一幀數(shù)據(jù)定義清晰的結(jié)構(gòu)。我用的幀格式是這樣幀頭1幀頭2數(shù)據(jù)長度數(shù)據(jù)區(qū)校驗和0xAA0x55數(shù)據(jù)字節(jié)數(shù)12字節(jié)6個軸的原始數(shù)據(jù)累加和為什么幀頭用連續(xù)兩個字節(jié)0xAA 0x55如果只用一個0xAA做幀頭數(shù)據(jù)區(qū)里如果恰好出現(xiàn)0xAA就會導(dǎo)致收端誤判幀頭。使用“AA 55”連續(xù)模式后數(shù)據(jù)區(qū)里同時出現(xiàn)這兩個連續(xù)字節(jié)的概率非常低誤判的可能性基本可以忽略。為什么要有數(shù)據(jù)長度字節(jié)因為接收端需要知道這一幀數(shù)據(jù)總長度到底是多少才能把整幀全部取走。加了這個字段即使數(shù)據(jù)區(qū)里出現(xiàn)和幀頭相同的字節(jié)也不會把幀切錯。校驗和方法是從數(shù)據(jù)長度字節(jié)到數(shù)據(jù)區(qū)里所有字節(jié)的累加和取低8位放在幀尾。接收端按同樣方式計算一遍和幀尾的校驗值比對不一致就丟掉這一幀。串口傳輸偶爾會受到干擾產(chǎn)生誤碼沒有校驗的話錯誤數(shù)據(jù)會直接顯示成亂跳的波形有了校驗壞幀會被直接丟棄寧可丟一幀也不顯示錯誤數(shù)據(jù)。3.3 下位機(jī)發(fā)送程序?qū)崿F(xiàn)把數(shù)據(jù)打包成幀并發(fā)送的代碼void sendFrame(int16_t ax, int16_t ay, int16_t az, int16_t gx, int16_t gy, int16_t gz) { uint8_t buf[16]; int16_t data[6] {ax, ay, az, gx, gy, gz}; buf[0] 0xAA; buf[1] 0x55; buf[2] 12; // 6個int16 12字節(jié) uint8_t sum 0; for (int i 0; i 6; i) { buf[3 i * 2] data[i] 0xFF; // 低字節(jié) buf[4 i * 2] (data[i] 8) 0xFF; // 高字節(jié) sum buf[3 i * 2] buf[4 i * 2]; } buf[15] sum; Serial.write(buf, 16); }這里用低字節(jié)在前、高字節(jié)在后的順序發(fā)送也就是所謂的小端模式上位機(jī)解析時按同樣的順序拼回來就行。注意左右順序一定對齊兩端定義清楚不然數(shù)據(jù)的高低字節(jié)反了波形會變成完全沒有意義的負(fù)數(shù)值亂跳。主循環(huán)里按固定周期發(fā)送我用的10ms一幀也就是100Hz刷新率。這個頻率對姿態(tài)顯示來說足夠了每秒100幀數(shù)據(jù)畫面非常流暢。提高頻率意義不大反而增加CPU占用也沒必要。void loop() { static unsigned long lastTime 0; if (millis() - lastTime 10) { int16_t ax, ay, az, gx, gy, gz; mpu.getMotion6(ax, ay, az, gx, gy, gz); sendFrame(ax, ay, az, gx, gy, gz); lastTime millis(); } }4. 上位機(jī)C#界面與串口解析實戰(zhàn)4.1 界面布局清爽但不寒酸上位機(jī)界面我分成了三個功能區(qū)。頂部是串口設(shè)置區(qū)一個端口號下拉框、一個波特率下拉框、一個“打開串口”按鈕。端口號不用手動輸入程序啟動時自動枚舉所有可用串口填充到下拉框里。中間是數(shù)據(jù)顯示區(qū)用一個多行文本框顯示解析后的原始數(shù)值方便做調(diào)試和核對。每收到一幀數(shù)據(jù)就把當(dāng)前數(shù)值刷新進(jìn)去。底部是波形顯示區(qū)放一個Chart控件繪制三軸加速度和三軸角速度的實時曲線。我自己做這個界面時就是幾個GroupBox把區(qū)域框起來配合Label和下拉框純拖拽半個小時就能排完。真正花時間的反而是數(shù)據(jù)解析和刷新的邏輯。4.2 串口接收事件與線程處理SerialPort控件接收數(shù)據(jù)是發(fā)生在后臺線程的這是許多新手最容易栽坑的地方。絕對不能直接在DataReceived事件里去操作UI控件。比如直接在事件里執(zhí)行textBox1.Text xxx運(yùn)行時會拋出InvalidOperationException異常提示“線程間操作無效”。正確做法是先把數(shù)據(jù)解析成可用的變量然后用控件的BeginInvoke方法把UI更新操作切回到主線程執(zhí)行。這是C#窗體編程里很經(jīng)典的一個模式我的代碼結(jié)構(gòu)是這樣的private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { int bytesCount serialPort1.BytesToRead; byte[] buffer new byte[bytesCount]; serialPort1.Read(buffer, 0, bytesCount); lock (recvBuffer) recvBuffer.AddRange(buffer); ParseData(); this.BeginInvoke(new Action(() { // 在這里更新文本框、Chart等UI控件 })); }需要解釋一下BeginInvoke的邏輯。串口DataReceived事件在.NET的端口接收線程里觸發(fā)UI控件只能在主線程訪問。BeginInvoke就是把待執(zhí)行的方法“排個隊”交回主線程執(zhí)行這樣UI更新就是線程安全的了。4.3 數(shù)據(jù)幀解析從字節(jié)流中摳出有效數(shù)據(jù)解析函數(shù)是整個上位機(jī)的核心代碼里我用了一個列隊緩存來處理流式數(shù)據(jù)。因為串口接收是隨時可能發(fā)生的比如下位機(jī)發(fā)了3幀數(shù)據(jù)可能一次接收事件里全到也可能被拆成兩次到。如果每次只處理收到的字節(jié)遇到半幀數(shù)據(jù)就會傻眼。處理思路是把每次收到的數(shù)據(jù)追加到緩存List里然后在一個while循環(huán)里不斷嘗試從緩存頭部取出一整幀。判斷順序是查找0xAA確認(rèn)下一個字節(jié)是0x55讀數(shù)據(jù)長度字段檢查緩存剩余字節(jié)數(shù)是否夠一幀校驗和驗證提取6個int16數(shù)據(jù)刪除緩存中已處理的部分private void ParseData() { while (recvBuffer.Count 16) { int start recvBuffer.IndexOf(0xAA); if (start 0) { recvBuffer.Clear(); return; } if (start 0) recvBuffer.RemoveRange(0, start); if (recvBuffer.Count 3) return; if (recvBuffer[1] ! 0x55) { recvBuffer.RemoveAt(0); continue; } int len recvBuffer[2]; int totalLen 3 len 1; if (recvBuffer.Count totalLen) return; int sum 0; for (int i 2; i 3 len; i) sum recvBuffer[i]; sum 0xFF; if (sum recvBuffer[totalLen - 1]) { short[] values new short[6]; for (int i 0; i 6; i) { int low recvBuffer[3 i * 2]; int high recvBuffer[4 i * 2]; values[i] (short)(low | (high 8)); } accX values[0]; accY values[1]; accZ values[2]; gyroX values[3]; gyroY values[4]; gyroZ values[5]; } recvBuffer.RemoveRange(0, totalLen); } }這段代碼有幾個細(xì)節(jié)值得講一下。IndexOf(0xAA)之后如果緩存里第一個字節(jié)不是0x55就只移除開頭的0xAA這個字節(jié)而不是把整個緩存清掉防止丟掉后面可能存在的新幀頭。校驗失敗時也要把這一幀完整移除避免同一個壞幀反復(fù)解析導(dǎo)致死循環(huán)。校驗失敗的幀要不要丟棄這一點上我吃過虧。開始我以為校驗失敗說明幀壞了該丟棄后來發(fā)現(xiàn)如果干擾發(fā)生在幀頭附近把整個數(shù)據(jù)對齊打亂后續(xù)幾幀可能連續(xù)校驗失敗。這時候如果把緩存從壞幀之后繼續(xù)解析反而會因為錯位導(dǎo)致一系列誤判。所以能通過幀頭幀頭校驗的基本都是合法幀凡是校驗不過的一律清空重建。這個“寧丟勿錯”的處理思路在工程上是值得一試的。4.4 Chart波形繪制與刷新優(yōu)化Chart控件畫實時曲線最容易出現(xiàn)的問題是越畫越卡。原因是默認(rèn)情況下每個新點都會往Series里無限追加數(shù)據(jù)量大了之后重繪成本直線上升。我的處理方式是限制每個Series只保留最近500個點超過后自動移除最舊的點。500個點對實時監(jiān)控來說既能看到波形趨勢又能保證刷新流暢。private void UpdateChart() { for (int i 0; i 6; i) { if (chart1.Series[i].Points.Count 500) chart1.Series[i].Points.RemoveAt(0); } chart1.Series[0].Points.AddY(accX); chart1.Series[1].Points.AddY(accY); chart1.Series[2].Points.AddY(accZ); chart1.Series[3].Points.AddY(gyroX); chart1.Series[4].Points.AddY(gyroY); chart1.Series[5].Points.AddY(gyroZ); }Chart的X軸默認(rèn)是索引序號直接AddY就能自動排布不需要額外設(shè)置。你也可以給X軸設(shè)置一個時間遞增字段但簡單項目用索引就夠了。刷新頻率也要控制。下位機(jī)每10ms一幀數(shù)據(jù)如果每幀都觸發(fā)一次Chart刷新UI線程壓力不小。我實際的做法是把刷新節(jié)流到50ms一次也就是每秒20次。人眼對這個頻率的波形更新已經(jīng)很流暢了CPU占用卻低很多。5. 姿態(tài)解算從原始數(shù)據(jù)到真實角度5.1 加速度計和陀螺儀各自的優(yōu)缺點有了六軸原始數(shù)據(jù)下一個問題就是怎么把它們變成直觀的姿態(tài)角度。加速度計能測出重力在各個軸上的分量。當(dāng)模塊水平靜止時重力全部落在Z軸X和Y軸接近零。當(dāng)模塊傾斜時重力會在傾斜的軸上產(chǎn)生分量通過反三角函數(shù)就能算出傾斜角。但加速度計有個問題它測到的值里既有重力分量也有運(yùn)動加速度分量。如果模塊在移動或震動算出來的角度就會抖動得非常厲害。而且加速度計對高頻抖動尤其敏感靜止時很穩(wěn)定一動起來噪聲就很大。陀螺儀測的是角速度把角速度對時間積分就能得到角度。但積分有個致命問題零偏漂移。陀螺儀即使靜止不動輸出也不是絕對的零而是有個固定偏移再加上隨機(jī)噪聲積分時間一長角度會越偏越遠(yuǎn)。我一開始只靠陀螺儀積分算角度放桌上靜止不動幾分鐘后角度顯示已經(jīng)轉(zhuǎn)了30多度完全不能用。5.2 互補(bǔ)濾波簡單有效的融合方案單獨用加速度計或陀螺儀都不行那就把它們?nèi)诤掀饋?。最?jīng)典也最實用的是互補(bǔ)濾波思路就是陀螺儀積分得到的角度動態(tài)響應(yīng)快、短期準(zhǔn)確但長期會漂移加速度計算出的角度長期穩(wěn)定、不漂移但動態(tài)時噪聲大讓陀螺儀主導(dǎo)短期變化加速度計慢慢矯正長期漂移公式是這樣的angle 0.98 * (angle gyroRate * dt) 0.02 * accAngle這個公式里0.98和0.02是權(quán)重系數(shù)。陀螺儀占98%的權(quán)重它負(fù)責(zé)最后輸出的變化趨勢加速度計占2%的權(quán)重負(fù)責(zé)把長期累積的漂移拉回來。這個系數(shù)不是隨便寫的。系數(shù)越大陀螺儀作用越強(qiáng)響應(yīng)越快但零點漂移也更大系數(shù)越小加速度計矯正力度越強(qiáng)抗漂移更好但對運(yùn)動越敏感。我實測下來0.98/0.02這個配比適合絕大多數(shù)桌面姿態(tài)監(jiān)控場景。如果用在自平衡車這種動態(tài)響應(yīng)要求高的場合可以適當(dāng)加大陀螺儀權(quán)重到0.99左右。但注意如果weight太小比如0.9你會發(fā)現(xiàn)模塊稍微一晃角度也跟著劇烈晃動因為加速度計的噪聲被放大了十倍。5.3 姿態(tài)角度計算的代碼實現(xiàn)C#代碼里先根據(jù)量程把原始值換算成物理單位。加速度計±2g量程下的靈敏度是16384 LSB/g陀螺儀±250dps下的靈敏度是131 LSB/dps。float accGX accX / 16384.0f; // 單位g float accGY accY / 16384.0f; float accGZ accZ / 16384.0f; float gyroDX gyroX / 131.0f; // 單位dps float gyroDY gyroY / 131.0f; float gyroDZ gyroZ / 131.0f;加速度計算roll和pitch角度float accRoll (float)(Math.Atan2(accGY, accGZ) * 180.0 / Math.PI); float accPitch (float)(Math.Atan2(-accGX, Math.Sqrt(accGY * accGY accGZ * accGZ)) * 180.0 / Math.PI);這里坐標(biāo)系的定義是X軸朝前、Y軸朝左、Z軸朝上不同模塊的安裝方向可能不一樣。如果發(fā)現(xiàn)傳感器旋轉(zhuǎn)A軸上位機(jī)顯示的是B軸在動不用懷疑代碼寫錯了直接把對應(yīng)軸的角度取反或者交換軸順序就行。這個調(diào)試過程很正常?;パa(bǔ)濾波float dt 0.01f; // 10ms采樣周期 roll 0.98f * (roll gyroDX * dt) 0.02f * accRoll; pitch 0.98f * (pitch gyroDY * dt) 0.02f * accPitch;等等這里有個細(xì)節(jié)我要多說一句。陀螺儀的角速度單位是dps度每秒乘以dt秒之后得到的是這一小段時間里角度變化量單位是度。加速度計算出來的accRoll直接就是度的單位。兩邊單位統(tǒng)一公式才成立。這是融合算法最容易出錯的地方單位沒對齊波形會亂得不像話。5.4 把角度顯示到界面上角度顯示我用兩種方式一是頂部數(shù)值顯示實時刷新roll/pitch/yaw的數(shù)值二是儀表盤效果在Chart里單獨開兩個Series曲線顯示角度變化趨勢看到角度曲線穩(wěn)定收斂就說明融合效果不錯。Yaw角偏航角只靠MPU6050內(nèi)部磁力計我們是算不出來的因為陀螺儀積分出來的yaw同樣會漂移。所以本項目里只顯示roll和pitch這已經(jīng)能反映大多數(shù)姿態(tài)場景了。如果你要yaw角就得換九軸傳感器比如MPU9250那又是一套新的算法了。調(diào)試時有個技巧模塊靜止在桌面看角度曲線是不是能穩(wěn)定在初始值附近波動幅度應(yīng)該在1度以內(nèi)。如果波動超過兩三度檢查一下數(shù)據(jù)刷新率和濾波系數(shù)是否合理。如果角度隨時間緩慢漂移說明濾波效果還沒到位微調(diào)一下weight值或者檢查是不是dt設(shè)置和下位機(jī)實際發(fā)送周期對不上。6. 常見問題排查與避坑清單6.1 問題速查表把我在實際調(diào)試中踩過的坑和解決辦法整理成一個表供你直接對照現(xiàn)象可能原因排查方向串口打開失敗端口被占用/驅(qū)動異常換USB口、重裝驅(qū)動、檢查是否被串口助手占用上位機(jī)收不到任何數(shù)據(jù)波特率不一致/硬件接線問題用串口助手直接收原始數(shù)據(jù)驗證硬件鏈路收到數(shù)據(jù)但全是亂碼波特率不對/電平不匹配檢查兩端的波特率確認(rèn)USB轉(zhuǎn)TTL電平是3.3V還是5V程序一打開就閃退沒找到串口或控件初始化順序問題加try-catch日志檢查硬件連接波形劇烈抖動未按幀解析/加速度計噪聲大檢查幀頭校驗邏輯檢查濾波參數(shù)界面卡頓嚴(yán)重DataReceived里直接操作UI/Chart點太多改用BeginInvoke限制Chart點數(shù)角度一直在飄陀螺儀零漂/濾波系數(shù)太小增加加速度計權(quán)重檢查dt設(shè)置是否準(zhǔn)確模塊和上位機(jī)數(shù)據(jù)對不上字節(jié)序不一致確認(rèn)低字節(jié)在前還是高字節(jié)在前統(tǒng)一協(xié)議6.2 幾個值得注意的經(jīng)驗技巧先把上位機(jī)界面寫通再把硬件接上。我強(qiáng)烈建議你先用假數(shù)據(jù)調(diào)試上位機(jī)。也就是在解析函數(shù)里隨機(jī)制造合法的數(shù)據(jù)幀推給上位機(jī)處理。這樣能把上位機(jī)的解析、顯示、姿態(tài)計算代碼全部驗證完畢再連硬件就只需要排查一個串口鏈路。聯(lián)調(diào)一次性通過的概率會高很多。很多人上來就接硬件出了Bug還要去分辨是下位機(jī)的問題還是上位機(jī)的問題白白浪費(fèi)很多時間。另外下位機(jī)的數(shù)據(jù)發(fā)送頻率和上位機(jī)實際采樣頻率要保持一致。如果下位機(jī)10ms發(fā)一幀上位機(jī)refresh也是10ms那dt就應(yīng)該是0.01。如果你的主循環(huán)里有delay實際周期可能不是10ms建議用millis()統(tǒng)計實際間隔再作為dt傳入算法這樣姿態(tài)解算會更穩(wěn)。關(guān)于硬件電源之前提到3.3V和5V的區(qū)別這里再補(bǔ)充一個點模塊和主控的供電要穩(wěn)定。如果發(fā)現(xiàn)波形偶爾出現(xiàn)尖峰或毛刺先懷疑電源線性穩(wěn)壓電源的紋波是傳感器噪聲的一個重要來源。另外USB轉(zhuǎn)TTL小板質(zhì)量參差不齊換個貴的芯片的型號誤碼率可能直接降一個數(shù)量級。關(guān)于串口協(xié)議還有一種更簡單的方案是直接用文本格式比如每幀數(shù)據(jù)用逗號分隔、換行符結(jié)尾。這樣調(diào)試更直觀但解析效率和穩(wěn)定性不如二進(jìn)制幀格式。如果只做Demo文本格式也可以如果要做成穩(wěn)定工具二進(jìn)制幀格式才是正路。文本格式最大的問題在于數(shù)據(jù)里如果出現(xiàn)干擾導(dǎo)致一個字符變了整行解析就廢了而且沒有校驗機(jī)制錯誤數(shù)據(jù)無從察覺。二進(jìn)制協(xié)議加校驗和雖然多了幾個字節(jié)但可靠性完全是兩個檔次。最后關(guān)于Visual Studio開發(fā)效率我建議你在寫代碼時打開錯誤列表窗口和即時窗口調(diào)試時利用斷點檢查緩存List里的字節(jié)序列能很直觀地看到協(xié)議問題出在哪一步。這套項目做完之后我自己最大的體會是上位機(jī)開發(fā)其實并不難核心就是數(shù)據(jù)結(jié)構(gòu)設(shè)計和線程處理兩件事。串口協(xié)議設(shè)計得越規(guī)范后面所有環(huán)節(jié)越省心。C# WinForms雖然不是什么新潮技術(shù)但作為工具型上位機(jī)的開發(fā)方式它到現(xiàn)在依然非常能打。如果你做完基礎(chǔ)版想繼續(xù)擴(kuò)展可以沿著這幾個方向走加一個姿態(tài)的3D顯示用OpenTK或者Unity做一個小立方體把歐拉角灌進(jìn)去旋轉(zhuǎn)支持?jǐn)?shù)據(jù)錄制成CSV文件回放分析或者把串口換成藍(lán)牙模塊做成無線姿態(tài)傳感器。整個架構(gòu)我現(xiàn)在跑著很順手后續(xù)如果加了新功能我可能還會再寫一篇補(bǔ)充。一點個人建議別把第一個版本的目標(biāo)定得太高先讓波形能畫出來、數(shù)據(jù)能看懂你就已經(jīng)成功了。后面每一個小功能都是錦上添花但你的串口功底和對數(shù)據(jù)處理的理解會在這個過程里越扎越深。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天干天天曰天天射| 天天久久婷婷| 日韩aaaaa| 九九99在线免费在线观看视频| 夜夜操狠狠操| 精品乱码视频| 亚洲成人日韩无码精品| 国产亚洲精品AAAAAAA片| 久久多色| 久草 tingting| 女人天堂久久| 久久综合五月天| 成人丁香五月婷| 久久婷婷五月丁香网| 日韩色色色99| 亚洲亚洲人成综合网络| 日韩婷婷五月| 天天日色情| 五月天激情婷婷久久| 五月婷婷狠狠久久| 亚洲av骚货| 久久婷婷成人视频| 综合久久激情久久| 天天搞天天色综合| 5月婷婷6月丁香aV| 五月丁香啪。| 99热自拍| 激情五月丁香亭亭| 怕怕av| 成人无码精品1区2区3区免费看| 玖操97| 探花搜索结果 - 黄上黄| 99热在线观看免费精品| 婷婷色六月| 色婷婷久久综合久色| 色五月婷婷久久| 99激情视频热| 狠狠色婷婷综合开心影视| 丁香婷婷色五月激情综合| 婷婷久久欧美| 婷婷五月天基地| 去干网最新版本亚洲版| 日本久久天堂| 麻豆忘忧草午夜| 五月丁香六月综合激情无码软件亮点| 亚洲婷婷五月天在线激情综合网| 亚洲色图五月丁香五月婷婷| 99热精品中文字幕| 日日夜夜狠狠| 五月婷婷黄色视频| 91seAV| 色综合大香蕉| www,婷婷| 啪啪啪啪五月天| 99热99| 综合激情视频| 精品丁香五月天在线播放| 婷婷综合在线| 97日本在线| 涩涩五月天| 久久婷婷五月天激情| 六月丁香婷婷色狠狠久久| AA丁香综合激情| 久久深爱激情网| 欧美色偷偷大香| 六月天婷婷| 色色色色色爱| 久热婷婷| 久久大香免费| 九九九九热99超碰| 777精品久无码人妻蜜桃| 激情五月天com| 新99思思视频| 日本nghangse中文字幕| 桃色成人网| 婷婷色五月婷| 久久色大香蕉| 亚洲第一色色色| 超碰人人操人人9| 欧美成人色婷婷| 婷婷五月丁香六月伊人网| 99视频日韩| 久久小视频| 亚洲激情久久| 婷婷六月啪啪| 99ri视频| 97资源碰碰| 亚洲综合色婷婷文学| 天天色粽合合合合合合合| 五月天亚洲色| 色婷婷综合视频| 精品爆操| 插插网爽妇五月丁香| 久草视频一,二三四| 亚洲亚洲人成综合网络| 丁香六月激情| 久碰视频| 五月激情偷拍| 综合激情婷婷| 99久在线精品| 99爱视频| 美欧成人视频| 人人人va亚洲视频在线| 99秘 在线| 亚洲精品99| 另类激情综合| 99精品爱| 亚洲精品乱码久久久久99| 久久婷婷色色| 六月综合婷婷开心伊人 | 丁香五月婷婷色| 色欲久久久久久综合网综合网| 五月婷综合网| 五月熟妇婷婷久久| 99在线精品视频| 欧美丁香五月| 99热国产在线| 五月份婷婷| 性爱久久| 色综合色色| 三十路磁力链接| 午夜丁香六月婷| 激情综合网 激情五月天| 天天操夜夜啊| 久久这里只| 人妻熟妇六区| 丁香五月激情网| 婷婷五月深爱五月| 婷婷激情五月综合在线视频| 色噜噜狠狠插综合| 五月丁香欧美在线| 伊人热婷婷| 日日夜夜狠狠| 99热这里只有精品21| 99综合| 亚洲综合色色| 98永久精品| 丰满少妇乱A片无码| 亚洲无码99| 六月米奇色综合| 日本天天色| 日韩精品一区二区亚洲AV观看| 开心婷婷五月天激情网| 婷婷五月综合色拍| 六月婷婷中文字幕| 五月天天丁香婷婷| 青青操丝袜美腿| WWW.国产| 无码碰碰| 亚洲碰碰碰| www.久久爱.com| 亚洲综合婷婷五月| 九九九九中文字幕| 精品香蕉99久久久久网站| 天天爽夜夜爽| 思思热99在线视频| 丁香五月婷婷欧美成人色图| 99精品视频在线观看| 五月婷婷开心亚州在线| 超碰成人免费| 夜精品无码A片一区二区蜜桃| 99日本视频| 色丁香影院| 99re思思热这里| 伊人大香蕉毛片| 久久久久久久97| 久久这里面只有精品视频| 5月婷婷综合| 久久久久久久丁香五月天婷婷| 噜综合| 色婷婷在线综合色播网| 丁香婷婷影院| 亚洲精品在线视频| 五月婷婷五月| www色哟哟| 五月激情网站| 色情播放| 婷婷五月伦理网站| 久久99综合| 亚洲天堂热| 中文字幕永久在线| 婷婷综合爱| 日韩成人电影av| 色婷婷激情五月天| 亚洲色婷婷| www激情网站| 亚洲视频操| 色丁香五月天婷婷| www.五月天婷婷| 色综合综合综合| 99视频网址| 五月天婷婷日日爱| 婷婷激情五月天亚洲综合| 99热在线看| 婷婷五月天堂| 99精品久| 婷婷舔| 欧美成人性爱网| 日韩欧美颜射| 九色综合网| 99久.| 久久92| 综合激情五月婷婷| 黄色片avv| 日本欧美在线| 日韩无码色色| 五月婷婷影视| 天天综合激情| 五月天婷婷中文字幕在线播放| 97视频91| 日操熟女| 日本在线免费中文com.| 免费黄色片子| 国产免费av在线| 五月激情精品视频| 五月天婷婷色| 色欲婷婷五月天丁香| www.henhenl| 天天肏屄夜夜爽| 五月香婷婷| A片试看120分钟做受图片| 日本三级中国三级99| 99热www.| 天天爽天天干| 99九九视频| 另类色视频| 欧美激情VA永久在线播放| 色婷婷香蕉| 免费看欧美成人A片无码 | 91九九九九九九| 五月天伊人久久久久| 人人干人人干骚美女| 久久人人妻| 91打屁股免费看| 日本乱论99| 台湾佬天天日丁香婷婷五月天 | 婷婷五月丁香色综合| 俺也去在线视频| 国产精品久久久久久久久久| 亚洲愉拍99热成人精品| 玖玖五月丁香| 亚洲操B视频| 天天插天天| 99性视频| 久热欧美| 国产无套精品一区二区| 五月色网| 亚洲精品婷婷| wWwCom夜操wwW| 色色综合视频| 午夜丁香六月婷| 丁香婷婷激情综合五月激情| 久操操| 91ncm视频| 国产毛片精品一区二区色欲黄A片| 亚洲综合在线视频| 思思热视频| 成人在线网址| 五月婷婷激情久久| 中文av网站| 色播五月婷婷| 天天日天天操心| 97碰碰视频在线观看| 五月天综合在线观看| 五月天狠狠| 超碰99久久| 丁香五月最新地址| 婷婷五月天成人在线视频| 开心婷婷五月中文字幕组| 这里只有精品免费在线视频| 97亚洲色 torrent magnet| 色优久久| 五月久久噜噜| 天天射综合网天天插| 色播五月丁香婷婷| 中文字幕性爱丰满| 丁香六月五月天| 玖玖热视频| 精a品a| 日日干天天爽| 999激情视频| 五月丁香久久网| 色五月天丁香| 亚洲欧美成人在线| 国产一区二区av免费| 亚洲色涩视频| 欧美在线干| 久久er九九| 欧美日韩精品人妻狠狠躁免费视频| 婷婷五月天激情在线观看 | 久播影院免费观看电视剧大全最新网| 丁香综合久久| 成人av在线网站| 色色吧综合| 26uuu在线观看| 色色啊| 国产肥白大熟妇BBBB视频| 五月婷婷丁香大陆免费| 天天操天天国产三级片处女学生妹| 五月婷婷五月天激情网| 97久久人人| 99热精品在线播放| 99精品免费欧美小视频 | 97AV人人插人人操| 北条麻妃伊人 | 亚洲精品影视| 99人人干| 五月天玖玖狠狠色色| 九九色中文| www.五月天婷婷| 六月色色| 无码人妻丰满熟妇奶水区码| 99在线观看精品视频| www91精品| 五月丁香久| 天天人人综合| 丁香五月婷婷久久久| 日本一级特黄大片AAAAA级| 色综天天综合| 人人操人| 激情五月天色播| 国产精品A片| 色色五月天婷婷丁香| 第四色五月天| 久机视频这只有精品| 六月99天天婷婷激情综合| 26uuu欧美| 天天干天天干天天干天天干天天干天天干天天| 538任你爽视频不一样的| 丁香五月五月婷婷| 涩涩涩五月天| 色婷婷成人网| 男女啪啪视频久 9| 婷婷五月天电影网| 五月天色婷婷网| 色久女| 操操操97| 99爱在线免费视频| 日韩五月丁香| 欧美色小说婷婷| 色婷婷五月综合在线| 婷婷丁香六月| 五月激情婷婷综合| 人人视频色| www超碰| 色九月综合| 思思久久精品| 九月色婷婷综合| 五月丁香六月激情综合啪啪| 欧洲亚洲免费视频9| 超碰成人黄色网| 超碰在线观看99| 麻豆五月丁香婷婷| 欧美99热| 九九熱最新視頻| 日韩精品无码AV| 欧美99| 五月丁香六月色| 久久九九99亚洲国产久精综合| 日本精品99网站| 七七久久婷婷| 久久一级片| 操97| pom538精品视频| 丁香婷婷色五月合集| 九九热这里只有精品23| 97色欧美| 五月丁香六月婷婷的女人| 桃色五月天| 五月天色色色| 狠狠色狠狠| 亚洲不卡123| 亚洲最大成人综合网720P| 五月婷婷性爱| 99久视频| 深爱激情综合网| 久久五月天激情视频| 97九色| 99久免费视频| 亚洲成人AV高清字幕| 天天搞天天爽| 26UUU精品一区二区| h亚洲| 99色网站| 欧美精品18| 99久久大片| 五月丁香爱婷婷深深| 日韩操啪| 五月婷婷色欲| 成人超碰网| 婷婷丁香人妻天天爽| 中文字幕综合| 91超级碰在线视频| 五月婷亚洲精品AV天堂| 97香蕉碰碰人妻国产欧美| 天天插天天插| 狠狠操狠狠操| 成人网在线视频| 五月六月婷| 婷婷五月天激情丁香| 人人看人人草人人摸| 人妻熟妇六区| 综合色色网| 欧洲亚洲精品| 九色啦蜜臀| 婷婷五月六| 日韩AV大全| 99热这里只有精品22| 激情网综合| 狠狠操狠狠干综合| 五月天综合在线观看| 五月婷婷综合在线视频小说| 激情五月丁香亭亭 | 五月丁香六月婷婷网| 天天色,天天操,天天射| 欧美99热| 九九免费在线视频| 精品国产va久久久| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 五月色婷婷在线观看| www.婷婷.com| 日韩成人免费电影| 深爱五月天婷综合| 婷婷五月天综合中文| 婷婷色5月激情网| 色综合日日| 日日天天干| 99性爱| 久久精品9| 操91| 亚洲激情在线| www.91在线观看| 亚洲AV成人片无码网站| 色婷婷五月基地在线| 五月天伊人手机在线播放AV| www色五月| 99riAv1国产在线观看| 久久久91| 丁香五月婷婷激情97| 亚州婷婷五月激情综合| 少妇丁香婷婷 | 狠婷婷五月| 深爱激情五月天| a在线观看| 欧美性猛交AAAA片黑人 | .青娱乐天天操B| 江苏少妇性BBB搡BBB爽爽爽| 爆乳熟妇一区二区三区四区| av婷婷丁香| 丁香五月色五月| 午夜色色色极品视频| 99热这里只有精品 搜| 日本不卡高字幕在线2019| 疯狂做受XXXX高潮A片| 五月综合色播播丁香婷婷| 日日撸夜夜操| 噼里啪啦在线观看免费完整版视频| xxxx五月天色色| 九九久久精品| 久久精品99久久久久久| 久热久| 九九热在线视频观看| 噜噜久| 婷婷五月天电影区小说区| 99亚洲精品| 99热精品在线观看| 色婷婷影| 激情五月天之五月婷婷| 亚洲欧洲午夜成人精品av| 天天干,天天日| 成人无码髙潮喷水A片| 婷婷性爱综合| 五月丁香婷婷AV天堂| 欧美xx激情视频在线观看| 99啪啪视频| 五月丁小婷婷激情四射| 欧美在线干| 日韩色情亚洲五月天婷婷| 婷婷欧美综合| 婷婷五月天国产性感美女演员久久久久| 亚洲网站999| 伊人综合网4| 九九热10| 99欧美三级视频| 日本色噜| 丁香九月综合激情| 国产女人十八水真多1| 久久视屏这里只有久久| 99色色视频| 人妻丰满精品一区二区A片| www久久艹| 国产激情av| 337久久| 综合久久婷婷五月丁香| 色五月超碰| 国产综合A片| 激情五月激情综合网一级丸片| 十一月婷婷激情四射| 在线观看免费人成视频无码| 97久久视频| 色五月激情五月开心五月| AA片在线观看视频在线播放| 亚洲成人网站在线观看| 日韩在线观看亚洲| 99 福利 导航| 久久精品亚洲热| 九月婷婷| 丁香五月色网| 丁香五月婷久久| 成人中文网| 中文字幕成人| 婷婷五月天AV| 97碰碰人人视频| 狠狠操在线视频| 激情小说五月天| 性视频久久| 在线综合网| 激情五月婷婷综合网| 涩涩涩,com| 能直接看的av网站| 97人人操人人爽| 免费啪啪亚州视频| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 婷婷金品综合视频| 99色五月| 美欧成人视频| 欧美 日韩 成人| 色婷婷狠狠干芒果TV| 国产熟妇乱子伦hd| 草婷婷在线| 亚洲精品又粗又大又爽A片| 99久久66| 天天干,天天日| 亚洲国产精品成人免费一区久久久在线观看AAAA | 99日视频在线| 夜夜夜夜撸夜夜操| 青青草五月天| 色婷五月天| 玖玖激情网| 日本久久爱| 麻豆忘忧草午夜| 激情婷婷人妻| 双性美人被调教到喷水A片| 99re这里只有精品免费| 偷偷与邻居做爰完整视频| .操區COm| 亚洲第一成人无码A片| 日日干夜夜撸夜夜骑| 大地9中文在线观看免费高清| 国产夫妻操逼内射视频| 中字幕视频在线永久在线观看免费| 丁香色婷婷| 秋霞av不能| 99这里只有精品视频| 久久天堂加勒比| 99久久玖玖| 91久久综合亚洲鲁鲁五月天| 色噜噜狠狠一区二区三区| 五月婷婷 欧美| 99在线小视频| 婷婷丁香午夜综合影视| 色99综合色88| 成人va视频| 婷婷五月丁香91| 久99久视频| 色婷婷成人网| 日本片日本片祼观看网站在线看中文版网页在线看| 日本色婷婷综合| 日韩AV在线影片| 人妻熟妇六区| 色五月天丁香婷婷色| 激情综合色图| 色五月婷婷狠狠撸| 五月停停大香蕉| 五月丁香综合在线| 五月丁香成人网| 亚洲爆乳无码精品AAA片蜜桃| 九九在线免费观看| 婷婷五月综合啪| 在线日韩视频| 婷婷丁香五月天小说| 1024在线视频| 色色色五月婷| 婷婷五月俺要去| 99视频日韩| 婷婷五月综合色拍| 天天爱天天做天天舔| 高清a片基地| 激情综合网五月| 激情深爱综合| 五他月天啪啪啪| 婷婷五月丁香六月| 久久综合影院| 日韩 中文 欧美| 五月天成人免费视频| 另类图片婷婷五月天| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 丁香五月激情无码视频| 99热免费精品| 五月天网址在线刘玥| 色婷婷五月天激情在线观看| www.久久99热地址发布| 欧美顶级少妇做爰HD| 天天插AV丝袜中| 婷婷五月色情天| 2018夜夜草| 色欧美影院| 婷婷五月天激情偷拍| 国产婷婷久久| 久草热久草在线视频| 狠狠插狠狠插| 五月天婷婷激情小说| 婷婷五月天大香蕉| 97碰碰碰免费公开在线视频| 人人摸人人摸| 五月激情开心婷婷| 久综合色| 99久久偷拍视频| 99成人在线观看| 一起草性爱不卡视频| 婷婷五月天免费小说| 男人的天堂av俄罗斯热| 丁香五月婷婷啪啪| 五月天婷婷久久| 丁香五月婷婷六月婷| 色五月婷婷影院| 亚洲中文字幕在线观看| 狠狠爱综合网| 深爱开心激情| 激情五月亚洲综合网| 色色丁香婷婷综合| 超碰免费电影| 乱乱av| 另类专区在线观看| 婷婷五月永远18免费久久久| 九月丁香婷婷网| 97久久超碰| 久久久这里有精品| 青青福利网| 天堂资源欧日浪女在线播放| 超碰成人在线免费观看| 亚洲激情综合| 99热人人| 五月天综合在线| 国内精品玖玖| 色婷婷丁香五月观看| 日本三级中文字幕| 色色婷婷丁香五月天| 丁香五月婷婷社区| 久久人妻熟女一区二区| 91精品久久久久久77777| 综合色色色| 色婷婷激情五月天| 九九色99| 狠狠狠人妻| 人人澡天天色天天做| 婷婷色一二三区波多野结衣| 婷婷9月天| 国产日产亚洲系列最新| 在线播放中文字幕| 五月丁香啪啪| www.天天日| 91色五月| 日日干天天射| 爽极品色| 91色噜噜狠狠狠狠色综合| 人人干人人操人人摸| 99热这里只有的精品视 | 五月婷婷五月天在线| 婷婷五月天电影在线| 99在线视频精品| 激情五月天综合图片小说网站| 激情五月天视频| 91碰| 国产超碰人人| 色九月婷婷丁香| 青青操丝袜美腿| 99热99思午夜精品| 97成人超碰免| 天久久久久| 在线超碰91| 婷婷综合九月| WWW·色色色·COM| 久婷婷五月综合欧美| 91 九色 入口| 六月丁香色色色| 亚洲殴洲精品Av在线| 美女视频图片久久91| 最熟少妇乱码| 丁香五月大香蕉AV| 中文字幕精品在线观看| 婷婷中文无码| 97色色色色| 婷婷五六月丁香| 深爱激情小说五月婷婷| A A色色| 婷婷丁香五月亚洲综合网在线视频观看| 色操b| 四色五月婷婷在线观看| 五月婷婷综合网| 五月久久婷婷| 丁香激情五月| 天天色宗合| 国产亚洲在线观看| 亚洲亚洲人成综合网络| 九色在线五月婷婷网址| 91刘玥视频在线观看| 久久九精品| 九九操操| 国产精品五月丁香| 激情五月天色婷婷| 午夜婷婷久久 | 99色热视频| 婷婷五月天在线综合| 五月天播播中文字幕| 激情六月丁香| 精品一区二区三区免费毛片爱 | 欧美久久网| AV色五月婷婷| 第一区久久网站| 丁香六月欧美| 欧美色图天堂网| 香蕉AV福利精品导航| 97午夜一区二区| 99热欧美偷拍| 色之综合网| 婷婷五月天激情五月天网站| 99热日| 五月婷婷深深爱| 色就色94欧美setu| 午夜爱插插| 9999热精品在线免费播放| 婷婷香五月| 超碰97干| 五月激情在线| 97色综合| 激情爱爱网站超大免费| 日本本土色网第一区| 婷婷香五月综合激情| 成人永久免费视频在线观看| 色狠狠综合| 精品人妻伦一二三区久久| 玖玖综合色区在线观看| 久久作爱| 色色综合视频| 丁香婷婷色五月| 97碰碰草| 99操| 播四月婷婷六月丁香| 色色综合网站| 国产日产亚系列精品版优势| 超碰在线超碰| 色婷五月天网站| 五月丁香色婷婷色| 欧美亚洲色色色色| 在线看黄色| 天天爱天天做天天舔| 色婷婷五月天小说| 九九色热| 欧美超级视频97| 99热日本| 无码激情| 日韩性爱无码| www好屌操| 久久新地址| 色情网综合| 五月丁色AV| 亚洲婷婷五月| 久久五月婷综合| 五月天无码| 99久在线精品99re8| 久久久久久久人妻| 97操| 久久99热精品a片在线观看| 五月丁香六月婷综合成人综合| 九九热这里只有精品9| 高清无码.com| 婷婷色色丁香五月天| 1级欧美日韩| 91视频精品99| 99色性爰网络| 欧美怡红院黄站| 五月婷婷深深的爱| 九色无码| Av在线不卡一区| 5月婷婷6月丁香aV| 成人丁香五月天| 婷婷色五月大香蕉在线观看| 六月丁香婷婷六月激情综合| 蜜桃五月天| 97人人草| 欧洲激情五月天| 婷婷六月丁| 欧美日韩成人在线观看| 激情综合五月婷婷六月丁香| 日逼AV影音先锋男人资源站| 欧美丁香婷婷天天操| 九热...av| 婷婷久久图片| 另类综合婷婷五月天欧美视频| 青草视频在线观看视频| 激情五月天在线观看色婷婷| 激情婷婷丁香五月天| 婷婷九月丁香天堂丁香天堂| 婷婷丁香五月亚洲免费| 色色婷婷丁香| 色五月婷婷狠狠撸| 久久国产色| 色婷婷五月成人网| 久久久久久久久人妻| 久99久视频精品| 精品色色网| 国产AV一区二区三区最新精品| 影音先锋色色色资源色资源色| 996er热| 97性视频| 五月婷婷色播| 夜夜躁婷婷AV| 人人摸人人搞| 综合九九日本| 五月天四色房丁香亭亭| 天花AV无码| 五月丁香六月婷婷久久| 97成人视频| 色色色色五月| 成片免费观看大全| 丁香五月天激情视频| 日本欧美啪啪| 色婷婷19| 五月婷精品| 亚洲亚洲永久无码777777| 乱岳熟女50岁| 六月婷婷网站| 超碰人人摸AV| 婷婷五月视屏| 丁香五婷| 狠色色狠网| 亚洲国产网址| 天天做天天爱综合| 激情五月天色色色| 五月婷婷之美女图片| 色婷婷91激情小说| 激情综合自拍五月婷婷色五月| 五月丁香影院| 五月天六月丁香| 国产乱子轮XXX农村| 69堂午夜视频最新地址| 俺去也五月| 国产另类综合| 国产婷婷久久| 26uuu日韩| 日韩综合久久| 国产67194| www色婷婷久久综合久色 | 99久久婷婷| 成年人99热| 97操在线资源| 色综合色色| 欧日韩AV| 久久久久久9热不雅视频| www.99热| 亚洲综合网区| 狠狠综合| 天天操夜夜橾| 超碰猛烈的性猛交| 深爱婷婷网| 狠狠色五月| 日韩无码性爱| 色婷婷88| 婷婷在线精品| 欧美日本免费一道免费视频 | 婷婷丁香91| 天天干天天操天天拍| 五月丁香999| 青草青草久9视频在线视频| 99热国内精品| 丁香五月婷婷六月婷| 久久久久久婷| 国产 亚洲 在线| 婷婷五月天色综合翘| 五月天激情日色在线| 亚洲99综合| renre人人操国产超碰在线| 免费成人中文字幕| 亚洲精品婷婷| 丁香五月婷婷色| 色综合网址| 精品香蕉99久久久久网站| 久久这里只有精品8| 久久婷五月| 99久久性爱| 操碰99在线视频观看| 大香蕉婷婷久久| 婷婷丁香亚洲五月天| 五月婷婷|欧美| 超碰在线caop| 五月综合激情| 特级片神马电影| 91日日日| 久久久一级AAA| 国产熟女一区二区三区五月婷| 婷婷天天综合| 亚洲第一视频 久久| 色婷婷狠狠久久综合五月 | 免费色婷婷| 激情婷婷五月天| 99视频在线精品免费观看2| 久思思久视频| 婷婷伊人綜合| 国产日产亚系列精品版优势| 欧美乱码国产一级A片| er99免费视频在线| 噜噜噜狠狠色综| 精品国产a| 综合色播| 91人妻人人做人碰人人爽九色| 天天碰天天插天天操| 日韩九九视频| 日本久久久97| 五月天成人综合| 九九精品自拍| 五月天成人小说网| 深爱激情九九五月天 | 久热一区| 婷婷操逼| 六月婷久久| 亚州操人在线视频| 天天日夜夜夜操操操操| www婷婷| www狠狠爱com| 日本熟妇乱妇熟色A片蜜桃| 91久久久久久久久久久| 婷婷六月激情综合| 精品综合五月| 五月天婷婷色五月天| 久久色五月| 午夜伊人大香蕉| www.色婷婷| 亚洲综合激情五月久久| 精品久久人妻| 国产成人+亚洲+欧洲| 日本狠狠爽| 丁香五月香蕉在线| 色噜噜狠狠色综合网| 人妻五月天激情开心网| 91蝌蚪窝视频在线| 色婷婷丁香五月| 日日色综合| 色色五月天丁香| 五月丁香啪| 曰日爽日日操| 婷婷五月天美女视频| 婷婷亚洲五月丁香综合在线| 538午夜激情| 日韩成人网址| 狠狠狠狠狠狠色| 97亚洲婷婷| 欧美色色日韩| 色婷婷影音| 五月丁香狠狠爱婷婷综合| 久久激丁香| 欧美色图天堂网| 丁香五月婷婷激情网| 123草逼网| 99无码精品| 丁香五月在线播放| 色五月丁香五月天| 狠狠草狠狠草| 婷婷伊人| 五月丁香福利| ji'qi'luan'ren'lun| 婷婷亚洲欧美丁香五月| 国产26uuu| 色色色色av色色色色| 26uuu欧美日本| 精品无码99| 综合五月网| 只有久久精品免费| 亚洲色综合性| 天干夜夜操| 99国产视频网| 色五月综合| 91无码高清| 五月婷婷色综图片| 天天色播| 五月天综合久久| 色婷婷丁香五月| 热久久这里只有精品| 777精品久无码人妻蜜桃| 中字幕视频在线永久在线观看免费 | 亚洲精品网址| 激情五月天啪啪| 亚洲中文字幕网| ww亚洲ww在线观看| 天天综合干| 欧美丁香五月天| 五月丁香六月综合激情无码软件亮点| 九九激情| 日本99在线视频| 丁香五月天啪啪| 可以看的av| 最近中文字幕2019视频1| 色婷婷成人做爰A片免费看网站 | 丁香午月AV中文字幕| 99re这里只有精品免费| 婷婷五月天首页| 亚洲色色香蕉| 五月综合激情| 超碰成人免费| 91 影音先锋| 欧美日韩中国| 人伦30P| 99热香港| 99热99re6国产在线播放| 婷婷色五月在线视频| 大香蕉婷婷丁香视频在线| 俺去也综合| 牛牛澡牛牛爽| 五月天婷综合| 日本综合久| 色五月婷婷啪啪五月| 伊人五月天在线| 91九九| 色婷青青| 青996青| 日韩三级片一区二区| 99视频这里只有久久精品| 五月天久久综合婷婷| 狠狠插狠狠操| 丁香五月婷久久| 开心六月婷| 四虎婷婷五月天| 欧美色婷婷| 激情综合久久| 精品国产AV色一区二区深夜久久| 伊人久久大香线蕉综合网站| 91色综合| 日逼免费视频 | 婷色成人| 九九99精品视频在线观看| 大香网伊人久久综合| 青草青草视频2免费观看| 久久 中文 日本| 久久视屏这里只有久久| 天天做 天天爱| 久久色情| 精品一二三区久久AAA片| 丁香五月黄色| 婷婷九月激情| 99热一区| 午夜成人片400| 丁香 久久| 激情网 五月天| 国产精品国产| 少妇性BBB搡BBB爽爽爽电影| 99色免费| 琪琪理论片| 色情婷婷五月天| 狠狠穞A片一區二區三區| 99视频在线看| 亚洲激情99| 激情人妻综合| 无码少妇高潮喷水A片免费| 五月婷婷色播| 射久久丁香五月| 五月香婷婷| 人人草碰| 日日日日做夜夜夜夜无码| va亚洲中文在线| 亚洲国产99| 99久久婷婷国产综合精品电影| 伊人狠狠丁香婷婷综合尤物| 亚洲 精品 综合 精品| 成人综合AV| 六月婷婷色色网| 狠狠干狠狠色| 天天天干夜夜夜操| 610018岁成人视频| 婷婷色中文字幕| 日本狠狠网| aV直接看| 亚洲婷婷在线播放十月| 六月丁香激情| 99国产精品久久久久久久久久久| 久久99精品久久久久久三级| 五月色天五月色| 亚洲最大视频| 色情五月天丁香社区| 婷婷六月天亚州| 婷婷伊人网| 激情久久肏屄视频| 五月婷婷九| 婷婷五月综合在线| caop在线视频| 九九热精品视频| 黄色av网站在线免费播放| 9999久久久久| 五月丁香久久| 成人Av在线大片| 这里只有精品在线看| 午夜丁香婷婷| 殴美激情综合网| 五月丁香免费看| 人五月天婷婷喷水| 亚色网站小视频| 色色丁香| 五月婷在线影院| 桃色五月天| 九月色婷婷综合亚洲| 色丁香婷婷美女视频网站| 婷婷成人五月天| 91狠狠综合久久| 國語久久婷| 26uuu丁香婷婷五月| 色五月女| 韩日AV片| 激情婷婷五月天日本系列| 熟妇内谢69XXXXXA片| 99色在线视频观看| 婷婷香五月天| 武则天精品久久| 婷婷久久免费| www.9797国产| 五月婷亚洲精品| 婷婷性爱综合| 色婷婷五月网| 久久久天堂国产精品女人| 色9色| 九九色人| 97操操操| 五月婷婷色色| 婷婷五月丁香欧洲| 久久这里只有精品热在99| 午夜免费高清AV片| 丁香五月电影| 婷婷久久女人| 色久丁香五| 99资源在线| 成人丁香| 人妻激情视频| 国产美女视频久| 超碰男人色| 激情欧美丁香五月| 久久全色| 五月天激情小说网| 久热黄色| 丁香五月婷婷激情网| 五月丁香综合啪啪| 人妻人人操| 色狠狠五月天| www.夜夜操| 色国产五月| 五月天久久色| 丁香五月婷婷在线视频| 日韩五月婷婷久久| 色五月激情五月天| 丁香六月婷婷色播| 激情av在线| 中文字幕在线日亚洲9| 99这里只有精品|v| 影音先锋女人av鲁色资源网小说免费 | 四川BBB搡BBB搡多人乱亂| 婷婷操逼网| 久久久久久久,99精品视频| 激情五月天综合婷婷网| 91日综合欧美| 五月花婷婷| 97自拍视频在线| 大香蕉啪啪网| 草AV9999| 丁香五月婷婷www..com| 5月婷婷激情网| 久婷久婷激情肉| 亚洲中文字幕av| 婷婷六月爽| 99在线视频。| 亚洲综合激情五月久久| 日本熟妇乱妇熟色A片蜜桃| 伊人深爱综合| 婷婷五月欧美综合| 九九热只有精品| 伊人www22综合色| 久热99| 狠狠色噜噜狠狠狠888了| 久久一级免费黄色片| 五月天社区| 亚洲精品乱码久久久久99| 蜜乳av一级av| 无码99| 五月婷婷免费在线| 热99玖玖99玖玖99九九| 五月婷婷亚洲色视频| 99九色视频在线观看| 黄桃AV无码免费一区二区三区| 五月婷婷六月丁香色| 五月婷综合| 色丁香五月婷婷| 五月丁香六月婷婷a v| 99热在线看片| 日日干天天| 99热这里只有精品最新网址| 9精品在线| 午夜成人片400| 五月色影院| 婷色人人狠| 婷婷五月色花丁香社区| 色五月天丁香| 五月婷婷六月爱| 九色 在线| 国产毛片精品一区二区色欲黄A片 极品人妻VIDEOSSS人妻 | www.五月丁香| 婷婷色五月偷拍| 五月花激情网| 婷婷丁香六月| www.色色色色| 久久66er久久| 99热一本久道| 欧美久热| 五月天婷婷免费视频| 熟女五月天久久综合| 91九色无码日韩| 激情丁香五月婷婷| 天天插综合| 这里只有精品99视频| 激情婷婷综合网| 中文字幕日产A片在线看| 99视频在线观看网址| 99综合婷婷五月| 五月天婷婷社区久久综合| 国产欧美熟妇另类久久久| 99热只有| 天天摸夜夜爽天天做| 爱久综合| 婷婷五月天性爱视频| 99热这里只有精品在线观看| 开心激情网五月| 国产色婷婷亚洲| 伊人激情综合网| 色五月色五天色情网址| 丁香五月激情婷婷| 97碰人人操| 天天日夜夜爽。| 手机旧版看人妻1025| 中文字幕网伦射乱中文| 激情色播| 婷婷六月天| 精品99只有。| 天天骑日日爽| 激情视频91| 伊人成综合五月婷婷| 97五月天| 超碰99在线| 天天天干夜夜夜操| 日本激情五月| 亭亭丁香aV| aa久久| 欧美日韩国产一区二区| 成人丁香| 99黄色性生活| 天堂综合久久| 亚洲综合激情五月| 激情五月天无码| 丁香五月图片| 丁香六月开心| 久久婷婷亚洲| 在线sebiav精品视频|