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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將MPU6050與Raspberry Pi連接并顯示16x2 LCD值的步驟

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:薩達(dá)姆 ? 2022-11-17 16:42 ? 次閱讀

MPU6050傳感器在單芯片上具有許多功能。它由一個(gè)MEMS加速度計(jì)、一個(gè)MEMS陀螺儀溫度傳感器組成。該模塊在將模擬值轉(zhuǎn)換為數(shù)字時(shí)非常準(zhǔn)確,因?yàn)樗拿總€(gè)通道都有一個(gè) 16 位模數(shù)轉(zhuǎn)換器硬件。該模塊能夠同時(shí)捕獲 x、y 和 z 通道。它具有與主機(jī)控制器通信I2C 接口。該MPU6050模塊是一個(gè)緊湊的芯片,具有加速度計(jì)和陀螺儀。對(duì)于無(wú)人機(jī)機(jī)器人、運(yùn)動(dòng)傳感器等許多應(yīng)用來(lái)說(shuō),這是一個(gè)非常有用的設(shè)備。它也被稱為陀螺儀或三軸加速度計(jì)。

今天在本文中,我們將將此MPU6050與Raspberry Pi連接,并顯示16x2 LCD上的值。

所需組件:

樹(shù)莓派

MPU-6050

10K 鍋

跳線

面包板

電源

MPU6050 陀螺儀傳感器:

MPU-6050是一款 8 針 6 軸陀螺儀和加速度計(jì),集成在單芯片中。默認(rèn)情況下,該模塊在I2C串行通信上工作,但可以通過(guò)配置寄存器來(lái)配置為SPI接口。對(duì)于I2C,它有SDA和SCL線。幾乎所有引腳都是多功能的,但這里我們只繼續(xù)使用I2C模式引腳。

pYYBAGN18_iAZ-c9AACWoluieDM651.jpg

引腳配置:

Vcc:-此引腳用于相對(duì)于地為 MPU6050 模塊供電

接地:-這是一個(gè)接地引腳

SDA:-SDA 引腳用于控制器和 MPU6050 模塊之間的數(shù)據(jù)

標(biāo)準(zhǔn)及校正實(shí)驗(yàn)所:-SCL 引腳用于時(shí)鐘輸入

XDA:-這是傳感器 I2C SDA 數(shù)據(jù)線,用于配置和讀取外部傳感器((可選)在本例中未使用)

XCL:-這是傳感器 I2C SCL 時(shí)鐘線,用于配置和讀取外部傳感器((可選)在本例中未使用)

ADO:-I2C 從地址 LSB(不適用于本例)

國(guó)際:-中斷引腳,用于指示數(shù)據(jù)就緒。

描述:

在本文中,我們將使用帶有樹(shù)莓派的MPU6050在LCD上顯示溫度,陀螺儀和加速度計(jì)讀數(shù)。如果您是樹(shù)莓派的新手,請(qǐng)瀏覽我們的樹(shù)莓派教程部分,學(xué)習(xí)樹(shù)莓派入門。

在這個(gè)項(xiàng)目中,我們首先在LCD上顯示溫度值,一段時(shí)間后我們顯示陀螺儀值,然后在一段時(shí)間后我們得到加速度計(jì)讀數(shù),如下圖所示:

pYYBAGN18_uAZ6rNAAD7sT-CYQA791.jpg

pYYBAGN18_yASRLzAADmDQkGUgk114.jpg

電路圖及說(shuō)明:

用于將MPU6050與Raspberry Pi接口的電路圖非常簡(jiǎn)單,在這里我們使用LCD和MPU6050。10k電位器用于控制LCD的亮度。關(guān)于MPU6050,我們已經(jīng)完成了4個(gè)連接,其中我們將MPU3.3的6050v電源和接地連接到Raspberry Pi的3.3v和接地。MPU6050的SCL和SDA引腳與Raspberry的物理引腳3(GPIO2)和引腳5(GPIO3)連接。LCD的RS,RW和EN直接連接到GPIO18和Raspberry Pi的23。數(shù)據(jù)引腳直接連接到數(shù)字引腳編號(hào) GPIO24、GPIO25、GPIO8 和 GPIO7。

pYYBAGN18_6APoRvAADFpSZnl-w895.png

