wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

標題: Arduino自平衡小車……你值得擁有 [打印本頁]

作者: s414545584    時間: 2016-4-9 10:44
標題: Arduino自平衡小車……你值得擁有
  1. #include  "Wire.h"`
  2. const uint8_t IMUAddress = 0x68; // AD0 is logic low on the PCB
  3. const uint16_t I2C_TIMEOUT = 100; // Used to check for errors in I2C communication

  4. uint8_t i2cWrite(uint8_t registerAddress, uint8_t data, bool sendStop) {
  5.   return i2cWrite(registerAddress, &data, 1, sendStop); // Returns 0 on success
  6. }

  7. uint8_t i2cWrite(uint8_t registerAddress, uint8_t *data, uint8_t length, bool sendStop) {
  8.     Wire.beginTransmission(IMUAddress);
  9.     Wire.write(registerAddress);
  10.     Wire.write(data, length);
  11.     uint8_t rcode = Wire.endTransmission(sendStop); // Returns 0 on success
  12.     if (rcode) {
  13.       Serial.print(F("i2cWrite failed: "));
  14.       Serial.println(rcode);
  15.     }
  16.     return rcode; // See: http://arduino.cc/en/Reference/WireEndTransmission
  17. }

  18. uint8_t i2cRead(uint8_t registerAddress, uint8_t *data, uint8_t nbytes) {
  19.     uint32_t timeOutTimer;
  20.     Wire.beginTransmission(IMUAddress);
  21.     Wire.write(registerAddress);
  22.     uint8_t rcode = Wire.endTransmission(false); // Don't release the bus
  23.     if (rcode) {
  24.       Serial.print(F("i2cRead failed: "));
  25.       Serial.println(rcode);
  26.       return rcode; // See: http://arduino.cc/en/Reference/WireEndTransmission
  27.     }
  28.     Wire.requestFrom(IMUAddress, nbytes, (uint8_t)true); // Send a repeated start and then release the bus after reading
  29.     for (uint8_t i = 0; i < nbytes; i++) {
  30.       if (Wire.available())
  31.         data[i] = Wire.read();
  32.       else {
  33.         timeOutTimer = micros();
  34.         while (((micros() - timeOutTimer) < I2C_TIMEOUT) && !Wire.available());
  35.         if (Wire.available())
  36.           data[i] = Wire.read();
  37.         else {
  38.           Serial.println(F("i2cRead timeout"));
  39.           return 5; // This error value is not already taken by endTransmission
  40.         }
  41.       }
  42.     }
  43.     return 0; // Success
  44. }

  45. /******************************************************/

  46. //2560 pin map  引腳定義好即可,然后改變一下PID的幾個值(kp,kd,ksp,ksi)即可,剩下的全部都是固定的程序,
  47. //可能小車會有一點重心不在中點的現(xiàn)象,加一下角度值或者減一點即可
  48. //至于每個MPU6050的誤差,自己調(diào)節(jié)一下即可,不是很難
  49. //調(diào)試時先將速度環(huán)的ksp,ksi=0,調(diào)到基本可以站起來,然后可能會出現(xiàn)倒,或者自動跑起來的時候加上速度環(huán)
  50. //這時就會很穩(wěn)定的站起來,然后用小力氣的手推不會倒。
  51. int ENA=11;
  52. int ENB=12;

  53. int IN1=4;
  54. int IN2=5;
  55. int IN3=6;
  56. int IN4=7;

  57. int MAS,MBS;


  58. /* IMU Data */
  59. double accX, accY, accZ;
  60. double gyroX, gyroY, gyroZ;
  61. int16_t tempRaw;

  62. double gyroXangle, gyroYangle; // Angle calculate using the gyro only
  63. double compAngleX, compAngleY; // Calculated angle using a complementary filter
  64. double kalAngleX, kalAngleY; // Calculated angle using a Kalman filter
  65. uint8_t i2cData[14]; // Buffer for I2C data
  66. uint32_t timer;
  67. unsigned long lastTime;      

  68. /***************************************/
  69. double P[2][2] = {{ 1, 0 },{ 0, 1 }};
  70. double Pdot[4] ={ 0,0,0,0};
  71. static const double Q_angle=0.001, Q_gyro=0.003, R_angle=0.5,dtt=0.005,C_0 = 1;
  72. double q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1;
  73. double angle,angle_dot,aaxdot,aax;
  74. double position_dot,position_dot_filter,positiono;

  75. /*-------------Encoder---------------*/

  76. #define LF 0
  77. #define RT 1

  78. //The balance PID
  79. float kp,kd,ksp,ksi;

  80. int Lduration,Rduration;
  81. boolean LcoderDir,RcoderDir;
  82. const byte encoder0pinA = 2;
  83. const byte encoder0pinB = 8;
  84. byte encoder0PinALast;
  85. const byte encoder1pinA = 3;
  86. const byte encoder1pinB = 9;
  87. byte encoder1PinALast;

  88. int RotationCoder[2];
  89. int turn_flag=0;
  90. float move_flag=0;
  91. float right_need = 0, left_need = 0;;

  92. int pwm;
  93. int pwm_R,pwm_L;
  94. float range;
  95. float range_error_all;
  96. float wheel_speed;
  97. float last_wheel;
  98. float error_a=0;

  99. void Kalman_Filter(double angle_m,double gyro_m)
  100. {
  101.     angle+=(gyro_m-q_bias) * dtt;
  102.     Pdot[0]=Q_angle - P[0][1] - P[1][0];
  103.     Pdot[1]=- P[1][1];
  104.     Pdot[2]=- P[1][1];
  105.     Pdot[3]=Q_gyro;
  106.     P[0][0] += Pdot[0] * dtt;
  107.     P[0][1] += Pdot[1] * dtt;
  108.     P[1][0] += Pdot[2] * dtt;
  109.     P[1][1] += Pdot[3] * dtt;
  110.     angle_err = angle_m - angle;
  111.     PCt_0 = C_0 * P[0][0];
  112.     PCt_1 = C_0 * P[1][0];
  113.     E = R_angle + C_0 * PCt_0;
  114.     K_0 = PCt_0 / E;
  115.     K_1 = PCt_1 / E;
  116.     t_0 = PCt_0;
  117.     t_1 = C_0 * P[0][1];
  118.     P[0][0] -= K_0 * t_0;
  119.     P[0][1] -= K_0 * t_1;
  120.     P[1][0] -= K_1 * t_0;
  121.     P[1][1] -= K_1 * t_1;
  122.     angle+= K_0 * angle_err;
  123.     q_bias += K_1 * angle_err;
  124.     angle_dot = gyro_m-q_bias;//也許應(yīng)該用last_angle-angle
  125. }

  126. void setup() {
  127.     Wire.begin();
  128.     Serial.begin(9600);
  129.     pinMode(IN1, OUTPUT);
  130.     pinMode(IN2, OUTPUT);
  131.     pinMode(IN3, OUTPUT);
  132.     pinMode(IN4, OUTPUT);  
  133.     pinMode(ENA, OUTPUT);
  134.     pinMode(ENB, OUTPUT);
  135.     TWBR = ((F_CPU / 400000L) - 16) / 2; // Set I2C frequency to 400kHz

  136.     i2cData[0] = 7; // Set the sample rate to 1000Hz - 8kHz/(7+1) = 1000Hz
  137.     i2cData[1] = 0x00; // Disable FSYNC and set 260 Hz Acc filtering, 256 Hz Gyro filtering, 8 KHz sampling
  138.     i2cData[2] = 0x00; // Set Gyro Full Scale Range to ±250deg/s
  139.     i2cData[3] = 0x00; // Set Accelerometer Full Scale Range to ±2g
  140.     while (i2cWrite(0x19, i2cData, 4, false)); // Write to all four registers at once
  141.     while (i2cWrite(0x6B, 0x01, true)); // PLL with X axis gyroscope reference and disable sleep mode

  142.     while (i2cRead(0x75, i2cData, 1));
  143.     if (i2cData[0] != 0x68) { // Read "WHO_AM_I" register
  144.         Serial.print(F("Error reading sensor"));
  145.         while (1);
  146.     }

  147.     delay(20); // Wait for sensor to stabilize

  148.     while (i2cRead(0x3B, i2cData, 6));
  149.     accX = (i2cData[0] << 8) | i2cData[1];
  150.     accY = (i2cData[2] << 8) | i2cData[3];
  151.     accZ = (i2cData[4] << 8) | i2cData[5];


  152.     double roll  = atan2(accX, accZ) * RAD_TO_DEG;
  153.     EnCoderInit();
  154.     timer = micros();

  155.       //The balance PID
  156.     kp= 42;//24.80;43
  157.     kd= 1.9;//9.66;1.4
  158.     ksp= 8.5;//4.14;
  159.     ksi= 2.1;//0.99; 0.550
  160. }

  161. void EnCoderInit()
  162. {
  163.     pinMode(8,INPUT);
  164.     pinMode(9,INPUT);
  165.     attachInterrupt(LF, LwheelSpeed, RISING);
  166.     attachInterrupt(RT, RwheelSpeed, RISING);
  167. }

  168. void pwm_calculate()
  169. {
  170.     unsigned long  now = millis();       // 當前時間(ms)
  171.     int Time = now - lastTime;
  172.     int range_error;
  173.     range += (Lduration + Rduration) * 0.5;
  174.     range *= 0.9;
  175.     range_error = Lduration - Rduration;
  176.     range_error_all += range_error;
  177.    
  178.     wheel_speed = range - last_wheel;   
  179.     //wheel_speed = constrain(wheel_speed,-800,800);
  180.     //Serial.println(wheel_speed);
  181.     last_wheel = range;  
  182.     pwm = (angle + 0.825) * kp + angle_dot * kd + range * ksp + wheel_speed * ksi;     
  183.     if(pwm > 255)pwm = 255;
  184.     if(pwm < -255)pwm = -255;
  185.    
  186.     if(turn_flag == 0)
  187.     {
  188.          pwm_R = pwm + range_error_all;
  189.          pwm_L = pwm - range_error_all;
  190.     }
  191.     else if(turn_flag == 1)     //左轉(zhuǎn)
  192.     {
  193.         pwm_R = pwm ;  //Direction PID control
  194.         pwm_L = pwm + left_need * 68;
  195.         range_error_all = 0;     //clean
  196.     }
  197.     else if(turn_flag == 2)
  198.     {
  199.         pwm_R = pwm + right_need * 68;  //Direction PID control
  200.         pwm_L = pwm ;
  201.         range_error_all = 0;     //clean
  202.     }
  203.       
  204.        Lduration = 0;//clean
  205.        Rduration = 0;
  206.        lastTime = now;
  207. }

  208. void PWMD()
  209. {  
  210.       if(pwm>0)
  211.       {
  212.           digitalWrite(IN1, HIGH);
  213.           digitalWrite(IN2, LOW);
  214.           digitalWrite(IN3, LOW);
  215.           digitalWrite(IN4, HIGH);   
  216.       }
  217.       else if(pwm<0)
  218.       {
  219.           digitalWrite(IN1, LOW);
  220.           digitalWrite(IN2, HIGH);
  221.           digitalWrite(IN3, HIGH);
  222.           digitalWrite(IN4, LOW);
  223.       }
  224.       int PWMr = abs(pwm);
  225.       int PWMl = abs(pwm);
  226.    
  227.       analogWrite(ENB, max(PWMl,60)); //PWM調(diào)速a==0-255  51
  228.       analogWrite(ENA, max(PWMr,60)); //PWM調(diào)速a==0-255  54
  229.       
  230. }

  231. void LwheelSpeed()
  232. {
  233.       if(digitalRead(encoder0pinB))
  234.         Lduration++;
  235.       else Lduration--;
  236. }


  237. void RwheelSpeed()
  238. {
  239.       if(digitalRead(encoder1pinB))
  240.         Rduration--;
  241.       else Rduration++;
  242. }

  243. void control()
  244. {
  245.     if(Serial.available()){
  246.       int val;
  247.       val=Serial.read();
  248.       switch(val){
  249.         case 'w':
  250.           if(move_flag<5)move_flag += 0.5;
  251.           else  move_flag = 0;
  252.           break;
  253.         case 's':
  254.           if(move_flag<5)move_flag -= 0.5;
  255.           else  move_flag = 0;
  256.          Serial.println("back");
  257.           break;
  258.         case 'a':
  259.           turn_flag = 1;
  260.           left_need = 0.6;
  261.           Serial.println("zuo");
  262.           break;
  263.         case 'd':
  264.           turn_flag = 2;
  265.           right_need = 0.6;
  266.           Serial.println("you");
  267.           break;
  268.         case 't':
  269.           move_flag=0;
  270.           turn_flag=0;
  271.           right_need = left_need = 0;
  272.           Serial.println("stop");
  273.           break;
  274.         default:
  275.           break;
  276.           }
  277.       }
  278. }

  279. void loop()
  280. {

  281.     //control();
  282.     while (i2cRead(0x3B, i2cData, 14));
  283.     accX = ((i2cData[0] << 8) | i2cData[1]);
  284.     //accY = ((i2cData[2] << 8) | i2cData[3]);
  285.     accZ = ((i2cData[4] << 8) | i2cData[5]);
  286.     //gyroX = (i2cData[8] << 8) | i2cData[9];
  287.     gyroY = (i2cData[10] << 8) | i2cData[11];
  288.     //gyroZ = (i2cData[12] << 8) | i2cData[13];

  289.     double dt = (double)(micros() - timer) / 1000000; // Calculate delta time
  290.     timer = micros();

  291.     double roll  = atan2(accX, accZ) * RAD_TO_DEG - move_flag;


  292.     //double gyroXrate = gyroX / 131.0; // Convert to deg/s
  293.     double gyroYrate = -gyroY / 131.0; // Convert to deg/s

  294.     //gyroXangle += gyroXrate * dt; // Calculate gyro angle without any filter
  295.     //gyroYangle += gyroYrate * dt;

  296.     Kalman_Filter(roll,gyroYrate);   
  297.     if(abs(angle)<35){
  298.         //Serial.println(angle);   
  299.         pwm_calculate();
  300.         PWMD();
  301.     }
  302.     else{
  303.         analogWrite(ENB, 0); //PWM調(diào)速a==0-255
  304.         analogWrite(ENA, 0); //PWM調(diào)速a==0-255
  305.     }  
  306.     delay(2);
  307. }
