在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣讓機械臂繪畫

454398 ? 來源:工程師吳畏 ? 2019-08-07 17:41 ? 次閱讀

1。 OWI機器人手臂邊緣

2。 Arduino紅板

3。電機護罩(用于控制機器人的電機)

4。公針頭(用于堆疊Arduino上方的電機屏蔽)

5。很少有跳線

6。 5V-12V外部電源(理想情況下為9V)

7。一盆水

8。油畫

9。紙張(吸收圖案)

10。 BitVoicer軟件(僅適用于Windows)

步驟1:組裝OWI機械

OWI機械臂已售出作為單獨的組件。我們必須組裝不同的部分。

完全組裝好手臂之后,我們得到了上面完成的輸出。

可以看出,它有一個可以握筆的夾子,或者在我們的情況下是一個油漆瓶,當夾具盡可能閉合時,可以擠壓。

要運行手臂電機,需要4‘D’電池。

第2步:在Arduino上堆疊電機護罩

OWI機械臂有五個自由度,因此有5個直流電機。其中1個電機負責夾具的打開和關閉,2個電機用于左右移動,另外2個電機用于上下移動。 Arduino只能處理1個電機,也無法完全為電機供電。為了使兩個或更多電機同時運動,我們使用電機屏蔽。

電機屏蔽層使用公針頭堆疊在Arduino上方。為了獲得更好的連接,引腳接頭的一側焊接到電機屏蔽層上的相應引腳。引腳接頭的另一端插入Arduino板的數字引腳。 此外,電機屏蔽使用外部電源單獨供電。 Arduino由USB或槍管插孔供電。

電機屏蔽可以一次控制4個電機。由于我們不希望所有5臺電機因任何原因同時運行,我們在這里不會遇到任何問題。

移動電機的示例代碼如下所示:

#include

#include Adafruit_DCMotor *myMotor4 = AFMS.getMotor(4); myMotor4-》setSpeed(150);

myMotor4-》run(FORWARD);

delay(3000);

myMotor4-》setSpeed(0);

delay(300);

步驟3:連接電機護罩和機械臂

將機器人的電機連接到電機護罩。我們需要這種跳線。

在電機護罩上,有4個插槽(M1,M2,M3,M4)用于連接4個電機。對于這個項目,由于我們只需要有限的運動,我們排除了兩個有助于上下移動的電機中的一個。

步驟4:編碼

我們的代碼執行以下功能:

機器人具有固定的起始位置。它從那里移動,從支架(它旁邊)抓住一瓶油漆,打開抓手,抓住瓶子并收緊瓶子的把手。

從這里開始,它移動到水桶的位置,就在抓手的正下方,移動到水池的最右端,擠壓瓶子一次,移動到中心,擠壓,移動到最左邊的位置,然后再滴一滴油漆。

然后它回到初始位置

接下來又回來再采取另一種顏色的顏色

再次執行(2),但這次只是下降了2滴油漆在不同于先前油漆掉落的位置。

/*參考文獻:Adafruit motor屏蔽直流電機示例稱為MotorTest

BitVoicer用于切換LED的軟件示例程序。我們使用此示例中的對象僅用于實例化*/

#include

#include

#include“ utility/Adafruit_PWMServoDriver.h“

#include

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

Adafruit_DCMotor * myMotor1 = AFMS.getMotor(1);

Adafruit_DCMotor * myMotor2 = AFMS.getMotor(2);

Adafruit_DCMotor * myMotor3 = AFMS.getMotor (3);

Adafruit_DCMotor * myMotor4 = AFMS.getMotor(4);

BitVoicerSerial bvSerial = BitVoicerSerial();

boolean sampleTest = false;

byte dataType = 0;

void setup(){

Serial.begin(9600);

Serial.println(“Adafruit Motorshield v2 - DC Motor test!”);

AFMS.begin();

myMotor4-》 setSpeed(150);

myMotor4-》 run(FORWARD);

//打開電機

myMotor4 - 》 run(RELEASE);

myMotor2-》 setSpeed(150);

myMotor2-》 run(FORWARD);

//打開電機

myMotor2-》 run(RELEASE);

bvSerial.setAnalogReference(BV_EXTERNAL);

bvSerial.setAudioInput(0);

Serial.begin(9600);

}

void loop(){

if(sampleTest == true)

{

bvSerial.processAudio(46);

}

if(bvSerial.engineRunning)

{

bvSerial.processAudio(46);

}

}

void serialEvent()

