Shuhei Tsuchida / Mbed 2 deprecated dotstar_old_style_6volleyball

Dependencies:   RotationMat_ SDFileSystem math mbed trigonometric_fanc

Files at this revision

API Documentation at this revision

Comitter:
shuhei2306
Date:
Wed Feb 03 11:07:45 2016 +0000
Parent:
0:28d0b65a60fe
Child:
2:b09caaa3de96
Commit message:
test

Changed in this revision

Adafruit_DotStar.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Adafruit_DotStar.h	Mon Feb 01 13:53:13 2016 +0000
+++ b/Adafruit_DotStar.h	Wed Feb 03 11:07:45 2016 +0000
@@ -87,8 +87,8 @@
     // Setup the spi for 8 bit data,
     // second edge capture, with a 1MHz clock rate
     spi.format(8, 0); // mode0 POL:positive PHA:ラッチ先行
- //   spi.frequency(19000000);
-    spi.frequency(1000000);
+    spi.frequency(19000000);
+ //   spi.frequency(1000000);
 }
 
 void Adafruit_DotStar::show(void)
--- a/main.cpp	Mon Feb 01 13:53:13 2016 +0000
+++ b/main.cpp	Wed Feb 03 11:07:45 2016 +0000
@@ -163,7 +163,8 @@
 
 RotationMat rMat;
 
-Vector3D position_vec;
+Vector3D position_vec(0,0,0);
+Vector3D target_vec(0,1,0);
 Vector3D rAxis(1,0,0);
 const Vector3D xAxis(1,0,0);
 const Vector3D yAxis(0,1,0);
@@ -179,9 +180,11 @@
 short longtitude;
 short latitude;
 
+float angles;
+
 #define NUMPIXELS 178
 #define NUM_LINE 9
-#define NUM_TAPE 1
+#define NUM_TAPE 6
 Adafruit_DotStar strip(NUMPIXELS, DOTSTAR_RGB);
 
 DigitalOut decoder_in_a(p24);