復(fù)制代碼

器件:Arduino UNO或者Mega2560、LM298模塊,MPU6050傳感器、兩個編碼電機,
          公母杜邦線,藍牙HT-06、鋰電池18650(4)——(成本大概200左右)

如果用手機控制可以下載應(yīng)用寶里面的一個“小蜜蜂機器人”APP,個人覺得這個APP功能超強大,大神寫的APP就是屌!專門連接藍牙的串口助手,還有調(diào)試舵機的功能,簡直可以上天了。

調(diào)試過程中會學(xué)習(xí)到很多東西,希望大家可以看看,雖然我也做的很好,不過在這期間學(xué)習(xí)到了很多東西……
幾天就可以看到你想看到的現(xiàn)象喲,還等什么,開始動手吧,慢慢看資料慢慢理解(不對之處,敬請諒解)
                                                                                                                                  ——初學(xué)者心聲
http://v.youku.com/v_show/id_XMTUyODUwMDkxMg==.html





作者: admin    時間: 2016-4-9 12:27
謝謝分享 樓主能傳個壓縮包嗎 好像還有些頭文件沒有
作者: s414545584    時間: 2016-4-9 16:55
附件里面有wire的庫文件,MPU6050原始數(shù)據(jù)分析,以及PWM輸出的原理,還有小蜜蜂藍牙助手的調(diào)試APP……