為 MPU6050 陀螺儀傳感器配置樹(shù)莓派:

在開(kāi)始編程之前,我們需要使用給定的方法啟用樹(shù)莓派的 i2c:

步驟 1:?jiǎn)⒂?I2C 通信

在安裝 Adafruit SSD1306 庫(kù)之前,我們需要在樹(shù)莓派中啟用 I2C 通信。

要在樹(shù)莓派控制臺(tái)中執(zhí)行此操作:

sudo raspi-config

然后會(huì)出現(xiàn)藍(lán)屏。現(xiàn)在選擇接口選項(xiàng)

pYYBAGN19ACALKrQAABaCu_MXus557.png

在此之后,我們需要選擇I2C

poYBAGN19AGAMqAoAABgdvt9pKQ964.png

在此之后,我們需要選擇是并按回車鍵,然后確定

pYYBAGN19AKAQ7cvAAAldGEUqF8222.png

在此之后,我們需要通過(guò)發(fā)出以下命令重新啟動(dòng)樹(shù)莓派:

sodo reboot

第 2 步:安裝 python-pip 和 GPIO 庫(kù)

sudo apt-get install build-essential python-dev python-pip

在此之后,我們需要安裝樹(shù)莓派 GPIO 庫(kù)

sudo pip installs RPi.GPIO

步驟 3:安裝smbus庫(kù)

最后,我們需要使用給定的命令在樹(shù)莓派中安裝 smbus 庫(kù):

sudo apt-get install python-smbus

pYYBAGN19AOAeSPlAAAblVH7djA733.png

步驟 4:安裝庫(kù) MPU6050

在此之后,我們需要使用給定的命令安裝 MPU6050 庫(kù)

poYBAGN19ASAIs1oAABIgRpMdq4426.png

sudo pip install mpu6050

現(xiàn)在我們可以在示例中找到示例代碼。用戶可以通過(guò)直接上傳到樹(shù)莓派或根據(jù)需要對(duì)其進(jìn)行自定義來(lái)測(cè)試該代碼。在這里,我們?cè)?6x2 LCD上顯示了MPU6050的X,Y和Z軸值。您可以在本教程末尾找到完整的 Python 代碼。

編程說(shuō)明:
完整的Python代碼在最后給出,在這里我們解釋了代碼的幾個(gè)重要部分。

在 Python 程序中,我們導(dǎo)入了一些必需的庫(kù),如 time、smbus 和 GPIO。

import smbus
import time

import RPi.GPIO as gpio
在此之后,我們需要一些寄存器地址來(lái)配置 MPU6050 并從中獲取值。我們還采用了一些變量來(lái)校準(zhǔn)和初始化 I2C 總線。

PWR_M = 0x6B
DIV = 0x19
CONFIG = 0x1A
GYRO_CONFIG = 0x1B
INT_EN = 0x38
ACCEL_X = 0x3B
ACCEL_Y = 0x3D
ACCEL_Z = 0x3F
GYRO_X = 0x43
GYRO_Y = 0x45
GYRO_Z = 0x47
TEMP = 0x41
bus = smbus.SMBus(1)

Device_Address = 0x68 # device address
AxCal=0
AyCal=0
AzCal=0
GxCal=0
GyCal=0
GzCal=0
然后我們編寫了一些用于驅(qū)動(dòng)16x2LCD的函數(shù),如def begin(),def cmd(ch),def write(ch),def Print(str),def clear()等。您可以進(jìn)一步檢查L(zhǎng)CD與樹(shù)莓派的接口。

之后,我們需要初始化MPU6050模塊

def InitMPU():
bus.write_byte_data(Device_Address, DIV, 7)
bus.write_byte_data(Device_Address, PWR_M, 1)
bus.write_byte_data(Device_Address, CONFIG, 0)
bus.write_byte_data(Device_Address, GYRO_CONFIG, 24)
bus.write_byte_data(Device_Address, INT_EN, 1)
time.sleep(1)
在此之后,我們需要編寫一些函數(shù)來(lái)從MPU6050讀取值并將其顯示到LCD。給定函數(shù)用于從MPU6050讀取數(shù)據(jù)

