久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3375|回復: 3
打印 上一主題 下一主題
收起左側

電賽FDC2214手勢識別裝置改進(基于手勢識別控制舵機)

[復制鏈接]
跳轉到指定樓層
樓主
ID:349706 發表于 2018-11-6 14:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
2018年電子設計大賽省賽題制作方案改進,變成基于手勢識別控制舵機
可用于實現開關鎖之類的小活動
剪刀模擬識別開鎖
石頭關鎖
其他功能詳見代碼

單片機源程序如下:
  1. #include "stm32f10x.h"                  // Device header
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "myiic.h"
  7. #include "FDC2X2X_CMD.h"
  8. #include "FDC2214.h"
  9. #include "DataScope_DP.h"
  10. #include "OLED.h"
  11. #include "IMG.h"
  12. #include "TIM.h"
  13. #include "LED.h"



  14. #define VOLUME 1000

  15. //接線方式:
  16. //ch0:拇指
  17. //ch1:手掌
  18. //ch2:食指
  19. //ch3:中指
  20. //ch4:無名指
  21. //ch5:小指
  22. u8 STA;
  23. u8 pwm;
  24. u8 STA_num;
  25. u8 STA_num_1;



  26. #define HAND_FORMS_ONE 0x06
  27. #define HAND_FORMS_TWO 0x0e
  28. #define HAND_FORMS_THREE 0x1e
  29. #define HAND_FORMS_FOUR 0x3e
  30. #define HAND_FORMS_FIVE 0x3f
  31. #define HAND_FORMS_SIX 0x23
  32. #define HAND_FORMS_SIVEN 0x0f
  33. #define HAND_FORMS_EIGHT 0x07
  34. #define HAND_FORMS_NINE 0x03
  35. #define HAND_FORMS_TEN 0x02

  36. #define HAND_FORMS_JD 0x0e
  37. #define HAND_FORMS_ST 0x02
  38. #define HAND_FORMS_B 0x3f

  39. #define FINGER_PIANO_1 ((0x03) &0xfd)
  40. #define FINGER_PIANO_2 ((0x06) &0xfd)
  41. #define FINGER_PIANO_3 ((0x0a) &0xfd)
  42. #define FINGER_PIANO_4 ((0x12) &0xfd)
  43. #define FINGER_PIANO_5 ((0x22) &0xfd)

  44. //**特別注意:使用時SDA、SCL要接4.7K上拉電阻,地址線接地**//
  45. //**寄存器值的讀取及電容的計算具體在 FDC2214_read_CHx() 中**/

  46. float i;//for循環專用變量
  47. u8 s[100];//sprintf

  48. void Data_BackUp()
  49. {
  50.         BKP->DR1=(u32)FDC_CH0.Threshold;
  51.         BKP->DR2=((u32)FDC_CH0.Threshold>>16);
  52.         BKP->DR3=(u32)FDC_CH1.Threshold;
  53.         BKP->DR4=((u32)FDC_CH1.Threshold>>16);
  54.         BKP->DR5=(u32)FDC_CH2.Threshold;
  55.         BKP->DR6=((u32)FDC_CH2.Threshold>>16);
  56.         BKP->DR7=(u32)FDC_CH3.Threshold;
  57.         BKP->DR8=((u32)FDC_CH3.Threshold>>16);
  58.         BKP->DR9=(u32)FDC_CH4.Threshold;
  59.         BKP->DR10=((u32)FDC_CH4.Threshold>>16);
  60.         BKP->DR11=(u32)FDC_CH5.Threshold;
  61.         BKP->DR12=((u32)FDC_CH5.Threshold>>16);
  62. }

  63. void Data_Load()
  64. {
  65.         FDC_CH0.Threshold = (float)(BKP->DR1 | (BKP->DR2<<16) );
  66.         FDC_CH1.Threshold = (float)(BKP->DR3 | (BKP->DR4<<16) );
  67.         FDC_CH2.Threshold = (float)(BKP->DR5 | (BKP->DR6<<16) );
  68.         FDC_CH3.Threshold = (float)(BKP->DR7 | (BKP->DR8<<16) );
  69.         FDC_CH4.Threshold = (float)(BKP->DR9 | (BKP->DR10<<16) );
  70.         FDC_CH5.Threshold = (float)(BKP->DR11| (BKP->DR12<<16) );

  71. }

  72. int main(void)
  73. {
  74.         pwm=190;
  75.         delay_init();                     //延時函數初始化          
  76.         OLED_Init();
  77.         OLED_ShowString(10,32,"Loading...");OLED_Refresh_Gram();
  78.         NVIC_Configuration();          //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
  79.         uart_init(256000);                 //串口初始化為9600
  80.         uart5_init(9600);

  81.         KEY_Init();       
  82.         LED_Init();


  83.         //開啟后備寄存器
  84.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);//開啟后備電源
  85.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);//開啟后備寄存器
  86.         PWR->CR|=0x00100;//取消后備寄存器的寫保護

  87.         FDC2214_Init();
  88.         FDC2214_Init_2();
  89. //        Read_REG();
  90. //        Read_REG_2();
  91.        
  92.        
  93.         TIM_1_PWM_Init(7199,0);//不分頻。PWM頻率=72000/(7199+1)=10Khz
  94.         TIM2_PWM_Init(199,7199);//不分頻。PWM頻率=72000/(7199+1)/(199+1)=50hz

  95.         TIM1->CCR4=0;//比較值,音量設置
  96.         TIM1->PSC=0;  //預分頻系數,頻率設置
  97. //        delay_ms(10000);

  98.         while(1)
  99.         {
  100.                 static int timer=19;
  101.                 static u8 step=3;
  102.                 static u8 mode=0;//0:劃拳//1:猜拳//2:手指琴//3:劃拳(擴充)
  103.                 static u8 mode_1=5;
  104.                 static u8 key_sta;
  105.                 delay_ms(10);
  106.                
  107.                 Date_Back(0);//刷新數據并上傳給上位機
  108.                
  109.                 switch(STA)
  110.                 {
  111.                         case HAND_FORMS_ONE :        STA_num=1;                break;
  112.                         case HAND_FORMS_TWO :        STA_num=2;                break;
  113.                         case HAND_FORMS_THREE:        STA_num=3;                break;
  114.                         case HAND_FORMS_FOUR :        STA_num=4;                break;
  115.                         case HAND_FORMS_FIVE :        STA_num=5;                break;
  116.                         case HAND_FORMS_SIX :        STA_num=6;                break;
  117.                         case HAND_FORMS_SIVEN:        STA_num=7;                break;
  118.                         case HAND_FORMS_EIGHT:        STA_num=8;                break;
  119.                         case HAND_FORMS_NINE :        STA_num=9;                break;
  120.                         case HAND_FORMS_TEN :        STA_num=10;                break;
  121.                         default :                                STA_num=0;                break;
  122.                 }
  123.                
  124. //                if( (STA_num_1 != STA_num) || (mode_1 != mode) )
  125. //                {
  126.                         while((UART5->SR&0X40)==0);//循環發送,直到發送完畢   
  127.                         UART5->DR = (u8)'*';  
  128.                         while((UART5->SR&0X40)==0);//循環發送,直到發送完畢   
  129.                         UART5->DR = (u8) mode;  
  130.                         while((UART5->SR&0X40)==0);//循環發送,直到發送完畢   
  131.                         UART5->DR = (u8) STA_num;  
  132.                         while((UART5->SR&0X40)==0);//循環發送,直到發送完畢   
  133.                         UART5->DR = (u8) '#';
  134. //                }
  135.                 STA_num_1=STA_num;
  136.                 mode_1=mode;
  137.                
  138.                 switch(step)
  139.                 {
  140.                         case 0://校準Normal值
  141.                                
  142.                                 if(timer<=0)//倒計時時間到
  143.                                 {
  144.                                         FDC_CH0.Normal=From_History_Get_Average(FDC_CH0.History,10);
  145.                                         FDC_CH1.Normal=From_History_Get_Average(FDC_CH1.History,10);
  146.                                         FDC_CH2.Normal=From_History_Get_Average(FDC_CH2.History,10);
  147.                                         FDC_CH3.Normal=From_History_Get_Average(FDC_CH3.History,10);
  148.                                         FDC_CH4.Normal=From_History_Get_Average(FDC_CH4.History,10);
  149.                                         FDC_CH5.Normal=From_History_Get_Average(FDC_CH5.History,10);
  150.                                         OLED_Clear();OLED_Refresh_Gram();
  151.                                         step=1;timer=39;
  152.                                 }
  153.                                 else //倒計時未到
  154.                                 {
  155.                                         timer--;       
  156.                                         OLED_SHOW_Imag(0,0,32,32,(u8*)gImage_qing,2,0);
  157.                                         OLED_SHOW_Imag(32,0,32,32,(u8*)gImage_wu,2,0);
  158.                                         OLED_SHOW_Imag(64,0,32,32,(u8*)gImage_chu,2,0);
  159.                                         OLED_SHOW_Imag(96,0,32,32,(u8*)gImage_peng,2,0);
  160.                                         OLED_SHOW_Imag(0,32,24,24,(u8*)gImage_xun,2,0);
  161.                                         OLED_SHOW_Imag(24,32,24,24,(u8*)gImage_lian,2,0);

  162.                                         OLED_Refresh_Gram();
  163.                                 }       
  164.                                 break;
  165.                         case 1://校準Put值
  166.                                 if(timer<=0)//倒計時時間到
  167.                                 {
  168.                                         FDC_CH0.Put=From_History_Get_Average(FDC_CH0.History,10);
  169.                                         FDC_CH1.Put=From_History_Get_Average(FDC_CH1.History,10);
  170.                                         FDC_CH2.Put=From_History_Get_Average(FDC_CH2.History,10);
  171.                                         FDC_CH3.Put=From_History_Get_Average(FDC_CH3.History,10);
  172.                                         FDC_CH4.Put=From_History_Get_Average(FDC_CH4.History,10);
  173.                                         FDC_CH5.Put=From_History_Get_Average(FDC_CH5.History,10);
  174.                                         step=2;timer=39;
  175.                                 }
  176.                                 else //倒計時時間未到
  177.                                 {
  178.                                         timer--;       
  179.                                         OLED_SHOW_Imag(0,0,32,32,(u8*)gImage_fang,2,0);
  180.                                         OLED_SHOW_Imag(32,0,32,32,(u8*)gImage_zhi,2,0);
  181.                                         OLED_SHOW_Imag(64,0,32,32,(u8*)gImage_shou,2,0);
  182.                                         OLED_SHOW_Imag(96,0,32,32,(u8*)gImage_zhang,2,0);
  183.                                         sprintf((char *)s,"Counter:%d",timer/10);
  184.                                         OLED_ShowString(0,32,s);
  185.                                         OLED_Refresh_Gram();
  186.                                 }
  187.                         break;
  188.                         case 2://計算閾值
  189.                                         FDC_CH0.Threshold=(FDC_CH0.Put+FDC_CH0.Normal)/2;
  190.                                         FDC_CH1.Threshold=(FDC_CH1.Put+FDC_CH1.Normal)/2;
  191.                                         FDC_CH2.Threshold=(FDC_CH2.Put+FDC_CH2.Normal)/2;
  192.                                         FDC_CH3.Threshold=(FDC_CH3.Put+FDC_CH3.Normal)/2;
  193.                                         FDC_CH4.Threshold=(FDC_CH4.Put+FDC_CH4.Normal)/2;
  194.                                         FDC_CH5.Threshold=(FDC_CH5.Put+FDC_CH5.Normal)/2;
  195.                                         Data_BackUp();
  196.                                         OLED_Clear();
  197.                                         step=4;
  198.                         break;
  199.                         case 3://讀取數據
  200.                                 Data_Load();
  201.                                 step=4;
  202.                         break;
  203.                         case 4://清屏
  204.                                         OLED_Clear();
  205.                                         step=5;
  206.                         break;
  207.                         case 5://狀態解算
  208.                                         FDC_CH0.STA<<=1;
  209.                                         FDC_CH1.STA<<=1;
  210.                                         FDC_CH2.STA<<=1;
  211.                                         FDC_CH3.STA<<=1;
  212.                                         FDC_CH4.STA<<=1;
  213.                                         FDC_CH5.STA<<=1;
  214.                                        
  215.                                         if( FDC_CH0.Now < FDC_CH0.Threshold )
  216.                                                         FDC_CH0.STA|=0x01;
  217.                                                 else
  218.                                                         FDC_CH0.STA&=0xfe;
  219.                                         if( FDC_CH1.Now < FDC_CH1.Threshold )
  220.                                                         FDC_CH1.STA|=0x01;
  221.                                                 else
  222.                                                         FDC_CH1.STA&=0xfe;
  223.                                         if( FDC_CH2.Now < FDC_CH2.Threshold )
  224.                                                         FDC_CH2.STA|=0x01;
  225.                                                 else
  226.                                                         FDC_CH2.STA&=0xfe;
  227.                                         if( FDC_CH3.Now < FDC_CH3.Threshold )
  228.                                                         FDC_CH3.STA|=0x01;
  229.                                                 else
  230.                                                         FDC_CH3.STA&=0xfe;
  231.                                         if( FDC_CH4.Now < FDC_CH4.Threshold )
  232.                                                         FDC_CH4.STA|=0x01;
  233.                                                 else
  234.                                                         FDC_CH4.STA&=0xfe;
  235.                                         if( FDC_CH5.Now < FDC_CH5.Threshold )
  236.                                                         FDC_CH5.STA|=0x01;
  237.                                                 else
  238.                                                         FDC_CH5.STA&=0xfe;
  239.                                                
  240.                                         STA = ((FDC_CH5.STA&0x01)<<5) | ((FDC_CH4.STA&0x01)<<4) | ((FDC_CH3.STA&0x01)<<3) | ((FDC_CH2.STA&0x01)<<2) | ((FDC_CH1.STA&0x01)<<1) | (FDC_CH0.STA&0x01);
  241.                                        
  242.                                         key_sta = KEY_Scan(0);
  243.                                         if(key_sta != 0)
  244.                                                         OLED_Clear(),timer=19;
  245.                                         if( key_sta ==  KEY0_PRES)//換模式
  246.                                                 mode=!mode;
  247.                                         if( key_sta ==  WKUP_PRES)//換模式,附加模式
  248.                                         {
  249.                                                 if(mode == 2)
  250.                                                         mode=3;
  251.                                                 else
  252.                                                         mode=2;
  253.                                         }
  254.                                        
  255.                                         switch(mode)
  256.                                         {
  257.                                                 case 0:step=7;break;
  258.                                                 case 1:step=8;break;
  259.                                                 case 2:step=9;break;
  260.                                                 case 3:step=10;break;
  261.                                         }
  262.                                        
  263.                                         if(key_sta == KEY1_PRES)//去校準
  264.                                         {
  265.                                                 step=0;
  266.                                                 timer=19;
  267.                                         }
  268.                                        
  269.                                        
  270.                         break;
  271.                         case 7://猜拳
  272.                                 if(timer>0)//倒計時時間未到
  273.                                 {
  274.                                         timer--;
  275.                                         OLED_SHOW_Imag(60,16,16,16,(u8*)cai,2,0),OLED_SHOW_Imag(76,16,16,16,(u8*)quan,2,0);
  276.                                         OLED_Refresh_Gram();
  277.                                 }
  278.                                 else //倒計時到
  279.                                 {
  280.                                         switch(STA)
  281.                                         {
  282.                                                 case HAND_FORMS_JD:
  283.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_jiandao,1,0);
  284.                                                 if(pwm>60)
  285.                 {
  286.                                                 TIM_SetCompare3(TIM2,pwm--);
  287.                                                         delay_ms(10);
  288.                 }
  289.                                                                 OLED_Refresh_Gram();
  290.                                                 break;
  291.                                                 case HAND_FORMS_ST:
  292.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_shitou,1,0);
  293.                                         if(pwm==60|pwm<190)
  294.                                                 {
  295.                                                 //        pwm=190;
  296.                                                         TIM_SetCompare3(TIM2,pwm++);
  297.                                                         delay_ms(10);}
  298.                                                 OLED_Refresh_Gram();
  299.                                                 break;
  300.                                                 case HAND_FORMS_B:
  301.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_bu,1,0);
  302. //                                                        TIM_SetCompare3(TIM2,0);
  303.                                                 OLED_Refresh_Gram();
  304.                                                 break;
  305.                                                 default:
  306.                                                         OLED_Fill(30,0,94,64,0);OLED_Refresh_Gram();
  307.                                                 break;
  308.                                                
  309.                                         }
  310.                                         step=5;
  311.                                 }       

  312.                         break;
  313.                         case 8://劃拳
  314.                                 if(timer>0)//倒計時時間未到
  315.                                 {
  316.                                         timer--;       
  317.                                         OLED_SHOW_Imag(60,16,16,16,(u8*)hua,2,0),OLED_SHOW_Imag(76,16,16,16,(u8*)quan,2,0);
  318.                                         OLED_Refresh_Gram();
  319.                                 }
  320.                                 else //倒計時到
  321.                                 {
  322.                                        
  323.                                         switch(STA)
  324.                                         {
  325.                                                 case HAND_FORMS_ONE:
  326.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_one,1,0);OLED_Refresh_Gram();                       
  327.                                                 break;
  328.                                                 case HAND_FORMS_TWO:
  329.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_two,1,0);OLED_Refresh_Gram();
  330.                                                 break;
  331.                                                 case HAND_FORMS_THREE:
  332.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_three,1,0);OLED_Refresh_Gram();
  333.                                                 break;
  334.                                                 case HAND_FORMS_FOUR:
  335.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_foul,1,0);OLED_Refresh_Gram();
  336.                                                 break;
  337.                                                 case HAND_FORMS_FIVE:
  338.                                                         OLED_SHOW_Imag(30,0,64,64,(u8 *)gImage_five,1,0);OLED_Refresh_Gram();
  339.                                                 break;
  340.                                                 default:
  341.                                                         OLED_Fill(30,0,94,64,0);OLED_Refresh_Gram();
  342.                                                 break;
  343.                                         }       
  344.                                         step=5;
  345.                                 }       

  346.                         break;       
  347.                         case 9://手指琴
  348.                                 if(timer>0)//倒計時時間未到
  349.                                 {
  350.                                         timer--;       
  351.                                         OLED_ShowString(15,16,(u8*)"Finger Piano");
  352.                                         OLED_Refresh_Gram();
  353.                                 }
  354.                                 else //倒計時到
  355.                                 {
  356.                                        
  357.                                         switch(STA)
  358.                                         {
  359.                                                 case FINGER_PIANO_1:        TIM1->PSC=7;TIM1->CCR4=VOLUME;        break;
  360.                                                 case FINGER_PIANO_2:        TIM1->PSC=6;TIM1->CCR4=VOLUME;        break;
  361.                                                 case FINGER_PIANO_3:        TIM1->PSC=5;TIM1->CCR4=VOLUME;        break;
  362.                                                 case FINGER_PIANO_4:        TIM1->PSC=4;TIM1->CCR4=VOLUME;        break;
  363.                                                 case FINGER_PIANO_5:        TIM1->PSC=3;TIM1->CCR4=VOLUME;        break;
  364.                                                 case FINGER_PIANO_1|FINGER_PIANO_2:        TIM1->PSC=13;TIM1->CCR4=VOLUME;        break;
  365.                                                 case FINGER_PIANO_1|FINGER_PIANO_3:        TIM1->PSC=12;TIM1->CCR4=VOLUME;        break;
  366.                                                 case FINGER_PIANO_1|FINGER_PIANO_4:        TIM1->PSC=11;TIM1->CCR4=VOLUME;        break;
  367.                                                 case FINGER_PIANO_1|FINGER_PIANO_5:        TIM1->PSC=10;TIM1->CCR4=VOLUME;        break;
  368.                                                 case FINGER_PIANO_2|FINGER_PIANO_3:        TIM1->PSC=9;TIM1->CCR4=VOLUME;        break;
  369.                                                 default :TIM1->CCR4=0;//比較值,音量設置
  370.                                                 break;
  371.                                         }

  372. //                                               
  373.                                         step=5;
  374.                                 }       
  375.                         break;
  376.                         case 10://劃拳(擴充)
  377.                                         if(timer>0)//倒計時時間未到
  378.                                         {
  379.                                                 timer--;
  380.                                                 OLED_SHOW_Imag(60,16,16,16,(u8*)hua,2,0),OLED_SHOW_Imag(76,16,16,16,(u8*)quan,2,0);
  381.                                                 OLED_ShowString(60,32,(u8*)"plus");
  382.                                                 OLED_Refresh_Gram();
  383.                                         }
  384.                                         else //倒計時到
  385.                                         {
  386.                                                
  387.                                                 switch(STA)
  388.                                                 {
  389.                                                         case HAND_FORMS_ONE:OLED_Fill(64,0,128,64,0);
  390.                                                                 OLED_SHOW_Imag(0,0,64,64,(u8 *)gImage_1,1,1);OLED_Refresh_Gram();                       
  391.                                                         break;
  392.                                                         case HAND_FORMS_TWO:OLED_Fill(64,0,128,64,0);
  393.                                                                 OLED_SHOW_Imag(0,0,64,64,(u8 *)gImage_2,1,1);OLED_Refresh_Gram();
  394.                                                         break;
  395.                                                         case HAND_FORMS_THREE:OLED_Fill(64,0,128,64,0);
  396.                                                                 OLED_SHOW_Imag(0,0,64,64,(u8 *)gImage_3,1,1);OLED_Refresh_Gram();
  397.                                                         break;
  398.                                                         case HAND_FORMS_FOUR:OLED_Fill(64,0,128,64,0);
  399.                                                                 OLED_SHOW_Imag(0,0,64,64,(u8 *)gImage_4,1,1);OLED_Refresh_Gram();
  400.                                                         break;
  401.                                                         case HAND_FORMS_FIVE:OLED_Fill(64,0,128,64,0);
  402.                                                                 OLED_SHOW_Imag(0,0,64,64,(u8 *)gImage_5,1,1);OLED_Refresh_Gram();
  403.                                                         break;
  404.                                                         case HAND_FORMS_SIX:
  405.                                                                 OLED_SHOW_Imag(0,0,96,64,(u8 *)gImage_6,1,0);OLED_Refresh_Gram();                       
  406.                                                         break;
  407.                                                         case HAND_FORMS_SIVEN:
  408.                                                                 OLED_SHOW_Imag(0,0,96,64,(u8 *)gImage_7,1,0);OLED_Refresh_Gram();
  409.                                                         break;
  410.                                                         case HAND_FORMS_EIGHT:
  411.                                                                 OLED_SHOW_Imag(0,0,96,64,(u8 *)gImage_8,1,1);OLED_Refresh_Gram();
  412.                                                         break;
  413.                                                         case HAND_FORMS_NINE:
  414.                                                                 OLED_SHOW_Imag(0,0,96,64,(u8 *)gImage_9,1,1);OLED_Refresh_Gram();
  415.                                                         break;
  416.                                                         case HAND_FORMS_TEN:
  417.                                                                 OLED_SHOW_Imag(0,0,96,64,(u8 *)gImage_10,1,1);OLED_Refresh_Gram();
  418.                                                         break;
  419.                                                         default:
  420.                                                                 OLED_Clear();OLED_Refresh_Gram();
  421.                                                         break;
  422.                                                 }       
  423.                                                 step=5;
  424.                                         }
  425.                         break;
  426.                         default:
  427.                                         OLED_Fill(0,0,128,64,1);OLED_Refresh_Gram();delay_ms(10000);
  428.                         break;
  429.                        
  430.                 }
  431.         }
  432. }