@@ -209,234 +212,31 @@
 void updateRotation()
 {
     rMat.calMat(angular_velocity, rAxis.x, rAxis.y, rAxis.z);
-    //バレーボール6枚
-    for(int i_tape =0; i_tape < NUM_TAPE ; i_tape++)
-    {
-        //バレーボール1枚あたりのLEDの本数
-        for(int i_line=0; i_line< NUM_LINE; i_line++)
-        {
-            switch(i_line)
-            {
-                case 0:
-                 for(int i_pixel =0; i_pixel < LED_0_8_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 1:
-                 for(int i_pixel =0; i_pixel < LED_1_7_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 2:
-                for(int i_pixel =0; i_pixel < LED_2_6_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 3:
-                for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 4:
-                for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 5:
-                for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 6:
-                for(int i_pixel =0; i_pixel < LED_2_6_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 7:
-                 for(int i_pixel =0; i_pixel < LED_1_7_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-                case 8:
-                 for(int i_pixel =0; i_pixel < LED_0_8_NUM ; i_pixel++)
-                 {
-                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
-                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
-                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
-                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
-                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
-                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
-                 }
-                break;
-            }
-        }
-    }   
-}
-
-
-void setPixelcolor(int i_lednum)
-{
-        // pc.printf("i_lednum:%d \n", i_lednum);
-         if(i_lednum >= 176 ) //最後の白色消す用
-        {
-         strip.setPixelColor(i_lednum, 
-                                0, //r
-                                0, //g 
-                                0);//b
-        }   
-        else if(longtitude>=0&&longtitude<45)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels0_45[longtitude][latitude][0], //r
-                                pixels0_45[longtitude][latitude][1], //g 
-                                pixels0_45[longtitude][latitude][2]);//b               
-             /*
-             pc.printf("pixels0_45[0]:%d \n", pixels0_45[longtitude][latitude][0]);
-             pc.printf("pixels0_45[1]:%d \n", pixels0_45[longtitude][latitude][1]);
-             pc.printf("pixels0_45[2]:%d \n", pixels0_45[longtitude][latitude][2]);
-             */
-             
-        }
-        else if(longtitude>=45&&longtitude<90)
-        {
-            strip.setPixelColor(i_lednum, 
-                                (uint8_t)pixels45_90[longtitude-45][latitude][0], //r
-                                (uint8_t)pixels45_90[longtitude-45][latitude][1], //g 
-                                (uint8_t)pixels45_90[longtitude-45][latitude][2]);//b
-            /*                    
-             pc.printf("pixels45_90[0]:%d \n", pixels45_90[longtitude-45][latitude][0]);
-             pc.printf("pixels45_90[1]:%d \n", pixels45_90[longtitude-45][latitude][1]);
-             pc.printf("pixels45_90[2]:%d \n", pixels45_90[longtitude-45][latitude][2]);
-            */
-        }
-        else if(longtitude>=90&&longtitude<135)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels90_135[longtitude-90][latitude][0], //r
-                                pixels90_135[longtitude-90][latitude][1], //g 
-                                pixels90_135[longtitude-90][latitude][2]);//b
-                 /*               
-             pc.printf("pixels90_135[0]:%d \n", pixels90_135[longtitude-90][latitude][0]);
-             pc.printf("pixels90_135[1]:%d \n", pixels90_135[longtitude-90][latitude][1]);
-             pc.printf("pixels90_135[2]:%d \n", pixels90_135[longtitude-90][latitude][2]);
-             */
-        }
-         else if(longtitude>=135&&longtitude<180)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels135_180[longtitude-135][latitude][0], //r
-                                pixels135_180[longtitude-135][latitude][1], //g 
-                                pixels135_180[longtitude-135][latitude][2]);//b
-                            /*
-             pc.printf("pixels135_180[0]:%d \n", pixels135_180[longtitude-135][latitude][0]);
-             pc.printf("pixels135_180[1]:%d \n", pixels135_180[longtitude-135][latitude][1]);
-             pc.printf("pixels135_180[2]:%d \n", pixels135_180[longtitude-135][latitude][2]);
-             */
-        }
-         else if(longtitude>=180&&longtitude<225)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels180_225[longtitude-135][latitude][0], //r
-                                pixels180_225[longtitude-135][latitude][1], //g 
-                                pixels180_225[longtitude-135][latitude][2]);//b
-        }
-         else if(longtitude>=225&&longtitude<270)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels225_270[longtitude-225][latitude][0], //r
-                                pixels225_270[longtitude-225][latitude][1], //g 
-                                pixels225_270[longtitude-225][latitude][2]);//b
-        }
-         else if(longtitude>=270&&longtitude<315)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels270_315[longtitude-270][latitude][0], //r
-                                pixels270_315[longtitude-270][latitude][1], //g 
-                                pixels270_315[longtitude-270][latitude][2]);//b
-        }
-         else if(longtitude>=315&&longtitude<=360)
-        {
-            strip.setPixelColor(i_lednum, 
-                                pixels315_361[longtitude-315][latitude][0], //r
-                                pixels315_361[longtitude-315][latitude][1], //g 
-                                pixels315_361[longtitude-315][latitude][2]);//b
-        }
+    x_ = target_vec.x;//x
+    y_ = target_vec.y;//y
+    z_ = target_vec.z;//z
+    target_vec.x = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+    target_vec.y = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+    target_vec.z = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
 }
 
 void set_strip_color(int i_tape, int i_line, int i_pixel, int i_lednum)
 {
-    //calc longtitude
     position_vec.x = v_leds[i_tape][i_line][i_pixel][0];
     position_vec.y = v_leds[i_tape][i_line][i_pixel][1];
     position_vec.z = v_leds[i_tape][i_line][i_pixel][2];
     
-    if(position_vec.x > 0)
+    angles =  angle(target_vec , position_vec); 
+    
+    if(angles<40)
     {
-        longtitude = (short)floor( angle(zAxis, position_vec) );
+        strip.setPixelColor(i_lednum,100,0,0);
     }
     else
     {
-        longtitude = (short)floor( 360.0f - angle(zAxis, position_vec));
+        strip.setPixelColor(i_lednum,0,0,0);
     }
-    
-    //calc latitude
-    position_vec.x = v_leds[i_tape][i_line][i_pixel][0];
-    position_vec.y = v_leds[i_tape][i_line][i_pixel][1];
-    position_vec.z = v_leds[i_tape][i_line][i_pixel][2];
-    
-    latitude = (short)floor( angle(yAxis, position_vec) );
-    
-    
-    
-    setPixelcolor(i_lednum);
+     
 }
 
 void init()
@@ -599,4 +399,116 @@
             pc.printf("sdData[2]: %d\n",  (int)(sdData[2]));
         }     
     }
-    */
\ No newline at end of file
+    */
+    
+    /*
+    //バレーボール6枚
+    for(int i_tape =0; i_tape < NUM_TAPE ; i_tape++)
+    {
+        //バレーボール1枚あたりのLEDの本数
+        for(int i_line=0; i_line< NUM_LINE; i_line++)
+        {
+            switch(i_line)
+            {
+                case 0:
+                 for(int i_pixel =0; i_pixel < LED_0_8_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 1:
+                 for(int i_pixel =0; i_pixel < LED_1_7_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 2:
+                for(int i_pixel =0; i_pixel < LED_2_6_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 3:
+                for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 4:
+                for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 5:
+                for(int i_pixel =0; i_pixel < LED_3_4_5_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 6:
+                for(int i_pixel =0; i_pixel < LED_2_6_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 7:
+                 for(int i_pixel =0; i_pixel < LED_1_7_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+                case 8:
+                 for(int i_pixel =0; i_pixel < LED_0_8_NUM ; i_pixel++)
+                 {
+                    x_ = v_leds[i_tape][i_line][i_pixel][0];//x
+                    y_ = v_leds[i_tape][i_line][i_pixel][1];//y
+                    z_ = v_leds[i_tape][i_line][i_pixel][2];//z
+                    v_leds[i_tape][i_line][i_pixel][0] = rMat.r1*x_+rMat.r2*y_+rMat.r3*z_;
+                    v_leds[i_tape][i_line][i_pixel][1] = rMat.r4*x_+rMat.r5*y_+rMat.r6*z_;
+                    v_leds[i_tape][i_line][i_pixel][2] = rMat.r7*x_+rMat.r8*y_+rMat.r9*z_;
+                 }
+                break;
+            }
+        }
+    }   */
\ No newline at end of file