def readMPU(addr):
high = bus.read_byte_data(Device_Address, addr)
low = bus.read_byte_data(Device_Address, addr+1)
value = ((high << 8) | low)
if(value > 32768):
value = value - 65536
return value
給定函數(shù)用于讀取加速度計(jì)和陀螺儀數(shù)據(jù)

def accel():
x = readMPU(ACCEL_X)
y = readMPU(ACCEL_Y)
z = readMPU(ACCEL_Z)
Ax = (x/16384.0-AxCal)
Ay = (y/16384.0-AyCal)
Az = (z/16384.0-AzCal)
#print "X="+str(Ax)
display(Ax,Ay,Az)
time.sleep(.01)

def gyro():
global GxCal
global GyCal
global GzCal
x = readMPU(GYRO_X)
y = readMPU(GYRO_Y)
z = readMPU(GYRO_Z)
Gx = x/131.0 - GxCal
Gy = y/131.0 - GyCal
Gz = z/131.0 - GzCal
#print "X="+str(Gx)
display(Gx,Gy,Gz)
time.sleep(.01)
在此之后,我們編寫了一個(gè)溫度讀取函數(shù)

def temp():
tempRow=readMPU(TEMP)
tempC=(tempRow / 340.0) + 36.53
tempC="%.2f" %tempC
print tempC
setCursor(0,0)
Print("Temp: ")
Print(str(tempC))
time.sleep(.2)
def calibrate() 函數(shù)用于校準(zhǔn) MPU6050,def display() 函數(shù)用于在 LCD 上顯示值。在下面給出的完整代碼中檢查這些函數(shù)。

在此之后,我們開(kāi)始LCD,初始化和校準(zhǔn)MPU6050,然后在while循環(huán)中,我們調(diào)用了MPU-溫度,加速度計(jì)和陀螺儀的所有三組值,并通過(guò)LCD顯示它們。

begin();
Print("MPU6050 Interface")
setCursor(0,1)
Print("Circuit Digest")
time.sleep(2)
InitMPU()
calibrate()

while 1:
InitMPU()
clear()

for i in range(20):
temp()
clear()
Print("Accel")
time.sleep(1)
for i in range(30):
accel()
clear()
Print("Gyro")
time.sleep(1)
for i in range(30):
gyro()

pYYBAGN19AWAFDEzAABW6QLGUHg184.jpg

pYYBAGN19AaAQBi2AABVuu_I5do877.jpg

MPU6050陀螺儀和加速度計(jì)都用于檢測(cè)任何設(shè)備的位置和方向。陀螺儀使用地球重力來(lái)確定 x、y 和 z 軸位置,加速度計(jì)根據(jù)運(yùn)動(dòng)變化率進(jìn)行檢測(cè)。

import smbus

import time



import RPi.GPIO as gpio



PWR_M = 0x6B

DIV = 0x19

CONFIG = 0x1A

GYRO_CONFIG = 0x1B

INT_EN = 0x38

ACCEL_X = 0x3B

ACCEL_Y = 0x3D

ACCEL_Z = 0x3F

GYRO_X = 0x43

GYRO_Y = 0x45

GYRO_Z = 0x47

TEMP = 0x41

bus = smbus.SMBus(1)

Device_Address = 0x68 # device address



AxCal=0

AyCal=0

AzCal=0

GxCal=0

GyCal=0

GzCal=0





RS =18

EN =23

D4 =24

D5 =25

D6 =8

D7 =7



gpio.setwarnings(False)

gpio.setmode(gpio.BCM)

gpio.setup(RS, gpio.OUT)

gpio.setup(EN, gpio.OUT)

gpio.setup(D4, gpio.OUT)

gpio.setup(D5, gpio.OUT)

gpio.setup(D6, gpio.OUT)

gpio.setup(D7, gpio.OUT)





def begin():

cmd(0x33)

cmd(0x32)

cmd(0x06)

cmd(0x0C)

cmd(0x28)

cmd(0x01)

time.sleep(0.0005)



def cmd(ch):

gpio.output(RS, 0)

gpio.output(D4, 0)

gpio.output(D5, 0)

gpio.output(D6, 0)

gpio.output(D7, 0)

if ch&0x10==0x10:

gpio.output(D4, 1)

if ch&0x20==0x20:

