色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
欧美人人曰人人操人人射射| 中文字幕精品亚洲熟女| 秋霞成人一级在线观看| 免费视频一二三区| 亚洲资源站| 欧美精品偷拍| 粘花网06av视频| 天天做日日做天天欢。| 操B视频日韩无码| 亚洲一区二区av| 人妻内射一区二区在线视频| 日韩99999色| 91碰碰碰| 国产亚洲色婷婷久久99精品91| 亚洲日韩视频二区| 2017av无码免费无线播| 91欧| 亚洲丝袜99| 亚洲情色一区综合| 性感女人网页在线观看视频| 国产精品一区二区黄片| 日韩人成网站在线播放| 性爱网站一区二区| 午夜性生活av免费在线看| 日本幼女18+| 精品中文日韩字幕视频| 国产AV天美| 九久久九精品视频| 亚洲官网在线| 中文字幕人妻色偷偷久久皮| 亚洲棕合电彰| 中文字幕加勒比海高清无码免费视频| 久久久9视频| 狠狠干狠狠色| 深夜啪啪啪视频免费| 日韩AV一起草| 激情五月天丁香| 韩国轻伦国内自拍一区| 精品久久久久久中文| 亚洲AV无码国产成人| 116美女午夜| 国产久久一区二区午夜| 啊啊啊啊嗯嗯嗯用力好爽 | 后入式999| 无码视频一区二区| 欧美精品不卡一二三四在线91| 加勒比东京热五月天天堂网| 久艹99| 欧美一二级| 国产成人啪一区二区| 熟妇高潮二区三区| 欧美狠狠狠| 97K超碰在线| 久久三区四区| 日韩免费a级毛片无码a∨| 在线免费观看高清无码视频| 亚洲密乳AV| 久操网视频| 老汉网| 综合网亚| 竹菊一区二区三区AV线| 久久男人的天堂| 欧美精品三级黄片| 亚洲日韩美国人妻| 六月丁香婷| 亚洲色人妻综合| 欧美精品双插| 立川理惠被中出无码| 人人摸.人人色| av天堂精品久久| 精品国产精品一区二区| 青青操在线亚洲视频观看欧美在线| 男人干美女| 青青草女人天天干| 亚洲欧洲自拍| 26uuu国产日韩综合在线观看| 久久香蕉综合一本到3atv| 操逼操操操91| 亚洲激情色片 | 亚洲一区二区AV| 91欧洲国产成人久久精品网站| 国产成人91一区二区三区| 免费久久一级毛片大黄| 五月天偷拍| 欧美视频激情久久久久久| 91少妇通奸网站| 亚洲男人天堂av| 国产精品毛片?v一区二区三区| 任你爽视频| 91精品人妻偷情| 超碰成人公开| 台湾佬中文娱乐自偷自拍| 亚洲在钱| 八戒午夜福利理论片| 久久九九99| 天天插夜夜爽| 国产家庭乱伦表演| 成人夜夜爽| 国产熟码AV| 日本人妻丰满熟妇久久久久久| 国产一区二区视频在线播放| 日韩不卡网操逼中文字幕日韩| 1240青青草一区二区三区视频天爱| 黄色AAAAA欧美| 久久內射| 中文字幕国产| 激情小说亚洲图片| 欧美精品23| 精品人妻一区二区三区-国产精品| 日本高清视频在线观看黄已三辽| 超碰成人最新最好看| 日韩在线视频1234| 999精品久久久久久久| 久久肏大逼| 精品999日本| 久久久久久久强迫| 九九无码久久精品视频| 春色综合网| 中文字幕 国产 精品| 国产在线精品电影观看| 熟妇国产免费一区| 最新亚洲人成网站在线影院| 91人妻视频在线| 精品久| 啊啊啊好爽快点啊啊啊嗯嗯| 女优大全 - 91n| 日韩中文字幕视频在线观看| 偷拍五区| 久久精品国产72国产精品福利 | 亚洲色欲天天天堂色欲网女| 狠综合网| 亚洲经典啪啪| 久久久久九九九九| 91 国产丝袜在线放观看| 曰韩中文人妻视频| 欧美性,色九九| 91高清无码下载| 熟女天天干| 一二三四视频中文字幕在线看| 艳尻美人妻| 91精品久久久| 我想要啊 啊 啊| 欧美一区二区亚洲天堂| 日韩无码一级黄色av片| 综合激情一一91| 国产一级αv免费看片| 九九九只有精品| 无码国产精品午夜不卡(| 超碰吊日色| 欧美99| 97se亚洲综合自| 九九热精品在线| 欧美一级黄色免费专区| 久久久久久久久久久久久久久久9| 日韩性爱视频在线免费观看| 久久久精品网| 一区,二区,三区视频| 凹凸久久人人| 高清有码一区二区| 亚洲中字慕不卡| 青青操青娱乐| 久久久久久久久成人av解说| 超碰在线一区| 嗯,啊。舔我逼| 久久香蕉影院| 欧美v亚洲v日韩v最新在线二区| yazhououmeizongya| 男人亚洲91首页在线| 五月天我淫我色av| 青青草华人在线欧美在线| 欧美综合站| 啪啪视频亚洲第一| 一区二区影视| 亚洲 欧美 日本 国内 首页| 久久久久久久久久久久黄色 | 人人操人人色人人摸| 亚洲国产中文字幕| 中文字幕版| 日本韩欧美在线播放a| 日韩免费a级毛片无码a∨| 久久精品成人一区二区三区蜜臀| 18一区二区三区| 丰满岳乱妇一区二区三区| 97欧美综合网| 色在线69堂| 国产天美欧美| 蜜桃色色网站视频三区| 国产精品久久久三级无码| 国产强奸AV在线| 亚洲,欧美,综合网| 乱色老一区二区三区的观看方式 | 免费国产电影一区二区| A级国产欧美激情在线| 激情文学亚洲| 天综合网欧美| 亚洲精品影视老司机| 中文字幕99999| 97操综合| 精品二999| 久久国产视频专区一二三| 99操| 国产一区二区三区中文字幕| 欧美大香蕉卡久久| 久久女人一区二区三区| 五月天婷婷久久| 久久欧美性爱视频| 无套内射性感少妇视频| 日韩精品在线观看网站| 中文字幕精品日韩中文字幕| 噜噜噜在线视频| 内射小黄片| 亚洲婷婷丁香在线| 婷婷超| 老司机福利青青草| 日韩av在线精品观看| 伊人超碰97| 91精品国产91熟女| 91亚洲欧美激情| 亚洲欧美内射| 亚洲综合网91| 九九九久久久| 乱伦强奸区日韩| 午夜性生活av免费在线看| 亚洲色狠| 国产精品白丝在线播放| 萌白酱自拍视频| 黑人嘿嘿嘿超爽免费视频| 日韩人妻制服丝袜av| www亚洲免费| 午夜啊啊| 26uuu国产日韩综合在线观看| 亚州宗合另类| 超碰97在线 欧美 国产| 91精品婷婷国产综合久久竹菊| 欧美中文字幕一区 | 超碰资源亚洲97| 97蜜桃综合| 欧美日韩资源在线| 是还免费视频1727我| 五十路人妻在线| 熟女熟妇伦久久影院毛片一区二区| 欧美国产操逼| 综合色好色| 强奸抽插av| 国产精品蜜臀久久久久无码AV| 一级黄色牲爱A级片| 你懂得91| 麻豆av一区二区三区| 在线视频一区二区传媒| 日日97| 久久这里只有精品9| 国语av狠狠色丁香婷婷综合激情| 亚洲最新av无码成人精品区| 国产一区96在线| 台湾大香蕉99热| 日韩精品系列| 99久久亚洲精品无码毛片潘甜甜| 亚卅熟女乱色| 久久一二三级一一一| 亚州精品人妻一二三区| WWW啪啪的com| 伊人青青一区成人视频在线观看区| 白丝jkav| 亚洲欧洲激情卡通另类文学四射小说网站| 国产精品制服丝袜清纯唯美| 欧美性天天影视| 后入式在线免费观看60秒| 日韩色欲久久一二三四区| 国产亚洲99久久精品| 97日视频| yaouchengrenav| www99热| 欧美情色贴图| 亚洲电影中字一区二区| 大香樵伊人网| 欲综合网| 人、人、摸,人、人、草| 不卡九肏| 91狠狠| 99热精品在线| 97超碰影音| 97精品熟女少妇一区| 日韩av熟女一区二区三区成人| 老鸭窝在线视频播放| 26uuu性| 人妻精品综合中文字幕在线| 亚州性色| 精品国产少妇高潮视频| 舔足天天操天天射| 亚洲91极品| 人妻久久| 色欲天天综合网| 囯产精品强| 2019久久久久久久久福利| 熟妇最新先锋一二三区| 丰满人妻被猛烈进入中| 97午夜剧场日韩| 丝袜美腿av女优在线| www.超碰| 爱爱动态60秒| 国产精品网站免费| 国产黄色影片在线观看| 天天激色| 狠狠爱综合网| 日本不卡二区| 97视频620| 高清国产精品无码| 91美女色视频亚洲| 亚洲天堂7777| 久久久亚洲熟妇资源| 秋霞视频一区二区 | 久久黄色视频一区二区三区 | 久久草草欧美精品| 国产精品一二三区18| 欧美超碰96| 中文字幕一区二区三区字幕| 超碰在97| 一本道综合色图| 欧美日韩资源| 96免费视频在线| 国产99精品一区二区三区免费| 成人在线视频一区| 九九aV| 欧综合网| 欧美韩国你懂得在线| 青椒国产97在线熟女| 黑人粗大V S日韩女优视频| 日本三级韩三级99久久| 97色综合中文网| 女人一区| 人人透人人操| 97爱爱爱| 综合色久欲| 欧美成人9797| 91在线超高颜值国产| 大但人体久久久久| 色呦呦、国产精品| 人人操人人摸人 | 亚洲综合五月天婷婷丁香| 亚洲国产高清福利视频| 中文字幕综合人妻| 可以免费观看的AV| 韩国手机不卡无码三级视频| 天天爽入口| 久都青青视频| 亚洲aV性爱| 国产精品女aA片爽爽视频| 亚洲少妇在线影音| 亚洲色图激情小说| 日本视频在线观看污污污| 欧美一区二区| 综合九九| 中文字日本乱码| 99在线观看| 国产成人午夜视频网址| 欧州一区二区三区四区| 日本欧美不卡| 精品人妻伦一区二区三区久久| 国产精品久久久久久久久久久久久久吹 | 日本道不卡| 超碰在线1234区| 91女人的网站| 久久婷婷视频| 免费综合亚洲中文| www.91逼逼.com| 啊啊啊啊啊好多水| 日韩欧美麻豆| 欧美亚洲高清晰| 91网亚洲| 综合激情97 | 亚洲AV色图一区| 欧美中字二区| 中 文字幕一区二区三四 五 区日 日 骚| 九九黄色视频在线观看| 日本天天操| 日本乱人伦片中文三区| 国产强奸乱伦第1页| 就去色综合| 97草草| 国内成人圈中文字幕无码视频| 新97国产超碰| 91草草草| 传媒免费一区二区三区| 天天做天天爱天天爽AV| 亚洲国成人情色好看电影| 久久久98网站免费视频| 日韩人妻精品久久久久| 婷婷综合激情| 97激情97激情| 久久精品人妻一区二区| 日本久久综合| 91综合国产精品| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 麻豆天美在线喷水AV| 亚洲日韩人妻中文字幕一区| 无码区蜜乳| 亚洲日韩在线a不卡99精品| 日韩三级在线观看网站| 91久久九九精品国产综合| 亚洲中文字幕在现观看| 久久久精品中文字幕爱豆| 日韩av性爱在线播放| 2023天天操夜夜操| 激情抓乳插进去啪啪啪日韩| 一本一道vs波多野结衣| 婷婷亚洲天堂| 色一射色一射| 亚州综合图片| 人爽不卡视频| 一区二区三区亚洲| 成片免费观看视频大全| 中 文字幕一区二区三四 五 区日 日 骚| 禁十八久久| 大香蕉之青青草原| 色欧洲| 国产精品蜜臀久久久久无码AV| 无码天天操| 99亚洲天堂| 人妻一区久久二区三区色播| 在线五区| 国产成人99久久亚洲综合| 3P乱轮视频| www.久久99| 91麻豆天美国产| 懂色av中文字幕一区二区三区天美| 久久精品99| 国产97视频| 三级激情网站| 好淫网一二三视区| 久久精品91| 久久中出| 日本久久精品| 亚洲熟女乱综合一区二区三区| 噜噜瑟| 狠狠色伊人亚洲综合网站色| 丁香婷婷九月| 色九九综合AV| 自拍偷拍国产欧美日韩韩| 亚洲一本大道中文字幕无码在线| 亚洲天堂第一页| 99热这里都是精品| 天天日天天干天天整| 久久久久国产亚洲一区欧美色图日韩| 另类老少妇| 搡老女人911熟妇老熟女| 精品区国产区一区二区三区| 欧美日韩亚洲高清不卡一区二区三区| 日韩在线观看AV| 国产传媒操逼视频| 久久视网78| 久久东京热久久| 欧美日韩性爱操大逼| 久极品在线观看| 男人的天堂久久| 久久综合资源一区二区| 亚洲不卡不卡中文字幕不卡| 黑人黄片在线免费观看| 日韩精品怡红院| 国产高清午夜成人在线观看| 亚洲日产专区| 欧美性暴力猛交| 天天插夜夜操| 97碰碰日本乱偷人妻中文的| 国产精品96| 国产 v乱码一区二| 97久操| 亚洲 一区二区 自拍| 亚洲天堂女优在线| 大香蕉一级黄色片久久| oumeisetu综合| 91综合无码| 五月丁香色综合| 夜夜国自区| 无码精品人妻一区二区三区妖精 | 婷婷美人网| 视频国产欧美在线播放| 少妇二级| 久久久久久9| 五月激情在线| 91精品人妻一品二品三品| 亚洲日韩成人性爱视频| 欧美高潮| 国产 三级自拍| 后入式视频国产自| 操逼www.| 久久久九精品| 亚洲成人久久一区二区| 内射中国少妇高清视频免费视频 | 天天影视之亚洲综合网| 午夜无码熟妇丰满人妻| 精品人妻一区二区三区四区| 破苞ⅩXXX性无码动漫无码| 亚洲男人天堂视频| 丁香五月自拍| 2020中文字幕在线观看| 99热综合| 成人线上超碰| 久久夜夜夜夜| 日本操BAV| 俺去啦自拍| 天天干天天燥| 中文字幕人妻丝袜乱一区三区| 一区二区 韩日AV| 色路综合| 国产超碰国产97| 51国产午夜精品视频| 手机不卡视频不卡在线一二三区 | 精品久久久久久中文| 啊啊啊啊啊啊啊在线| 免费中文在线| 久久久免费高清中文视频| 自偷自拍的亚洲视频| 久久久啊啊啊| 青青草伊人久久| 牛牛aV| 蜜桃精品一区二区三区久在线| 天天操天天射天天日| 国产精品粉嫩福利在线| 嗯嗯嗯好爽| 51久久夜色精品国产麻豆| 极品一区二区三区免费| 日韩婷婷| 欧美大波激情xxxx| 中日韩久久久免费看| 91色情黑丝搞鸡在线观看一区二区三区三州| 婷婷激情四射| 99热日| 成人色女网| 蜜桃无码AV一区二区| 精品一区二区国产日韩| 欧美午夜熟妇黑人精品91| 国产精品九9| 久久精品亚洲成a人天堂| 97超碰磁| 久久二| 国产精品久久9| 国产成人久久久精品免费AV| jazzjazz国产精品麻豆| 久久久成人精品| 日本欧美韩国日产片片在线看免| 盗摄女人妻在线| 国产操逼网站亚洲一级黄色| 香港久久久| 91路www| 欧美最婬乱婬爆婬性视频 | 欧美青青视频| 亚州人妻| 国产精品经典一卡久久久| 久久久夜夜嗨免费视频| 国内偷自视频区视频综合| 搡老女人老熟女91老熟女综合网| 国产精品电影推荐| 亚洲综合码| 久久激情综合| wwwss在线观看| 天天懆天天日| 九九视频黄色片| 91综合在线| 99中文字幕| 人妻夜爽夜夜爽| 蜜臀在线网站| 综合熟妇一区二区三区| 激情五月天校园春色网| 欧美久久婷婷| 日本东京热大香蕉a片| 五月婷色| 久久欧美1卡2卡3| 天天综合91在线| 99这里有精品| 国产精品久久久久久片| 亚洲无码日韩电影| 九久精品| 综合 亚洲 欧美| 99久久国产精品免费高潮| 92一区二区| 97欧美| 啪啪综合网| 亚洲综合欧美| 亚洲中文字幕在现观看| 日韩字幕一区| 国产精品久久99日日| 熟妇xxxxx性春色| 色色网91| 日韩av一级黄片| 乱伦系列一区二区| 久久老子无码午夜伦不卡| 大香蕉乱伦视频网| 伊人久久国产免费观看视频| 97爱亚洲综合色| 五月婷婷hd| 91天美传媒在线观看| 午夜福利在线合集| 日韩欧美天堂| 日本女人久久久| 性色亚洲| 久久久久久久国产a∨| 日韩亚洲Av人人夜夜澡人人爽| www亚洲免费| 欧美性巨大╳╳╳╳╳高跟鞋| 亚洲九月丁香| 欧美有码亚洲中文字幕一区二区三区四区| 亚洲情色图片区| 超碰综合97在线| 91狠狠| 亚洲制服aⅴ中文字幕| 97啪啪| 青青青操| 狠狠爱AV| 韩国手机不卡无码三级视频| 96久久精品一二三区色欲| 久久这里只精品99re66图| 亚洲色人妻综合| 精品久久在线区一区| 使劲用力艹少妇视频一区二区| 美女天天干| 探花视频免费观看国产专区| 亚洲日韩视频二区| 久久九色| 天天澡天天爽日日av| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 三及片网站| 97这里只有精品| 操逼操逼视频操逼| www鬼畜国产男人的天堂| 蜜臀一二三| 日韩精品一区二区人人人| 国产 亚洲 一二三四| 久久丁香五月天| 久久久久亚洲一区女同性恋中文字幕| 久久丝袜| 成全在线观看免费观看| 天堂岛av| 九九九只有精品| 级做a爱无码性色永久免费| 狠狠干狠狠色| 欲色啪| 国产精品亚洲无码| 97干日韩| juliaann欧美丝袜办公室| 3d成人精品一区二区| 久久不卡一区二区| 97天天| 亚洲色诱惑| 夜夜 中文视频rt| 国产精品爆乳懂色蜜乳| 国产按摩一区二区三区| 97人人色| 久9视频| 欧美91色| 女人喷水视频在线观看| 日日日骚女人精品| 欧美日韩另类在线播放| 91 国产丝袜在线放观看| 人妻精品一区二区| 五月丁香色色网| 久草毛片| 久9热| 99re99在线视频| 香蕉人人操tv| 破处bbq| 国产精品宅男免费| 九九九九免费视频| 欧美一区二区三区另类精品| 久久综合女优| 视频不卡中文字幕| 99热综合| 亚洲精品一二牛牛| 免费网站观看www在线观| 亚洲欧洲综合av在线| 日本最新免费韩国1区2区视频播放| 国产av强奸美女| 屁股久久久久久久久| 亚州操逼图| 99热精品在线观看| 丁香九月婷婷| 免费精品国偷自产在线在线| 天天碰操中国年青熟妇| 亚洲?V无码专区在线电影| 亚洲第一综合| 国产日比| 国内毛片无码一级毛片| 伦伦成年午夜免费视频| 91大神精品长腿在线观看网站| 日本二区不卡| 男女国产精品| 97露脸精品丝袜| 伊人视频| 欧美后入式| 免费人成毛片乱码| 熟女五十路一区二区三| 国产传媒操逼视频| 国产精品秘 福利姬在线观看| 欧美很很操视频| 人妻嗯啊啊在线播放| 不卡人妻少妇精品毛片一区23区视频| 怡红院成人av| 好涩综合| 嫖老熟女A片一二三区| 五月婷婷六月丁香| 青青草中文-久久青草精品一区二区三| 91狠| 日本不卡中文| 欧州一区二区三区四区| 亚洲综合中文字幕有码 | 国产欧美日本亚洲精品| 超碰精品在线| 久久精品视频一区三区小泽玛利亚| 玖玖爱视频网站| 午夜一级免费毛片| 大香蕉宗合网在线| 亚洲诱惑天堂 | 国产天天看| 亚洲AV不卡在线观看| 亚春色色| 超碰国产在线| 色五月AV在线| 91成人久久| 岛国人妻少妇av在线观看| 日韩一级二级三级| 丁香六月激情| 国产美女高潮视频| 日日夜夜狠狠| 嗯嗯啊啊啊啊轻点视频| 看一级特黄a大一片| 国产60区。| 亚洲强奸乱伦影视网| 欧美成人国产精品| 亚洲图片欧美在线视频| 丝袜喷水在线| 久操视频在线观看| 无码heyzo高清一区| 日本不卡高清免v欧美日韩在线观看| 欧美亚洲第1页| 中文字幕精品码亚洲| 色99视频| 青娱乐黄色录像| 国产精品3| 爱射综合| 中字幕人妻一区二区三区| 欧美色五月| 一级毛片久久久久久久女人18| 中文乱码99| 久久久久九九九| 91天天美女| 久草新免费| 5278欧美一区二区三区| 青草园大香蕉| 噜噜在线| 人人操人人操人人操人人操人人操人人人11.CM | 91婷婷伊人狠人| 双插性欧美一二三区| 国产精品久久久久久久久久久久| 国产精品一区二区黄片| 免费a v| 国产精品天干天干综合网麻豆 | 久草老司机| 中文字幕 一区二区 亚洲无码| 日韩一区二区高清在线观看的| 中国熟妇| 欧美在线干| 国产夫妻一区二区| 2018色综合天天操| 97人妻免费中文字幕| 欧美人妻少妇| 麻豆91熟妇人妻中文字幕茄子| 亚洲天堂资源| 国内97干免费看| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 熟女乱伦A| 99久久久无码精品国产人| 91亚洲在线| 久久伊人东京热| 狠狠色一区二区中文字幕| 久久色人体| 久久精品一区二区三区不卡| 亚码激情| 久偷拍| 囯产精品强| 亚洲骚男同com| 久草毛片| 青青草中文字幕| 国产精品一区二区a| 人人做,人人操,人人摸| 国产操偷| 99久久99九九99九九九| 91狠| 中文字幕十五区| 死我十八禁| 成人十八禁日韩欧美一二三| 老鸭窝日丰县女人| 懂色av一区二区三区天美传媒| 91色狼| 日韩女模中文造逼| 亚洲av总站| 午夜经典| 欧美久久伊人| 做爱福利视频一区二区| 大香蕉欧美| 国产 丝袜 欧美中文 另类| 夜夜国产一区| 69精品| 久草福利在线资源站| 日本曲间由美性生活片| 欧美伦乱爱| 精品国产乱子伦一区二区三区,精品一| 福利视频香蕉免费一区二区在线| 一区二区三区探花在线观看| 天天插天天操| 91电影色诱| 97视频播放| 免费啪啪啪网站18岁| 亚州男人的天堂| 亚洲一区中文精品| 日本99热| 激情文学小说一区二区| 黄色片一区二区三区四区五区| 久久久久久欧美精品se一二三四| 中文字幕视频免费| 日韩精品碰碰| 精品人妻一区二区三区视频| 国产精品美女久久久久AⅤ国产馆| 亚州情色j区| 亚洲欧美电影| 91在线视频免费中出| 亚欧无码线免费观看视频| 夜夜爽爽爽| 免费国产电影一区二区| 绑缚麻绳人妻寝取完整版| 久久精品午夜国产亚洲AV无码| 91丝袜美女| 1级黄色夫妻对换性交免费看| 国产精品午夜成人福利| www久久国产精品| 四虎884a| 久久婷婷五月| 久热69九色熟妇97| 国产91亚洲精品一区二区三区| 99在线精品观看99| 青娱乐淫乱1314| 口爆欧美91| 天天综合-91入口| 欧美中字不卡| 99热日本| 国内亚洲高清无码| 日韩特一级久久| 日韩AV电影网站| 91精品女厕偷拍视频| 热G综合热G中文| AV一二区| 天天色天天干天天射| 性暴力欧美猛交在线直播| 国产不卡中文字幕免费avi| 久久美女福利是上海美女| 极品色综合| 99国产精品自在自在| 中文精品少妇天堂| 九九热免费国产视频婷婷伊人| 亚洲欧洲成人在线电影| 色婷婷一区二区三区久久午夜| 9久热| se吧提供91精品国产91久久久久久| 在线情色电影 91大 | 国产中文字幕在线| 日日天天久久啊啊aaa| 天天拍夜夜| 亚洲清纯唯美| 任我爽视频在线观看| 大屁股xxxxx| 色狠狠 - 百度| 日本高清视频xxxx| 五月丁香黄色网| 国产精品剧情| 人人妻人人爱人人玩| 亚洲色图欧美色图在线播放| A一级色女| 国产人妻精品一区二区三区秋霞 | 欧美亚洲中文字幕| 高清国产精品无码| 青娱乐999| 亚洲无码com| 丁香色狠狠色综合久久小说| 国产专区路线| 六月激情婷婷| 国产玖玖| 国内操逼视频二区| 性交一区二区在线播放| 天天内射| 久久久久久中文| 亚洲图片91| 永久电影三级在线观看| 成人麻豆av电影网站| 日本www操操操| 亚洲熟女中文字幕在线| 91丨国产丨白浆| 欧洲射精91| 懂色av中文字幕一区二区三区天美| 在线观看 99热| 91精品国产91熟女| 亚洲男人综合| 欧美日韩国产在线| 中文字幕黄色一起草| 亚洲大色堂| 男人的天堂久久狠| 老熟女乱伦一区| 屌色在线97视频| 天天影视之亚洲综合网| 夜夜草我| 91碰碰| 青青草色插素人| 日韩综合无码一区久久92| 色成人Www精品永久观看| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 免费观看国产小粉嫩喷水精品午| 国产成人+综合亚洲+天堂| 校园春色 亚洲| 国产大学生口爆吞精合集| 日韩乱码Av| 97超碰公开| 太久视频| 日韩欧美天天爽爽爽天天爽爽| 色吧91| 91oumei| 久久精品国产亚洲5555| 国产不卡片| 一道α片欧美| 久久深夜无码| 91综合色噜噜| 欧美性暴力猛交XXXX | 国产精品视频麻豆入口| 狠色婷婷久久一区二区三区_| 波多野结衣AV无码一区| 亚洲色色色| 91色花堂| 99热伊人| 热无码中文亚洲H一道本一区二区| 色综合大香蕉| 国产农村妇女精品1区二区| 欧美性爱91| 大逼色网站| 亚洲丝袜天堂| A 在线网址| 欧美性第1页| 志村玲子视频一区二区| 亚洲日韩人妻中文字幕一区| 国产后入清纯| 双插在线| 久久一二三四五六七八九区区区| 亚洲精品影视老司机| 老妇女91| 极品色电影院| 国产精品 亚洲情色| 9 9精品一区二区三区| 欧美日韩国产高清在线一二三区| 97碰碰色| 二级久久网| 亚洲,欧美,春色,另类| 中国一级操逼视频| 久久69| 国产在线激情| 99成人| 亚洲人妻av| 九九视频黄色片| 日韩 欧美 国产 麻豆| 伊人青青一区成人视频在线观看区| 成人性爱全视频观看| 99re公开精品免费视频| 久久亚洲中文字幕视频| 啊v在线观看视频| 亚洲日韩久久精品一区| 欧美亚综合色图| 97中文字幕色| 日欧毛片久久| 国产美女激情| 97超色| 亚洲色棕合| 色爽——AV| 国产少妇内射| 操一操摸一摸| 在线观看一级α片刺激高潮视频| 久久久久久久强迫| 啊啊啊在线看| 韩国三级一线观看久| 久久99九九九九6666免费观看软件| 正宗无毛一线天嫩逼| 神马九九| 亚欧性爱无码| 久久男女激情视频网站| 五月婷婷AV| 97福利视频| 亚洲Av无码成人精品国产| 亚洲欧洲偷拍一区| 欧美综合站| 美女主播色欲91抠b在线播放| 日本久久综合| 91色夜| www.91人妻.com| 人妻少妇视频在线播放| 在线免费试看60秒| 好色综合| 97色色色| 日本999精品| 黑人与人妻| 亚洲精品色| 91美女国产在线| 欧美偷拍区| 久jiu久神马影院| 国产日韩中文字幕欧美| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产一级特黄大片处女| 五月天婷婷激情| 白丝AV网站| 人妻少妇久久中文字幕一区二区 麻豆| 日韩操逼HD| 啊啊啊慢点| 粉嫩在线一区二区懂色| 精产国品一区二三产品| 亚洲女人91| 十八禁视频网站| 亚州 综合 色图| 日韩视频精品在线观看| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 777AV电影| 久久m| 3P乱轮视频| 操人无码| 热热色国产一二区AV| 极品五月天噜噜| 欧美人妻制服| 日韩性爱网址| 欧美啪啪天堂| a级理论午夜日本| 欧美最婬乱婬爆婬牲视频| 国产又大又硬又长又粗| 九九九不卡| 99免费视频| 成人情色综合网| 麻豆久久久久久久久丝袜 | 青青草在线视频欧美| 一级成人性爱| 蜜奶av| 五月婷婷丁香六月| 中文字幕五月婷婷免费| 二三四区精品| 91大学精品激情戏| 亚欧免费| 五十路三区在线| a人欧美综合天堂麻豆| 91色图片| 国产毛片久久久久久久| 亚洲久久天堂| 亚洲乱色视频一区、二区在线| 欧美大香蕉专区网| 日韩成人性日韩成人性爱视频在线免费观看 | 国产亚洲性生活视频播放| 欧美亚洲清纯| 女同亚洲欧美一二三区久久电影| 亚洲av淫乱| 大香蕉强奸乱伦| 亚洲欧美国产va在线播放频| 天天日骚逼熟女| 91高跟美女在线播放| 日韩三级网址| 人妻熟女一区在| 国产18精品亚洲精品| 黄色AAAAA欧美| 欧美色综合网| 91老女人| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 收看日本人日bb| 久久人| 欧美日韩欧美| 丝袜美腿操av| 蜜臀99久久精品久久久久久| 97er欧美性| 男人的亚洲天堂| 人妻熟女午夜精品在线| 91久久久久久久| 天天爽夜夜操| 九九视品黄色| 刺激性视频黄页| a片亚洲一本通视频| 一二视频神马久久传媒| 人妻喷水| 久九九九九九九九热| 夜夜精品视频| 亚洲毛片基地专区| 亚洲精品久久久久毛片A片拉屎 | 国产精品对白内射| 欧洲精品在线播放| 九九九九一级| 激情小说亚洲视频| 99re在线| 无码WWW免费视频网站| 99久久e免费热视| 色婷婷九月| 亚洲日韩一区电影| 99re在线精品78| 熟女精品日韩一区二区三区| 夜夜操美女| 中文字幕 码 自拍 视频 区| 视频在线观看一二三区| 熟女一区二区三区四区| 丰满人妻一区二区三区免费| 黄色电影观看久久9| 97操97色| 97人人夜| 国产一级内射高清视频| 一类av片在线看| 久久婷婷色综合一区二区三区| 国产第二页| 偷窥自拍亚洲| 人妻乱仑一区二区三区| 玖玖婷婷五月天| 色呦呦、国产精品| 中文字幕乱妇免费视频| 在线人成亚洲视频免费观看| 狠狠操狠狠爱| 丝袜色综合| 国产亚洲女v在线观看| 欧美狠狠弄| 人爽不卡视频| www.天天干| 超碰吊日色| 麻豆这里只有精品| 中文字幕精品亚洲熟女| 欧美性爱十八禁| 中国熟女91| 人妻乱仑一区二区三区| 超碰视97中文| 国产探花日韩援交| 美女刺激久久国产欧美| 欧美激情区| 97干色天堂| 久久首页| yazhououmeizongya| 色狠狠综合| 欧美不在线| 久久久111| 亚洲熟女中文字幕在线| 午夜噜噜噜| 伊人久久婷婷| 激情啪啪视频| 五月丁香激情综合| 超碰97人人cao| 欧美天天综合站| 婷婷五月天激情网| 一类av片在线看| 欧美人与动性人交a| 国产人妻精品一区二区三区秋霞| 91chinese在线| 色五月AV| www.yw尤物| 私人尤物在线精品不卡| surenchaopeng| 伊人AAA| 亚洲丝袜少妇在线| 欧美91丝袜| 九九色色| 亚洲欧美经典一区二区| 亚洲性爱成人|