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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 35322|回復: 50
打印 上一主題 下一主題
收起左側(cè)

Arduino平衡小車源碼&原理圖[Minibalance For Arduino]

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:219190 發(fā)表于 2017-7-12 18:31 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
Arduino平衡小車源碼&原理圖【Minibalance For Arduino】



把我們提供的庫文件拷貝到您的Arduino安裝目錄下的Libraries文件夾

可在附件中下載


  1. /****************************************************************************
  2.    作者:平衡小車之家
  3.    產(chǎn)品名稱:Minibalance For Arduino
  4. ****************************************************************************/
  5. #include <DATASCOPE.h>      //這是PC端上位機的庫文件
  6. #include <PinChangeInt.h>    //外部中斷
  7. #include <MsTimer2.h>        //定時中斷
  8. #include <KalmanFilter.h>    //卡爾曼濾波
  9. #include "I2Cdev.h"        
  10. #include "MPU6050_6Axis_MotionApps20.h"//MPU6050庫文件
  11. #include "Wire.h"  
  12. #include <EEPROM.h>         
  13. MPU6050 Mpu6050; //實例化一個 MPU6050 對象,對象名稱為 Mpu6050
  14. DATASCOPE data;//實例化一個 上位機 對象,對象名稱為 data
  15. KalmanFilter KalFilter;//實例化一個卡爾曼濾波器對象,對象名稱為 KalFilter
  16. int16_t ax, ay, az, gx, gy, gz;  //MPU6050的三軸加速度和三軸陀螺儀數(shù)據(jù)
  17. #define KEY 3     //按鍵引腳
  18. #define IN1 12   //TB6612FNG驅(qū)動模塊控制信號 共6個
  19. #define IN2 13
  20. #define IN3 7
  21. #define IN4 6
  22. #define PWMA 10
  23. #define PWMB 9
  24. #define ENCODER_L 2  //編碼器采集引腳 每路2個 共4個
  25. #define DIRECTION_L 5
  26. #define ENCODER_R 4
  27. #define DIRECTION_R 8
  28. #define ZHONGZHI 0//小車的機械中值  DIFFERENCE
  29. #define DIFFERENCE 2
  30. int Balance_Pwm, Velocity_Pwm, Turn_Pwm;   //直立 速度 轉(zhuǎn)向環(huán)的PWM
  31. int Motor1, Motor2;      //電機疊加之后的PWM
  32. float Battery_Voltage;   //電池電壓 單位是V
  33. volatile long Velocity_L, Velocity_R = 0;   //左右輪編碼器數(shù)據(jù)
  34. int Velocity_Left, Velocity_Right = 0;     //左右輪速度
  35. int Flag_Qian, Flag_Hou, Flag_Left, Flag_Right; //遙控相關(guān)變量
  36. int Angle, Show_Data,PID_Send;  //用于顯示的角度和臨時變量
  37. unsigned char Flag_Stop = 1,Send_Count,Flash_Send;  //停止標志位和上位機相關(guān)變量
  38. float Balance_Kp=15,Balance_Kd=0.4,Velocity_Kp=2,Velocity_Ki=0.01;
  39. //***************下面是卡爾曼濾波相關(guān)變量***************//
  40. float K1 = 0.05; // 對加速度計取值的權(quán)重
  41. float Q_angle = 0.001, Q_gyro = 0.005;
  42. float R_angle = 0.5 , C_0 = 1;
  43. float dt = 0.005; //注意:dt的取值為濾波器采樣時間 5ms
  44. int addr = 0;
  45. /**************************************************************************
  46. 函數(shù)功能:檢測小車是否被拿起
  47. 入口參數(shù):Z軸加速度 平衡傾角 左輪編碼器 右輪編碼器
  48. 返回  值:0:無事件 1:小車被拿起
  49. **************************************************************************/
  50. int Pick_Up(float Acceleration, float Angle, int encoder_left, int encoder_right){
  51.   static unsigned int flag, count0, count1, count2;
  52.   if (flag == 0) //第一步
  53.   {
  54.     if (abs(encoder_left) + abs(encoder_right) < 15)         count0++;  //條件1,小車接近靜止
  55.     else       count0 = 0;
  56.     if (count0 > 10)      flag = 1, count0 = 0;
  57.   }
  58.   if (flag == 1) //進入第二步
  59.   {
  60.     if (++count1 > 400)       count1 = 0, flag = 0;                         //超時不再等待2000ms
  61.     if (Acceleration > 27000 && (Angle > (-14 + ZHONGZHI)) && (Angle < (14 + ZHONGZHI)))  flag = 2; //條件2,小車是在0度附近被拿起
  62.   }
  63.   if (flag == 2)  //第三步
  64.   {
  65.     if (++count2 > 200)       count2 = 0, flag = 0;       //超時不再等待1000ms
  66.     if (abs(encoder_left + encoder_right) > 300)           //條件3,小車的輪胎因為正反饋達到最大的轉(zhuǎn)速      
  67.      {
  68.         flag = 0;  return 1;
  69.       }                                          
  70.   }
  71.   return 0;
  72. }
  73. /**************************************************************************
  74. 函數(shù)功能:檢測小車是否被放下 作者:平衡小車之家
  75. 入口參數(shù): 平衡傾角 左輪編碼器 右輪編碼器
  76. 返回  值:0:無事件 1:小車放置并啟動
  77. **************************************************************************/
  78. int Put_Down(float Angle, int encoder_left, int encoder_right){
  79.   static u16 flag, count;
  80.   if (Flag_Stop == 0)         return 0;                   //防止誤檢
  81.   if (flag == 0)
  82.   {
  83.     if (Angle > (-10 + ZHONGZHI) && Angle < (10 + ZHONGZHI) && encoder_left == 0 && encoder_right == 0)      flag = 1; //條件1,小車是在0度附近的
  84.   }
  85.   if (flag == 1)
  86.   {
  87.     if (++count > 100)       count = 0, flag = 0;  //超時不再等待 500ms
  88.     if (encoder_left > 12 && encoder_right > 12 && encoder_left < 80 && encoder_right < 80) //條件2,小車的輪胎在未上電的時候被人為轉(zhuǎn)動
  89.     {
  90.       flag = 0;
  91.       flag = 0;
  92.       return 1;    //檢測到小車被放下
  93.     }
  94.   }
  95.   return 0;
  96. }
  97. /**************************************************************************
  98. 函數(shù)功能:異常關(guān)閉電機 作者:平衡小車之家
  99. 入口參數(shù):傾角和電池電壓
  100. 返回  值:1:異常  0:正常
  101. **************************************************************************/
  102. unsigned char Turn_Off(float angle, float voltage)
  103. {
  104.   unsigned char temp;
  105.   if (angle < -40 || angle > 40 || 1 == Flag_Stop || voltage < 11.1) //電池電壓低于11.1V關(guān)閉電機 //===傾角大于40度關(guān)閉電機//===Flag_Stop置1關(guān)閉電機
  106.   {                                                                        
  107.     temp = 1;                                          
  108.     analogWrite(PWMA, 0);  //PWM輸出為0
  109.     analogWrite(PWMB, 0); //PWM輸出為0
  110.   }
  111.   else    temp = 0;   //不存在異常,返回0
  112.   return temp;
  113. }
  114. /**************************************************************************
  115. 函數(shù)功能:虛擬示波器往上位機發(fā)送數(shù)據(jù) 作者:平衡小車之家
  116. 入口參數(shù):無
  117. 返回  值:無
  118. **************************************************************************/
  119. void DataScope(void)
  120. {
  121.   int i;
  122.   data.DataScope_Get_Channel_Data(Angle, 1);  //顯示第一個數(shù)據(jù),角度
  123.   data.DataScope_Get_Channel_Data(Velocity_Left, 2);//顯示第二個數(shù)據(jù),左輪速度  也就是每40ms輸出的脈沖計數(shù)
  124.   data.DataScope_Get_Channel_Data(Velocity_Right, 3);//顯示第三個數(shù)據(jù),右輪速度 也就是每40ms輸出的脈沖計數(shù)
  125.   data.DataScope_Get_Channel_Data(Battery_Voltage, 4);//顯示第四個數(shù)據(jù),電池電壓,單位V
  126.   Send_Count = data.DataScope_Data_Generate(4);
  127.   for ( i = 0 ; i < Send_Count; i++)
  128.   {
  129.     Serial.write(DataScope_OutPut_Buffer[i]);  
  130.   }
  131.   delay(50);  //上位機必須嚴格控制發(fā)送時序
  132. }
  133. /**************************************************************************
  134. 函數(shù)功能:按鍵掃描  作者:平衡小車之家
  135. 入口參數(shù):無
  136. 返回  值:按鍵狀態(tài),1:單擊事件,0:無事件。
  137. **************************************************************************/
  138. unsigned char My_click(void){
  139.   static unsigned char flag_key = 1; //按鍵按松開標志
  140.   unsigned char Key;   
  141.   Key = digitalRead(KEY);   //讀取按鍵狀態(tài)
  142.   if (flag_key && Key == 0) //如果發(fā)生單擊事件
  143.   {
  144.     flag_key = 0;
  145.     return 1;            // 單擊事件
  146.   }
  147.   else if (1 == Key)     flag_key = 1;
  148.   return 0;//無按鍵按下
  149. }
  150. /**************************************************************************
  151. 函數(shù)功能:直立PD控制  作者:平衡小車之家
  152. 入口參數(shù):角度、角速度
  153. 返回  值:直立控制PWM
  154. **************************************************************************/
  155. int balance(float Angle, float Gyro)
  156. {
  157.   float Bias;
  158.   int balance;
  159.   Bias = Angle - 0;   //===求出平衡的角度中值 和機械相關(guān)
  160.   balance = Balance_Kp * Bias + Gyro * Balance_Kd; //===計算平衡控制的電機PWM  PD控制   kp是P系數(shù) kd是D系數(shù)
  161.   return balance;
  162. }
  163. /**************************************************************************
  164. 函數(shù)功能:速度PI控制 作者:平衡小車之家
  165. 入口參數(shù):左輪編碼器、右輪編碼器
  166. 返回  值:速度控制PWM
  167. **************************************************************************/
  168. int velocity(int encoder_left, int encoder_right)
  169. {
  170.   static float Velocity, Encoder_Least, Encoder, Movement;
  171.   static float Encoder_Integral, Target_Velocity;
  172.   float kp = 2, ki = kp / 200;    //PI參數(shù)
  173.   if       ( Flag_Qian == 1)Movement = 600;
  174.   else   if ( Flag_Hou == 1)Movement = -600;
  175.   else    //這里是停止的時候反轉(zhuǎn),讓小車盡快停下來
  176.   {
  177.     Movement = 0;
  178.     if (Encoder_Integral > 300)   Encoder_Integral -= 200;
  179.     if (Encoder_Integral < -300)  Encoder_Integral += 200;
  180.   }
  181.   //=============速度PI控制器=======================//
  182.   Encoder_Least = (encoder_left + encoder_right) - 0;               //===獲取最新速度偏差==測量速度(左右編碼器之和)-目標速度(此處為零)
  183.   Encoder *= 0.7;                                                   //===一階低通濾波器
  184.   Encoder += Encoder_Least * 0.3;                                   //===一階低通濾波器
  185.   Encoder_Integral += Encoder;                                      //===積分出位移 積分時間:40ms
  186.   Encoder_Integral = Encoder_Integral - Movement;                   //===接收遙控器數(shù)據(jù),控制前進后退
  187.   if (Encoder_Integral > 21000)    Encoder_Integral = 21000;        //===積分限幅
  188.   if (Encoder_Integral < -21000) Encoder_Integral = -21000;         //===積分限幅
  189.   Velocity = Encoder * Velocity_Kp + Encoder_Integral * Velocity_Ki;                  //===速度控制
  190.   if (Turn_Off(KalFilter.angle, Battery_Voltage) == 1 || Flag_Stop == 1)    Encoder_Integral = 0;//小車停止的時候積分清零
  191.   return Velocity;
  192. }
  193. /**************************************************************************
  194. 函數(shù)功能:轉(zhuǎn)向控制 作者:平衡小車之家
  195. 入口參數(shù):Z軸陀螺儀
  196. 返回  值:轉(zhuǎn)向控制PWM
  197. **************************************************************************/
  198. int turn(float gyro)//轉(zhuǎn)向控制
  199. {
  200.   static float Turn_Target, Turn, Turn_Convert = 3;
  201.   float Turn_Amplitude = 80, Kp = 2, Kd = 0.001;  //PD參數(shù)
  202.   if (1 == Flag_Left)             Turn_Target += Turn_Convert;  //根據(jù)遙控指令改變轉(zhuǎn)向偏差
  203.   else if (1 == Flag_Right)       Turn_Target -= Turn_Convert;//根據(jù)遙控指令改變轉(zhuǎn)向偏差
  204.   else Turn_Target = 0;
  205.   if (Turn_Target > Turn_Amplitude)  Turn_Target = Turn_Amplitude; //===轉(zhuǎn)向速度限幅
  206.   if (Turn_Target < -Turn_Amplitude) Turn_Target = -Turn_Amplitude;
  207.   Turn = -Turn_Target * Kp + gyro * Kd;         //===結(jié)合Z軸陀螺儀進行PD控制
  208.   return Turn;
  209. }
  210. /**************************************************************************
  211. 函數(shù)功能:賦值給PWM寄存器 作者:平衡小車之家
  212. 入口參數(shù):左輪PWM、右輪PWM
  213. 返回  值:無
  214. **************************************************************************/
  215. void Set_Pwm(int moto1, int moto2)
  216. {
  217.   if (moto1 > 0)     digitalWrite(IN1, HIGH),      digitalWrite(IN2, LOW);  //TB6612的電平控制
  218.   else             digitalWrite(IN1, LOW),       digitalWrite(IN2, HIGH); //TB6612的電平控制
  219.   analogWrite(PWMA, abs(moto1)); //賦值給PWM寄存器
  220.   if (moto2 < 0) digitalWrite(IN3, HIGH),     digitalWrite(IN4, LOW); //TB6612的電平控制
  221.   else        digitalWrite(IN3, LOW),      digitalWrite(IN4, HIGH); //TB6612的電平控制
  222.   analogWrite(PWMB, abs(moto2));//賦值給PWM寄存器
  223. }
  224. /**************************************************************************
  225. 函數(shù)功能:限制PWM賦值  作者:平衡小車之家
  226. 入口參數(shù):無
  227. 返回  值:無
  228. **************************************************************************/
  229. void Xianfu_Pwm(void)
  230. {
  231.   int Amplitude = 250;  //===PWM滿幅是255 限制在250
  232.   if(Flag_Qian==1)  Motor2-=DIFFERENCE;  //DIFFERENCE是一個衡量平衡小車電機和機械安裝差異的一個變量。直接作用于輸出,讓小車具有更好的一致性。
  233.   if(Flag_Hou==1)   Motor2-=DIFFERENCE-2;
  234.   if (Motor1 < -Amplitude) Motor1 = -Amplitude;
  235.   if (Motor1 > Amplitude)  Motor1 = Amplitude;
  236.   if (Motor2 < -Amplitude) Motor2 = -Amplitude;
  237.   if (Motor2 > Amplitude)  Motor2 = Amplitude;
  238. }
  239. /**************************************************************************
  240. 函數(shù)功能:5ms控制函數(shù) 核心代碼 作者:平衡小車之家
  241. 入口參數(shù):無
  242. 返回  值:無
  243. **************************************************************************/
  244. void control()
  245. {
  246.   static int Velocity_Count, Turn_Count, Encoder_Count;
  247.   static float Voltage_All,Voltage_Count;
  248.   int Temp;
  249.   sei();//全局中斷開啟
  250.   Mpu6050.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);  //獲取MPU6050陀螺儀和加速度計的數(shù)據(jù)
  251.   KalFilter.Angletest(ax, ay, az, gx, gy, gz, dt, Q_angle, Q_gyro, R_angle, C_0, K1);          //通過卡爾曼濾波獲取角度
  252.   Angle = KalFilter.angle;//Angle是一個用于顯示的整形變量
  253.   Balance_Pwm = balance(KalFilter.angle, KalFilter.Gyro_x);//直立PD控制 控制周期5ms
  254.   if (++Velocity_Count >= 8) //速度控制,控制周期40ms
  255.   {
  256.     Velocity_Left = Velocity_L;    Velocity_L = 0;  //讀取左輪編碼器數(shù)據(jù),并清零,這就是通過M法測速(單位時間內(nèi)的脈沖數(shù))得到速度。
  257.     Velocity_Right = Velocity_R;    Velocity_R = 0; //讀取右輪編碼器數(shù)據(jù),并清零
  258.     Velocity_Pwm = velocity(Velocity_Left, Velocity_Right);//速度PI控制,控制周期40ms
  259.     Velocity_Count = 0;
  260.   }
  261.   if (++Turn_Count >= 4)//轉(zhuǎn)向控制,控制周期20ms
  262.   {
  263.     Turn_Pwm = turn(gz);
  264.     Turn_Count = 0;
  265.   }
  266.   Motor1 = Balance_Pwm - Velocity_Pwm + Turn_Pwm;  //直立速度轉(zhuǎn)向環(huán)的疊加
  267.   Motor2 = Balance_Pwm - Velocity_Pwm - Turn_Pwm; //直立速度轉(zhuǎn)向環(huán)的疊加
  268.   Xianfu_Pwm();//限幅
  269.   if (Pick_Up(az, KalFilter.angle, Velocity_Left, Velocity_Right))   Flag_Stop = 1;  //===如果被拿起就關(guān)閉電機//===檢查是否小車被那起
  270.   if (Put_Down(KalFilter.angle, Velocity_Left, Velocity_Right))      Flag_Stop = 0;              //===檢查是否小車被放下
  271.   if (Turn_Off(KalFilter.angle, Battery_Voltage) == 0)        Set_Pwm(Motor1, Motor2);//如果不存在異常,賦值給PWM寄存器控制電機
  272.   if (My_click()) Flag_Stop = !Flag_Stop;   //中斷剩余的時間掃描一下按鍵狀態(tài)
  273.   Temp = analogRead(0);  //采集一下電池電壓
  274.   Voltage_Count++;       //平均值計數(shù)器
  275.   Voltage_All+=Temp;     //多次采樣累積
  276.   if(Voltage_Count==200) Battery_Voltage=Voltage_All*0.05371/200,Voltage_All=0,Voltage_Count=0;//求平均值
  277. }
  278. /**************************************************************************
  279. 函數(shù)功能:初始化 相當于STM32里面的Main函數(shù) 作者:平衡小車之家
  280. 入口參數(shù):無
  281. 返回  值:無
  282. **************************************************************************/
  283. void setup() {
  284.   pinMode(IN1, OUTPUT);        //TB6612控制引腳,控制電機1的方向,01為正轉(zhuǎn),10為反轉(zhuǎn)
  285.   pinMode(IN2, OUTPUT);          //TB6612控制引腳,
  286.   pinMode(IN3, OUTPUT);          //TB6612控制引腳,控制電機2的方向,01為正轉(zhuǎn),10為反轉(zhuǎn)
  287.   pinMode(IN4, OUTPUT);          //TB6612控制引腳,
  288.   pinMode(PWMA, OUTPUT);         //TB6612控制引腳,電機PWM
  289.   pinMode(PWMB, OUTPUT);         //TB6612控制引腳,電機PWM
  290.   digitalWrite(IN1, 0);          //TB6612控制引腳拉低
  291.   digitalWrite(IN2, 0);          //TB6612控制引腳拉低
  292.   digitalWrite(IN3, 0);          //TB6612控制引腳拉低
  293.   digitalWrite(IN4, 0);          //TB6612控制引腳拉低
  294.   analogWrite(PWMA, 0);          //TB6612控制引腳拉低
  295.   analogWrite(PWMB, 0);          //TB6612控制引腳拉低
  296.   pinMode(2, INPUT);       //編碼器引腳
  297.   pinMode(4, INPUT);       //編碼器引腳
  298.   pinMode(5, INPUT);       //編碼器引腳
  299.   pinMode(8, INPUT);       //編碼器引腳
  300.   pinMode(3, INPUT);       //按鍵引腳
  301.   Wire.begin();             //加入 IIC 總線
  302.   Serial.begin(9600);       //開啟串口,設置波特率為 9600
  303.   delay(1500);              //延時等待初始化完成
  304.   Mpu6050.initialize();     //初始化MPU6050
  305.   delay(20);
  306.   if(digitalRead(KEY)==0) {    //讀取EEPROM的參數(shù)
  307.   Balance_Kp =  (float)((EEPROM.read(addr+0)*256)+EEPROM.read(addr+1) )/100;
  308.   Balance_Kd =  (float)((EEPROM.read(addr+2)*256)+EEPROM.read(addr+3))/100;
  309.   Velocity_Kp = (float)((EEPROM.read(addr+4)*256)+EEPROM.read(addr+5))/100;
  310.   Velocity_Ki = (float)((EEPROM.read(addr+6)*256)+EEPROM.read(addr+7))/100;
  311.   }
  312.   MsTimer2::set(5, control);  //使用Timer2設置5ms定時中斷
  313.   MsTimer2::start();          //使用中斷使能
  314.   attachInterrupt(0, READ_ENCODER_L, CHANGE);           //開啟外部中斷 編碼器接口1
  315.   attachPinChangeInterrupt(4, READ_ENCODER_R, CHANGE);  //開啟外部中斷 編碼器接口2
  316. }
  317. /**************************************************************************
  318. 函數(shù)功能:主循環(huán)程序體
  319. 入口參數(shù):無
  320. 返回  值:無
  321. **************************************************************************/
  322. void loop() {
  323.   int Voltage_Temp;
  324.   static unsigned char flag;
  325.   unsigned char Balance_Kp_Temp=0,Balance_Kd_Temp=0,Velocity_Kp_Temp=0,Velocity_Ki_Temp=0;
  326.   Voltage_Temp = (Battery_Voltage - 11.1) * 60;  //根據(jù)APP的協(xié)議對電池電壓變量進行處理
  327.   if (Voltage_Temp > 100)Voltage_Temp = 100;
  328.   if (Voltage_Temp < 0)Voltage_Temp = 0;
  329.   if (Flag_Stop == 0)
  330.   {
  331.     Serial.begin(9600);       //開啟串口,設置波特率為 9600
  332.     flag=!flag;
  333.       if(PID_Send==1)//發(fā)送PID參數(shù)
  334.   {
  335.     Serial.print("{C");
  336.     Serial.print((int)(Balance_Kp*100));   //左輪編碼器
  337.     Serial.print(":");
  338.     Serial.print((int)(Balance_Kd*100));  //右輪編碼器

  339. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

全部資料下載地址:
Minibalance For Arduino平衡小車原理圖.pdf (203.8 KB, 下載次數(shù): 220)
Arduino平衡小車源碼.zip (145.75 KB, 下載次數(shù): 273)




評分

參與人數(shù) 6黑幣 +32 收起 理由
1750936835 + 5 贊一個!
QQwert + 5
nick0411013 + 1 很給力!
周得利 + 5 共享資料的黑幣獎勵!
我西爸爸 + 8
偶游QHD + 8 解釋非常詳盡的代碼,非常感謝!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂3 踩
回復

使用道具 舉報

沙發(fā)
ID:187533 發(fā)表于 2017-7-14 06:17 | 只看該作者
非常感謝!學習的好帖。
回復

使用道具 舉報

板凳
ID:209452 發(fā)表于 2017-7-26 10:54 | 只看該作者
你好!有沒有藍牙控制的app求發(fā)!!!
回復

使用道具 舉報

地板
ID:232830 發(fā)表于 2017-9-24 15:40 | 只看該作者
開啟串口,設置波特率為 9600
回復

使用道具 舉報

5#
無效樓層,該帖已經(jīng)被刪除
6#
ID:136641 發(fā)表于 2017-9-26 08:07 | 只看該作者
好東西 正在學這個了
回復

使用道具 舉報

7#
ID:87193 發(fā)表于 2017-9-26 09:08 | 只看該作者
資料不錯,就是功能什么的介紹更全一點就好了
回復

使用道具 舉報

8#
ID:126043 發(fā)表于 2017-9-26 12:25 | 只看該作者

好東西 正在學這個了
回復

使用道具 舉報

9#
ID:237069 發(fā)表于 2017-10-4 17:55 | 只看該作者
新人加入,等級夠了再來下載學習
回復

使用道具 舉報

10#
ID:237429 發(fā)表于 2017-10-6 09:49 | 只看該作者
  好東西 正在學這個了 非常感謝!
回復

使用道具 舉報

11#
ID:237452 發(fā)表于 2017-10-6 12:00 | 只看該作者
好東西 正在了解這個 非常感謝!
回復

使用道具 舉報

12#
ID:238956 發(fā)表于 2017-10-12 19:47 | 只看該作者
太棒了,正有所需
回復

使用道具 舉報

13#
ID:243746 發(fā)表于 2017-10-28 19:09 | 只看該作者
剛開始 做畢設就是平衡小車 很需要這個
回復

使用道具 舉報

14#
ID:241227 發(fā)表于 2018-1-17 12:06 | 只看該作者
特別想自己做一個,先學習學習
回復

使用道具 舉報

15#
ID:113936 發(fā)表于 2018-2-3 13:04 | 只看該作者
學習一下,感謝謝
回復

使用道具 舉報

16#
無效樓層,該帖已經(jīng)被刪除
17#
ID:291307 發(fā)表于 2018-3-13 23:30 來自觸屏版 | 只看該作者
很想自己做一個
回復

使用道具 舉報

18#
ID:293947 發(fā)表于 2018-3-19 15:32 | 只看該作者
感謝分享!學習中
回復

使用道具 舉報

19#
ID:293947 發(fā)表于 2018-3-22 23:22 | 只看該作者
好棒的資料,非常感謝。學習的好帖。
回復

使用道具 舉報

20#
ID:296490 發(fā)表于 2018-3-24 20:19 | 只看該作者
正好需要,謝謝分享!
回復

使用道具 舉報

21#
ID:296908 發(fā)表于 2018-3-25 20:19 | 只看該作者
不錯的貼子,正準備做個行走機器人,可以參考
回復

使用道具 舉報

22#
ID:273800 發(fā)表于 2018-4-9 13:52 | 只看該作者
frank.chan 發(fā)表于 2017-10-28 19:09
剛開始 做畢設就是平衡小車 很需要這個

我也是,兄die
回復

使用道具 舉報

23#
ID:312642 發(fā)表于 2018-4-24 13:21 來自觸屏版 | 只看該作者
為啥驗證時一堆問題    怎么辦
回復

使用道具 舉報

24#
無效樓層,該帖已經(jīng)被刪除
25#
ID:239855 發(fā)表于 2018-5-7 12:21 來自觸屏版 | 只看該作者
學習,謝謝樓主
回復

使用道具 舉報

26#
ID:239855 發(fā)表于 2018-5-7 12:23 來自觸屏版 | 只看該作者
學習
回復

使用道具 舉報

27#
ID:325926 發(fā)表于 2018-5-9 14:58 | 只看該作者
正好需要,代碼很詳細,非常感謝
回復

使用道具 舉報

28#
ID:202196 發(fā)表于 2018-6-14 09:02 | 只看該作者
我下載了扣了積分,卻沒有下載窗口。。。。。。
回復

使用道具 舉報

29#
ID:202196 發(fā)表于 2018-6-14 09:17 | 只看該作者
有誰,能免費提供代碼嗎?沒黑幣
回復

使用道具 舉報

30#
無效樓層,該帖已經(jīng)被刪除
31#
ID:352400 發(fā)表于 2018-6-15 12:11 | 只看該作者
能不能學西方人提供安卓源碼?
回復

使用道具 舉報

32#
ID:372812 發(fā)表于 2018-7-16 20:07 | 只看該作者
感激樓主
回復

使用道具 舉報

33#
ID:374565 發(fā)表于 2018-7-19 09:32 | 只看該作者
樓主是真實救星了!
回復

使用道具 舉報

34#
ID:79544 發(fā)表于 2018-7-29 17:16 | 只看該作者
樓主還在嗎?mpu6050的引腳想修改一下怎么辦呀》希望看到回復一下謝謝啦!!!!!
回復

使用道具 舉報

35#
ID:384974 發(fā)表于 2018-8-10 14:10 | 只看該作者
這個太有幫助了 感謝樓主
回復

使用道具 舉報

36#
ID:384662 發(fā)表于 2018-8-14 09:11 | 只看該作者
感謝樓主,非常有用
回復

使用道具 舉報

37#
ID:390214 發(fā)表于 2018-8-27 17:25 | 只看該作者
感謝樓主
回復

使用道具 舉報

38#
ID:401171 發(fā)表于 2018-9-21 22:22 | 只看該作者
好東西 正在學這個了
回復

使用道具 舉報

39#
ID:398299 發(fā)表于 2018-9-29 15:14 | 只看該作者
沒有黑幣 不能下載 謝謝分享
回復

使用道具 舉報

40#
ID:389751 發(fā)表于 2018-10-9 10:30 | 只看該作者
非常感謝!學習的好帖。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
欧美性xxxx极品hd欧美风情| 你懂的在线观看| 午夜欧美激情| 日日嗨av一区二区三区四区| 欧美日韩国产免费一区二区 | 热re久久精品国产99热| 国产啊啊啊视频在线观看| 久久精品官网| 精品国产成人系列| 在线国产精品网| 欧美bbbbbbbbbbbb精品| 日本私人影院在线观看| 日韩中文欧美| 日韩欧美在线中文字幕| 精品999在线观看| www.毛片com| 中文字幕97| 欧美激情1区2区| 91麻豆精品国产91久久久使用方法| 欧美日韩喷水| av网站中文字幕| 最近高清中文在线字幕在线观看| 国产欧美高清| 亚洲福利视频网站| 男人添女荫道口女人有什么感觉| 国产精品无码免费播放| 中中文字幕av在线| 国产乱理伦片在线观看夜一区| 亚洲人午夜色婷婷| wwwxxx黄色片| 色吊丝中文字幕| 嫩草伊人久久精品少妇av杨幂| 久久精品这里都是精品| 欧美亚洲另类在线| 国产性生活毛片| eeuss影院www免费影院| 精品国产中文字幕第一页| 午夜精品福利一区二区蜜股av| 国产精品成人一区二区三区| 黄色激情视频在线观看| jzzjzzjzz亚洲成熟少妇| 日本视频在线一区| 日韩在线观看免费| 天天操精品视频| 免费污污网站| 久久一区91| 91精品国产全国免费观看| 男人天堂网站在线| 免费看三级黄色片| 欧美激情福利视频在线观看免费| 国产亚洲亚洲国产一二区| 亚洲精品免费播放| 国产精品日韩一区二区| 久久久久久久久黄色| www.久久ai| 99久久综合国产精品| 国产v综合ⅴ日韩v欧美大片 | 女人色极品影院| 免费观看a视频| 日本亚洲欧洲无免费码在线| 亚洲欧美偷拍卡通变态| 国产精品毛片va一区二区三区| 国产午夜免费福利| 日本动漫同人动漫在线观看| a美女胸又www黄视频久久| 日韩av免费看| 麻豆视频在线免费看| 成人综合影院| 国产99精品视频| 国产精品扒开腿做| 久久久久久久久久久久久久久久久| 92国产在线视频| 成人黄色777网| 国产精品专区第二| 日韩免费不卡视频| 91福利在线尤物| 成人欧美一区二区三区小说 | 色偷偷88888欧美精品久久久| 亚洲精品在线网址| 2018高清国产日本一道国产| 亚洲一卡久久| 欧美精品手机在线| 五月激情四射婷婷| 在线免费观看的av网站| a亚洲天堂av| 99porn视频在线| 中文字幕在线观看视频一区| 日韩中文影院| 午夜精品福利一区二区三区av| 性欧美18一19内谢| 日韩一本大道| 色无极亚洲影院| 亚洲偷欧美偷国内偷| 亚洲高清无码久久| 欧美特黄一级视频| 欧美a在线观看| 欧美精选一区二区| 国产原创精品在线| 美女视频黄a视频全免费观看| 麻豆9191精品国产| 欧美又大粗又爽又黄大片视频| 毛片aaaaa| 九色porny视频在线观看| 一区二区三区在线免费观看| 亚洲第一精品区| 久久99国产视频| 一区二区三区国产精华| 久久久国产精彩视频美女艺术照福利| 东京热无码av男人的天堂| a免费在线观看| 亚洲免费av在线| 日韩一级特黄毛片| 免费污污网站| 美女免费视频一区二区| 国产精品美乳在线观看| 波多野结衣毛片| 欧美日韩国产一区二区在线观看| 91精品国产一区二区人妖| 在线观看视频你懂得| 亚洲最新合集| 国产色产综合色产在线视频| 亚洲女人毛片| 91视频入口| 三级欧美在线一区| 成人免费观看a| www.xxx国产| 神马电影久久| 久久精品国产一区二区三区| 欧美三级在线免费观看| 成人黄页网站视频| 欧美一区二区福利视频| 97人妻精品一区二区三区免费 | 91av俱乐部| 黑巨人与欧美精品一区| 国产福利一区在线| 精品一区二区三区日本| 欧美最猛性xxxxxhd| 亚洲精品乱码久久久久久蜜桃麻豆| 91国产精品电影| 中文字幕 亚洲视频| 亚洲电影一级片| 久久综合亚洲社区| 国产精品suv一区二区三区| 国产一区二区高清在线| 亚洲精品视频免费| 波兰性xxxxx极品hd| 久久精品女人天堂av免费观看| 91精品欧美综合在线观看最新| 精品国产av色一区二区深夜久久| av网址在线免费观看| 一本高清dvd不卡在线观看| 亚洲性图一区二区| av免费在线一区二区三区| 亚洲国产综合人成综合网站| 久久综合伊人77777麻豆最新章节| 亚洲成人av在线影院| 自拍偷拍国产精品| aa免费在线观看| 欧美日韩视频精品二区| 中文字幕日韩欧美一区二区三区| 少妇人妻大乳在线视频| 视频在线91| 亚洲免费观看高清| 五月天中文字幕在线| 337p日本欧洲亚洲大胆鲁鲁| 精品久久久久久久久国产字幕| 捷克做爰xxxⅹ性视频| 麻豆网站在线观看| 欧美中文一区二区三区| 波多野结衣办公室33分钟| 97成人资源| 亚洲第一福利网站| 欧美片一区二区| 6080亚洲理论片在线观看| 最近2019中文字幕一页二页| 日韩精品成人免费观看视频| 色综合天天爱| 国产精品自产拍在线观| 在线观看精品视频一区二区三区| 日韩二区三区四区| 色999日韩自偷自拍美女| 日本成人a视频| 国产精品久久久久影院亚瑟| 噼里啪啦国语在线观看免费版高清版| 日韩精品黄色| 欧美丰满嫩嫩电影| 亚欧精品视频一区二区三区| 国产一区 二区| 欧美高清一级大片| 亚洲精品97久久中文字幕无码| 国产精品久久777777毛茸茸 | 毛片一区二区| 欧美一级爽aaaaa大片| 在线观看成人影院| 亚洲婷婷在线视频| 色婷婷狠狠18禁久久| 国产v综合v| 精品国产自在精品国产浪潮| 国产毛片毛片毛片毛片| 在线视频亚洲| 日韩一区二区三区资源| 永久免费不卡在线观看黄网站| 亚洲影视资源网| 538国产视频| 日韩欧美中文字幕一区二区三区| 欧美精品免费在线| 天天操天天干天天爽| 激情综合网最新| 男人天堂手机在线视频| 尤物网址在线观看| 精品日韩99亚洲| 亚洲av中文无码乱人伦在线视色| 国产一区欧美| 日本在线观看一区二区| 亚洲成av人影片在线观看| 欧美图区在线视频| 毛片aaaaa| 欧美777四色影| 欧美大陆一区二区| 亚洲激情文学| 欧美一区二区不卡视频| 欧美三级午夜理伦| 影音先锋中文字幕一区| 亚洲精品久久区二区三区蜜桃臀 | 欧美日韩中文字幕一区二区| 免费在线黄色网| 婷婷亚洲五月| 欧美日韩在线观看一区| 色视频在线观看免费| 777久久久精品| 亚洲国产成人无码av在线| 亚洲美女色禁图| 99re99热| 麻豆tv入口在线看| 亚洲欧美另类人妖| 色综合视频在线| 99久久精品免费| 麻豆精品国产传媒| jazzjazz国产精品久久| 成人黄色免费片| 免费裸体视频网站| 欧美精品久久久久久久多人混战| 国产美女激情视频| 午夜亚洲精品| 亚洲熟妇无码一区二区三区导航| 182在线视频观看| 欧美丰满少妇xxxxx做受| 玖玖精品国产| 亚洲欧美日韩成人高清在线一区| av中文字幕免费观看| 精品99久久| 欧美视频1区| 国产鲁鲁视频在线观看特色| 综合国产在线观看| 一区二区三区电影网| 国产欧美日韩在线| 伊人网在线视频观看| 欧美高清视频手机在在线| 日本不卡二区| 91三级在线| 欧美日本亚洲视频| 人与牲动交xxxbbb| 午夜不卡av在线| 国产精品99精品无码视| 久久xxxx精品视频| 日韩av播放器| 成人乱码手机视频| 91免费版网站在线观看| 日本一二三区在线视频| 亚洲欧美国产日韩天堂区| 亚洲色图狠狠干| 国产精品免费久久久久| 五月婷婷综合激情网| 亚洲毛片网站| 老头吃奶性行交视频| 日韩视频在线直播| 国产精品一区而去| 老司机精品视频在线观看6| 不卡av在线网站| 九色视频九色自拍| 精品视频在线视频| 国产成人a人亚洲精品无码| www精品美女久久久tv| 在线小视频你懂的| 亚洲国内自拍| 日韩手机在线观看视频| 97视频一区| 日本一区二区三区精品视频| 丁香花在线电影小说观看| 啪一啪鲁一鲁2019在线视频| 午夜影院在线| 亚洲图片欧洲图片av| 91九色视频蝌蚪| 欧美日韩久久久一区| 国产ts人妖调教重口男| 国产欧美一区二区三区鸳鸯浴| 性生交大片免费全黄| 日韩精品福利网| 三级黄色片播放| 日韩欧美二区| 欧美大黑帍在线播放| 成人免费91| 日韩高清av电影| 在线免费av资源| 91中文字精品一区二区| av在线下载| 国产精品入口夜色视频大尺度| 日本亚洲一区| 久久人人97超碰精品888| 国产乱真实合集| 一区二区三区久久精品| 成年女人毛片| 精品国产91久久久久久久妲己| 亚洲精品天堂在线| 色菇凉天天综合网| 神马一区二区三区| 五月天一区二区三区| 国产三级视频在线播放| 亚洲精品写真福利| 久久亚洲精品石原莉奈 | 日韩香蕉视频| 99中文字幕在线| 永久亚洲成a人片777777| 天天操天天爱天天爽| 日韩欧美一区二区三区在线视频| 少妇av一区二区三区无码| 欧美日韩夜夜| 成人免费性视频| 亚洲电影一级片| 国产最新免费视频| 欧美一区二区三区高清视频| 无码精品a∨在线观看中文| 伊人春色精品| 国产极品粉嫩福利姬萌白酱| 菠萝蜜一区二区| 成人中文字幕av| 亚洲成人av| 亚洲一区二区中文字幕在线观看| 欧美色图天堂| 国产精品亚洲视频在线观看| 久操视频在线| 91在线观看免费高清完整版在线观看 | 91在线亚洲| 青青草原成人| 久久69av| 91免费国产精品| 自拍欧美一区| 成人亚洲视频在线观看| 久久精品久久久| 佐山爱在线视频| 久久亚洲综合| 黄色片网站免费| 成人综合在线网站| 日韩污视频在线观看| 国产精品天美传媒| 国产美女无遮挡永久免费| 欧美视频在线免费| 四虎精品成人免费观看| 精品国精品国产尤物美女| 北条麻妃av毛片免费观看| 色久欧美在线视频观看| 亚洲sss视频| 国产精品午夜一区二区欲梦| 久草免费在线视频| 久久另类ts人妖一区二区| 小说区图片区亚洲| wwwwww欧美| 久久裸体网站| 扒开伸进免费视频| 国内精品写真在线观看| 日本一级淫片色费放| 亚洲欧美一区二区三区久本道91| 污视频软件在线观看| 日韩欧美视频在线| 91国内精品在线视频| 97在线日本国产| 国产桃色电影在线播放| 免费成人在线观看av| 豆花视频一区二区| 欧美在线观看视频网站| 在线亚洲观看| 青青草免费av| 亚洲乱码日产精品bd| sihu影院永久在线影院| 亚洲精品福利资源站| 日韩写真在线| 成人在线一区二区| 四虎视频在线精品免费网址| www.av片| 亚洲伦理一区| 欧美在线视频第一页| 亚洲免费av在线| 久久久精品久久久久特色影视 | 中文在线综合| 日本激情综合网| 轻轻草成人在线| 国产精品xxxx喷水欧美| 精品久久久一区| 污污美女网站| 久久久久久尹人网香蕉|