gpio.output(D5, 1)

if ch&0x40==0x40:

gpio.output(D6, 1)

if ch&0x80==0x80:

gpio.output(D7, 1)

gpio.output(EN, 1)

time.sleep(0.005)

gpio.output(EN, 0)

# Low bits

gpio.output(D4, 0)

gpio.output(D5, 0)

gpio.output(D6, 0)

gpio.output(D7, 0)

if ch&0x01==0x01:

gpio.output(D4, 1)

if ch&0x02==0x02:

gpio.output(D5, 1)

if ch&0x04==0x04:

gpio.output(D6, 1)

if ch&0x08==0x08:

gpio.output(D7, 1)

gpio.output(EN, 1)

time.sleep(0.005)

gpio.output(EN, 0)



def write(ch):

gpio.output(RS, 1)

gpio.output(D4, 0)

gpio.output(D5, 0)

gpio.output(D6, 0)

gpio.output(D7, 0)

if ch&0x10==0x10:

gpio.output(D4, 1)

if ch&0x20==0x20:

gpio.output(D5, 1)

if ch&0x40==0x40:

gpio.output(D6, 1)

if ch&0x80==0x80:

gpio.output(D7, 1)

gpio.output(EN, 1)

time.sleep(0.005)

gpio.output(EN, 0)

# Low bits

gpio.output(D4, 0)

gpio.output(D5, 0)

gpio.output(D6, 0)

gpio.output(D7, 0)

if ch&0x01==0x01:

gpio.output(D4, 1)

if ch&0x02==0x02:

gpio.output(D5, 1)

if ch&0x04==0x04:

gpio.output(D6, 1)

if ch&0x08==0x08:

gpio.output(D7, 1)

gpio.output(EN, 1)

time.sleep(0.005)

gpio.output(EN, 0)

def clear():

cmd(0x01)



def Print(Str):

l=0;

l=len(Str)

for i in range(l):

write(ord(Str[i]))



def setCursor(x,y):

if y == 0:

n=128+x

elif y == 1:

n=192+x

cmd(n)





def InitMPU():

bus.write_byte_data(Device_Address, DIV, 7)

bus.write_byte_data(Device_Address, PWR_M, 1)

bus.write_byte_data(Device_Address, CONFIG, 0)

bus.write_byte_data(Device_Address, GYRO_CONFIG, 24)

bus.write_byte_data(Device_Address, INT_EN, 1)

time.sleep(1)



def display(x,y,z):

x=x*100

y=y*100

z=z*100

x= "%d" %x

y= "%d" %y

z= "%d" %z

setCursor(0,0)

Print("X Y Z")

setCursor(0,1)

Print(str(x))

Print(" ")

setCursor(6,1)

Print(str(y))

Print(" ")

setCursor(12,1)

Print(str(z))

Print(" ")



print x

print y

print z





def readMPU(addr):

high = bus.read_byte_data(Device_Address, addr)

low = bus.read_byte_data(Device_Address, addr+1)

value = ((high << 8) | low)?

if(value > 32768):

value = value - 65536

return value

def accel():

x = readMPU(ACCEL_X)

y = readMPU(ACCEL_Y)

z = readMPU(ACCEL_Z)



Ax = (x/16384.0-AxCal)

Ay = (y/16384.0-AyCal)

Az = (z/16384.0-AzCal)



#print "X="+str(Ax)

display(Ax,Ay,Az)

time.sleep(.01)



def gyro():

global GxCal

global GyCal

global GzCal

x = readMPU(GYRO_X)

y = readMPU(GYRO_Y)

z = readMPU(GYRO_Z)

Gx = x/131.0 - GxCal

Gy = y/131.0 - GyCal

Gz = z/131.0 - GzCal

#print "X="+str(Gx)

display(Gx,Gy,Gz)

time.sleep(.01)



def temp():

tempRow=readMPU(TEMP)

tempC=(tempRow / 340.0) + 36.53

tempC="%.2f" %tempC

print tempC

setCursor(0,0)

Print("Temp: ")

Print(str(tempC))

time.sleep(.2)



def calibrate():

clear()

Print("Calibrate....")

global AxCal

global AyCal

global AzCal

x=0

y=0

z=0

for i in range(50):

