国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

ESP32打造桌面AI機(jī)器人:從電機(jī)控制到ROS 2接入全教程

ESP32打造桌面AI機(jī)器人:從電機(jī)控制到ROS 2接入全教程 如果你最近刷短視頻一定見過那種十幾厘米高、會搖頭晃腦、能聽懂簡單指令的小機(jī)器人。它們看起來像是工業(yè)機(jī)器人的縮小版但背后真正驅(qū)動它們的核心往往不是昂貴的樹莓派加激光雷達(dá)而是一塊幾十塊錢的 ESP32 開發(fā)板。很多人第一反應(yīng)是ESP32 不是一塊 WiFi 藍(lán)牙單片機(jī)嗎它也能做 AI 機(jī)器人這正是這篇教程想解決的問題。我會從一個真實場景出發(fā)你想打造一臺屬于自己的桌面積木機(jī)器人它有電機(jī)能移動有超聲波能避障有屏幕能顯示表情還能通過手機(jī)或網(wǎng)頁控制甚至接入 ROS 2 做更復(fù)雜的導(dǎo)航。傳統(tǒng)方案可能需要樹莓派、Arduino、各種驅(qū)動板拼在一起而 ESP32 一塊芯片就能承擔(dān)主控、通信、傳感器采樣和電機(jī)控制。文章會講清楚三件事ESP32 憑什么能當(dāng)機(jī)器人主控、如何用 Arduino 或 Micro-ROS 完成底層開發(fā)、以及從硬件選型到代碼調(diào)試的完整落地流程。無論你是機(jī)甲愛好者、剛?cè)腴T嵌入式的大學(xué)生還是想給孩子的科技作品加點智能這篇教程都值得收藏。1. 這篇文章真正要解決的問題先聊聊痛點。很多新手做機(jī)器人開場就掉進(jìn)選型迷宮。想用樹莓派發(fā)現(xiàn)要等供電、等系統(tǒng)啟動、等攝像頭驅(qū)動一套下來成本五六百想用 STM32發(fā)現(xiàn) HAL 庫和寄存器文檔對新手不友好WiFi 還得外掛模塊最后聽人說 Arduino 簡單結(jié)果 Uno 只有 2KB 內(nèi)存連個攝像頭圖傳都跑不動更別提 AI 推理和 ROS 2 通信。ESP32 恰好卡在中間位置它既不像 STM32 那樣硬核也不像樹莓派那樣臃腫。更重要的是ESP32 原生集成 WiFi 和藍(lán)牙雙核 240MHz 主頻有 520KB SRAM外設(shè)接口覆蓋了機(jī)器人常用的大部分需求。配合 Arduino 框架十幾分鐘就能跑起第一個點燈程序配合 Micro-ROS又能直接和 ROS 2 生態(tài)打通做 SLAM 導(dǎo)航也不是不可能。這篇文章要解決的真正問題是如何不用昂貴的開發(fā)板只靠 ESP32 加上常見模塊就造出一臺能遠(yuǎn)程控制、能避障、能和用戶做基礎(chǔ)交互的 AI 機(jī)器人小伙伴。讀完你會掌握ESP32 在機(jī)器人項目中的架構(gòu)定位和選型建議。從零搭建 ESP32 Arduino 開發(fā)環(huán)境并燒錄的完整流程。使用 L298N 或 DRV8833 驅(qū)動直流電機(jī)、讀取超聲波傳感器數(shù)據(jù)的代碼寫法。如何用 Web 頁面和手機(jī)藍(lán)牙控制機(jī)器人并擴(kuò)展語音、屏幕等 AI 交互能力。如何用 Micro-ROS 把 ESP32 接入 ROS 2為后續(xù)做自主導(dǎo)航鋪路。2. ESP32 為什么適合做機(jī)器人主控2.1 它到底是什么ESP32 是樂鑫推出的一系列 WiFi 藍(lán)牙 SoC不是單純的單片機(jī)。它內(nèi)部集成了 Xtensa 雙核處理器、WiFi 802.11 b/g/n、藍(lán)牙 4.2/5.0以及大量 GPIO 外設(shè)。不同型號差異不小做機(jī)器人最常用的是 ESP32 DevKitC 這類經(jīng)典板或者 ESP32-S3 這種帶 AI 加速的型號。用一句話概括ESP32 是“一塊帶 WiFi 藍(lán)牙的單片機(jī)”它的地位介于傳統(tǒng) MCU 和 Linux 單板機(jī)之間。2.2 和常見開發(fā)板對比對比項ESP32 DevKitCSTM32F407 探索者Arduino Uno樹莓派 4B主頻240MHz 雙核168MHz 單核16MHz1.5GHz 四核WiFi 藍(lán)牙原生集成需外掛模塊需外掛模塊原生集成內(nèi)存520KB SRAM192KB SRAM2KB SRAM2GB-8GB開發(fā)難度低Arduino/Python高HAL/寄存器最低較高Linux實時性較好很好一般較差系統(tǒng)啟動時間毫秒級毫秒級毫秒級秒級做桌面 AI 機(jī)器人適配度高中低高但成本高從這個表能看出ESP32 的最大優(yōu)勢不是算力而是“集成度 實時性 成本”的平衡點。2.3 開發(fā)板和單片機(jī)的區(qū)別很多新手會問開發(fā)板和單片機(jī)到底什么區(qū)別單片機(jī)是芯片本身開發(fā)板是把單片機(jī)芯片、晶振、USB 轉(zhuǎn)串口、電源電路、引腳排針集成在一起的電路板。買一塊 ESP32 開發(fā)板相當(dāng)于拿到一個“最小可用的 ESP32 系統(tǒng)”插上 USB 線就能燒錄和調(diào)試。這也是為什么教程中我會刻意說“開發(fā)板”而不是“芯片”。對機(jī)器人項目來說開發(fā)板的意義在于不必自己設(shè)計復(fù)雜的外圍電路把時間花在邏輯和結(jié)構(gòu)上。2.4 結(jié)論適合哪種項目ESP32 適合做資源受限機(jī)器人。所謂資源受限是指這臺機(jī)器人不需要本地跑大模型或稠密建圖而是通過 WiFi 把圖像或傳感器數(shù)據(jù)傳到上位機(jī)處理或者只執(zhí)行簡單的避障、巡線、語音指令響應(yīng)。如果你要做的恰好是一臺“眼睛靠攝像頭、大腦靠云端或手機(jī)、身體靠電機(jī)、表情靠屏幕”的桌面機(jī)器人ESP32 就是性價比最高的選擇。3. 總體架構(gòu)與硬件選型3.1 系統(tǒng)架構(gòu)設(shè)計在動手之前先畫出機(jī)器人小伙伴的功能框圖。這一步很重要否則焊完線才發(fā)現(xiàn)引腳沖突會非常痛苦。桌面 AI 機(jī)器人小伙伴可以拆成下面幾層感知層超聲波測距模塊、溫濕度傳感器、可選攝像頭。決策層ESP32 主控負(fù)責(zé)傳感器采樣、控制邏輯、通信。執(zhí)行層直流電機(jī)驅(qū)動板、舵機(jī)云臺、OLED/LVGL 屏幕。交互層手機(jī)網(wǎng)頁控制、藍(lán)牙手柄、語音播報模塊或離線語音識別。通信層WiFi 連接路由器或手機(jī)熱點通過 HTTP/WebSocket 與手機(jī)通信。3.2 硬件清單下面的清單不追求高性能只追求容易買到、接線友好、資料多。# 核心主控 1. ESP32 DevKitC V4 開發(fā)板或 ESP32-S3 DevKitC-1 2. 面包板 若干杜邦線 # 運(yùn)動系統(tǒng) 3. 2 個 TT 直流減速電機(jī) 橡膠輪 4. 1 個 L298N 電機(jī)驅(qū)動板或 DRV8833 5. 5V 2A 移動電源或 2 節(jié) 18650 電池 降壓模塊 # 傳感器 6. HC-SR04 超聲波傳感器 7. DHT11 或 DHT22 溫濕度傳感器可選 # 交互外設(shè) 8. 0.96 寸 SSD1306 OLED 屏幕 9. 1 或 2 個 SG90 舵機(jī)做出頭部擺動效果 10. 按鍵、LED 若干3.3 引腳規(guī)劃建議ESP32 引腳并不像 Arduino Uno 那樣“隨便一個就能用”有幾個坑要提前知道GPIO 6-11 默認(rèn)連接閃存芯片不能當(dāng)普通 IO 用。GPIO 12 是 strapping 引腳上電時如果拉高會影響進(jìn)入下載模式。GPIO 34-39 是輸入專用引腳不能輸出 PWM 或數(shù)字輸出。電機(jī)驅(qū)動板最好和傳感器使用不同電源域避免電機(jī)啟動時拉低傳感器供電。一個穩(wěn)妥的引腳分配如下設(shè)備ESP32 引腳左電機(jī) IN1/IN2GPIO 26 / GPIO 27右電機(jī) IN3/IN4GPIO 14 / GPIO 12若擔(dān)心可換成 32/33超聲波 TRIGGPIO 16超聲波 ECHOGPIO 17OLED SDA / SCLGPIO 21 / GPIO 22舵機(jī)信號GPIO 15DHT11 數(shù)據(jù)GPIO 4這里特別提醒GPIO 12 上電電平和下載模式有關(guān)如果插上拉模塊導(dǎo)致無法燒錄請優(yōu)先換引腳。4. 開發(fā)環(huán)境搭建4.1 安裝 Arduino IDE在 Arduino 官網(wǎng)下載 IDE 2.x 版本安裝完成并打開。4.2 添加 ESP32 開發(fā)板支持打開“文件 → 首選項 → 附加開發(fā)板管理器網(wǎng)址”填入樂鑫官方地址https://espressif.github.io/arduino-esp32/package_esp32_index.json然后打開“工具 → 開發(fā)板 → 開發(fā)板管理器”搜索esp32 by Espressif Systems點擊安裝。安裝包較大首次安裝可能需要較長時間。如果出現(xiàn)網(wǎng)絡(luò)下載失敗優(yōu)先檢查網(wǎng)絡(luò)環(huán)境或使用國內(nèi)鏡像源。從實際使用經(jīng)驗看ESP32 Arduino 內(nèi)核版本迭代較快遇到編譯報錯時先確認(rèn)你安裝的是 2.x 還是 3.x 版本因為不同版本對analogWrite、LEDC等 API 的兼容有明顯差異。4.3 測試燒錄把 ESP32 開發(fā)板插入 USB選擇開發(fā)板型號為ESP32 Dev Module選擇對應(yīng)的 COM 口上傳一個最簡代碼// 文件路徑test_blink/test_blink.ino #define LED_BUILTIN_PIN 2 void setup() { pinMode(LED_BUILTIN_PIN, OUTPUT); Serial.begin(115200); } void loop() { digitalWrite(LED_BUILTIN_PIN, HIGH); delay(500); digitalWrite(LED_BUILTIN_PIN, LOW); delay(500); Serial.println(ESP32 alive); }如果板載 LED 以 1 秒周期閃爍并且串口輸出ESP32 alive說明環(huán)境已經(jīng)通了。5. 電機(jī)控制與運(yùn)動系統(tǒng)實現(xiàn)5.1 電機(jī)驅(qū)動板接線L298N 是經(jīng)典電機(jī)驅(qū)動模塊接線時要特別注意共地問題ESP32 5V或外部 5V → L298N 12V 輸入 L298N 5V 輸出 → ESP32 VIN可選取決于供電方案 L298N GND → ESP32 GND GPIO 26 → L298N IN1 GPIO 27 → L298N IN2 GPIO 14 → L298N IN3 GPIO 12 → L298N IN4 電機(jī) A 兩線 → L298N OUT1 / OUT2 電機(jī) B 兩線 → L298N OUT3 / OUT4必須強(qiáng)調(diào)電機(jī)驅(qū)動板的電源和 ESP32 的電源最好分開。如果強(qiáng)行用同一個 USB 5V 供電去驅(qū)動兩個大電流電機(jī)很容易出現(xiàn)開發(fā)板重啟、串口斷連、電機(jī)抖動等情況。新手最常見的錯誤是只插 USB 線然后接上電機(jī)驅(qū)動板期望它能帶動機(jī)器人結(jié)果屏幕直接黑掉。5.2 電機(jī)控制代碼下面這段代碼實現(xiàn)了前、后、左、右、停止五個動作。它通過 digitalWrite 控制電機(jī)方向并通過 delay 控制運(yùn)行時間。// 文件路徑motor_test/motor_test.ino int motorA1 26; int motorA2 27; int motorB1 14; int motorB2 12; void setup() { pinMode(motorA1, OUTPUT); pinMode(motorA2, OUTPUT); pinMode(motorB1, OUTPUT); pinMode(motorB2, OUTPUT); Serial.begin(115200); Serial.println(Motor test start); } void loop() { runForward(1000); runBackward(1000); turnLeft(800); turnRight(800); stopMotor(1000); } void runForward(int duration) { digitalWrite(motorA1, HIGH); digitalWrite(motorA2, LOW); digitalWrite(motorB1, HIGH); digitalWrite(motorB2, LOW); delay(duration); } void runBackward(int duration) { digitalWrite(motorA1, LOW); digitalWrite(motorA2, HIGH); digitalWrite(motorB1, LOW); digitalWrite(motorB2, HIGH); delay(duration); } void turnLeft(int duration) { digitalWrite(motorA1, LOW); digitalWrite(motorA2, HIGH); digitalWrite(motorB1, HIGH); digitalWrite(motorB2, LOW); delay(duration); } void turnRight(int duration) { digitalWrite(motorA1, HIGH); digitalWrite(motorA2, LOW); digitalWrite(motorB1, LOW); digitalWrite(motorB2, HIGH); delay(duration); } void stopMotor(int duration) { digitalWrite(motorA1, LOW); digitalWrite(motorA2, LOW); digitalWrite(motorB1, LOW); digitalWrite(motorB2, LOW); delay(duration); }代碼里的左轉(zhuǎn)右轉(zhuǎn)是“原地差速轉(zhuǎn)向”也就是讓兩個輪子朝相反方向轉(zhuǎn)動。真實小車如果安裝的是帶減速箱的 TT 電機(jī)轉(zhuǎn)向效果會比較明顯。5.3 如何驗證運(yùn)動是否正常燒錄后把機(jī)器人放在桌面按順序觀察前進(jìn) 1 秒、后退 1 秒、左轉(zhuǎn) 0.8 秒、右轉(zhuǎn) 0.8 秒、停止 1 秒。如果發(fā)現(xiàn)動作順序不對只需要調(diào)整 IN1/IN2 或者 IN3/IN4 的接線位置就能解決不用改代碼。如果電機(jī)完全沒有反應(yīng)優(yōu)先排查 L298N 上的電源指示燈是否亮起以及 ESP32 的 GND 是否和 L298N 的 GND 接在一起。共地問題幾乎占據(jù)電機(jī)控制故障的一半。6. 傳感器感知與自動避障6.1 超聲波測距原理HC-SR04 的工作原理很簡單向 TRIG 引腳發(fā)送一個 10 微秒以上的高電平脈沖模塊就會發(fā)射超聲波當(dāng)聲波碰到障礙物返回時ECHO 引腳輸出高電平。測出這段高電平的時間再乘以聲速 340m/s 并除以 2就是到障礙物的距離。它在代碼里的實現(xiàn)如下// 文件路徑ultrasonic_test/ultrasonic_test.ino #define TRIG_PIN 16 #define ECHO_PIN 17 void setup() { Serial.begin(115200); pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); } void loop() { long duration; float distanceCm; digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); duration pulseIn(ECHO_PIN, HIGH); distanceCm duration * 0.034 / 2; Serial.print(Distance: ); Serial.println(distanceCm); delay(100); }如果串口顯示距離一直在跳排除環(huán)境噪聲后大概率是供電不穩(wěn)。HC-SR04 在 5V 供電下更穩(wěn)定但它的 ECHO 引腳會返回 5V 電平直接接 ESP32 的 GPIO 有電壓不匹配風(fēng)險穩(wěn)妥做法是加一個分壓電路或用 3.3V 供電的傳感器模塊。6.2 添加避障邏輯把測距和電機(jī)控制合在一起就能寫出最簡單的“碰不到墻”的機(jī)器人// 文件路徑auto_avoid/auto_avoid.ino #define TRIG_PIN 16 #define ECHO_PIN 17 #define MOTOR_A1 26 #define MOTOR_A2 27 #define MOTOR_B1 14 #define MOTOR_B2 12 #define SAFE_DISTANCE 20.0 void setup() { Serial.begin(115200); pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(MOTOR_A1, OUTPUT); pinMode(MOTOR_A2, OUTPUT); pinMode(MOTOR_B1, OUTPUT); pinMode(MOTOR_B2, OUTPUT); } void loop() { float dist readDistance(); Serial.print(Distance: ); Serial.println(dist); if (dist SAFE_DISTANCE) { stopMotor(); delay(200); turnLeft(); delay(500); } else { runForward(); } } float readDistance() { digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); long duration pulseIn(ECHO_PIN, HIGH); if (duration 0) return 999; return duration * 0.034 / 2; } void runForward() { digitalWrite(MOTOR_A1, HIGH); digitalWrite(MOTOR_A2, LOW); digitalWrite(MOTOR_B1, HIGH); digitalWrite(MOTOR_B2, LOW); } void turnLeft() { digitalWrite(MOTOR_A1, LOW); digitalWrite(MOTOR_A2, HIGH); digitalWrite(MOTOR_B1, HIGH); digitalWrite(MOTOR_B2, LOW); } void stopMotor() { digitalWrite(MOTOR_A1, LOW); digitalWrite(MOTOR_A2, LOW); digitalWrite(MOTOR_B1, LOW); digitalWrite(MOTOR_B2, LOW); }這段代碼已經(jīng)能讓你看到一個“會自己躲墻的小車”。如果你希望它更智能一點可以把turnLeft()改成隨機(jī)選擇左轉(zhuǎn)或右轉(zhuǎn)避免遇到墻角時卡死。7. 接入 WiFi 和網(wǎng)頁遠(yuǎn)程控制7.1 為什么 ESP32 天然適合做遠(yuǎn)程控制ESP32 自帶 WiFi 是它比多數(shù)單片機(jī)更順手的地方。你不需要額外購買 ESP8266 模塊也不用寫復(fù)雜的 AT 指令。直接在 Arduino 代碼里引入 WiFi.h就能搖身一變成為一個 Web 服務(wù)器。這里要澄清一個常見誤解很多人以為 ESP32 “開 WiFi 會占很多資源”其實在簡單的控制場景里ESP32 的實時響應(yīng)影響可以忽略。更需要注意的是你的網(wǎng)絡(luò)環(huán)境是否穩(wěn)定以及機(jī)器人是否處于路由器信號覆蓋范圍內(nèi)。7.2 最小 Web 控制服務(wù)器下面這個代碼實現(xiàn)了一個網(wǎng)頁控制臺手機(jī)連上同一個 WiFi 后打開瀏覽器訪問機(jī)器人 IP點擊方向按鈕即可控制電機(jī)。同時它還提供了網(wǎng)頁上的測距數(shù)據(jù)顯示。// 文件路徑web_control/web_control.ino #include WiFi.h const char* ssid YOUR_WIFI_SSID; const char* password YOUR_WIFI_PASSWORD; #define TRIG_PIN 16 #define ECHO_PIN 17 #define MOTOR_A1 26 #define MOTOR_A2 27 #define MOTOR_B1 14 #define MOTOR_B2 12 WiFiServer server(80); String html !DOCTYPE htmlhtmlhead meta charsetutf-8 meta nameviewport contentwidthdevice-width, initial-scale1 titleESP32 Robot Control/title style body { font-family: Arial; text-align: center; margin-top: 40px; } .btn { display: inline-block; width: 160px; height: 60px; margin: 10px; font-size: 24px; background: #2196F3; color: white; border: none; border-radius: 12px; } .btn:hover { background: #0b7dda; } /style/headbody h2ESP32 AI Robot/h2 a href/forwardbutton classbtn前進(jìn)/button/a br a href/leftbutton classbtn左轉(zhuǎn)/button/a a href/stopbutton classbtn停止/button/a a href/rightbutton classbtn右轉(zhuǎn)/button/a br a href/backwardbutton classbtn后退/button/a pbutton classbtn onclick\location.href/distance\測量距離/button/p /body/html; void setup() { Serial.begin(115200); pinMode(TRIG_PIN, OUTPUT); pinMode(ECHO_PIN, INPUT); pinMode(MOTOR_A1, OUTPUT); pinMode(MOTOR_A2, OUTPUT); pinMode(MOTOR_B1, OUTPUT); pinMode(MOTOR_B2, OUTPUT); WiFi.begin(ssid, password); while (WiFi.status() ! WL_CONNECTED) { delay(500); Serial.print(.); } Serial.println(); Serial.print(WiFi connected, IP: ); Serial.println(WiFi.localIP()); server.begin(); } void loop() { WiFiClient client server.available(); if (!client) return; String request client.readStringUntil(\r); Serial.println(request); if (request.indexOf(/forward) 0) runMotor(HIGH, LOW, HIGH, LOW); else if (request.indexOf(/backward) 0) runMotor(LOW, HIGH, LOW, HIGH); else if (request.indexOf(/left) 0) runMotor(LOW, HIGH, HIGH, LOW); else if (request.indexOf(/right) 0) runMotor(HIGH, LOW, LOW, HIGH); else if (request.indexOf(/stop) 0) runMotor(LOW, LOW, LOW, LOW); else if (request.indexOf(/distance) 0) { float dist readDistance(); client.println(HTTP/1.1 200 OK); client.println(Content-Type: text/plain); client.println(); client.println(Distance: String(dist) cm); client.stop(); delay(1); return; } client.println(HTTP/1.1 200 OK); client.println(Content-Type: text/html); client.println(Connection: close); client.println(); client.println(html); client.stop(); delay(1); } void runMotor(int a1, int a2, int b1, int b2) { digitalWrite(MOTOR_A1, a1); digitalWrite(MOTOR_A2, a2); digitalWrite(MOTOR_B1, b1); digitalWrite(MOTOR_B2, b2); } float readDistance() { digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2); digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); long duration pulseIn(ECHO_PIN, HIGH); if (duration 0) return 999; return duration * 0.034 / 2; }把YOUR_WIFI_SSID和YOUR_WIFI_PASSWORD替換成你自己的 WiFi 信息燒錄后查看串口打印的 IP 地址在手機(jī)瀏覽器輸入這個 IP就能看到控制界面。7.3 大型機(jī)器人或者多設(shè)備場景怎么處理如果你的項目是搜索熱詞里提到的“機(jī)器人導(dǎo)航”“ROS2 機(jī)器人開發(fā)”那就要面對“多設(shè)備協(xié)同”的問題。ESP32 不適合作為復(fù)雜導(dǎo)航的主節(jié)點但它非常適合作為下位機(jī)把車速和傳感器數(shù)據(jù)通過 WiFi/串口發(fā)給上位機(jī)。上位機(jī)可以是 PC、Jetson Nano也可以是另一塊更強(qiáng)大的開發(fā)板。這時候把 HTTP 換成更高效的 WebSocket 或 MQTT 是更好的選擇。HTTP 請求每次都要建連和斷連控制頻率高了會產(chǎn)生明顯的延遲MQTT 或 WebSocket 則能保持長連接控制指令延遲能降到幾十毫秒以內(nèi)。8. 用 OLED 和語音模塊做 AI 交互8.1 添加表情屏幕機(jī)器人要有“小伙伴”的感覺單單會跑是不夠的。給它加一塊 0.96 寸 OLED用 U8g2 或 Adafruit SSD1306 庫畫一雙眼睛就能實現(xiàn)簡單的情感化反饋。在 Arduino 庫管理器中搜索SSD1306并安裝 Adafruit SSD1306 和 Adafruit GFX然后看下面的示例// 文件路徑oled_face/oled_face.ino #include Wire.h #include Adafruit_GFX.h #include Adafruit_SSD1306.h #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_ADDR 0x3C Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, Wire, -1); void setup() { Wire.begin(21, 22); display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); } void loop() { // 畫一對“眼睛” display.clearDisplay(); drawEyes(); delay(2000); // 顯示一個“開心”表情 display.clearDisplay(); drawHappyFace(); delay(2000); } void drawEyes() { display.fillCircle(40, 28, 8, SSD1306_WHITE); display.fillCircle(88, 28, 8, SSD1306_WHITE); display.display(); } void drawHappyFace() { display.drawCircle(64, 32, 20, SSD1306_WHITE); display.fillCircle(56, 28, 3, SSD1306_WHITE); display.fillCircle(72, 28, 3, SSD1306_WHITE); display.drawArc(56, 38, 16, 200, 340, SSD1306_WHITE); display.display(); }注意drawArc在 Adafruit GFX 的某些版本里不可用如果你編譯報錯可以換用display.drawLine手動畫一條弧線。畫表情不是重點重點是你開始通過外設(shè)表達(dá)機(jī)器人“狀態(tài)”這就是交互體驗的基礎(chǔ)。8.2 接入基礎(chǔ)語音交互ESP32 直接跑本地大模型不現(xiàn)實但可以接離線語音識別模組或者通過 WiFi 請求云端語音接口。這里給一個最簡單的思路使用 SU-03T 這類離線語音識別模塊通過串口把識別結(jié)果發(fā)給 ESP32ESP32 根據(jù)結(jié)果執(zhí)行動作。接線方式SU-03T TX → ESP32 GPIO 3 (RX0) SU-03T RX → ESP32 GPIO 1 (TX0) SU-03T GND → ESP32 GND SU-03T VCC → ESP32 5V根據(jù)模塊要求在 Arduino 里用Serial2接收串口數(shù)據(jù)識別到“前進(jìn)”“后退”“停止”等關(guān)鍵詞后執(zhí)行對應(yīng)電機(jī)動作。這種方式?jīng)]有網(wǎng)絡(luò)延遲也不依賴外部服務(wù)適合離線演示。真正做 AI 對話交互時你更可能采用“ESP32 手機(jī) App 云端 API”的架構(gòu)ESP32 通過藍(lán)牙或 WiFi 把語音上傳到手機(jī)手機(jī)調(diào)用大模型接口再把返回的文本通過 TTS 播放出來。ESP32 在這里充當(dāng)?shù)氖菣C(jī)器人底層執(zhí)行器和語音前端。8.3 LVGL 屏幕界面如果你使用的是帶屏幕的 ESP32 開發(fā)板比如 ESP32-S3 配 ST7789 屏幕可以在板上運(yùn)行 LVGL。LVGL 是一個開源嵌入式圖形庫能設(shè)計按鈕、動畫、儀表盤。搜索熱詞里出現(xiàn)的esp32 lvgl是很多開發(fā)者在做智能面板項目時的主要方向。用 LVGL 做機(jī)器人控制界面的好處是它不需要依賴瀏覽器直接在機(jī)器人本地面板上顯示控制按鈕和狀態(tài)。缺點是開發(fā)量比 OLED 表情大不少適合作為進(jìn)階挑戰(zhàn)。9. 進(jìn)階用 Micro-ROS 把 ESP32 接入 ROS 29.1 Micro-ROS 是什么如果你看到過esp32 micro-ros arduino這組關(guān)鍵詞說明你可能已經(jīng)開始接觸機(jī)器人操作系統(tǒng) ROS 2。ROS 2 是機(jī)器人領(lǐng)域的主流軟件框架但它默認(rèn)運(yùn)行在 Linux 系統(tǒng)上對單片機(jī)并不友好。Micro-ROS 的作用就是讓內(nèi)存受限的 MCU 也能成為 ROS 2 網(wǎng)絡(luò)里的一個節(jié)點。用大白話說ROS 2 是一套機(jī)器人的“操作系統(tǒng)級通信框架”Micro-ROS 是它的瘦身版ESP32 通過 WiFi 或串口就能和跑著 ROS 2 的上位機(jī)通信。9.2 ESP32 在 ROS 2 里的定位在真實機(jī)器人項目中ESP32 最適合做執(zhí)行器節(jié)點和傳感器節(jié)點比如發(fā)布超聲波測距話題。發(fā)布 IMU 數(shù)據(jù)話題。訂閱/cmd_vel話題把速度指令轉(zhuǎn)成電機(jī) PWM。這樣上位機(jī)只需要負(fù)責(zé) SLAM 建圖、路徑規(guī)劃、AI 視覺而 ESP32 負(fù)責(zé)實時響應(yīng)和底層控制。9.3 接入 Micro-ROS 的大致流程第一步在 Arduino IDE 中安裝micro_ros_arduino庫??梢酝ㄟ^ Library Manager 搜索micro_ros_arduino或從 GitHub 克隆到 Arduino/libraries 目錄。第二步根據(jù)網(wǎng)絡(luò)方式選擇傳輸層。WiFi 場景下需要先連接到熱點然后運(yùn)行 Micro-ROS Agent。串口場景下則用 USB 轉(zhuǎn) TTL 連接上位機(jī)。第三步用MicroRosPublisher發(fā)布話題。下面是一個最小示例結(jié)構(gòu)// 文件路徑micro_ros_demo/micro_ros_demo.ino示意 #include micro_ros_arduino.h #include stdio.h #include rcl/rcl.h #include rcl/error_handling.h #include std_msgs/msg/int32.h rcl_publisher_t publisher; rcl_publisher_t publisher; std_msgs__msg__Int32 msg; void setup() { set_microros_wifi_transports(YOUR_WIFI_SSID, YOUR_WIFI_PASSWORD, 192.168.1.100, 8888); // 其余初始化代碼略 } void loop() { msg.data analogRead(34); rcl_publish(publisher, msg, NULL); delay(100); }注意這段代碼只是示意完整運(yùn)行還需要在setup里創(chuàng)建節(jié)點、初始化 publisher并且處理rclc_executor的 spin。不同版本的 micro_ros_arduino 庫 API 有差異編譯報錯時先從官方例程micro_ros_arduino_publisher開始修改。9.4 ROS 2 上位機(jī)配置在上位機(jī)上啟動 Micro-ROS Agentsource /opt/ros/humble/setup.bash ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0或者使用 WiFi 傳輸ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888啟動后在另一個終端執(zhí)行ros2 topic list如果能看到 ESP32 發(fā)布的話題名說明兩者已經(jīng)打通。這一步對于后續(xù)做“機(jī)器人導(dǎo)航”至關(guān)重要因為你可以讓機(jī)器人跑在 ROS 2 的導(dǎo)航棧里。10. 常見問題與排查方法問題現(xiàn)象可能原因排查方式解決方案燒錄失敗串口無法連接板子進(jìn)入不了下載模式按住 BOOT 鍵再點燒錄手動進(jìn)入下載模式或換 USB 數(shù)據(jù)線燒錄時報錯A fatal error occurred驅(qū)動未裝 / 端口錯 / 線材問題檢查設(shè)備管理器確認(rèn) COM 口安裝 CP210x 或 CH340 驅(qū)動電機(jī)不轉(zhuǎn)L298N 供電不足或未共地檢查電源指示燈、GND 連線外部供電接好共地電機(jī)轉(zhuǎn)向反了電機(jī)線接反或代碼方向不對觀察電機(jī)轉(zhuǎn)向調(diào)換 OUT 接線或改代碼超聲波距離數(shù)據(jù)亂跳供電不穩(wěn) / ECHO 電平不匹配萬用表測電壓串口打印通電后數(shù)據(jù)獨立供電或加分壓電路OLED 無顯示I2C 地址不對或 SDA/SCL 接反運(yùn)行 I2C 掃描程序嘗試 0x3C 和 0x3D 地址Web 控制頁打不開WiFi 名密碼錯誤 / 不在同一網(wǎng)段串口打印 IP手機(jī) ping 該 IP重新配網(wǎng)確保手機(jī)和開發(fā)板同一路由器Micro-ROS 連接失敗Agent 未啟動 / 端口被占用查看 Agent 日志關(guān)閉防火墻或換端口外接電源后 ESP32 重啟電機(jī)電流過大導(dǎo)致電壓跌落測電機(jī)啟動時電壓電機(jī)驅(qū)動單獨供電或加電容除了這些還有一個容易忽略的問題GPIO 引腳沖突。很多 ESP32 開發(fā)板把 LED 接在 GPIO 2 上如果你把電機(jī)引腳也用到 GPIO 2跑起來可能看到 LED 異常閃爍。建議在項目一開始就維護(hù)一張引腳分配表寫完代碼后逐項核對。11. 最佳實踐與工程建議11.1 先分模塊再拼接我見過太多把代碼一口氣寫完最后燒錄全部失敗的人。正確做法是先點亮 LED確認(rèn)環(huán)境可用。再跑電機(jī)測試確認(rèn)方向和 PWM 正常。再測傳感器確認(rèn)距離值準(zhǔn)確。再連 OLED確認(rèn)顯示正常。最后把模塊拼到一起加 WiFi 控制。每拼一個模塊就驗證一次能大幅降低排錯成本。11.2 供電設(shè)計是機(jī)器人的生命線桌面機(jī)器人的故障一半以上來自供電。建議電機(jī)驅(qū)動板和主控分開供電或者使用大電流降壓模塊。電機(jī)啟動時瞬間電流可能達(dá)到 1-2A電壓會明顯跌落。如果使用 18650 電池加一個 5V/3A 降壓模塊。萬用表測量各模塊實際電壓而不是只看理論值。11.3 代碼組織和版本管理即使是一個人做項目也建議用 Git 管理代碼??梢园衙總€功能寫成單獨的.h文件或tab文件例如motor.h、ultrasonic.h、wifi_control.h最后在.ino文件里組合調(diào)用。這樣后續(xù)擴(kuò)展麥克風(fēng)、攝像頭、屏幕時不需要重寫底層邏輯。11.4 日志與調(diào)試習(xí)慣在關(guān)鍵位置添加Serial.println打印狀態(tài)遠(yuǎn)比斷點調(diào)試方便。尤其是 WiFi 連接、傳感器讀取、電機(jī)動作切換這幾個節(jié)點合理的日志輸出能讓你在 5 分鐘內(nèi)定位問題。上生產(chǎn)環(huán)境或長時間運(yùn)行時可以把日志合并成一個狀態(tài)字符串通過 WebSocket 發(fā)給控制端顯示這樣就能實時看到機(jī)器人“心路歷程”。11.5 安全邊界與合法使用提醒如果項目涉及攝像頭、語音采集、云端 API提醒自己遵守設(shè)備所屬地區(qū)和所在機(jī)構(gòu)的隱私與安全規(guī)定。不要采集未經(jīng)授權(quán)的個人信息不要繞過任何平臺的安全機(jī)制。代碼中默認(rèn)只處理授權(quán)范圍內(nèi)的受控設(shè)備。12. 總結(jié)與后續(xù)學(xué)習(xí)方向到這里你已經(jīng)把一顆可能還在吃灰的 ESP32 開發(fā)板變成了一臺能跑、能躲墻、能被手機(jī)控制、能顯示表情的基礎(chǔ)機(jī)器人小伙伴?;仡櫼幌逻@篇文章真正有用的是三塊內(nèi)容一是 ESP32 在機(jī)器人架構(gòu)中的定位它適合做主控而非復(fù)雜計算節(jié)點二是從電機(jī)、傳感器到 WiFi 控制的完整代碼鏈路這些代碼可以組合出非常多的玩法三是 Micro-ROS 的接入思路讓你以后從“玩具”走向“真機(jī)器人”時有明確路徑。下一步建議你按這個順序繼續(xù)深入先跑通本文的 Web 控制頁讓機(jī)器人在手機(jī)控制下自由移動。給機(jī)器人添加一個舵機(jī)云臺掛上攝像頭做簡單的 WiFi 圖傳。接入 Micro-ROS 和上位機(jī)用 ROS 2 的 Nav2 做 SLAM 導(dǎo)航。如果對屏幕交互感興趣學(xué)習(xí) LVGL在機(jī)器人上做一個完整的控制面板。如果對 AI 交互感興趣嘗試把離線語音識別模塊和云端大模型接進(jìn)來。說到底機(jī)器人開發(fā)的樂趣不在于一步到位而在于每次“換一個新模塊跑通一個新功能”的成就感?,F(xiàn)在就從你最感興趣的模塊開始動手吧你的第一個 AI 機(jī)器人小伙伴已經(jīng)在桌面上等你了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲色图久久成人| 日韩欧美俄罗斯A片| 影视综合无码少妇| 超碰 97国产熟女| 在线五区| 亚洲欧综合另类无码一区| Julia在线播放亚洲久久| 加勒比色综合| 五月丁香黄色网| 日欧操屄视频| 色综合九九| 永久免费发布性爱网| 精品人妻一区二区三区-国产精品| 五十路人妻在线| 成人av福利在线观看| 91碰碰| 女人一区| 日本影视久久免费| 欧美日日网| 亚洲色欧| 婷婷色色五月天| 亚洲导航深夜福利| 无码91| 日本五区不卡| 日本精品一区二区不卡| 激情六月天| 99精品网站| 日人妻视频91| 日韩黄色电影网站| 国产精品 午夜福利| 美女97超碰| 夜夜操中文字幕| 99啪啪| 欧美激情内射| 国产精品人人爽人人做可爱福利| 亚洲欧美精品福利在线| 国产丰满少妇久久久精品影院| 99精品无码| 97国产高清视频在线观看| 久久精品电影| 久一区久久蜜桃| 亚洲欧洲色情高清| 99久久9| 欧美性爱一级操| 五月天伊人| 人妻激情在线视频| 亚洲综合色图欧美| 日日干日日操五月天伦理视频| 91综合国产精品| 97 九色| 97久久久| 超碰欧美97资源| 人人妻人人爱人人玩| 日韩免费人妻色情网站| 国产免费黄色一级大片| 日日干男人的天堂| 影音先锋每日最新资源在线观看 | 无码操逼视频一下| 91操熟女视频| 久插综合| 翔田千里Av在线| 色97欧美| 在线视频一区二区传媒| 久久黄黄| 久久精品黄色| 亚洲日韩东京热一区| av在线观看不卡网站| 久久久久久九九九九九九| 99热超碰在线| 亚洲av综合色区图片亚洲| 99热在线不卡| 九九99久久| 操婢日韩| 综合激情二| 蜜臀中文无码午夜| 亚洲欧洲日产国产综合网| 国内三级自拍小视频在线观看| 破处bbq| 激情网五月天| 一区二区三| 天天拍天| 色鬼在线综合| 五月丁香影视| 大黄片做爱的大的| 超碰久久性爱| 天天视频黄网站| 超碰色男人操熟女| 日韩av电影成人在线| 好爽视频在线观看视频| 欧美国产操逼| 老师充足的奶水小说| 中文字幕97| 久久黄色性爱视频| www网站黄| 狠狠爱大香蕉| 青草草免费网站av| 人人玩人人添人人澡免费| 国产网红精品| 国产黄色在线播放观看| 亚洲最新Av| 日本久久999| 欧洲大香蕉| 欧美1区二区三区公司| 影音先锋日本一区二区| 370p日韩欧美亚洲精品| 免费视频一二三区| 日韩中文字幕视频| 亚洲图片激情综合另类| 岛国免费视频在线| 智利AV在线网| 久操视频在线观看| 少妇久久久久久久| 久久97| 91色伦综合| 日韩99神马视频片| 青草青青久久久久久国产| 最新欧美色网| 黄色av片三级三级三级免费看| 国产风韵犹存熟妇三区| 久久久人体| 6080YYY午夜理论片在线观看| A啊啊在线观看| 国产日韩欧美三级片| 后入式五六区| 91高跟美女在线播放| 五十路六十路七十路熟婆| 亚洲欧美日韩中文久久自慰| 久久色一区| 日韩午夜啪啪视频| 一类无码操逼视频| 美国日韩黄片| 蜜臀无码视频在线观看| 国产精品剧情| 91色综合激情| 妇人噜噜| 欧美韩日精品资源| 欧美 亚洲 综合 制服| 成人a级高清视频在线观看| 久久机热| 嗯嗯不要 视频| 婷婷九月丁香| 日韩97P| 国产嫩草精品A88AV| 色老汉色| 欧美色院| 熟女探花啪啪| 久久粉色| 欧美成人精品A片免费一区99| 日本精品加勒比海一区| 五月婷婷无码| 欧美人妖内射| 日韩精品高清资源在线| 大学生口爆吞精| 九九精品美女高溯喷水| 一区二区三区 日韩欧美| 欧美综合网站999| 骚货| 国产成人无码高清| 亚洲九九九九| 男人的天堂日韩| 九九热在线视频| 国产精品视屏| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 综合色图亚洲欧美| 淫荡少妇免费| 国内毛片四区| 熟女高潮合集-永久久久-成人AV | 91人人臊| 欧美色图欧美| 98福利在线视频| 欧美|91色综合| 精品中文字幕第一页| 蜜臀Av一区二区三区| 性性欧美| 黄色成品网站| 人人操人人操草草| 精品久久无码午夜福利| 亚洲色宗合| 欧美图片校园春色| 日韩 女同 综合| 在线视频五十市| www.人人cao| AV中亚| 欧美少妇一区二区三区| 久久久久密| 久9爱经典视频| 欧美日日夜夜| 日本性爱不卡视频| 在线无码视频| 国产精品老熟女一区二区| 99青青草国产视频| 婷婷爽人人婷婷爽视频| 中文字幕激情小说| 亚洲天堂2020| 中文激情网| 久久精品视频一区三区小泽玛利亚| 天天看综合网| 日韩欧美丝袜诱惑| 外国免费性情大片| 久久草在线综合视频| 美女干逼2| 操逼视频色| 亚州男人天堂| 色五月天AV| 老司机香蕉久久久久| 一区二区三区黄色片a| 色九月综合| 亚洲欧美九九九| 亚洲日韩欧美一区二区| AV中文字幕三四五| 日本人妻中文字幕精品| 67914亚洲精品| 香蕉国产97| 亚洲永久AV无码精品秋霞| 色综合久久888| 天美91| 亚洲不卡一| 色网1| 亚洲图片小说欧洲| 亚洲黄色电影| 欧美亚洲20p| 日本精品久久久久久久| 久久久久久久| 色就色综合| 思思热影视| 91美女丝袜诱惑视频| 亚射在线| 国产精品视屏| 97任你吞精| 嗯嗯嗯啊啊啊在线免费观看| 狠狠躁日日躁夜夜躁A| 国产小炒后入式| 无码九九| 三级激情网站| 久操视频免费在线观看| 三级网站超变态精品| 久偷拍欧美日韩三区| 91天天综合网| 国产成人自拍视频视频| 99这里只有精品| 91久久国产综合精品| 玖玖爱综合网| 男女啪啪网站免费视频| 欧美精品成人在线播放| 欧美中文字幕一区 | 中文字幕亚韩| 美性中文综合网| 国产精品3| 国产性爱在线视频一区二区| 又黑又大又粗| 奶水 人妻 哺乳 在线| 最新亚洲黄色免费电影| 日韩国产不卡在线视频| 综合网~91综合网| 亚洲97| 99免费视频| 99热婷婷一区二区三| 在线αⅴ| 久久中日麻豆| 亚洲精品xxx| 亚洲va综合va国产va中文| 亚洲综合色图欧美| 97色干| 四虎在线视频| 天天欧美欧美亚洲网| 亚洲天天更新| 99久久久无码| 人人摸.人人色| 色九九九综合| 日本三级R| 色偷偷2020免费视频播放| 97色伦97色伦国产欧美| 国产午夜视频| 婬女免费一二三区A片| 综合网亚洲1| 中文字幕jul-617人妻熟女| 91久热| www.夜夜| 丁香六月激情| 人人操人人摸超碰| 久久久五月天| 99国产精品视频尤物| 亚洲国产青青| 久久久久骚| 日韩射精| 精彩久久中文| 在线国产一区二区av| 狠狠色一区二区中文字幕| 欧美精品一区二区少妇免费A片| 德国一二三不卡| 日本成人在线不卡一区二区三区| 9999九九九久久久| 91粉芽高清在线一区二区| 无码人妻一区二区三区色欲aⅴ | 日日夜夜狠狠| 亚洲成人久久一区二区| 中国熟女老妇仑乱一区二区三区| 天天影视之亚洲综合网| 中文字幕88av在线| 色欧美天天| 亚洲日韩美女中文字幕乱| 婷婷超| 亚洲久草AV色图| 久草毛片电影怡| 人人操人人大香蕉| 91视频精品| 婷婷人妻激情| 亚洲五月丁香花狠狠干一区二区三区 | 97se亚洲| 精品成人动漫一区二区| 很很热性爱视频| 黄片com.| 91在线综合网| 久草综合京东| 五月天AV资源| 一区二区三区免费视频入口| 日韩一级特黄av毛片| 丰满美女一级毛片在线播放| 午夜精品久久久久久久99蜜桃一| 青青操97| 国产少妇内射| 久久中文字幕一区不卡| 久久精品国产亚洲AV高级北京| 天堂精品在线| 免费看污网站| 操熟女91| 成人免费不卡在线视频| 午夜性| 美女网站黄页| 伊人9| 一区二区三| 亚洲伊人a线观看视频| 亚洲夜色在线| 99AV| 国语av最新自产拍在线观看| 国产 日韩 欧美高清| 亚洲熟妇乱女区二区三区| 激情婷婷丁香网| 啪啪视频亚洲第一| 欧美中字二区| 欧美亚洲国产91在线| 999狠狠综合| 国产白丝网站| 日本精品性生活久久久| 超碰人妻97| 久久美女福利是上海美女| 日产123区精品免费观看| 亚洲在线a| 嗯啊不要啊在线| 热热色91| 亚洲精品久久久久久久蜜桃臀| 人妻熟妇久草在线| 国产少妇内射| 九九九九九精品十六| 蜜屁Av| 男人的天堂无码| 欧美亚洲成人在线一区二区三区| 青青草自拍视频在线播放| 国产60区。| 久久鲁夜| 久久久内射良家| 精品久久九| 成人一级二级| 天天伊人| 五月丁香六月综合缴清无码 | 五十路六十路素人熟女| 岛国网址国产| 丁香九月激情| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 91精品人妻啪啪间| 東南亚性呦成人伦理资源在线视频| 日韩资源网| 八戒无码国产午夜福利| 东京热熟女亚洲视频网站| 欧美色亚洲| 黑操B| 国产又粗又大硬免费色网视频| 中文字幕成人| 亚洲天天操| 最新国产亚洲精品精品国产亚洲综合| 精品久久久中文字幕不| 国产精品嫩草影院午夜两性| AV老汉| 中文字幕一区二区三区字幕| 日本啊啊啊啊啊视频| 国产日本一区二区三区蜜臀在线观看| 九九九九久久久| 九九热午夜欧亚国产视频| 一级黄色视频网| 欧美伦乱爱| 亚洲制服欧美另类内射| 综合网亚洲在线| 东京热激情视频一二三区| 久久久久九九九| 日韩性爱再线视频| 天美传媒AV在线播放| 青青草五月天| 大香蕉久操| 任你干在线视频| 国产一级137片内射麻豆| 伊人综合色网| 女人 A一级| 999精品女人| 国厂麻豆77q4| 亚洲欧美国产其他二区| 久久久久久99AV无码免费网站| 超碰人妻97| 不卡在线观看视频| 老熟女91| 操逼无码操逼| 亚州免费啪啪视频| 午夜啪| 干B网| 99国产精品免费| 色色色色色色色色色色色色色色综合| 亚洲一区二区三区欧美日韩| 婷婷久草| 国产精品成人蜜臀AV在线| 国产精品网址| 亚洲AV色图一区| 中文幕97| 综合网欧美在线| 夜夜免费视频| 日本黄色精品专区网站| 91精品人妻啪啪间| n1038 一二三区| 日韩欧美视频青青| 欧美专区日本专区| 免费黄色片。| 岛国免费视频在线| 中文字幕99999| 精品无码一区二区人妻久久蜜桃| 亚州色站 日韩电影| 亚洲色五月| 国产亚州高清国产拍精| 中文精品一区二去| 天美传媒婬乱在| 伊人青青草久久| 神马久久免费电影观看| 中国一级特黄大片护士| 肥佬影院91| av天堂加勒比| 精品日韩| 91操人| 欧美国产有色电影| 乱操9999| 婷婷伊人一区| 国产免费黄色一级大片| a'v在线资源| 99999亚洲另类| 边做饭边操逼逼| 亚洲福利中文字幕在线| 久久手机视直播| 亚洲青青草| 中文字幕在线免费观看2| 岛国A V在线免费看| 色爱国产| 九九九九九精品十六| 亚洲精品97久久| 日本www操操操| 日本97久久久精品| 亚洲无码国产探花在线观看| 日韩精品国产一区二区| 狠狠色噜噜狠狠狠狠狠色综合久久 | 超碰九区| 欧美黄色大片在线观看| 女人喷水视频在线观看| 丝袜剧情| 亚州欧美总和| 久久亚洲AV无码专区国产精品| 欧洲与亚洲欧美精品中文字幕| 激情五月综合开心五月| 久久久久久波多野吉衣高潮| 欧美丰满少妇xx高潮| 欧美韩国你懂得在线 | av午夜玫瑰| 黑人精品XXX一区一二区| av天堂影视中文在字幕在线中文| 色97干| 校园春色综合| 免费国产| 九月婷婷| 伊人影院日本| 伊人精品视频| 日本中文字幕在线视频| 春色综合网| 日韩伦理视频| 日韩国产欧美伦理在线| 日韩精品作爱导航| 亚洲无线码一区国产欧美国| 91日韩国产欧美亚洲另类精盘州至城都 | 91啪啪| 亚洲棕合电彰| 99精品视频在线观看免费| 国产成人AV麻豆| 国产福利电影| 噜噜噜噜天天狠狠| 中文字暮97| 成 人片 黄色大片| 四虎884| 97天天搞在线| 欧美另类精品xxxx| 欧美高清16| 神马福利久草| 午夜.DJ高清在线观看免费7| 日韩AV噜噜噜一区二区三区四区| 大香蕉 222| 大香网站| 91精品国产一区三一| 国产亚洲欧洲在线观看| 亚洲综合婷婷| 中文字幕丰满子伦无码专区在线视频最新 | 精品国产91久久久久久一区黄无| 伊人女女资源在线观看| 欧美91在线| 很很很很操| 丁香激情网| 女同女同恋久久级三级| 久久欧美激情| 98超碰日本| 天天舔天天 | 91美| 亚洲色图a| 亚洲偷拍自拍在线视频| 国产真乱mangent| 中文字幕欧美精品亚洲日韩蜜臀| 亚洲 中文 女同| 色久桃花影院在线观看| 91美女在线观看| 9999九九九久久久| 日韩性色b| 亚洲黄网在哪免费看| 国产精品com| 久久久无码精品人妻二区| 超碰97起碰| 亚洲国产av中文字幕久久| 99热这里都是精品| 亚州九九九精品视频| 性站| www.夜夜| 国产日韩欧美三级片| 超碰色男人操熟女| 人妻天堂网| 天天干夜夜操一区二区| 亚洲男人天堂2013| 欧美永久激情一区二区| 日本综合色图| 亚洲AV无码AV吞精久久久久| 97色碰| 色综和网| 人人超碰在线观看黄| 久久超碰久| 97最新在线播放视频| 国产麻豆福利av在线播放| 91网九色蝌蚪操熟女| 美女黄站| 日本媚薬中文字幕在线| 91模特在线观看| 欧美最大综合网| 国产精品久久久久久久久久久久久久久| 超AV色女| 欧美老熟另类| 偷窥自拍亚洲色图| 18精品一区| 国产亚洲一黄| 男人的天堂2010| 亚洲精品国产熟女久久久久久| 日韩中文字幕视频| 伊人操你| 一级毛片久久久久久久女人18| 久久大黄片| 97在线免费| 九九九免费视频| 日本不卡一区| 麻豆色99999| 一本大道青青| 在线视频资源| 综合第一页| 国产美女高潮视频| 男人的天堂久久| 国产精品农村妇女| 蜜臀久久99精品久久久久久-DVD原版全| 草草草视频| 午夜毛片亚洲精品片国产久久久| 人人妻人人玩人人澡人人爽| 精品78| 久久97超碰| 欧美片第一页| 老熟女乱伦片| 国产午夜精品在线观看| 亚洲天堂在线怕怕视频| 国产一区在线观看无码AV| 国产精品美女久久久久AⅤ国产馆| 日韩操逼HD| 欧美人妻一区| 国产1769在线| hd成人一区二区在线| 大香蕉综合在线| 欧美一区91大爱| 色月天AV导航| 午夜毛片高清免费不卡| 久久一二三四五六七八九区| 亚洲熟女诱惑| 黄色大片视频在线免费看| 色视频蜜乳| 久久久久九九九| 狠狠穞A片一區二區三區| 天天肏美女| 超碰碰97| 淫穴高潮色图| AAAA级日本片免费视频| 中文字幕一区电影在线观看| 五月丁香| 欧美久久婷婷| 校园春色家庭伦理欧美激情| 久久精品无码专区| 国产91av在线播放| 免费av在线播放二区| 午夜福利视频在线一区| 91蜜臀熟女| 蘋果手機免費看成人Av| 天天舔日美女视频| 人人操,人人插| 国产版a级片直播在线| 婷色五月天| 男女激情中文字幕| 午夜啊啊| 26uuu性| 久久精视频美日韩在线视频| 久操99| 亚洲久久东京热一二三四五区视频| 香蕉一区二区三区在线视频| 男人天堂日日夜夜| 偷拍视频青青草在线视频| 国产婷婷综合在线观看| 少妇滛荡视频| 91黑丝美女| 五月天婷婷社区| 操逼天美3区| 92福利社视频| 日韩精品人妻中文字有码在线| 91丝袜| 日韩字幕一区| 日韩三四五区| 激情婷婷丁香网| 久久久久久人妻一区精品色欧美| 成人看片网站| 使劲用力艹少妇视频一区二区| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 天天干夜夜鈤| 国产精品宅男免费| 久久综合精品一区二区三区| 黑人性欧美| 一级乱伦网站| 婷婷五月天综合网| 色拍偷亚洲| 大二网站亚洲| 国产AV高清AV无码| 91影视亚洲| 亚洲激情在线观看一区| 欧美久热| 久久久国产护士丝袜美腿一| 色综合国产在线观看| 成人看片网站| 色呦呦、国产精品| 日韩色| 久久伊人大香蕉| 97chaopenrihan| 51一区二区三区| 男人 天堂 日 亚洲| 超碰2017| 五月丁香啪| 久久精品国产97欧美精品亚洲 | 330dv亚洲成年视频网| 精品综合久久久久久五月天| 国产99 中文字幕日韩小视频| 综合激情一一91| 色狠狠 - 百度| 久日91在线| 欧洲综合无码| 欧美日韩国产电影| 久久天天艹| 射 色综合| 亚洲伊人久久精品影院| 日欧亚洲二三区大片不卡| 精品国产国产AV| 亚洲精品人妻在线| 九九九热精品| 五月综合婷婷久久网站| 亚洲不卡一| 老司机射| 天天综合有色网| 无码137片内射在线影院| 欧美综合自拍成人自拍第二十页| 精品人妻少妇| 丁香六月婷婷久久综合| 欧美少妇人妻| 午夜呻吟欧美| 色综合av综合久久| 高凊专区人人操| 国产精品夜夜| 中文字幕精品丝袜| 国产日韩精品无码去免费专区国产| 91国产精品熟女| 男女日B国产| 亚洲国产剧情少妇激情| 九九亚洲| 婷婷五月天激情网| 死我十八禁| 国产精品爽爽va在线观看98| 91无码人妻精品一区二区三区蜜桃| 欧美一级黄片免费播放| 91伊人久久在线| 久久精品中文字幕观看| 97色涩| 亚洲精品人妻吞精av| 麻豆天美AV传媒第一页| 人妻少妇久久久| 中文视频在线观看| 日本99一区二区| 麻豆啪啪啪视频| 亚洲日本天堂| 色婷婷成人| 亚洲人体视频在线观看| 偷拍欧美激情| 日韩色欲久久一二三四区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 嗯嗯啊啊啊好爽| 一区二区娱乐网站| 天堂v无码免费视频| 青娱乐手机日韩在线视频| 亚洲日本韩国在线| 欧美极品美女aaaaaa级黄片| 操91| 亚洲欧洲小说图片视频 | 日韩啪啪啪啪啪| 91岛国动作片| 蜜屁Av| 五月天久久久| 亚洲乱色熟女一区| 97资源站国产精品| 超碰精品在线| 亚洲熟伦熟妇AV无码春色| 啊啊啊不要啊啊受不了了视频在线 | 精品黄色电影| 日日骚精品视频| 亚洲天堂男人在线| 免费在线黄片视频| 视频不卡中文字幕| 色香91| 国产suv精品一区二区四区999| 国精精品无码一二三区水多多| 精品黄色电影| 久艹99| 97久久精品亚洲| 黑人白女精品一区| 色香欲影| 小骚逼被操的爽不爽| 天天日日舔舔| 亚洲va有码在线天堂| 少妇久久久久久久久| 亚洲啪啪啪啪视香蕉| 99国产精品人妻人伦| 一区二区三区探花在线观看| 91久久国产精品| 亚洲天堂情色| 国产精品九9| 久久五月丁香| 美女国产一区二区久久| 永久免费观看的毛片的网站| 亚洲中文字幕久久无码精品| 97超级欧美| 校园春色之综合网| 综合操逼| 欧美亚洲国产91在线| 欧美 亚洲| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | AV乱伦专区| 97亚洲在线| 91大香蕉伊人| 啊啊啊97视频| 夜夜高潮夜夜爽高清视频一| 久/久精品99看9| 国产精品午夜福利亚洲综合网| 天美传媒婬乱在| 天天久久久久久| 国产风韵犹存熟妇三区| 精品久久久久瑟瑟| 中文字暮97| 男人的天堂不卡一区二区| 无色无码| 伦伦成年午夜免费视频| 亚洲无码成人精品| 岛国在线国产| 翔田千里无码一区| 丰满人妻-区二区三区| 99re28在线观看| 亚洲色综网| 欧美暴力猛交| 日本日日色视频| 色爱综合网欧美| 91人妻丝袜无码| 五月婷婷影院| 九九99久久| 丁香五月激情综合国产| 2020国产精品| 丁香六月婷婷综合| 欧美v亚洲v日韩v最新在线二区| 乱欲一区二区| 中文三一区| 友优传媒精品在线一区二区| 美女黄站| 少妇综合| 美女熟妇色| 岛国大片国产| 国产不卡免费在线视频| 日韩欧无码一区二区三区免费不卡| 97亚洲综合| 日本精品中文字幕视频| 99久国产精品午夜性色福利| 色综合一本| 性色AV蜜色av色欲av| 久久精品 六十路 熟女 欧美| 日本大香蕉综合网红本杳社区| 无毛精品| 无卡一区=区| 久久久涩| 国产91影院| 人妻一二三区| 欧美91精品国产自产| 黄色片A级一区二区三区| 欧美一级美片在线观看免费| 亚洲成人日韩小说| 亚洲一区二区三区欧美日韩| 夜间福利片1000无码| 国产欧美亚洲精品a第2页| 久色网| 成人精品视频一区二区| 校园春色亚洲无码| 国产青视频| 久久久九九| 日1区2区3区2020| 久久久久久九九九| 看全色黄大色大片免费视频| 伊人五月天婷婷| 婷婷视频在线免费观看| 99热这里只有精品9| 麻豆AV一区二区| 二级久久网| 中文字幕二区| 91亚洲在线| 十八禁视频一区二区| 女人午夜视频777| 黑操B| 精品一二三区四视频| 欧美天天在线| 亚洲精品久久久久毛片A片拉屎 | 在线日韩日本亚洲国产| 国产大学生口爆吞精合集| 在线中文字幕极品av| 国产少妇与亚洲av| 大香蕉色欲AV| av影片在线观看不卡| 欧美顶级黄色大片免费| 国产成人无码高清| 欧美中文字幕一区| 久久久月天| 92性色国产午夜福利在线661 | 亚洲天堂区| 欧美亚洲se91| 中文乱码字幕观看| 成人无码在线超碰网| 色噜噜综合网| 亚洲欧洲日产国产综合网| 久久久久久久久久久久97| 日韩成人精品| 加勒比大香蕉视频在线| 热热热热日日漂亮永久永久国产日| 校园春色美腿丝袜 | 99精品无码| 日韩精品在线视频在线观看| 天天爽天天干| 日本高清熟女久久一区| 亚洲男人天堂网| 国产精品一区二区黄片| 超碰超碰95| 午夜九九| 精品国产一区二区三区在线播出| 玖玖色综合| 色踪合AV| 91伊人久| 丰满翘臀美女影院视频| 亚州五月| 91足交| 亚洲黄日韩无码专区| 激情婷婷丁香| 欧美的性爱网站免费| 熟妇在线视频一区二区| 亚洲天堂一二| 国产一级内射高清视频| 8050午夜少妇无码| AV在线资源| dy888午夜老子影视达达兔| 嫩草影院在线观看精品 | 78精品| 操逼无码一区| 99抽插| 日韩免费a级毛片无码a∨| 亚洲激情综合| 久热精品在线| 国产激情av女片自拍| 玖色AV| 精品人妻少妇| 十八禁啪啦拍视频无遮挡| 91伊人大香蕉| 高清有码一区二区| 精彩视频日韩| 99re免费| 久久久久久人妻| 超碰色大香蕉| 亚洲精品三| 97国产伦理| 综合伊人激情| 少妇与黑人高潮在线| 国产肏逼网站| 丁香五月激情综合| 中日韩久久久免费看| 精品久久久高清无码| 欧美 亚洲 制服 精品| 欧洲亚洲人妻无码高清久久三区四区| wwwxxx日本爽| 久久久久ab| 不卡av在线中文字幕| 色婷婷综合网站| 久久久91福利姬| 国产亚洲日本精品在线| 九九九九免费高| 思思热er精品视频| 天天天天天超碰| 日本中文熟女视频| 亚洲大色堂| w w w.久久精品| 国产农村妇女精品一二区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 97 色综合| 九九99精品| 欧美96精品在线| 国产欧美一区二区| Av手机版天堂网| 制服诱惑亚洲一区二区三区在线观看| 日韩欧美tv一区二区在线观看| 热热热热日日漂亮永久永久国产日| 377p欧洲日本亚洲大胆| 九久久精品| 97干在线视频| 久久精品成人| 久久久一区二区三区四曲免费听| 蜜臀久久99精品久久久电影| 大香蕉色网| 国产性爱乱伦AV| 97频视在线| 无码自拍SM| 久久久三区二区一区| 日韩人妻免费精品| 日韩精品一区二区人人人| 91九色精品熟女内射| 久久超碰网| 欧美美女啪啪视频| 欧美日韩不卡a片| 91美女视频。| 国产自产91区13区| 一牛影视成人片免费| 啊啊啊操死我了| 大香蕉在线视频15| 免费观看国产小粉嫩喷水精品午| 天天干夜夜| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 色屁屁影院www国产| 色网1| 激情一区二区三区在线观看| 久久精品午夜国产亚洲AV无码| 蜜乳av一区二区三区四区不卡| 97av在线视频| 青青青国产手线观看视频2| 劲爆欧美人妖三区91| 久久AV无码网址| 成年无码动漫av片无尽在线| 久久精品国产精品| 亚洲,欧美,春色,另类| 中文字幕久久婷婷丁香五月天| 日韩三级在线观看mp4| 免费福利视频中文字幕| 日比av无码| 欧美日韩亚洲天堂网| 亚洲天堂7777| 日本女人久久久| 俺去久久| 亚洲乱色熟女一区| 色777999综合| 色盈盈影院| 国产精品视频精品一二| 欧美后入| 国产又长又大又粗的视频| 欧洲综合视频| www.黄色在线| 啊啊啊 在线| 宅男91视频在线播放| 欧美疯狂做爰xxxx| 色综合天天爱去电影网| 粉嫩小泬久久久一区二区| 天天综合~91入口| 欧美亚洲中文字幕| 国产传媒av天美传媒在线| 麻豆黄四叶草网站| 99综合视频一体| 级做a爱无码性色永久免费| 中文字幕一区二区无码成人| 龙兴卡官方查询| 亚洲天堂男人在线| 成人性爱高清视频免费看| 亚洲无码太久| 天天干人人看综合| 亚洲第一页色网| 新视频sss国产| 天美一二三在线观看Av| 国产AV无码AV| 日韩电影在线观看网址| 综合色区偷拍| 蜜桃AV天堂| 操曰本熟女| 中 文字幕一区二区三四 五 区日 日 骚 | 精品国产72| 1024亚洲中文字幕久在线看片你懂的| 免费看日产一区二区三区| 国产一区二区成人av在线播放| 久久加勒比| 狠狠色五月亚洲91| 伊人991| 久草新免费| 欧美成人精品一区二区三区| 男人的天堂亚洲| 狠狠干狠狠干| 五月大香蕉| 手机在线A片| 久久精品国产AV一区二区三区| yiqicaoav| 91精品91久久久久77777俄罗斯老妇姓x| 久9久| 1024亚洲中文字幕久在线看片你懂的 | 首页中文字幕中文字幕免费| 色色色色日本| 少妇无码av专区线| 亚洲色图尤物视频| 日本成a人v网站在线观看| 麻豆天美传媒毛片| 最新制服中文第一页| 久久视频,这里只有精品| 91 亚洲情侣偷拍 久久| 青青草视频导航官网| 国产精品欧美激在线| 极品内射| 热热热热日日漂亮永久永久国产日| 青青草视频久久久久| 一区二区精品更新提醒| 亚洲第一页欧美| 日本999精品视频| 第二页中文字幕| 国产丝袜美腿美女麻豆| 日本大香蕉| 91麻豆一二三区| 天天综合影院91| 超碰人妻中文在线| 色天堂在线观看| 另类av天堂| 久久久国产精品亚洲精品| 九一精品牛牛一区二区| 97在线青| 死我十八禁| 久久草视频污视频| 久久久成人免费av电影| 日韩91网| 亚洲一二三四区| 日韩三级在线观看网站| 午夜一级免费毛片| 大香网站| 高清在线偷拍自拍视频| 天天操夜夜操| 日韩AV一区二区三区三州三州| 丝袜视频一区二区在线播放国产中文 | 色99在线| 翘臀vidoes| 国产亚洲 中文欧美久久| 国产传媒美日韩av| 亚洲综合情色| 啊啊啊啊好疼视频| 欧美亚州综合网图片| 又粗又长又大国产不卡| 日韩中文字幕国产| 久久精品店| 欧美天天插| 欧美黑人与女人91~| 久肏视频字幕| 欧美久久婷| 看一级黄色视频| 强奸乱伦AV一天堂网| 午夜精品久久久99| 亚洲色鬼| 99在线精品视频| 日韩色| 五月丁香六月综合缴清无码| 久久爱97| 97超碰免费生活| 91总综合网| 亚欧国产无码精品在线| 91在线精品一区二区三区| 麻豆成人AV| 日韩精品一区二区人人人| 国产和美国毛片| 红杏大香蕉| 日韩精品区二区三区不卡| 小少妇| 在线黄页看毛片| 天天看综合网| 午夜精品久久久久久久99热影院| 欧美在线干| 大香网伊人久久综合网eew| 精品成人女人久久| 狠狠爱夜夜| 操迟操逼在巾线Fre看| 国产精品视频麻豆入口| 99性视频| 欧美国产有色电影| 爱妻综合网| 免费精品无码一级毛片牛牛影视 | 18禁的网站在线| 99精品网| 熟女一区二区三区四区| 免费视频观看60秒| 秋霞一级鲁丝片A片| 久久九九网| 91久久久久久久| 久久一二三四| 国产动漫操逼视频| 9精品在线| 91精品老女人| 日韩性爱播放| 国产精品天干天干综合网麻豆| 国产女人视频三四五区| 亚洲国产午夜真人一级片中文字幕精品黄网站| 日韩三级一区 | 色色五月婷| 96爱综合| 国产乱伦视频污| 99热这里只有精品8| 久久免费看高潮毛片韩国| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 日韩乱伦影音先锋| 亚洲小说视频| 狠狠色噜噜狠狠狠狠狠色综合久久| 日韩人妻资源在线看|