{

dataType = bvSerial.getData();

if(dataType == BV_COMMAND)

sampleTest = bvSerial.cmdData;

if(dataType == BV_STATUS&& bvSerial.engineRunning == true)

bvSerial.startStopListening();

if(dataType == BV_STR)

func1();

}

void func1()///3滴

{

if(bvSerial.strData ==“five”)

{

myMotor4-》 run(FORWARD);//來拾取顏色

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (FORWARD);//關閉夾子

myMotor2-》 setSpeed(150);

延遲(600);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor3-》 run (向后);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(4000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(200);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run(BACKWARD);//Unqueezing

myMotor2-》 setSpeed(250);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(1000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(150);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (后退);//不壓縮

myMotor2-》 setSpeed(150);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(1000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(150);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (后退);//不壓縮

myMotor2-》 setSpeed(150);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed(150);

延遲(2000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor3-》 run (前進);

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(400);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);//打開抓手

myMotor4-》 setSpeed(150);

延遲(4000);

myMotor4-》 setSpeed(0);

延遲(400);

func2();

}

否則if(bvSerial.strData ==“two”)

{

two_drops();

}

其他

{

bvSerial.startStopListening();

bvSerial.sendToBV(“ERROR:”+ bvSerial .strData);

bvSerial.startStopListening();

}

}

void func2()///2 drop

{

myMotor4-》 run(FORWARD);//來拾取顏色

myMotor4-》 setSpeed(150);

延遲(4000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (FORWARD);//關閉夾子

myMotor2-》 setSpeed(150);

延遲(600);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor3-》 run (向后);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(3500);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(150);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (后退);//不壓縮

myMotor2-》 setSpeed(150);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(1000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed(150);

延遲(2000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor3-》 run (向前);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor3-》 run (向后);//將夾子移到下面

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor3-》 run (向前);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor3-》 run (向后);//將夾子移到下面

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor3-》 run (向前);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor3-》 run (向后);//將夾子移到下面

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed( 150);

延遲(1000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(150);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (后退);//不壓縮

myMotor2-》 setSpeed(150);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(2500);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor3-》 run (前進);

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(400);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

}

void two_drops()

{

myMotor4-》 run(FORWARD);//來拾取顏色

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (FORWARD);//關閉夾子

myMotor2-》 setSpeed(150);

延遲(600);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor3-》 run (向后);//將抓手移到頂部

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(3500);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(150);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (后退);//不壓縮

myMotor2-》 setSpeed(150);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run(FORWARD);

myMotor4-》 setSpeed(150);

延遲(1500);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor2-》 run (FORWARD);//擠壓抓手

myMotor2-》 setSpeed(150);

延遲(300);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (后退);//不壓縮

myMotor2-》 setSpeed(150);

延遲(50);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(2000);

myMotor4-》 setSpeed(0);

延遲(300);

myMotor3-》 run (前進);

myMotor3-》 setSpeed(150);

延遲(600);

myMotor3-》 setSpeed(0);

延遲(300);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(400);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

}

void brush()

{

myMotor4-》 run(BACKWARD);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor2-》 run (FORWARD);//關閉夾子

myMotor2-》 setSpeed(150);

延遲(600);

myMotor2-》 setSpeed(0);

延遲(400);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor1-》 run (后退);

myMotor1-》 setSpeed(150);

延遲(600);

myMotor1-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(1000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor4-》 run (FORWARD);

myMotor4-》 setSpeed(150);

延遲(2000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor1-》 run (前進);

myMotor1-》 setSpeed(150);

延遲(600);

myMotor1-》 setSpeed(0);

延遲(400);

myMotor4-》 run (后退);

myMotor4-》 setSpeed(150);

延遲(4000);

myMotor4-》 setSpeed(0);

延遲(400);

myMotor2-》 run (后退);//打開抓手

myMotor2-》 setSpeed(150);

延遲(380);

myMotor2-》 setSpeed(0);

延遲(200);

myMotor4-》 run (前進);

myMotor4-》 setSpeed(150);

延遲(3000);

myMotor4-》 setSpeed(0);

延遲(400);

}

步驟5:與BitVoicer集成

下一步是在任何Windows機器上下載并安裝BitVoicer軟件。

在上一步中提到了將Arduino代碼與BitVoicer集成的代碼。

在此之后,我們必須在BitVoicer窗口中獲得語音字及其映射的內容。對于這個項目,演講詞是‘現代藝術’和‘簡單藝術’。

命令‘MODERN ART’,映射到一個從油漆瓶中擠出3組油漆滴的功能。因此,與“SIMPLE ART”功能相比,我們在紙上獲得了更深的彩色圖案。

命令SIMPLE ART‘,僅丟棄2組油漆滴。

步驟6:工作和最終圖像的視頻

視頻顯示機器人使用聲控命令執行大理石繪畫。大理石畫可以在圖片中看到,它顯示了兩種不同顏色的畫作。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Arduino
    +關注

    關注

    188

    文章

    6478

    瀏覽量

    188290
  • 機械臂
    +關注

    關注

    12

    文章

    528

    瀏覽量

    24791
收藏 人收藏

    評論

    相關推薦

    如何使用PLC控制myCobot 320機械

    根據持續的用戶反饋,目前市場對 PLC 與 myCobot 系統集成的需求很大,因此本文提供的案例介紹了如何使用 PLC(可編程邏輯控制器)來控制 myCobot 320 機械。本案例重點介紹
    的頭像 發表于 01-23 14:03 ?345次閱讀
    如何使用PLC控制myCobot 320<b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    使用myCobot 280機械結合ROS2系統搭建機械分揀站

    這篇文章是來自Automatic Addison的開源項目,已獲作者授權轉載自github。本項目的主要內容是使用myCobot 280機械結合ROS2系統搭建機械分揀站。
    的頭像 發表于 01-15 09:22 ?194次閱讀
    使用myCobot 280<b class='flag-5'>機械</b><b class='flag-5'>臂</b>結合ROS2系統搭建<b class='flag-5'>機械</b>分揀站

    深度解析!RK3568 加持機械是如何實現顏色識別與抓取的?

    一、產品簡介TL3568-PlusTEB人工智能實驗箱國產高性能處理器64位4核低功耗2.0GHz超高主頻1T超高算力NPU兼容鴻蒙等國產操作系統二、實驗目的1、了解機械識別顏色抓取積木的基本流程
    的頭像 發表于 01-15 08:07 ?195次閱讀
    深度解析!RK3568 加持<b class='flag-5'>機械</b><b class='flag-5'>臂</b>是如何實現顏色識別與抓取的?

    RK3568國產實驗箱+人工智能機械:跳舞、疊羅漢、夾方塊、積木搬運案例全解!

    基于語音控制實現機械特定動作的方法。三、實驗原理程序功能通過語音控制機械實現特定復雜動作:機械
    的頭像 發表于 12-12 19:01 ?524次閱讀
    RK3568國產實驗箱+人工智能<b class='flag-5'>機械</b><b class='flag-5'>臂</b>:跳舞、疊羅漢、夾方塊、積木搬運案例全解!

    “雙保險”鎖緊機制:YM28系列連接器為機械提供高牢靠的大電流連接

    機械因其精準性、智能性、高效性等特點,在工業制造、物流倉儲、醫療手術等領域如魚得水、應用甚廣。在機械大展身手的背后,其實有一股不可忽視的力量在支撐,那就是承擔電氣化連接的工業級連接
    的頭像 發表于 11-20 01:03 ?290次閱讀
    “雙保險”鎖緊機制:YM28系列連接器為<b class='flag-5'>機械</b><b class='flag-5'>臂</b>提供高牢靠的大電流連接

    機械的高效運作,連接器起關鍵作用

    ? ? ?機械是靈活且可編程的自動化設備,在工業生產中發揮著至關重要的作用。其廣泛的應用領域涵蓋了裝配與搬運、焊接與噴涂、檢測與測量、碼垛等多個環節,極大地提升了生產效率與質量,并成功替代人工完成
    的頭像 發表于 11-11 18:07 ?380次閱讀

    OrangePi AIpro應用:機械應用開發指南

    2024世界人工智能大會上,香橙派攜OrangePiAIpro20T在世博展覽館H1-A301展區亮相,給大家帶來AI+互動的沉浸式體驗。其中,搭載OrangePiAIpro開發板的智能機械吸引了
    的頭像 發表于 08-19 16:42 ?687次閱讀
    OrangePi AIpro應用:<b class='flag-5'>機械</b><b class='flag-5'>臂</b>應用開發指南

    工業機器人和機械的設計、功能和應用有哪些區別?

    機械是一種由多個關節連接而成的機械結構,類似于人的胳膊。它通常具有可旋轉或可伸縮的關節,使其能夠在空間中執行精確的定位和操作。機械通常由
    的頭像 發表于 08-16 09:43 ?639次閱讀

    奧比中光推出2.0版大模型機械

    近期,奧比中光研發團隊融合前沿多模態大模型技術,推出最新2.0版大模型機械演示方案。新方案搭載公司最新深度相機Gemini 335L和Femto Bolt,能夠基于語音指令,自動執行沏茶、插花、滴
    的頭像 發表于 07-19 16:50 ?847次閱讀

    大象機器人開源協作機械機械接入GPT4o大模型!

    本文已經或者同濟子豪兄作者授權對文章進行編輯和轉載 引言 隨著人工智能和機器人技術的快速發展,機械在工業、醫療和服務業等領域的應用越來越廣泛。通過結合大模型和多模態AI,機械能夠實
    的頭像 發表于 07-03 14:09 ?1107次閱讀
    大象機器人開源協作<b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>接入GPT4o大模型!

    國產Cortex-A55人工智能教學實驗箱_基于Python機械跳舞實驗案例分享

    又不必要。 從力學的角度分析,物件在空間只有6個自由度。因此為抓取和傳送在空間不同位置和方位物件,傳送機構也應具有6個自由度。 實驗程序流程 1、創建機械對象 2、機械循環跳舞:
    發表于 06-28 14:37

    基于六維力傳感器的機械自動裝配應用

    六維力傳感器是一種特殊的力覺傳感器,可以測量物體在笛卡爾坐標系下三個軸向的力和力矩,其內部采用高度敏感的材料和精密機械構造,可以為機械提供更高的測量精度,滿足不同場景下的測量需求。作為機械
    的頭像 發表于 06-06 13:49 ?961次閱讀
    基于六維力傳感器的<b class='flag-5'>機械</b><b class='flag-5'>臂</b>自動裝配應用

    自然語言控制機械:ChatGPT與機器人技術的融合創新(下)

    引言 在我們的上一篇文章中,我們探索了如何將ChatGPT集成到myCobot 280機械臂中,實現了一個通過自然語言控制機械的系統。我們詳細介紹了項目的動機、使用的關鍵技術如ChatGPT
    的頭像 發表于 04-11 15:54 ?1022次閱讀
    自然語言控制<b class='flag-5'>機械</b><b class='flag-5'>臂</b>:ChatGPT與機器人技術的融合創新(下)

    機械技術的前沿探索:年度案例回顧!

    在過去的幾年里,機械技術經歷了前所未有的發展,其應用領域從傳統的制造業擴展到了醫療、服務、物流等多個新興行業。這種跨界擴展得益于科技的飛速進步,尤其是在傳感器、控制系統和人工智能領域的突破。特別是
    的頭像 發表于 03-12 15:14 ?1284次閱讀
    <b class='flag-5'>機械</b><b class='flag-5'>臂</b>技術的前沿探索:年度案例回顧!

    如何去提升機械的位置控制性能?

    1.背景介紹 機械的位置控制是機械最重要的功能。機械的位置控制精度也是研究者及工程師一直關
    的頭像 發表于 03-05 08:43 ?1189次閱讀
    如何去提升<b class='flag-5'>機械</b><b class='flag-5'>臂</b>的位置控制性能?
    主站蜘蛛池模板: 一级片免费在线观看 | 欧美性猛交xxxx乱大交中文 | 色视频网 | 天天狠操 | 特黄十八岁大片 | 影院成人区精品一区二区婷婷丽春院影视 | 天天干天天操天天添 | 久久dvd| 天堂视频在线视频观看2018 | 人人草人人爽 | 亚洲成在人线影视天堂网 | 国产成人精品亚洲 | 日日操天天射 | 亚洲精品mv在线观看 | 欧美爆操 | 黄色爽视频 | 在线三区 | 四虎在线永久 | 草久视频在线观看 | 国产码一区二区三区 | 黄色一级a毛片 | 婷婷丁香九月 | 性大特级毛片视频 | 爽a中文字幕一区 | 精品国产乱码一区二区三区 | 婷婷久久综合九色综合98 | 成人国产永久福利看片 | www狠狠干 | 玖玖激情| 1000rt人体1000欧美 | 天堂成人网 | 久久精品免费视频观看 | 亚洲视频黄 | 高清不卡免费一区二区三区 | 色黄网站成年女人色毛片 | 久久性生活 | 美女三级网站 | 四虎国产成人亚洲精品 | 国产三级自拍视频 | 久久狠色噜噜狠狠狠狠97 | www.色五月|