x = x + readMPU(ACCEL_X)

y = y + readMPU(ACCEL_Y)

z = z + readMPU(ACCEL_Z)

x= x/50

y= y/50

z= z/50

AxCal = x/16384.0

AyCal = y/16384.0

AzCal = z/16384.0



print AxCal

print AyCal

print AzCal



global GxCal

global GyCal

global GzCal

x=0

y=0

z=0

for i in range(50):

x = x + readMPU(GYRO_X)

y = y + readMPU(GYRO_Y)

z = z + readMPU(GYRO_Z)

x= x/50

y= y/50

z= z/50

GxCal = x/131.0

GyCal = y/131.0

GzCal = z/131.0



print GxCal

print GyCal

print GzCal





begin();

Print("MPU6050 Interface")

setCursor(0,1)

Print("Circuit Digest")

time.sleep(2)

InitMPU()

calibrate()

while 1:

InitMPU()

clear()

for i in range(20):

temp()

clear()

Print("Accel")

time.sleep(1)

for i in range(30):

accel()

clear()

Print("Gyro")

time.sleep(1)

for i in range(30):

gyro()

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4426

    瀏覽量

    167508
  • MPU6050
    +關(guān)注

    關(guān)注

    39

    文章

    307

    瀏覽量

    71411
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    16x2 LCD與ARM7-LPC2148連接顯示文字

    在本教程中,我們將了解如何 16x2 LCD 與 ARM7-LPC2148 微控制器連接顯示
    的頭像 發(fā)表于 10-28 17:12 ?1961次閱讀
    <b class='flag-5'>將</b><b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>與ARM7-LPC2148<b class='flag-5'>連接</b><b class='flag-5'>并</b><b class='flag-5'>顯示</b>文字

    如何16x2 LCD與Atmega16 AVR連接顯示簡(jiǎn)單的歡迎消息

    在本教程中,我們將了解如何 16x2 LCD 與 Atmega16 AVR 微控制器連接
    的頭像 發(fā)表于 11-11 17:29 ?3164次閱讀
    如何<b class='flag-5'>將</b><b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>與Atmega<b class='flag-5'>16</b> AVR<b class='flag-5'>連接</b><b class='flag-5'>并</b><b class='flag-5'>顯示</b>簡(jiǎn)單的歡迎消息

    如何DHT11與樹(shù)莓派連接16x2 LCD屏幕上顯示溫度和濕度的

    在本教程中,我們學(xué)習(xí)如何流行的DHT11傳感器與Raspberry Pi連接,并在16x2
    的頭像 發(fā)表于 11-14 16:53 ?4309次閱讀
    如何<b class='flag-5'>將</b>DHT11與樹(shù)莓派<b class='flag-5'>連接</b>在<b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>屏幕上<b class='flag-5'>顯示</b>溫度和濕度的<b class='flag-5'>值</b>

    在樹(shù)莓派上裝LCD 16x2顯示

    16x2 液晶顯示屏,它有16個(gè)數(shù)據(jù)引腳,但是我們只用6個(gè)就可以了。市面上的LCD 16x2 液晶顯示
    發(fā)表于 01-15 10:53

    【IntoRobot Neutron試用體驗(yàn)】MPU6050測(cè)試

    使用 SDA--D8SCL--D9MPU6050 mpu6050;//我連接是D1--D2//加速度計(jì)的x y z的
    發(fā)表于 06-12 23:19

    MPU6050的使用步驟

    文章目錄前言一、MPU6050是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言一、MPU6050是什么?MPU6050是一款性價(jià)比很高的陀
    發(fā)表于 02-10 07:22

    MPU6050(硬件IIC)

    MPU6050(硬件IIC)MPU6050(硬件IIC)
    發(fā)表于 04-02 16:29 ?79次下載

    mpu6050測(cè)試程序

     InvenSense公司的三軸陀螺儀MPU6050測(cè)試程序。IIC接口,51單片機(jī)驅(qū)動(dòng),LCD1602同步顯示
    發(fā)表于 11-07 14:01 ?6132次閱讀
    <b class='flag-5'>mpu6050</b>測(cè)試程序

    mpu6050怎么與單片機(jī)連接

    本文開(kāi)始介紹了mpu6050的定義和mpu6050的感測(cè)范圍,其次闡述了mpu6050特征,最后介紹了mpu6050與單片機(jī)的連接方法。
    發(fā)表于 03-09 08:42 ?2.7w次閱讀

    MPU6050簡(jiǎn)介

    MPU6050簡(jiǎn)介什么是MPU6050MPU6050的特點(diǎn)MPU6050框圖MPU6050初始化MPU6050—DMP使用介紹
    發(fā)表于 12-06 11:51 ?76次下載
    <b class='flag-5'>MPU6050</b>簡(jiǎn)介

    stm32使用MPU6050讀取溫度驗(yàn)證I2C

    stm32使用MPU6050讀取溫度驗(yàn)證I2C
    發(fā)表于 12-06 12:06 ?5次下載
    stm32使用<b class='flag-5'>MPU6050</b>讀取溫度<b class='flag-5'>值</b>驗(yàn)證I<b class='flag-5'>2</b>C

    STM32使用MPU6050在TFT_LCD顯示數(shù)據(jù)

    續(xù)上一篇,實(shí)現(xiàn)非填充模式顯示數(shù)值的目的是在顯示屏上顯示MPU6050的數(shù)值,方便后面做調(diào)試,這一篇是記錄使用MPU6050的一些過(guò)程。所需材
    發(fā)表于 12-06 13:21 ?10次下載
    STM32使用<b class='flag-5'>MPU6050</b>在TFT_<b class='flag-5'>LCD</b>上<b class='flag-5'>顯示</b>數(shù)據(jù)

    如何連接和使用16x2 I2C LCD的教程

    電子發(fā)燒友網(wǎng)站提供《如何連接和使用16x2 I2C LCD的教程.zip》資料免費(fèi)下載
    發(fā)表于 11-22 14:36 ?0次下載
    如何<b class='flag-5'>連接</b>和使用<b class='flag-5'>16x2</b> I<b class='flag-5'>2</b>C <b class='flag-5'>LCD</b>的教程

    如何16x2 LCDRaspberry pi4連接

    電子發(fā)燒友網(wǎng)站提供《如何16x2 LCDRaspberry pi4連接.zip》資料免費(fèi)下載
    發(fā)表于 06-19 11:45 ?0次下載
    如何<b class='flag-5'>將</b><b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b>與<b class='flag-5'>Raspberry</b> <b class='flag-5'>pi</b>4<b class='flag-5'>連接</b>

    如何連接16x2 LCD顯示

    電子發(fā)燒友網(wǎng)站提供《如何連接16x2 LCD顯示器.zip》資料免費(fèi)下載
    發(fā)表于 07-12 09:21 ?0次下載
    如何<b class='flag-5'>連接</b><b class='flag-5'>16x2</b> <b class='flag-5'>LCD</b><b class='flag-5'>顯示</b>器
    主站蜘蛛池模板: 天天摸夜夜操| 欧美性a欧美在线| 97玖玖| 久久久网站亚洲第一| 色噜噜亚洲男人的天堂| 国产在线欧美精品卡通动漫| 三级黄页| 美女被羞羞产奶视频网站| 黄色美女网站免费| 97人人插| 国产亚洲精品久久yy5099| 婷婷丁香激情五月| 欧美成人伊人久久综合网| 国产一卡2卡3卡四卡精品网站| 奇米狠狠操| 欧美激情 在线| 天天摸天天做天天爽| 女人张腿让男桶免费视频观看| 国产人免费人成免费视频| 欧美大片国产在线永久播放| tom影院亚洲国产一区二区| 久青草国产手机在线视频| 两性色午夜视频免费老司机| 最新欧美精品一区二区三区| 四虎新网站| 好硬好大好爽女房东在线观看| 韩国理论片2023现在观看| 亚洲2020天天堂在线观看| 成人国内精品久久久久影院| 啪啪免费网站| 亚洲天堂999| 免费黄色毛片| 黄网在线免费观看| 天堂网址| 天天摸夜夜摸爽爽狠狠婷婷97| 国产精品第一页在线观看| 黄页网站在线播放| 美女视频久久| 亚洲 欧美 自拍 另类| 2021国内精品久久久久影院 | 亚洲先锋资源|