Wire_bluetooth_MPU6050數(shù)據(jù)分析.zip

5 MB, 下載次數(shù): 146, 下載積分: 黑幣 -5

值得看看


作者: xiaobolinux    時間: 2016-4-15 22:35
s414545584 發(fā)表于 2016-4-9 16:55
附件里面有wire的庫文件,MPU6050原始數(shù)據(jù)分析,以及PWM輸出的原理,還有小蜜蜂藍牙助手的調(diào)試APP……

arduino平衡車自動跑起來的時候怎么加上速度環(huán)呢?
作者: s414545584    時間: 2016-4-16 20:07
xiaobolinux 發(fā)表于 2016-4-15 22:35
arduino平衡車自動跑起來的時候怎么加上速度環(huán)呢?

直接加呀,代碼里面有
作者: xiaobolinux    時間: 2016-4-17 00:00
s414545584 發(fā)表于 2016-4-16 20:07
直接加呀,代碼里面有

但是我的平衡車能平衡但是只是往一個方向跑,跑一段就倒了,不能原地控制。
作者: xiaobolinux    時間: 2016-4-17 09:54
s414545584 發(fā)表于 2016-4-16 20:07
直接加呀,代碼里面有

哪句是關(guān)于速度環(huán)的呀
作者: xiaobolinux    時間: 2016-4-17 10:23
然后可能會出現(xiàn)倒,或者自動跑起來的時候加上速度環(huán)
//這時就會很穩(wěn)定的站起來,然后用小力氣的手推不會倒。


