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 Mbed

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を使っています。

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?

UserRevisionLine numberNew 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 }