<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          【畢業(yè)設(shè)計(jì)】基于stm32的智能掃地機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) 您所在的位置:網(wǎng)站首頁(yè) 屬兔今年幸運(yùn)數(shù)(shù)字是多少 【畢業(yè)設(shè)計(jì)】基于stm32的智能掃地機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)

          【畢業(yè)設(shè)計(jì)】基于stm32的智能掃地機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)

          2024-06-04 02:14| 來(lái)源: 網(wǎng)絡(luò)整理| 查看: 265

          文章目錄 0 簡(jiǎn)介1 課題背景2 硬件系統(tǒng)總體框架2.1 電機(jī)驅(qū)動(dòng)2.2 紅外線傳感器2.3 超聲波傳感器2.4 MPU60502.5 ATK-ESP8266 WI FI 模塊2.6 電源管理模塊 3 軟件系統(tǒng)設(shè)計(jì)3.1 MPU6050 數(shù)據(jù)讀取3.2 超聲波傳感器數(shù)據(jù)讀取3.3 電機(jī)控制3.3.1 PID控制 3.4 掃地機(jī)器人路徑規(guī)劃3.4.1 弓字型行走 4 測(cè)試5 最后

          0 簡(jiǎn)介

          Hi,大家好,這里是丹成學(xué)長(zhǎng),今天向大家介紹一個(gè) 單片機(jī)項(xiàng)目,大家可用于 課程設(shè)計(jì) 或 畢業(yè)設(shè)計(jì)

          基于stm32的智能掃地機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)

          單片機(jī)-嵌入式畢設(shè)選題大全及項(xiàng)目分享:

          https://blog.csdn.net/m0_71572576/article/details/125409052

          1 課題背景

          隨著人口老齡化的到來(lái)和人民對(duì)提升生活品質(zhì)的需要, 人們對(duì)在現(xiàn)實(shí)生活場(chǎng)景中取代人力的服務(wù)機(jī)器人有著迫切的需要。 同時(shí), 機(jī)電、 自動(dòng)控制、 計(jì)算機(jī)、 傳感器等技術(shù)的發(fā)展也為制造服務(wù)機(jī)器人提供了技術(shù)支持。 掃地機(jī)器人是服務(wù)機(jī)器人中技術(shù)最成熟和最為廣泛使用的機(jī)器人。 它可以自動(dòng)的在室內(nèi)行走, 通過(guò)刷掃和吸塵將地面上的碎屑吸收進(jìn)垃圾收集裝置中, 完成清潔地面的任務(wù),有效的減少了人們清潔地面這種簡(jiǎn)單重復(fù)的家務(wù)勞動(dòng), 節(jié)約了勞動(dòng)力, 提高了生活品質(zhì)。 對(duì)于許多忙于工作和生的人來(lái)說(shuō),掃地機(jī)器人已經(jīng)成為家庭必備的產(chǎn)品。

          2 硬件系統(tǒng)總體框架

          在這里插入圖片描述

          學(xué)長(zhǎng)設(shè)計(jì)的是一個(gè)傳統(tǒng)的掃地機(jī)器人,它使用紅外傳感器和超聲波傳感器來(lái)檢測(cè)障礙物,以及一個(gè)MPU6050運(yùn)動(dòng)傳感器來(lái)計(jì)算旋轉(zhuǎn)角度。使用兩個(gè)直流減速電機(jī)驅(qū)動(dòng)車輪實(shí)現(xiàn)行走,兩邊的編碼器可以通過(guò)計(jì)算編碼器產(chǎn)生的脈沖數(shù)量來(lái)計(jì)算車輪的速度和距離。為了方便實(shí)驗(yàn)過(guò)程及時(shí)獲取傳感器數(shù)據(jù)和向掃地機(jī)器人發(fā)送開機(jī)、關(guān)機(jī)命令,連接了一個(gè)ATK-ESP8266WIFI模塊,使用筆記本電腦安裝網(wǎng)絡(luò)調(diào)試助手軟件實(shí)現(xiàn)和WIFI模塊的通訊。該平臺(tái)的動(dòng)力單元為一個(gè)電壓為12V、容量為9000mAh電池包,為電機(jī)驅(qū)動(dòng)提供電力,并經(jīng)過(guò)穩(wěn)壓后為控制單元提供動(dòng)力。主控制單元用于控制整個(gè)機(jī)器人,STM32F103ZET6被用作控制芯片,主控單元執(zhí)行機(jī)械驅(qū)動(dòng)、運(yùn)動(dòng)控制和傳感器數(shù)據(jù)采集等任務(wù)。

          2.1 電機(jī)驅(qū)動(dòng)

          由于單片機(jī)輸出的電流不足以驅(qū)動(dòng)電機(jī),所以必須通過(guò)電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電機(jī)。對(duì)于直流電機(jī)通常使用H橋驅(qū)動(dòng)芯片進(jìn)行驅(qū)動(dòng),本課題采用了兩塊L298N驅(qū)動(dòng)模塊。L298N是專用驅(qū)動(dòng)集成電路,屬于H橋集成電路。使用了ST公司的原裝全新芯片L298N,采用穩(wěn)定性高的SMT工藝,使用了高質(zhì)量的鋁電解電容,使電路工作穩(wěn)定。作為直流電機(jī)驅(qū)動(dòng)時(shí),可以同時(shí)驅(qū)動(dòng)兩路3-16V的直流電機(jī)。同時(shí)驅(qū)動(dòng)板還提供了5V電源輸出接口,可以用于5V單片機(jī)的電路系統(tǒng)供電。支持3.3VMCUARM控制,可以通過(guò)單片機(jī)方便的控制直流電機(jī)的功率和轉(zhuǎn)動(dòng)方向,也可以用于控制2相步進(jìn)電機(jī),5線4相步進(jìn)電機(jī)。

          在這里插入圖片描述

          雖然L298N驅(qū)動(dòng)板可以個(gè)同時(shí)驅(qū)動(dòng)兩個(gè)直流電機(jī),但長(zhǎng)時(shí)間工作在大功率條件下,驅(qū)動(dòng)板可能出現(xiàn)過(guò)熱、燒板等問題。為了提高硬件系統(tǒng)穩(wěn)定性,本課題中使用兩塊L298N驅(qū)動(dòng)板,一塊驅(qū)動(dòng)板控制一個(gè)電機(jī)。L298N驅(qū)動(dòng)板的IN3IN4EN2OUT3OUT4直接浮空,VCC輸入12V電機(jī)驅(qū)動(dòng)電源正極,負(fù)極接GND,VCC5V接5V電源正極,負(fù)極接地,EN1IN1連接STM32控制電機(jī)正反轉(zhuǎn)和啟停,IN2輸入PWM波。OUT1OUT2連接電機(jī)。

          在這里插入圖片描述

          2.2 紅外線傳感器

          這次的項(xiàng)目中, 學(xué)長(zhǎng)設(shè)計(jì)通過(guò)紅外傳感器檢測(cè)掃地機(jī)器人運(yùn)動(dòng)方向是否有障礙物, 從而實(shí)現(xiàn)掃地機(jī)器人的自動(dòng)避障的功能。 選用的E18-D80NK 型紅外傳感器電路如圖所示。

          在這里插入圖片描述

          紅外傳感器使用 5V 電源供電, STM32 通過(guò)讀取黃色信號(hào)線的高低電平確定是否存在障礙物, 感應(yīng)距離可以通過(guò)紅外傳感器上的旋鈕在 3-77cm 的范圍內(nèi)進(jìn)行調(diào)整。 在電路設(shè)計(jì)中在輸出端黃線加上拉電阻 10K 到 5V 電源, 再接入單片機(jī)檢測(cè), 會(huì)比較穩(wěn)定。

          在這里插入圖片描述

          2.3 超聲波傳感器

          在這里插入圖片描述

          學(xué)長(zhǎng)選用US-100 超聲波測(cè)距模塊, US-100 超聲波測(cè)距模塊能夠通過(guò)自帶的溫度傳感器測(cè)量溫度并對(duì)測(cè)量結(jié)果進(jìn)行校正。 可以通過(guò)GPIO或串口與單片機(jī)通信, 性能穩(wěn)定。

          US-100 超聲波測(cè)距模塊具有1個(gè)模式選擇跳線和5Pin接口, 本課題使用串口模式, 必須插上跳線帽, 5個(gè)接口1號(hào)Pin接VCC 5V電源, 2號(hào)Pin接外部電路UART 的 TX 端, 3號(hào)Pin接外部電路UART的 RX 端, 4號(hào)Pin接外部電路的地。5 號(hào)Pin接外部電路的地。

          在這里插入圖片描述

          2.4 MPU6050

          MPU6050 是全球首例 9 軸運(yùn)動(dòng)處理傳感器, 它集成了 3 軸 MEMS 陀螺儀, 3 軸 MEMS 加速度計(jì), 以及一個(gè)可擴(kuò)展的數(shù)字運(yùn)動(dòng)處理器 DMP。

          MPU6050 電路連接圖

          在這里插入圖片描述

          2.5 ATK-ESP8266 WI FI 模塊

          ATK-ESP8266是ALIENTEK推出的一款高性能的UART-WiFi(串口-無(wú)線)模塊, ATK-ESP8266板載ai-thinker公司的ESP8266模塊。

          ATK_ESP8266 模塊電路連接圖 在這里插入圖片描述

          2.6 電源管理模塊

          電源管理模塊用于給控制系統(tǒng)個(gè)電路模塊供電, 由于電池電壓為 12V, 主控芯片供電電壓為 3. 3V, 不能直接為主控芯片供電, 同時(shí)部分外部功能模塊需要 5V 電壓供電, 因此本課題設(shè)計(jì)有降壓電路、 電壓選擇電路和 3. 3V/5V 輸出電路, 可以滿足控制系統(tǒng)的供電需要。 DC_IN 用于外部直流電源輸入, 范圍是DC6~24V, 輸入電壓經(jīng)過(guò) MP2359 芯片轉(zhuǎn)換為 5V 電源輸出, 其中 D4 是防反接二極管, 避免外部直流電源極性搞錯(cuò)的時(shí)候, 燒壞控制系統(tǒng)電路。

          在這里插入圖片描述

          3 軟件系統(tǒng)設(shè)計(jì)

          學(xué)長(zhǎng)設(shè)計(jì)的整體軟件架構(gòu)如下:

          在這里插入圖片描述

          3.1 MPU6050 數(shù)據(jù)讀取

          MPU6050 傳感器內(nèi)部包含陀螺儀和加速度計(jì), 而且自帶了數(shù)字運(yùn)動(dòng)處理器,即 DMP通過(guò) InvenSense 提供的 MPU6050 嵌入式運(yùn)動(dòng)驅(qū)動(dòng)庫(kù), 可以將陀螺儀和加速度計(jì)的原始數(shù)據(jù)直接轉(zhuǎn)換成四元數(shù)輸出, 通過(guò)四元數(shù)轉(zhuǎn)換可以直接計(jì)算出歐拉角從而得到: 航向角(yaw) 、 橫滾角(roll) 和俯仰角(pitch)。

          學(xué)長(zhǎng)這里選定了以 I2C 通信對(duì) MPU6050 的 DMP 輸出的四元數(shù)進(jìn)行讀取。

          初始化 I2C 接口, 編程代碼下

          1 void HmcIICInit(void) 2.{ 3. /*GPIO 初始化*/ 4. GPIO_InitTypeDef GPIO_InitStructure; 5. /* 配置硬件 IIC 需要的變量 */ 6. I2C_InitTypeDef I2C_InitStructure; 7. 8. /* 使能與 I2C1 有關(guān)的時(shí)鐘 */ 9. RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB,ENABLE ); 10. RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); 11. 12. /* PB6-I2C1_SCL、 PB7-I2C1_SDA*/ 13. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7; 14. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 15. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD; 16. GPIO_Init(GPIOB, &GPIO_InitStructure); 17. 18. /*IIC 外設(shè)初始化*/ 19. 20. /* I2C 配置 */ 21. I2C_InitStructure.I2C_Mode = I2C_Mode_I2C ; //配置為普通 IIC 模式 22. //I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; 23.//I2C_InitStructure.I2C_OwnAddress1 = SlaveAddress; 24. I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; //使能自動(dòng)應(yīng)答 25. I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; 26. I2C_InitStructure.I2C_ClockSpeed = 50000; //5K 的速度 27. 28. 29. /* I2C1 初始化 */ 30. I2C_Init(I2C1, &I2C_InitStructure); 31. 32. /* 使能 I2C1 */ 33. I2C_Cmd (I2C1,ENABLE); 34. /*允許應(yīng)答模式*/ 35. I2C_AcknowledgeConfig(I2C1, ENABLE);

          配置系統(tǒng)時(shí)鐘源并使能角速度傳感器和加速度傳感器, 代碼實(shí)現(xiàn)如下:

          1. u8 MPU_Init(void) 2. { 3. u8 res; 4. IIC_Init();//初始化 IIC 總線 5. MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //復(fù)位 MPU6050 6. delay_ms(100); 7. MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00); //喚醒 MPU6050 8. MPU_Set_Gyro_Fsr(3); //陀螺儀傳感器, ±2000dps 9. MPU_Set_Accel_Fsr(0); //加速度傳感器,±2g 10. MPU_Set_Rate(50); //設(shè)置采樣率 50Hz 11. MPU_Write_Byte(MPU_INT_EN_REG, 0X00); //關(guān)閉所有中斷 12. MPU_Write_Byte(MPU_USER_CTRL_REG,0X00); //I2C 主模式關(guān)閉 13. MPU_Write_Byte(MPU_FIFO_EN_REG,0X00); //關(guān)閉 FIFO 14. MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80); //INT 引腳低電平有效 15. res=MPU_Read_Byte(MPU_DEVICE_ID_REG); 16. if(res==MPU_ADDR)//器件 ID 正確 17. { 18. MPU_Write_Byte(MPU_PWR_MGMT1_REG, 0X01); //設(shè)置 CLKSEL, PLL X 軸為參考 19. MPU_Write_Byte(MPU_PWR_MGMT2_REG, 0X00); //加速度與陀螺儀都工作 20. MPU_Set_Rate(50); //設(shè)置采樣率為 50Hz 21. }else return 1; 22. return 0; 23. } 24. //設(shè)置 MPU6050 陀螺儀傳感器滿量程范圍 25. //fsr: 0,±250dps;1,±500dps;2, ±1000dps;3,±2000dps 26.//返回值:0, 設(shè)置成功

          在這里插入圖片描述

          3.2 超聲波傳感器數(shù)據(jù)讀取

          編寫超聲波發(fā)送函數(shù), 串口發(fā)送0X55到超聲波模塊。相關(guān)代碼如下;

          1. void uart_init(u32 bound) { 2. //GPIO端口設(shè)置 3. GPIO_InitTypeDef GPIO_InitStructure; 4. USART_InitTypeDef USART_InitStructure; 5. NVIC_InitTypeDef NVIC_InitStructure; 6. 7. RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1| RCC_APB2Periph_GPIOA, ENABLE) ; //使能USART1, GPIOA時(shí)鐘 8. //USART1_TX PA. 9 9. GPIO_InitStructure. GPIO_Pin = GPIO_Pin_9; //PA. 9 10. GPIO_InitStructure. GPIO_Speed = GPIO_Speed_50MHz; 11. GPIO_InitStructure. GPIO_Mode = GPIO_Mode_AF_PP; //復(fù)用推挽輸出 12. GPIO_Init(GPIOA, &GPIO_InitStructure) ; 13. 14.//USART1_RX PA. 10 15. GPIO_InitStructure. GPIO_Pin = GPIO_Pin_10; 16. GPIO_InitStructure. GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空輸入 17. GPIO_Init(GPIOA, &GPIO_InitStructure) ; 18. 19. //Usart1 NVIC 配置 20. 21. NVIC_InitStructure. NVIC_IRQChannel = USART1_IRQn; 22. NVIC_InitStructure. NVIC_IRQChannelPreemptionPriority=3 ; //搶占優(yōu)先級(jí)3 23. NVIC_InitStructure. NVIC_IRQChannelSubPriority = 3; //子優(yōu)先級(jí)3 24. NVIC_InitStructure. NVIC_IRQChannelCmd = ENABLE; //IRQ 通 道使能 25. NVIC_Init(&NVIC_InitStructure) ; //根據(jù)指定的參數(shù)初始化VIC寄存器 26. 27. //USART 初始化設(shè)置 28. 29. USART_InitStructure. USART_BaudRate = bound; //一般設(shè)置為9600; 30. USART_InitStructure. USART_WordLength = USART_WordLength_8b; //字長(zhǎng)為8位數(shù)據(jù)格式 31. USART_InitStructure. USART_StopBits = USART_StopBits_1; //一個(gè)停止位 32. USART_InitStructure. USART_Parity = USART_Parity_No; //無(wú)奇偶校驗(yàn)位 33. USART_InitStructure. USART_HardwareFlowControl = USART_HardwareFlowControl_None; //無(wú)硬件數(shù)據(jù)流控制 34. USART_InitStructure. USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收發(fā)模 式 35. 36.USART_Init(USART1, &USART_InitStructure) ; //初始化串口 37. USART_ITConfig(USART1, USART_IT_RXNE, ENABLE) ; //開啟中斷 38. USART_Cmd(USART1, ENABLE) ; //使能串口 39. 40. } 3.3 電機(jī)控制 3.3.1 PID控制

          掃地機(jī)器人在二維平面內(nèi)運(yùn)動(dòng), 主要對(duì)航向角進(jìn)行控制, 在運(yùn)動(dòng)過(guò)程中受到地面阻力、 碰撞等各種因數(shù)的影響, 無(wú)法建立精確的數(shù)學(xué)模型來(lái)編寫算法對(duì)掃地機(jī)器人進(jìn)行精確的控制, 所以本課題中使用 PID 控制算法對(duì)掃地機(jī)器人進(jìn)行控制。

          PID(比例(proportion) 、 積分(integral) 、 導(dǎo)數(shù)(derivative) ) 控制器作為最早實(shí)用化的控制器已有近百年歷史, 現(xiàn)在仍然是應(yīng)用最廣泛的工業(yè)控制器。 PID 控制器簡(jiǎn)單易懂, 使用中不需精確的系統(tǒng)模型等先決條件, 因而成為應(yīng)用最為廣泛的控制器。

          PID流程

          在這里插入圖片描述

          PID實(shí)現(xiàn)

          struct _pid{ float SetSpeed; //定義設(shè)定值 float ActualSpeed; //定義實(shí)際值 float err; //定義偏差值 float err_last; //定義上一個(gè)偏差值 float Kp,Ki,Kd; //定義比例、積分、微分系數(shù) float voltage; //定義電壓值(控制執(zhí)行器的變量) float integral; //定義積分值 float umax; float umin; }pid; void PID_init(){ printf("PID_init begin \n"); pid.SetSpeed=0.0; pid.ActualSpeed=0.0; pid.err=0.0; pid.err_last=0.0; pid.voltage=0.0; pid.integral=0.0; pid.Kp=0.2; pid.Ki=0.1; //注意,和上幾次相比,這里加大了積分環(huán)節(jié)的值 pid.Kd=0.2; pid.umax=400; pid.umin=-200; printf("PID_init end \n"); } float PID_realize(float speed){ int index; pid.SetSpeed=speed; pid.err=pid.SetSpeed-pid.ActualSpeed; if(pid.ActualSpeed>pid.umax) //灰色底色表示抗積分飽和的實(shí)現(xiàn) { if(abs(pid.err)>200) //藍(lán)色標(biāo)注為積分分離過(guò)程 { index=0; }else{ index=1; if(pid.err if(abs(pid.err)>200) //積分分離過(guò)程 { index=0; }else{ index=1; if(pid.err>0) { pid.integral+=pid.err; } } }else{ if(abs(pid.err)>200) //積分分離過(guò)程 { index=0; }else{ index=1; pid.integral+=pid.err; } } pid.voltage=pid.Kp*pid.err+index*pid.Ki*pid.integral+pid.Kd*(pid.err-pid.err_last); pid.err_last=pid.err; pid.ActualSpeed=pid.voltage*1.0; return pid.ActualSpeed; } 3.4 掃地機(jī)器人路徑規(guī)劃 3.4.1 弓字型行走

          在沒有障礙物或房間結(jié)構(gòu)變化不大的情況下, 掃地機(jī)器人可應(yīng)用巡航路徑規(guī)劃算法。

          步驟 1

          掃地機(jī)器人從 MPU6050 模塊獲得偏航角, 并將此偏航角設(shè)定為參考角。然后掃地機(jī)器人在基于參考角調(diào)整偏航角的同時(shí)開始向前移動(dòng)。 距離 D 由編碼器記錄, D 的值將被分配給一個(gè)名為 pre_Walkingcount 的變量。 當(dāng)超聲波傳感器檢測(cè)到障礙物的存在時(shí), 機(jī)器人會(huì)降低速度以避免碰撞發(fā)生。 如果紅外傳感器返回低電平, 則該算法切換到步驟 2。

          在這里插入圖片描述

          步驟 2

          機(jī)器人向左旋轉(zhuǎn) 90 度。 然后 機(jī)器人用編碼器記錄向前移動(dòng)的距離 d。如果 d= Ic ,代表掃地機(jī)器人的清潔端口的寬度, 機(jī)器人再向左旋轉(zhuǎn) 90 度。 之后, 算法切換到步驟 3。 步驟 2 的編程實(shí)現(xiàn)中, 編寫了實(shí)現(xiàn)掃地機(jī)器人左轉(zhuǎn) 90°函數(shù) Left_turn()和直行 的函數(shù) Straight_go()。

          在這里插入圖片描述

          步驟 3

          步驟 3 類似于步驟 1, 但方向相反。 當(dāng)機(jī)器人遇到障礙物時(shí), 將距離 D與變量 pre_Walkingcount 進(jìn)行比較。 比較的結(jié)果將決定重新覆蓋算法是否工作。如 果 D= pre_Walkingcount, 算 法切 換 到 步 驟 4, D 值將 被 分 配 給變 量 pre_Walkingcount。 通過(guò)與前面的距離進(jìn)行比較, 機(jī)器人可以決定要運(yùn)行哪種算法。

          步驟 4

          機(jī)器人向右轉(zhuǎn) 90 度。 然后機(jī)器人用編碼器記錄向前移動(dòng)的距離 d。 如果 d= Ic , 機(jī)器人向右轉(zhuǎn)動(dòng) 90 度。 之后, 算法切換到步驟 1, 并開始另一個(gè)新的循環(huán)

          在這里插入圖片描述

          4 測(cè)試

          在這里插入圖片描述

          在這里插入圖片描述

          在這里插入圖片描述

          在這里插入圖片描述

          機(jī)器人路徑主要基于弓字形路徑, 利用重復(fù)覆蓋算法對(duì)障礙物后方的區(qū)域進(jìn)行清洗。 與具有隨機(jī)避障算法的掃地機(jī)器人相比, 新算法的機(jī)器人能夠覆蓋94. 61%的地面, 提高了掃地機(jī)器人的效率。

          展示視頻

          畢業(yè)設(shè)計(jì):基于stm32的掃地機(jī)器人

          單片機(jī)-嵌入式畢設(shè)選題大全及項(xiàng)目分享:

          https://blog.csdn.net/m0_71572576/article/details/125409052

          5 最后


          【本文地址】

          公司簡(jiǎn)介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 泸水县| 增城市| 高碑店市| 墨脱县| 泸溪县| 阿克陶县| 普安县| 达尔| 塘沽区| 呼图壁县| 丰镇市| 平遥县| 苗栗县| 万盛区| 金沙县| 霍林郭勒市| 略阳县| 岳普湖县| 东阳市| 偃师市| 古交市| 酒泉市| 洞头县| 静海县| 蒙城县| 旬阳县| 临江市| 天镇县| 无为县| 永宁县| 万全县| 岳西县| 金川县| 乐都县| 翁源县| 阜平县| 临猗县| 海安县| 自治县| 内丘县| 武宣县| http://444 http://444 http://444 http://444 http://444 http://444