這個不行啊,一直往前,倒。 然后代碼里面沒有加速度環(huán)呀,,怎么加呀,,速度環(huán)是啥呀,,求教
作者: s414545584    時間: 2016-4-17 12:21
xiaobolinux 發(fā)表于 2016-4-17 10:23
然后可能會出現(xiàn)倒,或者自動跑起來的時候加上速度環(huán)
//這時就會很穩(wěn)定的站起來,然后用小力氣的手推不會倒 ...

加q414545584,私聊,交流一下
作者: yangtao    時間: 2016-7-21 23:21
  你好 請問在哪兒可以調(diào)初始角?
作者: yangtao    時間: 2016-7-22 19:49
  請問一下樓主  那個電機編碼器的線 接到車上的腳是要怎么定義?
作者: s414545584    時間: 2016-7-23 12:21
yangtao 發(fā)表于 2016-7-21 23:21
你好 請問在哪兒可以調(diào)初始角?

double roll  = atan2(accX, accZ) * RAD_TO_DEG - move_flag;
這個就是x軸方向的角度,move_flag就是偏移量,調(diào)偏移量,用串口讀數(shù)直到基本為0
作者: s414545584    時間: 2016-7-23 12:22
yangtao 發(fā)表于 2016-7-22 19:49
請問一下樓主  那個電機編碼器的線 接到車上的腳是要怎么定義?

