J1, J2の部分にピンがつけられている。
| J1 | J2 | ||
| 名称 | 説明 | 名称 | 説明 |
| XM | ファームウェア更新用 | ||
| RST | リセット | DE | |
| TX | シリアル送信 | ||
| RX | シリアル受信 | ||
| 3V3 | 3.3V | 5V | 5V電源 |
| GND | 電源Ground(0V) | GND | 電源Ground(0V) |
| ピン名称 | 接続 |
| RX | ArduinoのTxに接続。下記の例を使うのであれば、11番ピンへ。 |
| TX | ArduinoのRxに接続。下記の例を使うのであれば、10番ピンへ。 |
| 5V | Arduinoの5Vに接続 |
| GND | ArduinoのGNDに接続 |
不特定話者の数字を認識して、シリアルモニタに表示するプログラム例
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
#define DELAY() delay( 20 );
#define CMD_BREAK() cmd0( 'b' )
#define CMD_SLEEP(x) cmd1( 's', (x)+0x41 )
#define CMD_LANGUAGE(x) cmd1( 'l', (x)+0x41 )
#define CMD_TIMEOUT(x) cmd1( 'o', (x)+0x41 )
#define CMD_BAUDRATE(x) cmd1( 'a', (x)+0x41 )
#define CMD_RESETALL() cmd1( 'r', 'R' )
#define CMD_RECOG_SI(x) cmd1r1( 'i', (x)+0x41, 's' )
#define LANG_En 0
#define LANG_It 1
#define LANG_Ja 2
#define LANG_De 3
#define LANG_Es 4
#define LANG_Fr 5
#define PHRASE_action 1
#define PHRASE_direction 2
#define PHRASE_number 3
int cmd0( byte cmd ){
int r;
mySerial.write( cmd );
DELAY();
while( mySerial.available() <= 0 );
r = mySerial.read();
DELAY();
return r;
}
int cmd1( byte cmd, byte arg ){
int r;
mySerial.write( cmd );
DELAY();
mySerial.write( arg );
DELAY();
while( mySerial.available() <= 0 );
r = mySerial.read();
DELAY();
return r;
}
int cmd1r1( byte cmd, byte arg, byte succ ){
int r;
mySerial.write( cmd );
DELAY();
mySerial.write( arg );
DELAY();
while( mySerial.available() <= 0 );
r = mySerial.read();
DELAY();
if( r != succ ) return r;
mySerial.write( ' ' );
DELAY();
while( mySerial.available() <= 0 );
r = mySerial.read();
DELAY();
return r-0x41;
}
void setup() {
Serial.begin( 9600 );
pinMode( 10, INPUT );
pinMode( 11, OUTPUT );
mySerial.begin( 9600 );
while( CMD_BREAK() != 'o' );
CMD_LANGUAGE( LANG_Ja );
}
void loop() {
int x;
x = CMD_RECOG_SI( PHRASE_number );
switch( x ){
case 't':
Serial.println( "Time out" );
break;
case 'e':
Serial.println( "Cannot regognize" );
break;
default:
Serial.println( x );
}
}
詳しくは、 SR-MOD100C を見ること。