Only for GR-PEACH beta, the sample that it drives Switch Science eVY1 shield. The sample offerd by Switch Science had been modified bi H.Inomata.
Dependencies: mbed-src
Fork of mbed_blinky by
You need to connect between pin 1 and pin 2 of the JP2 on an eVY1 shield.
eVY1 shieldのJP2は、ピン1とピン2が接続されるように変更して下さい。
過去のルネサスナイトで賞品でいただきいたSwitch Science eVY1 Shieldを使っています。
main.cpp@7:f9ef8cf3b215, 2014-12-31 (annotated)
- Committer:
- digiponta
- Date:
- Wed Dec 31 01:03:44 2014 +0000
- Revision:
- 7:f9ef8cf3b215
- Parent:
- 4:81cea7a352b0
Only for GR-PEACH beta, the sample that it drives Switch Science eVY1 Shield.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
digiponta | 7:f9ef8cf3b215 | 1 | // I had modified for a GR-PEACH beta, |
digiponta | 7:f9ef8cf3b215 | 2 | // the eVY1 Sample program by Switch Science Switch Science eVY1, |
digiponta | 7:f9ef8cf3b215 | 3 | // Hirofumi Inomata, 2014 |
digiponta | 7:f9ef8cf3b215 | 4 | // |
dan | 0:7dec7e9ac085 | 5 | #include "mbed.h" |
dan | 0:7dec7e9ac085 | 6 | |
dan | 0:7dec7e9ac085 | 7 | DigitalOut myled(LED1); |
digiponta | 7:f9ef8cf3b215 | 8 | Serial miku( D1, D0 ); // tx, rx |
digiponta | 7:f9ef8cf3b215 | 9 | #define delay(ms) wait_ms( (ms) ) |
digiponta | 7:f9ef8cf3b215 | 10 | |
digiponta | 7:f9ef8cf3b215 | 11 | void setup(void); |
digiponta | 7:f9ef8cf3b215 | 12 | void loop(void); |
dan | 0:7dec7e9ac085 | 13 | |
dan | 0:7dec7e9ac085 | 14 | int main() { |
digiponta | 7:f9ef8cf3b215 | 15 | myled = 1; |
digiponta | 7:f9ef8cf3b215 | 16 | setup(); |
digiponta | 7:f9ef8cf3b215 | 17 | myled = 0; |
digiponta | 7:f9ef8cf3b215 | 18 | |
digiponta | 7:f9ef8cf3b215 | 19 | for(;;) { |
digiponta | 7:f9ef8cf3b215 | 20 | loop(); |
stevep | 4:81cea7a352b0 | 21 | } |
dan | 0:7dec7e9ac085 | 22 | } |
digiponta | 7:f9ef8cf3b215 | 23 | |
digiponta | 7:f9ef8cf3b215 | 24 | int len = 0; |
digiponta | 7:f9ef8cf3b215 | 25 | unsigned char buf[4096]; |
digiponta | 7:f9ef8cf3b215 | 26 | void Short_Message(int cmd, int d1, int d2); |
digiponta | 7:f9ef8cf3b215 | 27 | void lylic_send(int num); |
digiponta | 7:f9ef8cf3b215 | 28 | |
digiponta | 7:f9ef8cf3b215 | 29 | void setup() { |
digiponta | 7:f9ef8cf3b215 | 30 | miku.baud( 31250 ); |
digiponta | 7:f9ef8cf3b215 | 31 | wait(10); // 10sec until starting a Miku |
digiponta | 7:f9ef8cf3b215 | 32 | } |
digiponta | 7:f9ef8cf3b215 | 33 | |
digiponta | 7:f9ef8cf3b215 | 34 | //変更しない |
digiponta | 7:f9ef8cf3b215 | 35 | const char* phoneticSymbols[] = { |
digiponta | 7:f9ef8cf3b215 | 36 | "a", "i", "M", "e", "o", // あいうえお0-4 |
digiponta | 7:f9ef8cf3b215 | 37 | "k a", "k' i", "k M", "k e", "k o", // かきくけこ5-9 |
digiponta | 7:f9ef8cf3b215 | 38 | "s a", "S i", "s M", "s e", "s o", // さしすえそ10-14 |
digiponta | 7:f9ef8cf3b215 | 39 | "t a", "tS i", "ts M", "t e", "t o", // たちつてと15-19 |
digiponta | 7:f9ef8cf3b215 | 40 | "n a", "J i", "n M", "n e", "n o", //なにぬねの20-24 |
digiponta | 7:f9ef8cf3b215 | 41 | "h a", "C i", "p\\ M", "h e", "h o", // はひふへほ25-29 |
digiponta | 7:f9ef8cf3b215 | 42 | "m a", "m' i", "m M", "m e", "m o", // まみむめも30-34 |
digiponta | 7:f9ef8cf3b215 | 43 | "j a","i", "j M","e","j o",//やいゆえよ35-39 |
digiponta | 7:f9ef8cf3b215 | 44 | "4 a", "4' i", "4 M", "4 e", "4 o", // らりるれろ40-44 |
digiponta | 7:f9ef8cf3b215 | 45 | "w a","w o","N\\","","",// わをん 45-49 |
digiponta | 7:f9ef8cf3b215 | 46 | "g a", "g' i", "g M", "g e", "g o",//がぎぐげご 50-54 |
digiponta | 7:f9ef8cf3b215 | 47 | "dz a", "dZ i", "dz M", "dz e", "dz o",//ざじずぜぞ55-59 |
digiponta | 7:f9ef8cf3b215 | 48 | "d a", "dZ i", "dz M", "d e", "d o",//だじづでど60-64 |
digiponta | 7:f9ef8cf3b215 | 49 | "b a", "b' i", "b M", "b e", "b o",//ばびぶべぼ 65-69 |
digiponta | 7:f9ef8cf3b215 | 50 | "p a", "p' i", "p M", "p e", "p o"//ぱぴぷぺぽ70-74 |
digiponta | 7:f9ef8cf3b215 | 51 | }; |
digiponta | 7:f9ef8cf3b215 | 52 | |
digiponta | 7:f9ef8cf3b215 | 53 | //歌詞 |
digiponta | 7:f9ef8cf3b215 | 54 | //かえるのうたがきこえてくるよ |
digiponta | 7:f9ef8cf3b215 | 55 | int lylics[]={5,3,42,24,2,15,50,6,9,3,18,7,42,39}; |
digiponta | 7:f9ef8cf3b215 | 56 | char mml[] ="CDEFEDC EFGAGFE"; |
digiponta | 7:f9ef8cf3b215 | 57 | |
digiponta | 7:f9ef8cf3b215 | 58 | void loop() { |
digiponta | 7:f9ef8cf3b215 | 59 | |
digiponta | 7:f9ef8cf3b215 | 60 | int key = 0x3c; //C |
digiponta | 7:f9ef8cf3b215 | 61 | int wait =500; |
digiponta | 7:f9ef8cf3b215 | 62 | |
digiponta | 7:f9ef8cf3b215 | 63 | myled = 1; |
digiponta | 7:f9ef8cf3b215 | 64 | int lylic_len = sizeof(lylics) / sizeof(lylics[0]); |
digiponta | 7:f9ef8cf3b215 | 65 | lylic_send(lylic_len); |
digiponta | 7:f9ef8cf3b215 | 66 | |
digiponta | 7:f9ef8cf3b215 | 67 | int mml_len = sizeof(mml) / sizeof(mml[0]); |
digiponta | 7:f9ef8cf3b215 | 68 | for(int i = 0;i< mml_len ;i++){ |
digiponta | 7:f9ef8cf3b215 | 69 | char c = mml[i]; |
digiponta | 7:f9ef8cf3b215 | 70 | if(c >= 'a' && c <='z') c-= 0x20; |
digiponta | 7:f9ef8cf3b215 | 71 | if((c>='A' && c<='Z')||c=='<'||c=='>'){ |
digiponta | 7:f9ef8cf3b215 | 72 | //key send |
digiponta | 7:f9ef8cf3b215 | 73 | if(i!=0){ |
digiponta | 7:f9ef8cf3b215 | 74 | Short_Message(0x90,key,0x7f); |
digiponta | 7:f9ef8cf3b215 | 75 | delay(wait); |
digiponta | 7:f9ef8cf3b215 | 76 | } |
digiponta | 7:f9ef8cf3b215 | 77 | key= 0x3c; |
digiponta | 7:f9ef8cf3b215 | 78 | |
digiponta | 7:f9ef8cf3b215 | 79 | switch(c) { |
digiponta | 7:f9ef8cf3b215 | 80 | case 'C': break; |
digiponta | 7:f9ef8cf3b215 | 81 | case 'D': key+=2; break; |
digiponta | 7:f9ef8cf3b215 | 82 | case 'E': key+=4; break; |
digiponta | 7:f9ef8cf3b215 | 83 | case 'F': key+=5; break; |
digiponta | 7:f9ef8cf3b215 | 84 | case 'G': key+=7; break; |
digiponta | 7:f9ef8cf3b215 | 85 | case 'A': key+=9; break; |
digiponta | 7:f9ef8cf3b215 | 86 | case 'B': key+=11; break; |
digiponta | 7:f9ef8cf3b215 | 87 | default: break; |
digiponta | 7:f9ef8cf3b215 | 88 | } |
digiponta | 7:f9ef8cf3b215 | 89 | } |
digiponta | 7:f9ef8cf3b215 | 90 | } |
digiponta | 7:f9ef8cf3b215 | 91 | Short_Message(0x90,key,0x7f); |
digiponta | 7:f9ef8cf3b215 | 92 | myled = 0; |
digiponta | 7:f9ef8cf3b215 | 93 | delay(wait); |
digiponta | 7:f9ef8cf3b215 | 94 | } |
digiponta | 7:f9ef8cf3b215 | 95 | |
digiponta | 7:f9ef8cf3b215 | 96 | void Short_Message(int cmd, int d1, int d2) { |
digiponta | 7:f9ef8cf3b215 | 97 | miku.putc(cmd); |
digiponta | 7:f9ef8cf3b215 | 98 | miku.putc(d1); |
digiponta | 7:f9ef8cf3b215 | 99 | miku.putc(d2); |
digiponta | 7:f9ef8cf3b215 | 100 | } |
digiponta | 7:f9ef8cf3b215 | 101 | |
digiponta | 7:f9ef8cf3b215 | 102 | //lylic send |
digiponta | 7:f9ef8cf3b215 | 103 | void lylic_send(int num){ |
digiponta | 7:f9ef8cf3b215 | 104 | //hedaer |
digiponta | 7:f9ef8cf3b215 | 105 | len = 0; |
digiponta | 7:f9ef8cf3b215 | 106 | miku.putc( 0xF0 ); |
digiponta | 7:f9ef8cf3b215 | 107 | miku.putc( 0x43 ); |
digiponta | 7:f9ef8cf3b215 | 108 | miku.putc( 0x79 ); |
digiponta | 7:f9ef8cf3b215 | 109 | miku.putc( 0x09 ); |
digiponta | 7:f9ef8cf3b215 | 110 | miku.putc( 0x00 ); |
digiponta | 7:f9ef8cf3b215 | 111 | miku.putc( 0x50 ); |
digiponta | 7:f9ef8cf3b215 | 112 | miku.putc( 0x10 ); |
digiponta | 7:f9ef8cf3b215 | 113 | |
digiponta | 7:f9ef8cf3b215 | 114 | for(int i=0;i<num;i++){ |
digiponta | 7:f9ef8cf3b215 | 115 | unsigned char cc; |
digiponta | 7:f9ef8cf3b215 | 116 | if(i != 0) { |
digiponta | 7:f9ef8cf3b215 | 117 | miku.putc( 0x2c ); // buf[len++] = 0x2c; |
digiponta | 7:f9ef8cf3b215 | 118 | } |
digiponta | 7:f9ef8cf3b215 | 119 | for ( int j =0;; j++ ) { |
digiponta | 7:f9ef8cf3b215 | 120 | cc = (phoneticSymbols[lylics[i]])[j]; |
digiponta | 7:f9ef8cf3b215 | 121 | if ( cc == 0x00 ) break; |
digiponta | 7:f9ef8cf3b215 | 122 | miku.putc( cc ); // buf[len++] = cc; |
digiponta | 7:f9ef8cf3b215 | 123 | } |
digiponta | 7:f9ef8cf3b215 | 124 | } |
digiponta | 7:f9ef8cf3b215 | 125 | //footer |
digiponta | 7:f9ef8cf3b215 | 126 | miku.putc( 0x00 ); |
digiponta | 7:f9ef8cf3b215 | 127 | miku.putc( 0xF7); |
digiponta | 7:f9ef8cf3b215 | 128 | } |