編碼電機上的AB相線一個用來檢測高低電平然后自加或者自減,另外一個用來觸發(fā)中斷函數(shù),你可以看上面的引腳定義就知道啦
作者: yangtao    時間: 2016-7-23 23:34
s414545584 發(fā)表于 2016-7-23 12:22
編碼電機上的AB相線一個用來檢測高低電平然后自加或者自減,另外一個用來觸發(fā)中斷函數(shù),你可以看上面的引 ...

謝謝了 已經(jīng)調(diào)平衡了

作者: 雙贏電子    時間: 2016-8-2 14:11
好資料,辛苦樓主了
作者: 念想    時間: 2016-8-22 22:46
贊一個
作者: a98765432180    時間: 2016-8-23 15:28
這個還ˊ需要再修改一下 使可以適應(yīng)四處移動
作者: s414545584    時間: 2016-8-25 12:21
a98765432180 發(fā)表于 2016-8-23 15:28
這個還ˊ需要再修改一下 使可以適應(yīng)四處移動

里面不是有個control函數(shù)嗎,那就是用藍牙控制的呀……
作者: hzbw    時間: 2016-9-10 19:32
樓主可以分享個接線圖嗎?
作者: mahua_nirvana    時間: 2017-4-14 06:36
thank you so much.
作者: bonzewu1213    時間: 2017-4-17 03:09
本帖最后由 bonzewu1213 于 2017-4-19 03:16 編輯

請問樓主,目前我按您貼的源碼,上傳後,僅有右輪正常運轉(zhuǎn),傾斜加速,反向傾斜,反向加速,但僅有右輪會動,左輪完全不動,是不是源碼有地方被註記起來,沒有打開,謝謝。
作者: bonzewu1213    時間: 2017-4-17 20:54
哈哈,ENA及ENB應(yīng)接11,12,接錯了,接成10,11,改正後就可以了,已經(jīng)解決,只是重心還要調(diào)一下,基本上已正常運作,太棒了,感謝樓主,大大感謝。
作者: 仔仔12    時間: 2017-4-19 14:07
bonzewu1213 發(fā)表于 2017-4-17 03:09
請問樓主,目前我按您貼的源碼,上傳後,僅有右輪正常運轉(zhuǎn),傾斜加速,反向傾斜,反向加速,但僅有右輪會動 ...

我上傳后怎么兩個輪子都沒動
作者: bonzewu1213    時間: 2017-4-20 00:36
仔仔12 發(fā)表于 2017-4-19 14:07
我上傳后怎么兩個輪子都沒動

據(jù)我所知,L298N 有分A,B 兩型, 你要買那種 6根排針上面都沒有jumper 的那種,馬達電源需要有12V,12V接線要接對,接錯,很容易把線燒著了,得趕緊滅火 XD 如果接線都對了,應(yīng)該跑得起來才對,原始作者,應(yīng)該給他大大讚一個!
作者: DKdakai    時間: 2017-7-2 17:55
不錯,真的不錯,我正在找呢
作者: DKdakai    時間: 2017-7-2 17:56
這些代碼我正需要,沒想到在這個網(wǎng)站找到了,不錯!
作者: fortesting    時間: 2017-9-13 10:54
這些代碼我正需要,沒想到在這個網(wǎng)站找到了,不錯!
作者: fortesting    時間: 2017-9-13 10:54
這些代碼我正需要,沒想到在這個網(wǎng)站找到了,不錯!
作者: mayunzhi    時間: 2017-9-16 00:50
學(xué)習(xí)了
作者: bendan191125    時間: 2017-10-12 19:40
學(xué)習(xí)一下
作者: adsorb-virus    時間: 2017-11-27 19:54
樓主有接線圖嗎?
作者: wdyv2000    時間: 2017-11-28 16:40
好棒,不知運行結(jié)果如何。
作者: earthcat    時間: 2018-5-1 10:04
這個厲害了!!!
作者: 蔡定銀    時間: 2018-5-3 11:21
真的很溜哦
作者: 騰飛的龍    時間: 2018-7-29 18:10
樓主您好!分享出原理圖啊謝謝!!
作者: jilinzhang    時間: 2019-1-15 02:28
好棒,不知運行結(jié)果如何
作者: zhang_yingjun    時間: 2019-5-16 17:17
感謝樓主的分享,剛從百度上搜到這篇文章,小蜜蜂app的大神真棒。就是app資源確實難找




