色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
国产v片在线免费观看| 久超碰在| 91高清欧美| 色香阁在线| 天天做日日做| 欧美一区二区三区四区综合| 久草免费在线视频| 九九九九免费视频| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 欧美在线 亚洲| 欧美 亚洲 综合 制服| 91精品久久久久五月天精品 | 欧美日韩中文视频播放| 国产精品毛片| 天美一二三在线观看Av| 天美国产精品| 国产精品交换一区二区| 久干9操| 精品黄色电影| 五十路一区无码| 日产123区精品免费观看| 久久久9视频| 免费一级毛片在线视频观看| 亚欧免费| 日韩无码a片| 久夜视频| 伊人网高清| 亚洲图片偷拍欧美| 蜜臀一二三区| 97久久精品国产| 免费综合亚洲中文| 午夜电影在线观看无码专区| 精品国产一区二区三区香蕉欧美| 狠狠干91| 热99这里有精品综合久久| 亚洲人综合19| 中文字幕一区二区无码成人 | 熟妇人妻精品一区二区| 欧美亚洲高清晰| 伊人少妇久久久| 久久精品亚洲东京热色播| 精品久久久久黄少妇| 高清无码国产亚洲| 欧美人人AAA| 欧美亚洲日本视频久久久| 久久久久久久伊人精品| 亚洲啪啪视频免费| 国产精品一区二区校花| 国产极品精品美女视频| 欧美国产欧美在线观看| 天天爽爽爽爽| 亚洲欧美精品一区天堂久久| 精品视频日日夜夜| 夜夜骑天天燥| 狠狠干妹子| 校园春色 亚洲| 亚洲猛交| 国产在线播放成人免费| 五十路三级片| 丁香五月偷拍| 国产亚洲欧洲在线观看| 91超碰碰在线| 97网站在线观看 | 国产在线视视频有精品| 中文啪啪视频| 亚洲91网。| 91国精产品| 亚州精品人妻一二三区| 精品黄色电影| 男女真人网18| 久99热| 在线不卡视频| 天堂精品一区| 少妇精品久久| 亚洲精品影视老司机| 日本福利二区视频| 男人的天堂2018.| 国产精品视频| 久久精品无码熟妇一区二区三区视频导航 | 热99这里有精品综合久久| 啪啪综合网| 91丨九色丨国产丨人妻在线 | 大香交伊人网| 久久久婷| 亚州男人天堂| 大香蕉啪啪啪| 青木玲在线不卡| 日本一卡二区在线| 最新国产精品久久精品| 大香蕉伊人在线成人AV在线观看| 成人久久久| 日人妻视频91| 亚洲精品819| 九九av| 欧美人黑A片无码免视费| yiqicaoav| 久久无码电影| 午夜毛片高清免费不卡| 欧美呦呦性爱| 国产成人亚洲精品自产在线| 加勒比人妻综合| 久操免费观看| 国产一区二区三区影片| 国产精品一级二级在线| 亚洲中文一区二区三区| 麻豆av一区二区三区| 亚洲色图欧美色18直播在线| 亚洲天堂AV在线播放| 欧美成人9797| 日本一二区免费| 97操综合| 丁香五月自拍| 99精品在线| 伊人丁香五月婷婷| 96国产污污污丝袜| 东京热一区二区中文字幕| 偷拍欧美综合| 免费AV中文网在线观看| 欧美精品四区| 17c嫩草51久久91嫩草| 伊人久久艹| 91N综合在线| 东北女人无套内谢视频| 荡小穴在线观看| 日本布卡一区二三区| 91站街按摩店老熟女熟女| 欧美久久婷婷| 日韩免费中文字幕视频| 熟女日韩| 久久这里只有精品9| 天天做天天爱天天高潮| 色约约一区=区三区| 日本肏逼视频在线观看| 九九九精品美女| 亚洲天堂 视频你懂的| 四季av一区二区凹凸精品小说| 家庭乱伦性爱av| 97色97好| 亚洲成av人片色午夜乱码| av草草在线电影| 丰满人妻一区二区三区性色| 精人妻无码一区二区三区伊人直播| 国产乱伦亚洲| 亚洲乱熟女一区二区| 欧美精品欧美精品系列| 欧美日韩成人在线| 东京热一区二区中文字幕| 日本三级久| 丁香五六月啪啪| 动漫区日韩区欧美区| 高清无码久操视频| 天天操天天7| 亚欧成人中文字幕一区| 日韩久久艹| 乱伦熟女区| 超碰在线免费一区二区三区| 中文97国产| 曰韩精品视频一区二区| 福利大香蕉| 99久久婷婷国产综合精品草原| 97欧美在线| 亚洲欧洲精品成人| 国产精品久久久鸭无码的功能| 久久αⅴ| 亚洲色图伊人网| 大香蕉欧美| 亚洲男人天堂2013| 99精品网| 久热久| 国产美女销魂在线观看不卡| 亚洲第91页| 色狠狠色| 狠狠色噜噜狠狠狠狠2018| 肉丝中文无码高清| 中文字幕人妻色偷偷久久皮| 日韩性爱小视频| 97视频新免费| 美女主播色欲91抠b在线播放| 亚洲国产欧美中文永久| 中文字幕美女91| 高清无码网址| 东京热精品97综合网| 91精品人妻电影| 成人免费性爱视视| 91操熟妇| 狠狠爱夜夜干| 刺激精品视频| 人妻精品综合中文字幕在线| 亚洲天堂色图| 人人扣人人操| www.狠狠| 无码外流操逼视频| 一级黄色性爱裸体视频| 久久亚洲日韩国产欧| 国产人妻一区二区三区欧美毛片| 国产精品一区人妻精品阁在线| 日本熟妇人妻中出视频| 精品偷拍13p欧美dodk视频| 东北女人高潮视频| 少妇淫妇久久久久久久| 91大香蕉伊人| 国产丁香精品露脸视频| 亚洲综合九| 亚洲美欧999| 深夜啪啪啪视频免费| 亚洲成人无码影院| 婷婷丁香久久| 色色五月婷| 17c在线成人免费A片观看| 国产91av在线播放| a片久久久久久久久久久久 | 亚洲aV无码成人在线观看| 午夜精品久久久| 91蜜臀人妻中文字幕在线| 久久AV色| 一类无码操逼视频| 伊人在线大香蕉视频久久| 区二区亚洲婷| 综合第一页| 成人自拍三级在线观看| 亚洲1区| 偷拍超碰| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 欧美色91| 欧美精品自慰系列寂寞少妇 | 日产狠狠干| 色老汉色| 日本一区二区中文字幕久久| 久久久久国产一区二| 青青国产精品在线| 伊人网高清| av九九| 嗯嗯不要视频| 五月婷婷hd| 97超碰色| 91艹| 久久亚洲影院一区二区| 久久久久久九九九| 男人天堂久久精品| 国产福利一区二| 亚洲综合另类欧美久久久| 免费无码婬片AAAA片直播色戒| av天堂影视中文在字幕在线中文| 少妇综合网| 日本男人插女人的逼黄色| 久久 国产 无码| 中文字幕精品久久久久人妻红杏ⅰ| 日逼逼免费看| 少妇熟女一区二区三区| 欧美色图成人网一区二区 | 任你草| 欧美人与动性人交a| 亚洲国产亚洲天堂| 午夜欧美J进J出白浆流出久久久| 精品毛片av一区二区| 亚洲AV色图一区| 国产精品久久久久久夜夜夜| 日韩在线观看中文字幕视频| 日韩性爱小视频| 夜夜高潮夜夜爽夜夜爱爱一区| 日韩AV一区二区三区四四| 91人妻做a观看视频| 超碰吊日色| 久久久久久久久九九久孕交| 日韩素人无码一区二区三区三州| 欧美精品久久久久久久丰满| 国语精品av| 裸体1区| 中文一区在线日| 91美乳| 六月丁丁香| 精品亚洲国产成人精品| 国产av强奸美女| 国产高清自拍| 国产精品免费久久久久久久久久| 日韩视频精品在线观看| 一级毛片久久久久久久女人18| 欧美色999| 日本三级韩国三级美三级91| 欧美中字二区| 69人妻精品一区二区绯色| 囯产精品久久久久久久久久梁医生 | 无遮挡h肉动漫在线观看| 色色色欧美| 啪啪啪精品视频| 人人天天干干| 97超碰jingpin| 韩日男人的天堂| 97干日韩| 欧美一区二区成人一卡| 日韩欧美久久婷婷网站| 久久久555| 九久久精| 天天草夜夜草高潮片| 人人做人人妻人人夜视频| 欧美日韩性爱无码| 五月婷婷啪啪| 亚洲熟女一区| 女人与公拘交酡2020视频| 成人五级久久| 天天操天天射天天日| 91人妻素女| 香蕉一区二区三区在线视频| 性色高清..……| 久久久偷拍| 操熟女91| 欧美亚洲日本激情在线| 久插综合| 免费视频在线一区二区不卡| 综合网色| 久操| 人妻啪| 欧美熟女少妇| 日本布卡一区二三区| 亚洲成人性爱网站在线播放| 丰满翘臀美女影院视频| 性色A∨91| 亚洲色欲天天人妻无码系列专区| 亚洲色图超碰在线| 99蜜月精品久久| 强奸乱伦中文字幕AV| 综合久久婷婷| 大逼色网站| 久久久精品国产亚洲AV无码| 9久久久久久| 亚洲欧美中文日韩视频中国语| 亚洲欧洲无码97久久精品| 亚洲女人91| 日本 欧美 亚中文字幕| 韩国毛片一区二区三区| 国产女生在线| 男人的天堂va| 成人女人国产| 牛牛aV| 欧美高清91| 婷婷伊人綜合中文字幕| 91久久久久久久久18| 伊人AAA| 日韩欧美操逼xxx| 97干天天| 九九热在线视频| 无码人妻精品一区二区三区99不卡| 中文字幕一区 二区三四五 区日 日骚| 91精品人妻一品二品三品| 最新日韩黄片| 激情小说日韩无码| 久久成人东京热人妻| 麻豆 欧美 日韩| 91精品久久久| 酒色综合网| 成人在线视频一区| 深田咏美亚洲精品福利社| 久久人| 久久久999国产精品| 亚洲欧美另类少妇精品| 男人的天堂网免费| 亚洲成人美女无吗| 伊人网免费视频| 久操免费电影| 色欲色香天天天综合网www-亚洲综合国| 在线观看高清AV| 中文三一区| 五月天亚洲网| 碰超人人在线一区二区三区| 97青青操视频| 殴美综合色88| 亚洲精品天天影视综合网| 亚洲国产精品成人综合| 韩国手机不卡无码三级视频| 国产精品嫩草久久久久| 草草网站影院白丝内射| 在线播放成人高清免费视频| 日韩精品在线放| 尤物网址| 秋霞成人做爱| 日韩免费簧片| 欧美人妻精品一区二区| 精品国产乱码久久久久久口爆网站| 亚洲欧美色图| 中国人高清www色视频免费| 国产乱码久久久| 九9热伊人| 久久伦理视频久久大香蕉视频| 大香蕉一人在线| 丰满少妇高潮无码| 国产精品第二页| 国产蜜臀在线| 日韩欧美亚洲自拍偷拍| 国产精品内射婷婷一级二| 国产不卡免费在线视频| 国产按摩一区二区三区| 啊啊啊啊啊啊啊啊啊在线观看| 91日产桃蜜| 色与欲影视| 日韩本不卡视频在线观看| 无码人妻毛片丰满熟妇精品区| 9九九国产| 久热影视| 蜜桃久久久久久久| 国产乱不卡| 超碰欧美97| 1769一区二区| 欧美日韩国产电影| 无套后入双马尾| 精品国产一区二区三区四区在线看 | 亚洲高清在线se| 国产成年女黄特黄| 国产操操日韩三级黄| 亚洲精品丝袜-不卡成人免费……| 淫色网综合| 日韩综合色网| 岛园激情| 97超碰欧美手机在线| 草草电影院| 无码 黑人一区二区三区| 超碰人人在线| 欧美成人精品一区| 久久99操天天日| 久久久无码精品人妻二区 | 日韩女模中文造逼| 少妇熟女视频一区二区三区| 精品人妻免费观看| 干B| 国产 热久久久久国产精品| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 国产精品无码久久久久2028| 中文字幕女同在线| 密乳AV免费观看| 欧美综合传媒| 91天天日| 岛国视频一二三区| 亚洲精品人伦一区二区| 久久久久亚洲Aⅴ无码| 东京热熟女亚洲视频网站| 亚洲密乳AV| 丰满人妻一区二区三区在线| 久区视频| 美女在线H91| 中文字日本乱码| 国产午夜精品一区二区三区牛牛| 高清无码在线播放网站| 亚洲高清国产理伦片| 亚洲天堂综合AV| 国内精品99999| 蜜臀国产AV中文字幕| 诱惑网综合| 屌妞视频久久久久久久 | 欧美综合色,www| 超碰人妻在线| 麻豆区久久久久亚| 国产日韩在线播放av| 一区二区 电影 亚洲| 岛国福利在线精品播放| 亚洲脚交| 久热久一区二区三区| 中文字幕一区二区在线日韩精品| 国产女人9999| 久久久久久久9最新免费视频观看| 大屁股人妻女教师撅着屁股| 中文字幕久久婷婷丁香五月天| 婷婷五月成人| a天堂视频| 欧美人妻制服| 殴美色网| 国产女人9999| 长长久久曰曰夜夜成人网| 一级日本牲交大片好爽在线看| 亚洲 欧美 另类 日韩 人妻一区| 超踫中文字幕| 九九色逼| 欧美色五月| 欧美五十路熟| 日本色色色网站免费看不卡| 色香天天| 国产精品扒开腿做爽爽爽视频| 亚洲高清男人天堂| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 97超碰色屌| 亚洲日韩AV视色| 国产成人精品日本视频| 日韩精品色呦呦| 91丝袜在线观看| 少妇久久久久| 欧美高清无码免费视频高清版| 97超碰超| 91综合色噜噜| 国产精品成久久久久午夜午夜| 日本视频在线中文字幕| 在线国产福利网址导航| 欧美一区二区一级岛国大片| 国产日韩色综合| 欧美一级久久久久久久大片动画| 午夜欧美女人操逼| 在线 制服丝袜中出 人妻| 青青草吊丝| 秋霞午夜视频一区二区| 33044男人的天堂深夜备| 好爽视频在线观看视频| 在线观看色视频| 日韩婷婷| 东京热熟女亚洲视频网站| 91欧美丝袜| 日本欧美中文字幕| 日韩精品在线观看网站| 欧洲免费一区二| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 一本大道青青| 亚洲二区精品在线观看| 操操操操操操| 60秒不遮不挡| 一级日本牲交大片好爽在线看| 日本久久精品| 久久精品国产97欧美精品亚洲| 亚洲伊人久久综合97| 极品美女福利在线观看| 欧美老妇综合网| 一起草三级AV电影在线观看| 激情五月综合网| 一二三四视频在线社区中文字幕| 最新亚洲黄色免费电影| 伊人网av| 国产精品日日摸夜夜添骚逼| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 这里只有精品97| 岛国成人av在线播放网址| 1000午夜黄色| 久草福利在线资源站| 熟啊v色欧美热| 免费αV在线视频| 91男女啊啊啊| 国产精品嫩草影院午夜两性| 成人日韩中文字幕| 亚洲乱色熟女一区| 一区二三区四区视频大全套| JULIA一区二区三区在线播放| 色偷偷2020免费视频播放| 欧美日韩岛国大片在线观看| 国产激情视频一区区三区| 欧美亚综合色图| 精品国产三级av韩国在线| 欧美婷婷久久| 人人干人人操人人..com| 性91| 激情网五月天| 色操逼网| 日本不卡一二区| 78综合网| 四色永久成人网站| 99久久久无码精品国产人| 九九九只有精品| 久操B网| 国产精品高潮久久AV| 日韩一性一交一A片俄罗斯| 狠狠爱夜夜干| 久插综合| 青青草原狼av| 五月天婷婷激情| AV麻豆免费一区| 亚洲在线观看| 亚州日韩97| 天天天乱色综合全| 熟妇视频一区二区三区在线观看| 操逼网免费无码视频| 啊啊啊慢点| 久久9免费视频| 久久国产精品一级二级三级| 日韩欧美字幕亚洲一区二区| 亚洲综合另类小说色区亚洲成av人片在www | yazhousetuoumei| 91成人久久 | 欧美精品999| 草草影院日本第一页| 久久久久久中文| 美日韩一二三区| 国产九区| 亚洲自拍青操视频| JuliaAnn丝袜熟女系列| 啊啊啊啊免费视频| 国产v亚洲v日韩v欧美v片另类| 奶水 人妻 哺乳 在线| 亚洲综合有码| 亚洲毛片基地专区| 夜夜人妻爽| 久久少妇人妻| 亚洲黄色电影| 天天噜| 丰满熟女一区二区三区在线播放| 97超碰色| 操逼片中文| 青娱乐老司机视频| 国产精品嫩草影院免费| 国产成人久久久精品免费AV| 午夜呻吟欧美| 老女人碰碰在线碰碰视频| 97公开久久| 91美女视频。| 欧美日韩大黄片| 中国探花熟女| 欧美97视频| 欧美成人精品欧美一级乱黄一区二…| 91AV入口| 国产尹人在线视频免费| 操逼网免费无码视频| 人妻天天操天天爽视频免费| 淫乱图区 | 午夜男女爽爽爽在线视频| 亚洲最大的黄色电影网站。| 91亚洲狠狠色| 综合久久六月久久婷婷| 国产精品乱码久久久久久久久久久久| 亚洲激情欧美色图 | 亚洲图片激情小说| 国产大学生口爆吞精合集| 国产h片在线观看视频| 98一区二区精品| 超碰久草| 麻豆久久精品亚洲精品88| 91c色| 九色 人妻 大香蕉| 天天射天天色成人| 嗯啊抽插大香蕉网页| 97中文超碰| 91美女视频。| 天美麻花大全视频| 大色网久久| 免费在线观看国内色片网站网址| 天天看片麻豆| 亚洲一曲日韩精品| 97se综合| 天天做天天爱| 欧美精品久久久久久久丰满| 后入内射蜜桃臀| 久久国产熟女影院| 婷婷五月天无码| 欧亚乱色熟女一区二区| 夜夜骑日日| 日本岛国黄色网址| 97超碰色情| 狠狠夜色午夜久久综合在线| 在线观看国产黄色| 午夜爽爽爽| 美女97超碰| 成人无码在线超碰网| 午夜视频久久久| 色婷婷久久| 肏逼福利网站| 亚洲drav色图| 3p国产欧美99热| 久久精品一区二区一8| 物业黑人 AV一区| 按摩中文字幕| 久热这里| 91粉嫩萝控精品福利网站_精品影音先锋国| 97在线观看视频| 嗯嗯,啊啊,国产精品| 69精品久久久久中文字幕| 男女猛烈无遮掩视频免费软件| 97中文字幕一区| 欧洲射精91| 国产欧美一区激情交| 亚洲图片日本AⅤ欧美在线| 揉揉揉夜夜| 无码又爽又硬又激情免费视频| 日韩人妻有码免费视频| 欧美乱欲| 国产精品久久久啊| 九九九久久久| 男人的天堂2019| 日本不卡一区二区| 人人澡人人干| 夜夜欢天天干| 欧美性爱一区二区| 欧美激情综合| 日本操逼aaaaa| 少妇综合| 久久精品日韩| 色哟哟511老熟女| 国产色呦呦| 日韩在线观看中文字幕视频| 在线播放成人高清免费视频| 一本色道综合久久欧美日韩精品| 亚洲青青草| 午夜欧美精品久久久| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 午夜一区| 无码人妻精品酒店| 伊人网青青| 操逼日韩无码| a网站免费观看| 超碰国产情侣自拍网| 日日干夜夜操视频h| 亚洲限制级| 成人一级二级| 九九AV| 噜噜噜在线视频| 入口操逼网站| 亚洲精品819| 日本熟妇色熟妇在线视频播放| 亚洲一二三精品久久网| 欧美1727免费观看视频| 久久久111| 天天综合91| 91丨熟女丨丰满熟女| 69av一区二区三区| 毛片久久| 国产午夜在线观看| 看日韩操逼| av九九| 亚洲永久AV无码精品秋霞| 中文字幕一区二区三区人妻不卡 | 久久国产99精品72福利| 亚洲精品蜜桃久久久| 三级日本一区二区三区| 天天插天天插| 老鸭窝成人| 婷婷丁香六月| 午夜经典| 激情五月婷婷| 美女性91| 人妻干天天| 日本亚洲熟女视频| 极品出轨视频网站| 国产超碰| 玖玖久久久| 国产精品一区二区三区,亚洲综合| 九九久久九九久久| 国产精品白领在线观看 | 免费观看欧美日韩操逼视频| 97超碰9| aⅴ日韩成人电影av在线免费看av大全| 中文字幕丝袜人妻| 免费a v| 1204金沙人妻懂旧版免费| 久久精品店| 黄色大香焦1级‘′‘| 日韩av情韩国爱禁区av一区二区| 国产精品自在自拍视频| 肉丝中文无码高清| 91无码中出人妻视频| 啊啊啊在线观看| 亚洲av热热色| 亚洲五月天激情| 国产在线综合网| 国产四虎在线| 国产激情av女片自拍| 啊啊啊啊啊啊好多水| 久久久熟妇熟女国产| 久久国产逼| 五月天精品| 日韩av熟女一区二区三区成人| 超清福利精品视频在线| 久久青娱乐| 乱理日韩中文| 亚洲一区二区三区中文字幕| 欧美日韩大香蕉| 国产激情在线| 干妹子| 香蕉免费一区二区三区不读 | 婷婷五月天综合网| 国产一级αv免费看片| 日韩免费在线视频观看| 一二区在线观看视频| 日韩超碰精品综合| 黑人天8A∨高清网站| 亚洲av强奸乱伦| 国产99精品一区二区三区免费| 91国产操逼视频| 蜜臀AV午夜精品久| 国产AV天美| 亚洲第一二区另类图| 久久久9视频| 黑丝少妇麻豆| 国产熟女一区二区| 超碰天天去日穴| 久久久免费懂色| 十八禁电影伊人网| 亚洲在钱| 天天热精品| 国产午夜福利合集| 亚洲男人的天堂网| 中文字幕欧洲有码| 国产又长又大又粗的视频| 大干人妻| 国产精品伦理| 极品销魂美女一区二区| 国产91av在线播放| 无码外流操逼视频| 国产又大又硬又长又粗| 六月丁香久久| 大香交伊人网| 骚货| 亚洲自拍青操视频| 国产欧美另类久久久精品课程| 欧美成人国产精品| 超碰欧美97| 五月丁香黄色网| 日韩av在线免费网站| 五月天开心网| 亚洲诱惑| 97综合国产| 曰韩精品视频一区二区| 欧美网站免费| 青青草视频在线观看一区二区| 91老熟女逼| 久久精品99久久久久久| 欧洲精品一级二级精品综合视频综合 | 殴美在线AⅤ| 色综合美国| se,,,亚洲欧美| 精品一区二区三区丰满熟女-亚洲欧美一区| 国产乱伦亚洲色图高清无码| 国产精品自产拍在线观看社区| 中文字幕乱碼在线| 熟女一区二区三区四区| 国产肏逼网站| 草莓精品视频| 99后入| 日韩三A大片在线观看| 人妻22p| 色九九九九| 国产精品99精品视频网站| 看日韩美女二区三区免费操逼视频 | 韩日精品福利视频一区不卡在线免| 天天操妹子| 人妻久久久久久| 色综合1991| 免费强奸av| 91久久精品美女高潮喷水| 国产亚洲精品无码三区| 91红杏| 国产美女口爆吞精视频| 人人艹亚洲| 天天操天天日天天干| 欧美激情视频在线一区| 激情久久久| 美女91色黄18| 欧美少妇性爱网站| 91综合天天| 欧美三级中文字幕hd| 免费视频97| 熟妇熟女亚洲天堂网| 大二网站亚洲| 国产玖玖| 超碰人人操97碰| 老熟妇一区二区三区| 中文字幕性感少妇av| 色九久| 亚洲AV免费在线观看| 草草影院最新网址| 天天综合亚洲综合| 加勒比综合a∨| 德国一二三不卡| 亚洲欧美日韩偷拍色图| 亚州色阁| 五月丁香| 手机在线播放国产福利| 中文字幕视频在线观看| 综合91网| 亚洲精品欧美专业| 综合网欧美在线| 91热爆在线| 久久首页| 欧洲亚洲国产综合在线| 免费精品无码一级毛片牛牛影视| 亚洲诱惑天堂 | 成人av动漫在线观看| 99婷婷一区二区| 国产三级片在线观看| 久久国产精品视频| 欧美日韩国产色五月综合在线| 久久久久骚| 99热超碰| 九一亚洲国产免费| 午夜福利视频在线一区| 影视综合无码少妇| 中文字幕一区二区日韩网| 囯产精品久久久久久久久久梁医生| 日本二三四区| 97色碰| 久草国产在线视频| 久久超碰国产一区二区三区| 精品视频一二三中文| 日本二三四区| 国产一级高清免费观看| 亚洲综合伊人无码久久| 97天天| 日本操逼视频不卡直接放| 四虎国产精品永久在线囯在线 | 夜夜草我| 色逼综合| 性爱视频免费网址| 国产精品制服丝袜清纯唯美 | 啊啊啊好大好湿| 91欧美性| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 青青草AV色| 日本影视久久免费| 韩国一级婬片A片无码天美 | 亚洲图片 91| 久久婷婷五月| 欧美另类色图片| 中文字幕免费观看| 中文字幕片| 精品国产乱码久久久久久久| 婷婷色综合欧美日韩| 日本一区二区三区四区免费观看| 激情九月婷婷| 欧美性暴力猛交XXXX| 欧美BT 亚洲色图| 亚洲另类小说卡通动漫| 色色五月天婷婷| 精国久久一区二区三区98| 人人操人人摸人人骑| 人人摸人人叼| 天天综合网1| 97中文字幕九区| 日韩免费高清大片在线| 久久国产视频专区一二三| 夜夜欢天天干| 蜜乳AV一区二区三区四| 美女AV一区二区| A级毛片在线看免费| 精品夜夜澡人妻无码| 久久久精精精| 日韩欧美中文日韩欧美色| 啊啊啊水好多| 国产一区二区三区久久久精品| 95精品在线| 级品肉射| 亚洲高清无码在线桃色| 亚欧洲一区二区视频| 日本一区视频在线观看| 四虎免费看黄| 三级色综合| 9997se| 亚洲 综合 欧美| 天天干天天舔| 97在线观看免费| 伊人久操| 少妇三P| 青娱乐久久艹| 熟妇熟女一区二区三区| 夜夜騷av、一區二區| 激情国产乱伦Av| 果冻传媒A片麻豆熟妇人妻| 欧美1727免费观看视频| 亚洲伊人a线观看视频| 超碰97首页| 久久久亚洲精品电影免费看| 不卡av在线中文字幕| 国产诱惑| 日夜久久久九九九久| 九九九九九精品视频| 精品然女一区二区| 日韩三级一区| 夜色AV无码手机在线影院 | 美骚妇av高清在线| 91狠狠综合久久| blacked精品一区国产| 国产又粗又长视频| 91影视亚洲| 国产精品丝袜久久亚洲不卡| 欧美少妇大量自拍视频在线观看| a片久久久久久久久久久久 | 91免费看一区二区三区| 区二区亚洲婷| 色眯眯射| 啊啊啊好湿久久| 色性荡荡荡荡视频| 国产白嫩精品久久| 欧美综合97www| 伊人大香蕉在线| 日韩无码嘿咻黑热久| 国产成人bd在线观看| 成人av影院在线观看| 国产深夜福利| 后入国产| yaouchengrenav| 人人干黄色| 强奸乱伦亚洲第一页| 青娱乐淫乱1314| 亚洲天堂在线怕怕视频 | 亚洲1区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 天天色,天天干,天天干| 免费av在线播放二区| 自拍偷拍亚洲熟女妇人精品| 中文字幕乱码在线观看| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 成 人 影视 一区 二区 三区 四区| 久久9亚洲| 超碰中文字幕人妻草一区| 爱妻综合网| 亚洲?V高清一区二区三区尤物| 欧美综合国产精品久久丁香| 久久久久国产精品久久久| 美国黄片aaa| 国产999精品久久久久久| 日韩一级二级在线| 中文字幕诱惑制服人妻丝袜美丝袜美| 青青草男人天堂| 免费试看60秒| 搡老熟女老女人老熟妇免费视频| 日韩三级一区| 亚洲女优有码无码高清| 亚洲天堂五月天国产| 日韩一性一交一A片俄罗斯| 草草影院在线视频| 亚洲AV人人澡人人爱| 亚洲无码偷拍| 97久久超碰| 一牛一区二区三区久久| 欧美熟女妇同| 1000部熟女视频在线观看| 亚洲色色色| 五月天人妻综合| 国产美女自拍AV| 久久水蜜臀亚洲AV无码精品| 欧美日韩人妻少妇 一区二区三区| 啊啊啊啊啊啊在线观看| 久久五月婷| 欧美三级偷拍| 亚欧无码线免费观看视频| 91蜜桃婷婷狠狠久久综合9色| 9999免费精彩视频| 欧美在线干| 亚洲一本色道中文无码aV天美| 91在线|亚| 欧美亚洲天堂| 殴洲老熟女| 柠檬AV导航| 中文字幕激情小说| 五月天综合| 日韩性爱一级片| 射 色综合| 亚洲欧美精品国产一区二区| 欧美色图 人妻| 视频二区美腿丝袜制服人妻欧美 | 日语五十路和六十路亚洲国产精品| 全球成人中文在线| 综合97| 97超碰这里只有精品| 男人的天堂2018.| 伊人影院综合是一个与深夜成人在线| 九九九九97| 嗯嗯啊啊操死我| 天美麻花大全视频| 曰韩人妻中文字幕在线| 一区二区不卡免费| 欧美亚涩| 精品黄色电影| 亚洲污污网站| www老逼91| 99性爱| 黄色av片三级三级三级免费看| 超碰色97| 动漫av中文| 国产天天骚| 丝袜美腿诱惑亚洲欧美视频在线观看 | 亚洲日本天堂| 国产亚洲一黄| 99精品久久久久久久婷婷蜜桃| 欧美色性爱| 最新av中文字幕高清| 国产精品999aaa| 欧美+日产+中文| 美女高潮视频91| 中文字幕av久久爽Av| 麻豆天美国美国产AV| 色五月婷婷久久| 国产精品久久久久久久久AV大片| 一区二区三区亚洲| av在线播放国产一区| 日韩激情电影中文字幕| 91色综合| 午夜啪| 欧美不卡在线一区二区| 操逼视频国产无套| 九月激情婷婷| 日韩免费看在线黄色片| 国产 亚洲 一二三四| 啪啪视频亚洲第一| 秋霞一级A片黄色视频| 亚洲欧美色图片| 四虎午夜影院| 日本精品高清一二区一本到| a片久久久久久久久久久久 | 伦激情人妻另类人妻| 国产狂喷潮在线精品| 国产成人拍国产亚洲精品| 色综合中文字幕不卡| 欧亚乱色熟一区二区三四区| 中文字幕乱碼在线| 美女骚尻视频| 男人综合网| 视频一区二区三区精品| 国产精品一区二区三区,亚洲综合| 另类小说欧美激情校园春色| ji熟女.com| 97精彩视频网站| 中文字幕av片| 级做a爱无码性色永久免费| 亚洲人妻中文高清| 亚洲一二三精品久久网| 日韩有码回春沙龙第一页| 尤物视频视频官网| 啊啊啊啊啊啊啊国| 天天操熟妇| 999久久久九九九九| 99re热有精品视频国产| 国产成年女人免费视频播放a| 国产 亚洲 一二三四| www狠狠| 九九九精品色乱九九九| 欧美色www亚洲国产阿娇要播| 丁香六月天| 97在线观| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | A 天堂| 330Dv国产女人终合视频极品人与兽| 大香蕉中文在线| 久久精品亚洲婷婷| 超碰人妻久久| 18禁免费视频| 亚洲精品蜜桃久久久久久久| 亚洲 无码 偷拍| 99久久久| 天天看天天日天天操| 蜜色网色哟哟| 精品国产三级av韩国在线| 亚洲色图久久成人| 美女被啪到深处抽搐视频| 欧美激情色婷婷花野真衣一区二区| 成人av影院在线观看| 啊啊啊啊啊啊啊啊要喷了| 欧美日韩操逼动图| 夜夜操av亚洲一区二区| 久久黄片国产一区二区| 99re8超碰| 99熟女| 欧美日韩不卡传媒| 欧美人妻色| 国产传媒午夜理伦精品| 91色综合色| 91大神电影天堂| 极品国产内射| 美女毛片999| 99热超碰在线| 艹精品| 中文字幕丰满子伦无码专区在线视频最新 | 日本成人在线不卡一区二区三区| 国产av热热色| 久久98| 日韩无码黄色片| 69少妇一区二区| 久草看看看| 欧美黑人与女人91| 久久久久网站-538在线视频-欧美永久乱码 | 亚洲老熟妇xxx| 五月丁香六月婷|