kohacraft Lab
/
kc_tenkiyoho_LED
tenki yoho LED (with ESP-WROOM-02)
main.cpp@4:1c1fb59cf7d9, 2016-05-04 (annotated)
- Committer:
- kohacraft
- Date:
- Wed May 04 02:58:14 2016 +0000
- Revision:
- 4:1c1fb59cf7d9
- Parent:
- 3:5689bfb78c7b
yahoo API ????????; ????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 0:26fecc2ddabd | 1 | #include "mbed.h" |
kohacraft | 0:26fecc2ddabd | 2 | #include <string.h> |
kohacraft | 0:26fecc2ddabd | 3 | |
kohacraft | 0:26fecc2ddabd | 4 | Serial wifi(dp16, dp15); // ESP-WROOM-02 tx, rx |
kohacraft | 0:26fecc2ddabd | 5 | DigitalOut wifiRst(dp17); // /ESP-WROOM-02 RESET |
kohacraft | 0:26fecc2ddabd | 6 | DigitalIn lightSensor(dp4); //loom light sensor(CdS:GL5528 conect to dp4 and GND) |
kohacraft | 0:26fecc2ddabd | 7 | |
kohacraft | 0:26fecc2ddabd | 8 | PwmOut red(dp1); //dp1を赤のLEDのPWM出力にします |
kohacraft | 0:26fecc2ddabd | 9 | PwmOut green(dp2); //dp2を緑のLEDのPWM出力にします |
kohacraft | 0:26fecc2ddabd | 10 | PwmOut blue(dp18); //dp18を青のLEDのPWM出力にします |
kohacraft | 0:26fecc2ddabd | 11 | |
kohacraft | 0:26fecc2ddabd | 12 | #define baudrate 115200 |
kohacraft | 0:26fecc2ddabd | 13 | |
kohacraft | 4:1c1fb59cf7d9 | 14 | static char rxbuff[1500]; //取得する文字列 |
kohacraft | 0:26fecc2ddabd | 15 | int buffAdr = 0; |
kohacraft | 0:26fecc2ddabd | 16 | |
kohacraft | 2:5686f264238a | 17 | const char SSID[] = "your ssid"; //アクセスポイントのSSID |
kohacraft | 0:26fecc2ddabd | 18 | const char PASS[] = "password"; //アクセスポイントのパスワード |
kohacraft | 4:1c1fb59cf7d9 | 19 | const char WOEID[] = "28413961"; //天気を調べる場所 http://woeid.rosselliot.co.nz/ で郵便番号で検索して得られる番号 |
kohacraft | 0:26fecc2ddabd | 20 | |
kohacraft | 0:26fecc2ddabd | 21 | //データを受信する |
kohacraft | 0:26fecc2ddabd | 22 | bool recvData() |
kohacraft | 0:26fecc2ddabd | 23 | { |
kohacraft | 0:26fecc2ddabd | 24 | bool ret = false; |
kohacraft | 0:26fecc2ddabd | 25 | buffAdr = 0; |
kohacraft | 0:26fecc2ddabd | 26 | for( int i =0 ; i< sizeof( rxbuff ) ; i++ ) |
kohacraft | 0:26fecc2ddabd | 27 | rxbuff[i] = '\0'; |
kohacraft | 0:26fecc2ddabd | 28 | |
kohacraft | 0:26fecc2ddabd | 29 | int headerCount = 0; |
kohacraft | 0:26fecc2ddabd | 30 | |
kohacraft | 0:26fecc2ddabd | 31 | //1000000回ループしたらタイムアウトする |
kohacraft | 0:26fecc2ddabd | 32 | for( int i = 0; i < 1000000 ; i++ ) |
kohacraft | 0:26fecc2ddabd | 33 | { |
kohacraft | 0:26fecc2ddabd | 34 | if( wifi.readable() != 0 ) |
kohacraft | 0:26fecc2ddabd | 35 | { |
kohacraft | 0:26fecc2ddabd | 36 | rxbuff[buffAdr++] = wifi.getc(); //Serial.getc() |
kohacraft | 0:26fecc2ddabd | 37 | headerCount++; |
kohacraft | 4:1c1fb59cf7d9 | 38 | if( headerCount <= 1500 ) //最初の2400文字捨てる |
kohacraft | 0:26fecc2ddabd | 39 | buffAdr=0; |
kohacraft | 0:26fecc2ddabd | 40 | if( buffAdr >= sizeof(rxbuff)-1 ) //バッファ溢れしたら終了 |
kohacraft | 0:26fecc2ddabd | 41 | { |
kohacraft | 0:26fecc2ddabd | 42 | ret = true; |
kohacraft | 0:26fecc2ddabd | 43 | i=1000000; //loopを早く終わらすために |
kohacraft | 0:26fecc2ddabd | 44 | break; |
kohacraft | 0:26fecc2ddabd | 45 | } |
kohacraft | 0:26fecc2ddabd | 46 | |
kohacraft | 0:26fecc2ddabd | 47 | } |
kohacraft | 0:26fecc2ddabd | 48 | } |
kohacraft | 0:26fecc2ddabd | 49 | |
kohacraft | 0:26fecc2ddabd | 50 | //文字列の最後を終端 |
kohacraft | 0:26fecc2ddabd | 51 | rxbuff[sizeof(rxbuff)-1] = '\0'; |
kohacraft | 0:26fecc2ddabd | 52 | return ret; |
kohacraft | 0:26fecc2ddabd | 53 | } |
kohacraft | 0:26fecc2ddabd | 54 | |
kohacraft | 0:26fecc2ddabd | 55 | //文字列から予報天気を抽出 |
kohacraft | 0:26fecc2ddabd | 56 | bool getWeather( char* str , int* weatherCord , int* tempLow , int* tempHi ) |
kohacraft | 0:26fecc2ddabd | 57 | { |
kohacraft | 0:26fecc2ddabd | 58 | //文字列探索 |
kohacraft | 0:26fecc2ddabd | 59 | char *forecast; |
kohacraft | 0:26fecc2ddabd | 60 | if ( (forecast = strstr(str, "yweather:forecast") ) == NULL ) |
kohacraft | 0:26fecc2ddabd | 61 | { |
kohacraft | 0:26fecc2ddabd | 62 | //取得できず |
kohacraft | 0:26fecc2ddabd | 63 | weatherCord = 0; |
kohacraft | 0:26fecc2ddabd | 64 | tempLow = 0; |
kohacraft | 0:26fecc2ddabd | 65 | tempLow = 0; |
kohacraft | 0:26fecc2ddabd | 66 | return false; |
kohacraft | 0:26fecc2ddabd | 67 | } |
kohacraft | 0:26fecc2ddabd | 68 | |
kohacraft | 4:1c1fb59cf7d9 | 69 | //天気コードを抽出 |
kohacraft | 4:1c1fb59cf7d9 | 70 | char *codeStart,*codeEnd; |
kohacraft | 4:1c1fb59cf7d9 | 71 | //int weatherCord; |
kohacraft | 4:1c1fb59cf7d9 | 72 | codeStart = strstr(forecast, "code="); |
kohacraft | 4:1c1fb59cf7d9 | 73 | codeStart = strchr( codeStart , '\"' ); |
kohacraft | 4:1c1fb59cf7d9 | 74 | codeStart++; //"の次の文字のポインタ |
kohacraft | 4:1c1fb59cf7d9 | 75 | codeEnd = strchr( codeStart , '\"' ); |
kohacraft | 4:1c1fb59cf7d9 | 76 | *codeEnd = '\0'; |
kohacraft | 4:1c1fb59cf7d9 | 77 | *weatherCord = atoi( codeStart ); //最高気温を数字に変換 |
kohacraft | 4:1c1fb59cf7d9 | 78 | |
kohacraft | 4:1c1fb59cf7d9 | 79 | //最高気温を抽出 |
kohacraft | 4:1c1fb59cf7d9 | 80 | char *hiStart,*hiEnd; |
kohacraft | 4:1c1fb59cf7d9 | 81 | //int tempHi; |
kohacraft | 4:1c1fb59cf7d9 | 82 | hiStart = strstr(codeEnd+1, "high="); |
kohacraft | 4:1c1fb59cf7d9 | 83 | hiStart = strchr( hiStart , '\"' ); |
kohacraft | 4:1c1fb59cf7d9 | 84 | hiStart++; //"の次の文字のポインタ |
kohacraft | 4:1c1fb59cf7d9 | 85 | hiEnd = strchr( hiStart , '\"' ); |
kohacraft | 4:1c1fb59cf7d9 | 86 | *hiEnd = '\0'; |
kohacraft | 4:1c1fb59cf7d9 | 87 | *tempHi = atoi( hiStart ); //最高気温を数字に変換 |
kohacraft | 4:1c1fb59cf7d9 | 88 | |
kohacraft | 0:26fecc2ddabd | 89 | //最低気温を抽出 |
kohacraft | 0:26fecc2ddabd | 90 | char *lowStart,*lowEnd; |
kohacraft | 0:26fecc2ddabd | 91 | //int tempLow; |
kohacraft | 4:1c1fb59cf7d9 | 92 | lowStart = strstr(hiEnd+1, "low="); |
kohacraft | 0:26fecc2ddabd | 93 | lowStart = strchr( lowStart , '\"' ); |
kohacraft | 0:26fecc2ddabd | 94 | lowStart++; //"の次の文字のポインタ |
kohacraft | 0:26fecc2ddabd | 95 | lowEnd = strchr( lowStart , '\"' ); |
kohacraft | 0:26fecc2ddabd | 96 | *lowEnd = '\0'; |
kohacraft | 0:26fecc2ddabd | 97 | *tempLow = atoi( lowStart ); //最低気温を数字に変換 |
kohacraft | 0:26fecc2ddabd | 98 | |
kohacraft | 0:26fecc2ddabd | 99 | //天気を抽出 |
kohacraft | 0:26fecc2ddabd | 100 | char *textStart,*textEnd; |
kohacraft | 0:26fecc2ddabd | 101 | char weatherText[32]; |
kohacraft | 4:1c1fb59cf7d9 | 102 | textStart = strstr(lowEnd+1, "text="); |
kohacraft | 0:26fecc2ddabd | 103 | textStart = strchr( textStart , '\"' ); |
kohacraft | 0:26fecc2ddabd | 104 | textStart++; //"の次の文字のポインタ |
kohacraft | 0:26fecc2ddabd | 105 | textEnd = strchr( textStart , '\"' ); |
kohacraft | 0:26fecc2ddabd | 106 | *textEnd = '\0'; |
kohacraft | 0:26fecc2ddabd | 107 | strncpy( weatherText, textStart , 32); |
kohacraft | 0:26fecc2ddabd | 108 | |
kohacraft | 0:26fecc2ddabd | 109 | return true; |
kohacraft | 0:26fecc2ddabd | 110 | } |
kohacraft | 0:26fecc2ddabd | 111 | |
kohacraft | 0:26fecc2ddabd | 112 | |
kohacraft | 0:26fecc2ddabd | 113 | int main() { |
kohacraft | 0:26fecc2ddabd | 114 | |
kohacraft | 0:26fecc2ddabd | 115 | //LEDのPWM周期 |
kohacraft | 0:26fecc2ddabd | 116 | red.period(5); |
kohacraft | 0:26fecc2ddabd | 117 | green.period(5); |
kohacraft | 0:26fecc2ddabd | 118 | blue.period(5); |
kohacraft | 0:26fecc2ddabd | 119 | |
kohacraft | 0:26fecc2ddabd | 120 | lightSensor.mode(PullUp); //室内の明るさセンサをプルアップする |
kohacraft | 0:26fecc2ddabd | 121 | wifi.baud(baudrate); //ビットレートを設定 |
kohacraft | 0:26fecc2ddabd | 122 | |
kohacraft | 0:26fecc2ddabd | 123 | while(1) |
kohacraft | 0:26fecc2ddabd | 124 | { |
kohacraft | 0:26fecc2ddabd | 125 | //無線LANモジュールをリセット |
kohacraft | 0:26fecc2ddabd | 126 | wifiRst = 1; |
kohacraft | 0:26fecc2ddabd | 127 | wifiRst = 0; |
kohacraft | 0:26fecc2ddabd | 128 | wifiRst = 1; |
kohacraft | 0:26fecc2ddabd | 129 | |
kohacraft | 0:26fecc2ddabd | 130 | //無線LANモジュールが安定するのを待つ |
kohacraft | 0:26fecc2ddabd | 131 | for( int i=0 ; i<10 ; i++ ) |
kohacraft | 0:26fecc2ddabd | 132 | { |
kohacraft | 0:26fecc2ddabd | 133 | red = 0.9; green = 1.0; blue = 0.0; |
kohacraft | 0:26fecc2ddabd | 134 | wait( 0.5 ); |
kohacraft | 0:26fecc2ddabd | 135 | red = 0.0; green = 0.0; blue = 0.0; |
kohacraft | 0:26fecc2ddabd | 136 | wait( 0.5 ); |
kohacraft | 0:26fecc2ddabd | 137 | } |
kohacraft | 0:26fecc2ddabd | 138 | |
kohacraft | 0:26fecc2ddabd | 139 | //最初にlanモジュールから出力される文字列を捨てる |
kohacraft | 0:26fecc2ddabd | 140 | char temp; |
kohacraft | 0:26fecc2ddabd | 141 | while( wifi.readable() == 1 ) |
kohacraft | 0:26fecc2ddabd | 142 | temp = wifi.getc(); |
kohacraft | 0:26fecc2ddabd | 143 | |
kohacraft | 0:26fecc2ddabd | 144 | //ATコマンドで無線LANモジュールをクライアントモードにする |
kohacraft | 0:26fecc2ddabd | 145 | wifi.printf("AT\r\n"); |
kohacraft | 0:26fecc2ddabd | 146 | wait(2); |
kohacraft | 0:26fecc2ddabd | 147 | red = 0.9; green = 1.0; blue = 0.0; |
kohacraft | 4:1c1fb59cf7d9 | 148 | wifi.printf("AT+CWMODE=1\r\n"); |
kohacraft | 0:26fecc2ddabd | 149 | wait(2); |
kohacraft | 0:26fecc2ddabd | 150 | red = 0.6; green = 0.8; blue = 0.3; |
kohacraft | 0:26fecc2ddabd | 151 | //アクセスポイントに接続 |
kohacraft | 0:26fecc2ddabd | 152 | wifi.printf("AT+CWJAP=\"%s\",\"%s\"\r\n",SSID,PASS); |
kohacraft | 0:26fecc2ddabd | 153 | red = 0.4; green = 0.6; blue = 0.6; |
kohacraft | 0:26fecc2ddabd | 154 | wait(3); |
kohacraft | 0:26fecc2ddabd | 155 | red = 0.2; green = 0.4; blue = 0.8; |
kohacraft | 0:26fecc2ddabd | 156 | wait(3); |
kohacraft | 0:26fecc2ddabd | 157 | red = 0.0; green = 0.2; blue = 1.0; |
kohacraft | 0:26fecc2ddabd | 158 | |
kohacraft | 0:26fecc2ddabd | 159 | |
kohacraft | 0:26fecc2ddabd | 160 | while(1) |
kohacraft | 0:26fecc2ddabd | 161 | { |
kohacraft | 0:26fecc2ddabd | 162 | //サーバに接続 |
kohacraft | 4:1c1fb59cf7d9 | 163 | wifi.printf("AT+CIPSTART=\"TCP\",\"query.yahooapis.com\",80\r\n"); |
kohacraft | 0:26fecc2ddabd | 164 | wait(2); |
kohacraft | 0:26fecc2ddabd | 165 | |
kohacraft | 0:26fecc2ddabd | 166 | //サーバに要求 |
kohacraft | 4:1c1fb59cf7d9 | 167 | char str[200]; |
kohacraft | 4:1c1fb59cf7d9 | 168 | sprintf(str , "GET http://query.yahooapis.com/v1/public/yql?q=SELECT%%20*%%20FROM%%20weather.forecast%%20WHERE%%20woeid%%3D%%22%s%%22%20and%%20u%%3D%%22c%%22\r\nHost: query.yahooapis.com\r\nConnection: close\r\n\r\n\r\n",WOEID); |
kohacraft | 4:1c1fb59cf7d9 | 169 | wifi.printf("AT+CIPSEND=%d\r\n",strlen(str)); |
kohacraft | 4:1c1fb59cf7d9 | 170 | wait(1); |
kohacraft | 0:26fecc2ddabd | 171 | |
kohacraft | 2:5686f264238a | 172 | //受信 |
kohacraft | 4:1c1fb59cf7d9 | 173 | wifi.printf("%s",str); |
kohacraft | 2:5686f264238a | 174 | recvData(); |
kohacraft | 0:26fecc2ddabd | 175 | |
kohacraft | 0:26fecc2ddabd | 176 | //切断 |
kohacraft | 0:26fecc2ddabd | 177 | wifi.printf("AT+CIPCLOSE\r\n"); |
kohacraft | 4:1c1fb59cf7d9 | 178 | wifi.printf("%s\r\n",rxbuff); |
kohacraft | 0:26fecc2ddabd | 179 | |
kohacraft | 0:26fecc2ddabd | 180 | //文字列探索 |
kohacraft | 0:26fecc2ddabd | 181 | int weatherCord , tempHi , tempLow; |
kohacraft | 0:26fecc2ddabd | 182 | if( getWeather( rxbuff , &weatherCord , &tempLow , &tempHi ) == false ) //データの受信 |
kohacraft | 0:26fecc2ddabd | 183 | { |
kohacraft | 0:26fecc2ddabd | 184 | //予報の文字列がない |
kohacraft | 4:1c1fb59cf7d9 | 185 | wifi.printf("Can not find strng:forecast\r\n"); |
kohacraft | 4:1c1fb59cf7d9 | 186 | for( int i=0 ; i<5 ; i++ ) |
kohacraft | 4:1c1fb59cf7d9 | 187 | { |
kohacraft | 4:1c1fb59cf7d9 | 188 | red = 1.0; |
kohacraft | 4:1c1fb59cf7d9 | 189 | wait(0.25); |
kohacraft | 4:1c1fb59cf7d9 | 190 | red = 0.0; |
kohacraft | 4:1c1fb59cf7d9 | 191 | wait(0.25); |
kohacraft | 4:1c1fb59cf7d9 | 192 | } |
kohacraft | 0:26fecc2ddabd | 193 | break; //最初からやり直す |
kohacraft | 0:26fecc2ddabd | 194 | } |
kohacraft | 4:1c1fb59cf7d9 | 195 | wifi.printf("weatherCord:%d tempLow:%d tempHi:%d\r\n",weatherCord , tempLow , tempHi); |
kohacraft | 0:26fecc2ddabd | 196 | |
kohacraft | 0:26fecc2ddabd | 197 | //天気をLEDの色に変換する |
kohacraft | 0:26fecc2ddabd | 198 | float rStart , gStart , bStart , rEnd , gEnd , bEnd; |
kohacraft | 0:26fecc2ddabd | 199 | switch(weatherCord) |
kohacraft | 0:26fecc2ddabd | 200 | { |
kohacraft | 0:26fecc2ddabd | 201 | //雨 |
kohacraft | 0:26fecc2ddabd | 202 | case 0: |
kohacraft | 0:26fecc2ddabd | 203 | case 1: |
kohacraft | 0:26fecc2ddabd | 204 | case 2: |
kohacraft | 0:26fecc2ddabd | 205 | case 3: |
kohacraft | 0:26fecc2ddabd | 206 | case 4: |
kohacraft | 0:26fecc2ddabd | 207 | case 5: |
kohacraft | 0:26fecc2ddabd | 208 | case 6: |
kohacraft | 0:26fecc2ddabd | 209 | case 11: |
kohacraft | 0:26fecc2ddabd | 210 | case 12: |
kohacraft | 0:26fecc2ddabd | 211 | case 17: |
kohacraft | 0:26fecc2ddabd | 212 | case 18: |
kohacraft | 0:26fecc2ddabd | 213 | case 35: |
kohacraft | 0:26fecc2ddabd | 214 | case 37: |
kohacraft | 0:26fecc2ddabd | 215 | case 38: |
kohacraft | 0:26fecc2ddabd | 216 | case 39: |
kohacraft | 0:26fecc2ddabd | 217 | case 40: |
kohacraft | 0:26fecc2ddabd | 218 | case 45: |
kohacraft | 0:26fecc2ddabd | 219 | case 47: |
kohacraft | 0:26fecc2ddabd | 220 | rStart = 0.0; gStart = 0.0; bStart = 1.0; |
kohacraft | 0:26fecc2ddabd | 221 | rEnd = 0.0; gEnd = 0.3; bEnd = 0.8; |
kohacraft | 0:26fecc2ddabd | 222 | break; |
kohacraft | 0:26fecc2ddabd | 223 | |
kohacraft | 0:26fecc2ddabd | 224 | //雪 |
kohacraft | 0:26fecc2ddabd | 225 | case 7: |
kohacraft | 0:26fecc2ddabd | 226 | case 8: |
kohacraft | 0:26fecc2ddabd | 227 | case 9: |
kohacraft | 0:26fecc2ddabd | 228 | case 10: |
kohacraft | 0:26fecc2ddabd | 229 | case 13: |
kohacraft | 0:26fecc2ddabd | 230 | case 14: |
kohacraft | 0:26fecc2ddabd | 231 | case 15: |
kohacraft | 0:26fecc2ddabd | 232 | case 16: |
kohacraft | 0:26fecc2ddabd | 233 | case 23: |
kohacraft | 0:26fecc2ddabd | 234 | case 41: |
kohacraft | 0:26fecc2ddabd | 235 | case 42: |
kohacraft | 0:26fecc2ddabd | 236 | case 43: |
kohacraft | 0:26fecc2ddabd | 237 | case 46: |
kohacraft | 0:26fecc2ddabd | 238 | rStart = 1.0; gStart = 0.8; bStart = 0.8; |
kohacraft | 0:26fecc2ddabd | 239 | rEnd = 0.8; gEnd = 0.6; bEnd = 0.6; |
kohacraft | 0:26fecc2ddabd | 240 | break; |
kohacraft | 0:26fecc2ddabd | 241 | |
kohacraft | 0:26fecc2ddabd | 242 | //曇り |
kohacraft | 0:26fecc2ddabd | 243 | case 19: |
kohacraft | 0:26fecc2ddabd | 244 | case 20: |
kohacraft | 0:26fecc2ddabd | 245 | case 22: |
kohacraft | 0:26fecc2ddabd | 246 | case 26: |
kohacraft | 0:26fecc2ddabd | 247 | case 27: |
kohacraft | 0:26fecc2ddabd | 248 | case 28: |
kohacraft | 0:26fecc2ddabd | 249 | case 44: |
kohacraft | 0:26fecc2ddabd | 250 | rStart = 0.6; gStart = 0.4; bStart = 0.4; |
kohacraft | 0:26fecc2ddabd | 251 | rEnd = 0.25; gEnd = 0.2; bEnd = 0.15; |
kohacraft | 0:26fecc2ddabd | 252 | break; |
kohacraft | 0:26fecc2ddabd | 253 | |
kohacraft | 0:26fecc2ddabd | 254 | //晴れ |
kohacraft | 0:26fecc2ddabd | 255 | case 21: |
kohacraft | 0:26fecc2ddabd | 256 | case 24: |
kohacraft | 0:26fecc2ddabd | 257 | case 25: |
kohacraft | 0:26fecc2ddabd | 258 | case 29: |
kohacraft | 0:26fecc2ddabd | 259 | case 30: |
kohacraft | 0:26fecc2ddabd | 260 | case 31: |
kohacraft | 0:26fecc2ddabd | 261 | case 32: |
kohacraft | 0:26fecc2ddabd | 262 | case 33: |
kohacraft | 0:26fecc2ddabd | 263 | case 34: |
kohacraft | 0:26fecc2ddabd | 264 | case 36: |
kohacraft | 0:26fecc2ddabd | 265 | rStart = 1.0; gStart = 0.5; bStart = 0.0; |
kohacraft | 0:26fecc2ddabd | 266 | rEnd = 1.0; gEnd = 0.3; bEnd = 0.2; |
kohacraft | 0:26fecc2ddabd | 267 | break; |
kohacraft | 0:26fecc2ddabd | 268 | |
kohacraft | 0:26fecc2ddabd | 269 | default: |
kohacraft | 0:26fecc2ddabd | 270 | rStart = 0.0; gStart = 0.0; bStart = 0.0; |
kohacraft | 0:26fecc2ddabd | 271 | rEnd = 1.0; gEnd = 0.0; bEnd = 1.0; |
kohacraft | 0:26fecc2ddabd | 272 | break; |
kohacraft | 0:26fecc2ddabd | 273 | } |
kohacraft | 0:26fecc2ddabd | 274 | |
kohacraft | 0:26fecc2ddabd | 275 | for(int j=0 ; j<30*60/2 ; j++) //30分ループし続ける |
kohacraft | 0:26fecc2ddabd | 276 | { |
kohacraft | 0:26fecc2ddabd | 277 | //startの色からendの色へと1秒かけて色を変化させる |
kohacraft | 0:26fecc2ddabd | 278 | for( float i=0 ; i<100 ; i++ ) |
kohacraft | 0:26fecc2ddabd | 279 | { |
kohacraft | 0:26fecc2ddabd | 280 | red = rStart + (rEnd-rStart)*i/100.0; |
kohacraft | 0:26fecc2ddabd | 281 | green = gStart + (gEnd-gStart)*i/100.0; |
kohacraft | 0:26fecc2ddabd | 282 | blue = bStart + (bEnd-bStart)*i/100.0; |
kohacraft | 0:26fecc2ddabd | 283 | if( lightSensor != 0 ) |
kohacraft | 0:26fecc2ddabd | 284 | { |
kohacraft | 0:26fecc2ddabd | 285 | red = red*0.1; green = green*0.1; blue = blue*0.1; |
kohacraft | 0:26fecc2ddabd | 286 | } |
kohacraft | 0:26fecc2ddabd | 287 | wait(0.01); |
kohacraft | 0:26fecc2ddabd | 288 | } |
kohacraft | 0:26fecc2ddabd | 289 | //endの色からstartの色へと1秒かけて色を変化させる |
kohacraft | 0:26fecc2ddabd | 290 | for( float i=0 ; i<100 ; i++ ) |
kohacraft | 0:26fecc2ddabd | 291 | { |
kohacraft | 0:26fecc2ddabd | 292 | red = rEnd + (rStart-rEnd)*i/100.0; |
kohacraft | 0:26fecc2ddabd | 293 | green = gEnd + (gStart-gEnd)*i/100.0; |
kohacraft | 0:26fecc2ddabd | 294 | blue = bEnd + (bStart-bEnd)*i/100.0; |
kohacraft | 0:26fecc2ddabd | 295 | if( lightSensor != 0 ) |
kohacraft | 0:26fecc2ddabd | 296 | { |
kohacraft | 0:26fecc2ddabd | 297 | red = red*0.1; green = green*0.1; blue = blue*0.1; |
kohacraft | 0:26fecc2ddabd | 298 | } |
kohacraft | 0:26fecc2ddabd | 299 | wait(0.01); |
kohacraft | 0:26fecc2ddabd | 300 | } |
kohacraft | 0:26fecc2ddabd | 301 | } |
kohacraft | 0:26fecc2ddabd | 302 | } |
kohacraft | 0:26fecc2ddabd | 303 | } |
kohacraft | 0:26fecc2ddabd | 304 | } |