歡迎光臨 (http://m.izizhuan.cn/bbs/) Powered by Discuz! X3.1
中文字幕av免费在线观看| 成人三级毛片| 天堂av在线免费观看| 在线看av网址| 美女被黑人40厘米进入| 亚洲av永久纯肉无码精品动漫| 欧美一级高潮片| 精品爆乳一区二区三区无码av| 久久久久久久久久久久| www.啪啪.com| 白嫩情侣偷拍呻吟刺激| 中文字幕视频观看| 黄色国产在线视频| 午夜一区二区三区免费| 亚洲一级中文字幕| 久久99久久99精品免费看小说| 国产精品无码无卡无需播放器| 久久丫精品国产亚洲av不卡| 真实乱视频国产免费观看| 欧美成人国产精品一区二区| 日韩一区二区a片免费观看| 日本爱爱爱视频| 登山的目的在线| 中文在线一区二区三区| 精品国产成人亚洲午夜福利| 精品人妻中文无码av在线| 黄色免费一级视频| 青青草原在线免费观看| 日韩欧美激情视频| 午夜视频网站在线观看| 在线视频播放大全| 高清乱码毛片入口| 亚洲欧美精选| 色一色在线观看视频网站| chinese叫床对白videos| www.成人精品免费网站青椒| 在线观看av影片| www.视频在线.com| 手机在线免费看av| 日韩另类视频| 欧美巨大xxxx| 欧美福利网址| 麻豆免费精品视频| 成人爱爱电影网址| 国产精品一区二区三区四区在线观看 | 国产91在线播放九色快色| 性欧美激情精品| 国产精品色婷婷视频| 国产伦精品一区二区三区高清版| 色综合久久88色综合天天提莫| 91亚洲精品在线| 欧美xxxx黑人又粗又长精品| 国内少妇毛片视频| 中文字幕亚洲影院| 欧美日韩中文字幕视频| 台湾佬中文在线| 手机av在线免费观看| 秋霞午夜剧场| 男女污视频在线观看| 草草视频在线观看| 免费成人蒂法| 亚洲自拍另类| 久久久久久久久97黄色工厂| 日韩欧美亚洲范冰冰与中字| 亚洲国产欧美一区二区三区久久| 久久精品国产v日韩v亚洲| 国产精品mp4| 日韩一本精品| www欧美激情| 性爱在线免费视频| 亚洲一级av毛片| 国产美女自拍| 欧美少妇另类| 久久女人天堂| 欧美二区视频| 久久麻豆一区二区| 欧美天堂亚洲电影院在线播放| 亚洲欧美另类自拍| 国产精品青青在线观看爽香蕉 | 91免费在线播放视频| 中文字幕在线看| 深夜福利视频一区二区| 国产成人黄色| 紧缚奴在线一区二区三区| 亚洲精品亚洲人成人网在线播放| 精品少妇一区二区三区免费观看| 98视频在线噜噜噜国产| 无遮挡亚洲一区| 中文字幕18页| 又骚又黄的视频| 德国性xxxx| 污视频网站在线播放| eeuss影影院www在线播放| a视频在线观看免费| 午夜精品福利影院| 精品一区二区精品| 色综合咪咪久久| 免费91在线视频| 色一情一乱一伦一区二区三欧美 | 八戒八戒神马在线电影| 日韩成人动漫在线观看| 国产在线精品一区在线观看麻豆| 色综合久久综合网欧美综合网| 欧美日韩电影在线观看| 亚洲精品一区二区毛豆| 五月婷婷综合在线观看| 国产超碰人人模人人爽人人添| 先锋影音av资源在线| 精品国产第一福利网站| 国产欧美三级| 亚洲午夜电影在线观看| 久久成人人人人精品欧| 亚洲资源视频| 男人舔女人下部高潮全视频| 五月天婷婷视频| 欧美一区二区三区少妇| 风间由美中文字幕在线看视频国产欧美 | 91免费黄视频| 四虎影视1304t| 乱精品一区字幕二区| 美乳中文字幕| 美女福利一区二区三区| 欧美精品色网| 国产精品美女久久久久aⅴ国产馆| 精品国产亚洲在线| 国产日韩欧美在线观看| 黄色高清无遮挡| 久久精品国产亚洲av高清色欲| www.黄色小说.com| 韩国福利在线| 神马久久av| 成人自拍视频在线| 91精品麻豆日日躁夜夜躁| 国产精品扒开腿做| 日韩av资源在线| 久久夜色精品亚洲| 你懂的网站在线播放| 青草青在线视频| 亚洲国产精品久久久天堂| 欧美精彩视频一区二区三区| 亚洲美女黄色片| 97人人模人人爽人人喊38tv| 国产制服丝袜在线| 欧美熟妇交换久久久久久分类 | 国内一区二区三区在线视频| 日韩视频在线观看一区二区三区| 欧美成人一区二区三区四区| 天天碰日日操| 欧美成人xxxx| 国产精品一二三四| 欧美成人bangbros| 精品久久久久久亚洲| 天堂av网手机版| 国产乱精品一区二区三区| 大桥未久在线播放| 亚洲制服少妇| 欧美日韩国产精品自在自线| 亚洲最大av网| av网站免费在线看| 尤物视频网站| 成人精品国产亚洲| 国产成人高清视频| 日韩国产欧美区| 欧美中日韩免费视频| 欧美日韩精品一区二区三区视频播放 | 日韩黄色高清视频| 欧美在线一二三区| 欧美h片在线观看| 午夜成年女人毛片免费观看| 精品国产免费人成网站| 粉嫩嫩av羞羞动漫久久久| 一本一本久久a久久精品牛牛影视| 四虎一区二区| 黄色小视频在线免费看| 美日韩黄色片| 国产精品x8x8一区二区| 日韩美女精品在线| 国产91精品青草社区| www.五月天色| 一区二区三国产精华液| 日韩免费va| 精品一区二区三区在线播放| 日日骚久久av| 国产精品后入内射日本在线观看| 国产精品久久久午夜夜伦鲁鲁| 成人三级黄色免费网站| 亚洲少妇一区| 欧美性xxxxxxxx| 国产一级二级三级精品| 久久这里只有精品免费| 欧美日夜夜逼| 亚洲精品欧美| 精品国产乱子伦一区| av磁力番号网| 一区两区小视频| av观看在线| 久久精品国产免费看久久精品| 日韩第一页在线| 波多野结衣av一区二区全免费观看 | 黄色动漫免费看| 日韩一区二区三免费高清在线观看| 久久精品水蜜桃av综合天堂| 午夜精品久久久久久久99黑人| 日韩成人av免费| 污污视频在线免费| 国产精品爱久久久久久久小说| 欧美日韩免费电影| 亚洲视频免费看| 91沈先生作品| 欧美黄色一区二区三区| 亚洲一区二区三区成人 | 人人人妻人人澡人人爽欧美一区| 美女激情视频网站| 成人情趣视频网站| 在线看不卡av| 日韩精品一区二区三区丰满| 日本三级午夜理伦三级三| 裸体xxxx视频在线| 免费一级片91| 韩剧1988在线观看免费完整版| 黄色av网址在线观看| www.麻豆av.com| 一区二区电影在线观看| 精品国产人成亚洲区| 手机看片福利日韩| 国产亚洲精品一区二区在线观看| 国产精品乱战久久久| 色妹子一区二区| 影音先锋在线亚洲| 毛片在线免费视频| 国产精品蜜芽在线观看| 国产人成亚洲第一网站在线播放 | 北条麻妃在线一区二区| 野花视频免费在线观看| jizz在线视频| 欧美日韩国产探花| 欧美成人午夜激情视频| 中文字幕在线观看的网站| 又黄又爽在线观看| 激情综合网av| 国产成人av在线| 日本高清www免费视频| 任你弄在线视频免费观看| 久久久精品免费免费| 999国产在线| 久久这里只有精品9| 91在线亚洲| 欧美性猛交xxxx偷拍洗澡| 青少年xxxxx性开放hg| 性感美女一级片| 三级小说欧洲区亚洲区| 欧美日韩在线播放三区| 超碰在线97免费| 成人免费视频网站在线看| 美腿丝袜一区二区三区| 青青久久av北条麻妃黑人| 久久精品国产亚洲av麻豆色欲| аⅴ资源天堂资源库在线| 一区二区三区 在线观看视频| 国产经典久久久| 国产乱人视频免费播放| 狠狠色丁香久久综合频道 | 五月天精品一区二区三区| 一区二区三区四区久久| 国产亚洲第一的欧洲日产| 久久欧美肥婆一二区| 日本老师69xxx| 麻豆一区二区三区在线观看| 天堂中文在线官网| 国内精品久久久久久99蜜桃| www.日韩系列| 国产精品久久久久久久精| 黄视频免费在线看| 在线精品视频一区二区三四| 亚洲高清av一区二区三区| 原千岁中文字幕| 国产成人精品一区二区三区网站观看| 久久国产精品免费视频 | 一区二区中文视频| 欧美三级午夜理伦三级老人| 91电影在线| 丝袜美腿亚洲色图| 国产精品青青在线观看爽香蕉| 中文字幕在线观看精品| 黄色成人美女网站| 中文字幕亚洲国产| 少妇人妻丰满做爰xxx| 交100部在线观看| 色中色一区二区| 久久久999视频| 人成免费电影一二三区在线观看| 91麻豆高清视频| 亚洲午夜精品久久久中文影院av| 国产精品视频白浆合集| 91久久午夜| 91人人爽人人爽人人精88v| 日韩一级片免费| 好看不卡的中文字幕| 国产精品影院在线观看| www.四虎在线观看| 91av精品| 欧美最猛性xxxxx(亚洲精品)| 黑人精品一区二区| 一本久道久久综合婷婷鲸鱼| 国产欧美一区二区三区在线看 | 99久久综合国产精品二区| 欧美精品自拍偷拍| 50一60岁老妇女毛片| 国产h片在线观看| 制服丝袜成人动漫| 开心激情五月网| 日韩第二十一页| 亚洲女人天堂色在线7777| 欧美三级黄色大片| 男人的天堂在线| 欧美在线色视频| 国产草草浮力影院| xxxxx性欧美特大| 日韩女优制服丝袜电影| www.av免费| 亚洲第一二区| 久久夜色精品亚洲噜噜国产mv| 91成品人影院| 国产一区二区高清| 日本高清不卡一区二区三| eeuss第一页| 亚洲男人的天堂在线aⅴ视频| 成人性视频欧美一区二区三区| www黄在线观看| 在线观看91精品国产入口| 久久久国产一级片| 97品白浆高清久久久久久| 欧美国产视频日韩| 精品人妻无码一区二区色欲产成人 | 国产男女猛烈无遮挡| 欧美精品一区二区三区久久久竹菊| 亚洲а∨天堂久久精品喷水| 黄色在线视频网址| 亚洲精品一区二区在线看| 亚洲aa中文字幕| 美乳美女在线观看香蕉| 国产精品免费aⅴ片在线观看| 亚洲一区不卡在线| 第一视频专区在线| 日韩你懂的在线播放| 国产性猛交╳xxx乱大交| 999久久久免费精品国产| 成人网在线观看| 嫩草影院在线观看网站成人| ...xxx性欧美| 无码国产精品一区二区高潮| 日韩高清不卡| 97视频在线观看免费高清完整版在线观看| 欧美一区二区三区激情| 久久激情五月激情| 中文字幕の友人北条麻妃| 在线免费黄色| 欧美成人伊人久久综合网| 欧美videossex极品| 午夜天堂精品久久久久| 亚洲国产一区二区三区在线| 在线欧美成人| 91麻豆精品久久久久蜜臀| 国产超碰人人爽人人做人人爱| 99国产精品视频免费观看一公开| 欧美亚洲一级二级| 在线免费黄色毛片| 欧美日韩午夜在线视频| 自拍偷拍色综合| 日本女人一区二区三区| www.18av.com| 日韩在线资源| 色播久久人人爽人人爽人人片视av| 免费观看国产精品| 国产乱码精品一区二区三区av| 日本不卡二区| 青青青青在线| 日韩在线中文字| 韩日电影在线观看| 亚洲一区二区三区中文字幕| 乱h高h女3p含苞待放| 亚洲精选91| 日本三级免费网站| 四虎国产精品永久在线国在线 | 国产一区高清| 国产精品电影一区| 女生裸体无遮挡天堂网站免费| 一区二区三区四区在线免费观看| 中文字幕免费看| 综合国产视频| 视频一区国产精品| 黄色精品免费看| 丝袜一区二区三区| 91网站观看| 黄色一区二区在线| 国产高潮久久久| 美女视频一区二区三区| 五月婷婷狠狠操| 欧美一区在线观看视频| 亚洲综合中文字幕68页|