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 を見ること。