復制代碼

所有資料51hei提供下載:
fingers.rar (363.18 KB, 下載次數: 35)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:349706 發表于 2018-11-6 14:11 | 只看該作者
除了題目要求以外的拓展功能:
回復

使用道具 舉報

板凳
ID:349706 發表于 2018-11-6 14:12 | 只看該作者
劃拳plus:識別6~10特殊手勢
拇指琴:利用蜂鳴器發出不同音調的聲音
2s快速校準手型,適用于更多人
回復

使用道具 舉報

地板
ID:1 發表于 2018-11-9 00:50 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品69av| 国产女人与拘做受免费视频 | 久久久青草婷婷精品综合日韩 | 精品欧美一区免费观看α√ | 五月激情婷婷在线 | 91视频国产区 | 久久99精品国产 | 五月激情婷婷网 | 亚洲精品一区中文字幕乱码 | 成人性生交大片 | 精品一区二区在线视频 | 国内精品伊人久久久久网站 | 久久久久国产一区二区三区四区 | 激情欧美日韩一区二区 | 精品久久久久久久久久久久 | 日韩av中文 | 国产精品久久久久久久午夜片 | 国产高清视频一区 | 国产成人99久久亚洲综合精品 | 9999精品视频 | 欧美精品欧美精品系列 | 日日综合| 一区中文字幕 | 精品视频一区二区三区四区 | 国产一区二区a | 91 在线 | 91免费电影 | 日日操操 | a级片在线观看 | 亚洲电影第三页 | 国产精品一区二区三区在线 | 午夜寂寞影院在线观看 | 亚洲自拍偷拍欧美 | 久久久久久久久久久久91 | 久草在线中文888 | 亚洲综合无码一区二区 | 精品久久香蕉国产线看观看亚洲 | 99久久精品一区二区成人 | 国外成人在线视频 | 日韩精品一区二区三区第95 | 欧美精品久久久 |