Home
EasyVR
Contents
1. 6 EasyVR User Manual 3 3 U MN VeeaR WWW Veear eu Microphone The microphone provided with the EasyVR module is an omnidirectional electret condenser microphone Horn EM9745P 382 Sensitivity 38dB 0dB 1V Pa 1KHz Load Impedance 2 2K Operating Voltage 3V Almost flat frequency response in range 100Hz 20kHz If you use a microphone with different specifications the recognition accuracy may be adversely affected No other kind of microphone is supported by the EasyVR Note Vocal commands should be given from about 60cm from the microphone but you can try at greater distances by talking louder Please note that improper acoustic positioning of the microphone will reduce recognition accuracy Many mechanical arrangements are possible for the microphone element and some will work better than others When mounting the microphone in the final device keep in mind the following guidelines 1 Flush Mounting The microphone element should be positioned as close to the mounting surface as possible and should be fully seated in the plastic housing There must be no airspace between the microphone element and the housing Having such airspace can lead to acoustic resonance which can reduce recognition accuracy I L 1 FF 1 L 1 1 H 1 L H D 2 No Obstructions Large Hole The area in front of the microphone element must be kept clear of obstructions to avoid interferenc
2. VCC Internal 1KQ IXM Pul down Jumper Boot mode selection circuit The pull up resistor value to use depends on the VCC power supply voltage For the voltage of the XM pin when the jumper is closed short the following relation holds note you have a voltage divider circuit 1K jl s cy M RIK Now if you want XM to be at 3V logic high and solving for R you get V Rpy 1000 1000 That makes 1000 for 3 3V and around 6800 for 5V power supplies Other kinds of circuit are possible that is just an example and one of the simplest to realize To learn how to download new sound tables to your EasyVR module have a look at the section Using Sound Table 10 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu Quick start for using the module EasyVR on Arduino You can connect the EasyVR module to an Arduino board basically in two ways 1 Bridge mode You can control the module using a software serial library and connect to the module with the EasyVR Commander from your PC with the same pin configuration 2 Adapter mode You can use the Arduino board as a USB Serial adapter by holding the microcontroller in reset but you need to change the connections once you want to control the module from the microcontroller Bridge mode This is the preferred connection mode since it allows simple communication with both the Arduino microcontroller and the PC All the pr
3. m Beotsekct niemal reen up iO General pose VO OVDC TTLieve 5 5 iO General pupose VO OVOCTTLieve Note the GPIO J4 3 J4 4 and J4 5 are at nominal 3 0VDC level Do not connect 5VDC directly to these pins User Manual 3 3 EasyVR 5 www veear eu Recommended Operating Conditions Voltage DC Input Ambient Operating Temperature Range Serial Port Receive Data L9 Serial Port Transmit Data MEM Electrical Characteristics These are applicable to J4 pins only including 101 3 XM and RST Parameter Input High Voltage Input Low Voltage Input Leakage Current 0 Vio 3V Hi Z Input Strong Rey Pull up Resistance Ol Vou Output High Voltage lo 5 mA Output Low Voltage lo 8 mA Power Supply Requirements Symbol Parameter A Serial Interface m The EasyVR is a slave module communicating via an asynchronous serial interface commonly known as UART interface with the following features e Baud Rate 9600 default 19200 38700 57600 115200 e Frame 8 Data bits No parity 1 Stop bit The receiver input data line is ERX while the transmitter output data line is ETX No handshake lines are used Example of a serial data frame representing character A decimal 65 or hexadecimal 41 Idle Start 1 0 0 0 0 0 1 0 Stop Idle OV See also chapter Communication Protocol later on this manual for communication details
4. 15 silence Available Time 9 3kHz 15 silence SX 2 8 7 minutes 7 5 minutes SX 3 7 6 minutes 6 6 minutes SX 4 6 8 minutes 5 9 minutes SX 5 6 1 minutes 5 2 minutes SX 6 5 6 minutes 4 8 minutes 4 bit ADPCM 87 seconds N A 8 bit PCM 45 seconds 38 seconds Once the sound table has been created it can be processed by the EasyVR Commander and downloaded to the module Note that you must first disconnect from the module and do the steps required to start it in boot mode see the section Flash Update Now the command Update Sound Table is enabled either on the toolbar or the Tools menu and it can be used to start the update process First you will be prompted to open the QuickSynthesis project file just created and a new sound table will be generated Note The project must have been built already with the QuickSynthesis tool before the sound table generation can be completed successfully If a recent build is not available you will receive a warning message the project can be opened in QuickSynthesis again and a fresh build started make sure the project file has been saved before the build Once back in the EasyVR Commander the project can be reloaded by pressing the Refresh button If the process completes successfully the Download button will be enabled and the flash update process can start 48 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu E AN
5. 17h ERR RECOG DURATION bad pattern durations 4Ah ERR SYNTH BAD VERSION bad release number in speech file 4Eh ERR SYNTH BAD MSG bad data in speech file or invalid compression 80h ERR NOT A WORD recognized word is not in vocabulary The first group of codes 03h 07h is due to errors in the way of speaking to the EasyVR or disturbances in the acquired audio signal that may depend on the surrounding environment The second group 11h 13h indicates an insufficient score of the recognized word from lowest to highest Acceptance of lower score results may be allowed by lowering the knob or level settings respectively for built in and custom commands see CMD KNOB and CMD LEVEL A third group of codes 14h 17h reports errors in the stored commands that may be due to memory corruption We suggest you check power level and connections then erase all the commands in the faulty group and train them again The fourth group 4Ah 4Eh deals with errors in the compressed sound data either because the wrong version of the QuickSynthesis M tool has been used to generate the sound table or because a not supported compression scheme has been selected or data is generically corrupt The last code 80h means that a word has been recognized that is not in the specified built in sets This is due to how Speaker Independent recognition works and should be ignored User Manual 3 3 EasyVR 33 U N WWW Veear eu VeeaR
6. 2 Command position 0 31 Expected replies STS SUCCESS 22 EasyVR User Manual 3 3 V N VeeaR CMD NAME SD n 6Eh Label SD SV command 1 Group index 0 trigger 1 15 generic 16 password 2 Command position 0 31 3 Length of label 0 31 WWW Veear eu 4 n Text for label ASCII characters from A to Expected replies STS SUCCESS CMD_COUNT_SD c 63h Request count of SD SV commands in the specified group 1 Group index 0 trigger 1 15 generic 16 password Expected replies GIG COUNT CMD_DUMP_SD p 70h Read SD SV command data label and training 1 Group index 0 trigger 1 15 generic 16 password 2 Command position 0 31 Expected replies STS DATA CMD_MASK_SD m 6Dh Request bit mask of non empty groups Expected replies GIG MASK CMD_RESETALL r 72h Reset all commands and groups R 52h Confirmation character Expected replies STS SUCCESS CMD ID X 78h Request firmware identification Expected replies STS ID CMD DELAY y 79h Set transmit delay 1 Time 0 10 0 10 ms 11 19 20 100 ms 20 28 200 1000 ms Expected replies STS SUCCESS User Manual 3 3 EasyVR 23 D N WWW Veear eu VeeaR CMD BAUDRATE a 61h Set communication baud rate Speed mode 12115200 d 2 57600 3 38400 6 19200 12 9600 Expected replies STS SUCCESS CMD QUERY I
7. 31 20 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu Command Details This section describes the format of all the command strings accepted by the module Please note that numeric arguments of command requests are mapped to upper case letters see above section CMD BREAK Abort recognition training or playback in progress if any or do nothing b 62h Known issues In firmware ID 0 any other character received during recognition will prevent this command from stopping recognition that will continue until timeout or other recognition results Expected replies STS SUCCESS STS INTERR CMD SLEEP s 73h Goto the specified power down mode Sleep mode 0 8 0 wake on received character only 1 wake on whistle or received character 2 wake on loud sound or received character 3 5 wake on double clap with varying sensitivity or received character 6 8 wake on triple clap with varying sensitivity or received character Expected replies STS SUCCESS GIG AWAKEN 1 CMD_KNOB k Bh Set SI knob to specified level Confidence threshold level 0 4 0 loosest more valid results 2 typical value default 4 tightest fewer valid results 1 Note knob is ignored for trigger words Expected replies STS SUCCESS CMD_LEVEL WV 76h Set SD level Strictness control setting 1 5 1 easy 1 2 default 5 hard A higher setting will result in more recognition errors Expected repl
8. EasyVR Commander v2 2 1 GEA File Edit Tools Help A om ARA BQQAlQVAl FB Q 9 am Group List Sentence List Build Sound Table A 0 Trigger d Processing sound table Demo nde a 1 Group XZ Sound table built successfully f 2 Group a 3 Group KE 4 Group Index Label G 5 Group 9 1 SND__ahooga KE 6 Group Q 2 SND_alarm G 7 Group Q 3 SND boing a 8 Group Q 4 SND burp e 9 Group Q 5 SND calling whistle 10 Group e 6 SND doch amp 11 Group Q 7 SND explosion ES 12 Group Q 8 SND gong C3 13 Group Q 9 SND horn toy honk C3 M Group gt SND_ klaxon C3 15 Group e SND photo shutter E 16 Password C3 1 Wordset 8 2 Wordse 6 3 Wordset Ready Figure 7 Sound Table build and download interface The download process will connect at a higher speed to the EasyVR module so the bridge program running on your host device might not work in particular Robonova and Basic Stamp cannot be used for this purpose and you might need a true serial adapter The full speed used is 230400 bit s but the option Slow transfer can be used to reduce it to 115200 for better compatibility with slower serial adapters One adapter that can go to full speed is the SmartVR DevBoard Otherwise any USB Serial adapter with TTL CMOS interface can be used for updating the flash The EasyVR Shield can be used for the download provided that the jumper J12 is in UP position After the download completes a new connection can be established with
9. GND is for connection with the EasyVR Commander To use the module from the Arduino microcontroller you need to remove the short yellow wire and move the ETX ERX connection to other pins The example code uses pin 12 for ETX and pin 13 for ERX like the above bridge mode Arduino software Follow these few steps to start playing with your EasyVR module and Arduino o RON Connect the EasyVR module to your Arduino board as outlined before If you want audio output connect an 8O speaker to J2 header Connect the supplied microphone to the MIC J3 connector Copy the EasyVR library to your Arduino libraries folder on your PC Connect your Arduino board to your PC via USB l K Le 1 ardui librar gt v Organize v ad Open Computer amp Local Disk C m arduino 0022 A drivers i examples i hardware ii java J lib d libraries d reference d tools ka EasyVR File folder Include in library v Ji ArduinoTestSuite Js EasyVR J EEPROM Ji Ethernet J Firmata J LiquidCrystal Ji Matrix NewSoftSerial E Ji Servo m T Date modified 20 09 2011 11 36 d e Ji SoftwareSerial SPI Ji Sprite WW Stepper m Wire 12 Figure I Installation folder for the Easy VR Arduino library EasyVR User Manual 3 3 V W VeeaR WWW Veear eu To check everything is working fine 1 2 Make sure you activate bridge mode either
10. J drivers Ethernet J Stepper A examples Firmata Wire A hardware Ji LiquidCrystal Js java Matrix Ji lib 1 NewSoftSerial 1 libraries Ju SD A reference Js Servo J tools EasyVR Date modified 20 09 2011 11 36 d File folder Figure 2 Installation folder for the Easy VR Arduino library User Manual 3 3 EasyVR 17 U N WWW Veear eu VeeaR To check everything is working fine 1 Make sure the jumper J12 is in the PC position 2 Open the EasyVR Commander and connect to the Arduino serial port see Getting Started To download a new sound table 1 Make sure the jumper J12 is in the UP position 2 Open the EasyVR Commander and select the Arduino serial port 3 While disconnected choose Update Sound Table from the Tools menu see Using Sound Table TestEasyVR Arduino 0022 Edit Sketch Tools Help New Ctrl N Open Ctrl O Sketchbook VW Examples gt 1 Basics k SS Close CAN 2 Digital 5 Save Ctrl S 3 Analog gt Save As Ctrl Maiusc S 4 Communication gt Upload to I O Board Ctrl U 5 Control gt bag Page Setup Ctrl Maiusc P S T Print Ctrl P eet T 8 Strings gt Preferences Ctrl Comma ArduinoISP Lule Quit Ctrl Q ArduinoTestSuite gt Details are displ ayed on the sg EasyVR gt EasyVRBridge EEPROM TestEasyVR Example code for the EasyVR lib SES d Written in 2011 by RoboTech srl Firmata gt int veear eu LiquidCrystal gt To the extent possible under l Maia
11. Manual 3 3 U MN VeeaR WWW Veear eu 5V 12V pn OM RELAY 3 AC MAINS LED nverte Voltage G mO OUT Switched V i Load N lOn On Z O N TO pin directly driving a T O pin connected to high I O pin switching a load on a high voltage low current LED impedance 5V circuit such as line using a 12V relay MCU input pin The exact components values in these circuits may vary You need to calculate required values for your application and choice of components For example resistor value for the LED circuit can be calculated approximately as Vou 8 Vigp Ren Ton Where Vien is the LED forward voltage as reported on the LED datasheet at the driving current lop see section Electrical Characteristics Let s assume a typical low current LED has a Vp 1 8V at 5mA the resistor value is 2 4 1 8 Ren oons 120 Ohm Now stay on the safe side and choose a slightly larger resistor such as 1500 If you want to drive higher current LEDs you need a circuit like the second one where you put the LED between the output resistor and the collector of the NPN transistor Use a pin as an input All the I O pins are inputs with weak internal pull up after power on or reset You may also configure the pin to have a strong pull up or no pull up at all see the example code Use general purpose I O pins lon O ion 3 ion
12. O co optional filter SWITCH AA O 5V Y E IN A optocoupler gt gt gt K I O pin connected to a switch I O pin connected 5V source I O pin with isolated input for safety or switching sensor such as MCU output pin circuits All these circuits assume the EasyVR pin has been configured with an internal pull up passive components value can be adjusted to account for weak or strong pull up Disabling the internal pull up could be used to put the pin in high impedance state for example to simulate a tri state or open drain output port User Manual 3 3 EasyVR 9 V MN WWW Veear eu VeeaR Again you should refer to the manufacturer s datasheet when interfacing any external components and to calculate required resistors values or other passive components Flash Update The EasyVR module includes a bootloader that allows to update the firmware and to download new sound tables to the on board memory The boot mode is activated by keeping the XM signal to a high logical level at power on or reset This can be easily done with a jumper or switch taking the signal to a suitable pull up resistor To download a firmware update or a sound table to the EasyVR power on the module with the jumper closed For normal operation just leave the jumper open Do not change the jumper position while the module is already powered on It is safe to change XM level while the module is reset RST low
13. Protocol header file This file protocol h can be used with applications written in the C language You can download a copy from the VeeaR website ifndef PROTOCOL H define PROTOCOL H define CMD BREAK b abort recognition playback or ping define CMD SLEEP s go to power down define CMD KNOB k set si knob 1 define CMD LEVEL vy set sd level T define CMD LANGUAGE l set si language 1 define CMD TIMEOUT o set timeout 1 define CMD RECOG SI i do si recog from ws 1 define CMD TRAIN SD t train sd command at group 1 pos 2 define CMD GROUP SD g insert new command at group 1 pos 2 define CMD UNGROUP SD ui remove command at group 1 pos 2 define CMD RECOG SD d do sd recog at group 1 0 trigger mixed si sd define CMD ERASE SD e reset command at group 1 pos 2 define CMD NAME SD n label command at group 1 pos 2 with length 3 name lt 4 n gt define CMD COUNT SD c get command count for group 1 define CMD DUMP SD p read command data at group 1 pos 2 define CMD MASK SD m get active group mask define CMD RESETALL r reset all commands and groups define CMD ID x get version id define CMD DELAY y set transmit delay 1 log scale define CMD BAUDRATE a set baud rate 1 bit time 1 gt 115200 define CMD QUERY IO q configure read or write I
14. THEN OK ELSE ERROR input with strong pull up and read state p THEN ERROR ack and read logic level pe evel SIV Wy MNA high impedance input reading state is optional p THEN ERROR Use custom sound playback full volume works with any or no table THEN OK ELSE ERROR play entry 13 at half volume SEND w SEND A SEND N SEND H IF RECEIVE o play entry 123 SEND w Simpy VAY sp 2 SENDA ATG SENDERE IF RECEIVE o THEN OK ELSE ERROR 23 32426 at max volume THEN OK ELSE ERROR Read sound table dump sound table SEND h IF NOT RECEIVE h THEN ERROR read count of entries and name length SEND count RECEIVE YAY 32 SEND E count count we RECEIVE TAT SEND A length RECEIVE A read name text FOR i 0 TO length 1 SEND label i RECEIVE NEXT User Manual 3 3 EasyVR WWW Veear eu 31 V W www veear eu VeeaR Built in Command Sets In the tables below a list of all built in commands for each supported language along with group index trigger or word set command index and language identifier to use with the communication protocol eee Command English set Index US robot Language Japanese Romaji Soman robot ARY bk robotto robot azione 7y77a3 7 acution acci n i5 susu me mu vete gd magare gira JEN hashire dauf corre R5 miro Ke kougeki ataca LEN tomare cAlI 5l amp konnichiwa hol
15. characters which can be divided in two main groups e Command and status characters respectively on the TX and RX lines chosen among lower case letters e Command arguments or status details again on the TX and RX lines spanning the range of capital letters Each command sent on the TX line with zero or more additional argument bytes receives an answer on the RX line in the form of a status byte followed by zero or more arguments There is a minimum delay before each byte sent out from the EasyVR module to the RX line that is initially set to 20 ms and can be selected later in the ranges 0 9 ms 10 90 ms and 100 ms 1 s That accounts for slower or faster host systems and therefore suitable also for software based serial communication bit banging Since the EasyVR serial interface also is software based a very short delay might be needed before transmitting a character to the module especially if the host is very fast to allow the EasyVR to get back listening to a new character The communication is host driven and each byte of the reply to a command has to be acknowledged by the host to receive additional status data using the space character The reply is aborted if any other character is received and so there is no need to read all the bytes of a reply if not required Invalid combinations of commands or arguments are signaled by a specific status byte that the host should be prepared to receive if the communication fai
16. enum Moduleld VRBOT EASYVR enum WakeMode WAKE ON CHAR WAKE ON WHISTLE WAKE ON LOUDSOUND WAKE ON 2CLAPS WAKE ON SCLAPS enum ClapSense CLAP SENSE LOW CLAP SENSE MID CLAP SENSE HIGH enum PinNumber 101 IO2 103 enum SoundVolume VOL MIN VOL HALF VOL FULL VOL DOUBLE enum SoundIndex BEEP Public Member Functions EasyVR Stream amp s bool detect bool stop int8 t getID bool setLanguage int8 t lang bool setTimeout int8 t seconds bool setKnob int8 t knob bool setLevel int8 t level bool setDelay uint16_t millis bool changeBaudrate int8 t baud bool sleep int8 t mode bool addCommand int8 t group int8 t index bool removeCommand int8 t group int8 t index bool setCommandLabel int8 t group int8 t index const char name bool eraseCommand int8 t group int8 t index bool getGroupMask uint32 t amp mask int8 t getCommandCount int8 t group bool dumpCommand int8_t group int8 t index char name uint8 t amp training void trainCommand int8 t group int8 t index void recognizeCommand int8 t group void recognizeWord int8 t wordset bool hasFinished int8 t getCommand int8 t getWord int16 t getError bool isTimeout bool isConflict bool isMemoryFull bool setPinOutput int8 t pin int8 t value int8 t getPinInput int8 t pin int8 t config void playSoundAsync int16 t index int8 t volume bool playSound int16 t index int8 t vol
17. the values in Groups index 0 31 is the index of the command within the selected group Note The module is busy until training completes and it cannot accept other commands You can interrupt training with stop void recognizeCommand int8 t group Starts recognition of a custom command Results are available after hasFinished returns true Parameters group 0 16 is the target group or one of the values in Groups Note The module is busy until recognition completes and it cannot accept other commands You can interrupt recognition with stop void recognizeWord int8 t wordset Starts recognition of a built in word Results are available after hasFinished returns true Parameters wordset 0 3 is the target word set or one of the values in Wordset Note The module is busy until recognition completes and it cannot accept other commands You can interrupt recognition with stop bool hasFinished Polls the status of on going recognition training or asynchronous playback tasks Return values is true if the operation has completed int8 t getCommand Gets the recognised command index if any Return values 0 31 is the command index if recognition is successful 1 if no command has been recognized or User Manual 3 3 EasyVR 41 U N WWW Veear eu VeeaR an error occured int8 t getWord Gets the recognised built in word index if any Return values 0 31 is the comma
18. to Tx A This is done by reading from a pin and writing to the other in a fast loop that runs until the microcontroller is reset 44 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu EasyVR Commander The EasyVR Commander software can be used to easily configure your EasyVR module connected to your PC through an adapter board or by using the microcontroller host board with the provided bridge program available for ROBONOVA controller board Arduino 2009 UNO Parallax Basic Stamp You can define groups of commands or passwords and generate a basic code template to handle them It is required to edit the generated code to implement the application logic but the template contains all the functions or subroutines to handle the speech recognition tasks Getting Started Connect the adapter board or a microcontroller host board with a running bridge program to your PC and then check that all devices are properly turned on and start the EasyVR Commander Select the serial port to use from the toolbar or the File menu and then go with the Connect command P amp J amp EasyVR Commander v2 21 src File Edit Tools Help d 28 com IAIOA QB el ail el DB oy es Group List Wordset 1 Command List Label Action Move Tum f Index Description Commands Trigger Group Group Group Group Group Group Group Group Group 10 Group Group Group Group 14 Group Group 16 Password 2 Word
19. D SV conflict 16 SI conflict Known issues 1 In firmware ID 0 command creation deletion might cause other empty commands training count to change to 7 Treat count values of 1 0 or 7 as empty training markers Never train commands more than 2 or 3 times 2 Conflicting command position 0 31 only meaningful when trained 3 Length of label 0 31 4 n Text of label ASCII characters from A to In reply to CMD DUMP SD STS ERROR e 65h Signal recognition error 1 2 Two 4 bit values that form 8 bit error code error 1 16 2 see appendix In reply to CMD RECOG SI CMD RECOG SD CMD TRAIN SD CMD PLAY SX STS INVALID v 76h Invalid command or argument In reply to Any invalid command or argument STS TIMEOUT t 74h Timeout expired In reply to CMD RECOG SI CMD RECOG SD CMD TRAIN SD User Manual 3 3 EasyVR 25 V MN WWW Veear eu VeeaR STS INTERR 69h Interrupted recognition In reply to CMD BREAK while in training recognition or playback STS SUCCESS o GFh OK or no errors status In reply to CMD BREAK CMD DELAY CMD BAUDRATE CMD TIMEOUT CMD KNOB CMD LEVEL CMD LANGUAGE CMD SLEEP CMD GROUP SD CMD UNGROUP SD CMD ERASE SD CMD NAME SD CMD RESETALL CMD QUERY IO CMD PLAY SX STS RESULT r 72h Recognized SD SV command or Training similar to SD SV command 1 Command position 0 31 In reply to CMD RECOG SD CMD TRAIN SD STS SIMILAR s 73h Recogn
20. E A 2 SEND mask mask RECEIVE A 2 SEND mask mask RECEIVE A 274 Read how many commands in a group request command count of group 3 SHIN Dien Si atm DE IF NOT RECEIVE c THEN ERROR ack and read count SEND count RECEIVE A Read a user defined command dump command 0 in group 3 SEND p SEND THY SEND A F NOT RECEIVE d THEN ERROR read command data SEND training RECEIVE A extract training count 2 for a completely trained command itas IER ieiceubidaliavey 20916 7 extract flags for conflicts SD or 9I tr_flags training AND 24 read index of conflicting command same group if any SHIN Die conflict RECEIVE A read label length SEN Dia length RECEIVE A read label text FOR i 0 TO length i img V label i RECEIVE decode digits IF label i THEN SEND E el DER END IF NEXT 30 EasyVR User Manual 3 3 VeeaR set IOl pim to SEND q SEND B SEND A F RECEIVE o set IO2 pin to SEND q SEND C SEND B F RECEIVE o set LOZ pim as SEND q SEND C SEND D LF NOT RECEIVE SEND set IO3 pin as SEND q SEND D SEND C F NOT RECEIVE play a beep at SEND w SEND A SEND A SEND SI IF RECEIVE o Use general purpose UO pins logic low level THEN OK ELSE ERROR logic high level
21. HW Hardware serial mode Use it for controlling the EasyVR module from your Arduino sketch through the hardware serial port using pins 0 1 o SW Software serial mode Use it for controlling the EasyVR module from your Arduino sketch through a software serial port using pins 12 13 You can also connect the EasyVR Commander in this mode provided that the running sketch implements bridge mode see libraries LEDs A green LED D6 is connected to 101 pin and can be controlled by the user s program to show feedback during recognition tasks for example This LED is on by default after reset or power up The red LED D5 lights up when you set the shield to flash update mode see Jumper settings Quick start for using the Shield Follow these few steps to start playing with your EasyVR Shield and Arduino 1 Insert the EasyVR Shield on top of your Arduino board 2 f you want audio output either wire an 80 speaker into the screw terminals J10 or connect headphones to the 3 5mm output jack J9 3 Connect the supplied microphone to the MIC IN J11 connector 4 Copy the EasyVR library to your Arduino libraries folder on your PC 5 Connect your Arduino board to your PC via USB P Les g A ardui librar gt v Search libraries p Organize Open Includeinlibrary v s DN e E Computer jArduinoTestSuite J SoftwareSerial amp Local Disk C J EasyVR sri d arduino 0022 J EEPROM 1 Sprite
22. O q 71h Configure query or modify general purpose I O pins 1 Pin number 1 pin IO1 2 pin IO2 3 pin 103 Pin mode 0 output low 1 output high 2 input 3 input strong 4 input weak High impedance input no pull up Strong means 10K internal pull up Weak means 200K internal pull up default after power up Expected replies STS SUCCESS mode 0 1 STS PIN mode 2 4 2 CMD PLAY SX w 77h Wave table entry playback 1 2 Two 5 bit values that form a 10 bit index to the sound table index 1 32 2 3 Playback volume 0 31 0 min volume 15 full scale 31 double gain Expected replies STS SUCCESS STS_ERROR 7 CMD_DUMP_SX h 68h Read wave table data Expected replies STS TABLE SX STS OUT OF MEM 24 EasyVR User Manual 3 3 V W VeeaR WWW Veear eu Status Details Replies to commands follow this format Please note that numeric arguments of status replies are mapped to upper case letters see the related section STS MASK k Bh Mask of non empty groups 1 8 4 bit values that form 32 bit mask LSB first In reply to CMD MASK SD STS COUNT c 63h Count of commands 1 Integer 0 31 In reply to CMD COUNT SD STS AWAKEN w 77h Wake up back from power down mode In reply to Any character after power on or sleep mode STS DATA d 64h Provide command data Training information 1 empty 1 6 training count 8 S
23. O pin 1 of type 2 define CMD PLAY SX w wave table entry 1 2 10 bit playback at volume 3 define CMD DUMP SX h dump wave table entries define STS MASK k mask of active groups 1 8 define STS COUNT c count of commands 1 define STS AWAKEN w back from power down mode define STS DATA d get training 1 conflict 2 label 3 35 counted string define STS ERROR Ye signal error code 1 2 define STS INVALID v invalid command or argument define STS TIMEOUT t timeout expired define STS INTERR i back from aborted recognition see break define STS SUCCESS o no errors status define STS RESULT r recognized sd command 1 training similar to sd 1 define STS SIMILAR s recognized si 17 in mixed si sd training similar to si 1 define STS OUT OF MEM m no more available commands see group define STS ID x provide version id 1 define STS PIN p return pin state 1 define STS TABLE SX h provide table count 1 2 10 bit name 3 35 counted string protocol arguments are in the range 0x40 1 to 0x60 431 inclusive define ARG MIN 0x40 define ARG MAX 0x60 define ARG ZERO 0x41 define ARG ACK 0x20 to read more status arguments endif PROTOCOL H 34 EasyVR User Manual 3 3 Y MN VeeaR WWW Veear eu EasyVR Arduino Library Documentation EasyVR Class Reference Public Types
24. STRONG Pin is an input with strong pull up 10K INPUT WEAK Pin is an input with weak pull up 7200K enum PinNumber Available pin numbers on the extra I O connector Enumerator 107 Pin IO 102 Pin lO2 103 Pin 103 enum SoundVolume Some quick volume settings for the sound playback functions any value in the range 0 31 can be used Enumerator User Manual 3 3 EasyVR 37 Y N WWW Veear eu VeeaR VOL MIN Lowest volume almost mute VOL HALF Half scale volume softer VOL FULL Full scale volume normal VOL DOUBLE Double gain volume louder enum Soundindex Special sound index values always available even when no soundtable is present Enumerator BEEP Beep sound Constructor amp Destructor Documentation EasyVR Stream amp s Creates an EasyVR object using a communication object implementing the Stream interface such as HardwareSerial or the modified SoftwareSerial and NewSoftSerial Parameters sthe Stream object to use for communication with the EasyVR module Member Function Documentation bool detect Detects an EasyVR module waking it from sleep mode and checking it responds correctly Return values is true if a compatible module has been found bool stop Interrupts pending recognition or playback operations Return values is true if the request is satisfied and the module is back to ready int8 t getID Gets the module identification number firmware version Re
25. VeeaR User Manual Release 3 3 www veear eu U MN WWW Veear eu VeeaR Table of Contents L yAd BpBue e eege eege eege eege 4 Product Description navi shee Ke eee ke ee lees A de ee 4 EasyVH featul68 erii iet ette T T Dee 4 TOGHIMIGAl SPSCIICATIOMS ccm 5 Physical dimensions and pin asslonmenmt enne nnne enne 5 Recommended Operating Conditions sess enne enne nnns nnne nennen 6 Electrical Characteristics e cease pectet deer drerit d erae aia iaaa 6 Power Supply Requirements erret meteo et tree tero Fen er Ri EAD ei Le RO Fea etd da ERR Rea DR EROR 6 Serial a a ze REDDERET TEE 6 IWIIGHO PONG PRETERITO DID D UL It 7 AUGIO OUTPUT Ec 8 General Purpose I Os cect nein nile c 8 Flash IECH 10 Quick start for using the module ceccccceceeeeceeeeeeeeeeeeeaeeeeaeeseeeeecaaeeeeaaeseeeesaaeeesaaeeseaeeseeeescaeeseaeeeeeeeseas 11 EaSVV ROM AGUINO EE 11 EasyV On RODOMOVA E 14 EasyVR on Basic Stamp Pr dys Pee dices vad enin p eda pates o ra nes fere E aas 15 Easy VF Shield for Arduino lt a 16 Reuler 16 Physical dimensions and pin asslonmenmt cece eeeeee ee eeee eee eeeeeeeeeeeeeaeeeeeeaaeeeseeaaeeeeeeaaeeeeeeaaeeeeeeaeeeeeeaas 16 leet E 17 RE 17 Quick start for using the Shield sssssssssssssssssseseee eene nennen nnns nrnr inneren senten nentes 17 Easy VR Programming putem 19 Communication Protocol ccccccceeeeececeeeeeceeeee
26. a hidari a la izquierda gauche migi a la derecha droite ue hinauf arriba F shita abajo avanti B mae adelante robot action action move vai bouge turn cours look regarde attack attacca attaque arr te oo WG 1 E UNE pu 4 NE 006 hello 3 008 4 005 2 Oo O1 IE NE 008 A o a 6 7 right a sinistra a destra vers le in alto haut in basso vers le bas forward en avant backward en arri re indietro f ushiro atr s zero oO zero mul cero z ro ni zwei tres vier cuatro cinco hachi ocho kyu neun nueve m three san yon E four quatre five cing six S Qo o c x x 7 seven eight otto huit nove olo N olg Qolo Sic oO D S c o ajx E o3 RE cz a zs o a Dio D e D Q 2 x 32 EasyVR User Manual 3 3 Y MN VeeaR WWW Veear eu Error codes Below the list of the most useful error codes that may be returned by training or recognizing commands 03h ERR DATACOL TOO NOISY too noisy 04h ERR DATACOL TOO SOFT spoke too soft 05h ERR DATACOL TOO LOUD spoke too loud 06h ERR DATACOL TOO SOON spoke too soon 07h ERR DATACOL TOO CHOPPY too many segments too complex 11h ERR RECOG FAIL recognition failed 12h ERR RECOG LOW CONF recognition result doubtful 13h ERR RECOG MID CONF recognition result maybe 14h ERR RECOG BAD TEMPLATE invalid SD SV command stored in memory
27. ash memory A predefined beep sound is also always available even when no sounds have been downloaded to the module The custom sounds are organized in a so called sound table that users can prepare and build with the special QuickSynthesis tool Please refer to this application s own manual for details about the creation of a sound table Let s summarize the basic steps here e Prepare the audio files you want to include in the sound table in WAV format uncompressed 16 bit 22050Hz mono To create the sound files you may use a free software like Audacity for example http audacity sf net e Open Sensory s QuickSynthesis 5 and create a new project specifying RSC4 family e Add your WAV files and specify one of the supported compression scheme see table below e Optionally add sentences by combining basic WAV sounds That allows you to save memory when you have speech audio files if they share some pieces like You said One You said Two and so on e Build the project with QuickSynthesis and use default settings Build linkable module Load in CONST space Load above or at 0 You will be asked to recompress new or modified sound files just confirm and proceed e Now save your project and build it once again so that the EasyVR Commander will see that your build is up to date The audio compression formats supported by the EasyVR module are Compression Scheme Available Time 8kHz
28. cognition could never end result RECEIVE F result s THEN successful recognition ack and read result sump 1 command RECEIVE TAT perform actions according to command ELSE IF result t THEN timed out no word spoken ELSE IF result e THEN error code ack and read which one sump V 1 error RECEIVE SUMUS SEND 1 error error RECEIVE A perform actions according to error ELSE invalid request or reply ERROR END IF Adding a new SD command 28 insert command 0 in group 3 SEND g SEND D SEND A IF RECEIVE o THEN OK ELSE ERROR set command label to ARDUINO 2009 SEND g SEND D SEND A SEND Q name length 16 characters digits count twice SEND A SEND R SEND D SEND U SEND ars SEND N SEND O SEND U encode each digit with a prefix followed by the digit mapped to upper case letters SENDEROS SEND C SEND Po SEND A SEND Yo SEND A SEND TI SEND J IF RECEIVE o THEN OK ELSE ERROR EasyVR VeeaR User Manual 3 3 VeeaR Training an SD command repeat the whole training procedure twice for best results train command 0 in group 3 SENDEN SEND Zi SEND A wait for reply default timeout is 3s wait for max 1s more then abort result RECEIVE F RECEIVE o THEN training successful OK ELSE IF result r THEN training saved but spoken command is similar to another SD
29. command read which one SENIUM command RECEIVE A may notify user and erase training or keep it ELSE IF result s THEN training saved but spoken command is similar to another SI command always trigger may skip reading SEND command RECEIVE A may notify user and erase training or keep it ELSE IF result t THEN timed out no word spoken or heard ELSE IF result e THEN error code ack and read which one SEND 1 error RECEIVE tA T6 SEND error error RECEIVE A perform actions according to error ELSE invalid request or reply ERROR END IE Recognition of an SD command start recognition in group 1 SEND d SEND B wait for reply result RECEIVE IE result r THEN successful recognition ack and read result SEND command RECEIVE A perform actions according to command ELSE IF result t THEN timed out no word spoken ELSE IF result e THEN error code ack and read which one SEND V error RECEIVE eebe SEND 3 error error RECEIVE A perform actions according to error ELSE invalid request or reply ERROR END IF User Manual 3 3 EasyVR www veear eu 29 www veear eu VeeaR Read used command groups request mask of groups in use SEND m IF NOT RECEIVE k THEN ERROR read mask to 32 bits variable in 8 chunks of 4 bits each SEND mask RECEIVE A SEND mask mask RECEIV
30. e with recognition The diameter of the hole in the housing in front of the microphone should be at least 5 mm Any necessary plastic surface in front of the microphone should be as thin as possible being no more than 0 7 mm if possible clear area internal diaphragm 3 Insulation The microphone should be acoustically isolated from the housing if possible This can be accomplished by surrounding the microphone element with a spongy material such as rubber or foam The provided microphone has this kind of insulating foam The purpose is to prevent auditory noises produced by handling or jarring the device from being picked up by the microphone Such extraneous noises can reduce recognition accuracy User Manual 3 3 EasyVR 7 V MN WWW Veear eu VeeaR fastened directly absorbent material 4 Distance If the microphone is moved from 15 cm to 30 cm from the speaker s mouth the signal power decreases by a factor of four The difference between a loud and a soft voice can also be more than a factor of four Although the internal preamplifier of the EasyVR compensates for a wide dynamic range of input signal strength if its range is exceeded the user application can provide feedback to the speaker about the voice volume see appendix Error codes Audio Output The EasyVR audio output interface is capable of directly driving an 8O speaker It could also be connected to an external audio amplifier t
31. eaaeceeeeeeeaeeesaaeeeeeeeseaeeeceaeseeaaeseeeeeseaeeesaaesseaeeseeeeesaeeseaeseneeeseas 19 lieler Le TE 19 Arguments Mapping ORT 20 CG mmand Details CE 21 Stat s Details f cc 25 Communication Gul EE 27 Recommended wake up procedure enne nnne en nennen trs en nnne nnns 27 Recommended setup procedure ccceccecceceeseeceeeeneeceeeeneeceeeeaaeceeeennaeseeneeseeaaeeceeseeaeseeseneeeeenneaeesenaes 27 Recognition of a built in SI commande 28 Adding a neW SD COMMANG cee odeur rrt tenete etr tecta den ux uei pue anuo nx a ae ov una xg dE pde 28 Training an RR en Il E 29 Recognition of an SD commande 29 Read used command Kelte te EE 30 Read how many commands in a group 30 Read a user defined command eeeesissiisseseseeee eee tnne nne nnns trt n tenen n nets nnns 30 Use general purpose I O pinS sss enne nennen nennen nennen et rene nnns nns ettet enne 31 Use custom sound playDack iere terree terere eee ena Deere cere ee aae ere epe rea Ere eo ra eee udis 31 Head sound table rt rtc telae Debe tex et unu Cent Ful E rue rue End 31 Built in Command Sets retener ennt te ern ee eate ted eua aU e Ev anta ERU ot tu Fea etu ate Fea EE ances 32 mage 33 Protocol Marre Bm 34 2 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu EasyVR Arduino Library Documentation eeeeees e
32. emory of the EasyVR module 14 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu EasyVR on Basic Stamp The EasyVR module can be connected to all Basic Stamp 2 series devices following the connection scheme below This is supported by the EasyVR Commander software with a special bridge code running on the Basic Stamp which can be downloaded automatically if not present The status LED is used to signal that a recognition task is in progress and the application is listening for a voice command This is optional and can be omitted When connected with the EasyVR Commander you can add and remove custom voice commands as well as train and test them You can also generate a template PBASIC code to manage voice recognition that you can easily customize for your own application Please note the download of a sound table through any Basic Stamp 2 controller board is not supported due to limitations of this hardware setup You may use an USB Serial adapter or another suitable configuration to update the flash memory of the EasyVR module User Manual 3 3 EasyVR 15 V Alt WWW Veear eu VeeaR EasyVR Shield for Arduino The EasyVR Shield is an Arduino shield integrating the EasyVR module designed to simplify the EasyVR management for all the Arduino developers Technical specifications Physical dimensions and pin assignment i VeeaR loe Du LESA s Hot Ce Lee D3 G 3333 3411 ferrie
33. f the command within the selected group Return values is true if the operation is successful bool getGroupMask uint32 t amp mask Gets a bit mask of groups that contain at least one command Parameters mask is a variable to hold the group mask when the function returns Return values is true if the operation is successful int8 t getCommandCount int8 t group Gets the number of commands in the specified group Parameters group 0 16 is the target group or one of the values in Groups Return values is the command count 40 EasyVR User Manual 3 3 V MN VeeaR www veear eu bool dumpCommand int8 t group int8 t index char name uint8 t amp training Retrieves the name and training data of a custom command Parameters group 0 16 is the target group or one of the values in Groups index 0 31 is the index of the command within the selected group name points to an array of at least 32 characters that holds the command label when the function returns training is a variable that holds the training count when the function returns Additional information about training is available through the functions isConflict and getWord or getCommand Return values is true if the operation is successful void trainCommand int8 t group int8 t index Starts training of a custom command Results are available after hasFinished returns true Parameters group 0 16 is the target group or one of
34. gt dedicated all al NewSoftSerial gt SD gt Servo D SPI D Stepper gt Wire To test the Shield with your Arduino programming IDE 1 Set the jumper J12 in the SW position 2 Open the example sketch TestEasyVR from your IDE menu File gt Examples gt Easy VR 3 Upload the sketch and open the Serial Monitor window 4 See comments on top of the sketch for usage details Keep in mind that if you have a bridge code running all examples do on Arduino you can connect the EasyVR Commander leaving the jumper in the SW position just make sure the monitor window is closed When the EasyVR Commander is connected you can also generate a template code for Arduino that will use the provided libraries see EasyVR Arduino Library Documentation All you need is to write actions for each recognized command 18 EasyVR User Manual 3 3 Y MN VeeaR WWW Veear eu EasyVR Programming Communication Protocol Introduction Communication with the EasyVR module uses a standard UART interface compatible with 3 3 5V TTL CMOS logical levels according to the powering voltage VCC A typical connection to an MCU based host EasyVR Host MCU VCC 3 3V 5V GND GND ERX TX ETX RX The initial configuration at power on is 9600 baud 8 bit data No parity 1 bit stop The baud rate can be changed later to operate in the range 9600 115200 baud The communication protocol only uses printable ASCII
35. h your Arduino programming IDE 1 2 3 4 Make sure you did not activate bridge mode manually Open the example sketch TestEasyVR from your IDE menu File gt Examples gt Easy VR Upload the sketch and open the Serial Monitor window See comments on top of the sketch for usage details When the EasyVR Commander is connected you can also generate a template code for Arduino that will use the provided libraries see Easy VR Arduino Library Documentation All you need is to write actions for each recognized command and adapt the code to your needs User Manual 3 3 EasyVR 13 U MN WWW Veear eu VeeaR EasyVR on Robonova With the robot switched off connect the EasyVR module to the ROBONOVA controller board as in the following diagram Connect the microphone to the white MIC connector J2 EasyVR Module v2 ROBONOVA 1 Controller Board MR C3024 Xo SB Bu The EasyVR Commander software can be used to easily connect the PC to the EasyVR module without the need of additional adapter boards but simply by using the microcontroller host board with the provided bridge program To start using the EasyVR Commander connect the robot to your PC and turn on your ROBONOVA Select the serial port to use the same as in RoboBasic Editor from the toolbar or from the File menu then go with the Connect command Once connected to the robot the EasyVR Commander software automatically download
36. ies STS SUCCESS CMD_LANGUAGE l 6Ch Set SI language Language 0 English 1 Italian 1 2 Japanese 3 German 4 Spanish 5 French Expected replies STS SUCCESS User Manual 3 3 EasyVR 21 U MN WWW Veear eu VeeaR CMD_TIMEOUT oi 6Fh Set recognition timeout 1 Timeout 1 default 0 infinite 1 31 seconds Expected replies STS SUCCESS CMD RECOG SI TU 69h Activate SI recognition from specified word set 1 Word set index 0 3 Expected replies GIG SIMILAR GIG TIMEOUT STS ERROR CMD TRAIN SD t 74h Train specified SD SV command 1 Group index 0 trigger 1 15 generic 16 password 2 Command position 0 31 Expected replies STS_SUCCESS STS_RESULT STS_SIMILAR STS_TIMEOUT STS_ERROR CMD_GROUP_SD Ki 67h Insert new SD SV command 1 Group index 0 trigger 1 15 generic 16 password 2 Position 0 31 Expected replies STS SUCCESS GIG OUT OF MEM CMD UNGROUP SD u 75h Remove SD SV command 1 Group index 0 trigger 1 15 generic 16 password 2 Posten 0 31 Expected replies STS SUCCESS CMD RECOG SD d 64h Activate SD SV recognition 1 Group index 0 trigger 1 15 generic 16 password Expected replies STS RESULT STS SIMILAR STS TIMEOUT STS ERROR CMD ERASE SD e 65h Erase training of SD SV command 1 Group index 0 trigger 1 15 generic 16 password
37. ing hearing to the most popular robots on the market EasyVR features e A host of built in Speaker Independent SI commands for ready to run basic controls in the followings languages o English US Italian German French Spanish o Japanese e Supports up to 32 user defined Speaker Dependent SD triggers or commands as well as Voice Passwords SD custom commands can be spoken in ANY language Easy to use and simple Graphical User Interface to program Voice Commands and audio Module can be used with any host with an UART interface powered at 3 3V 5V Simple and robust documented serial protocol to access and program through the host board 3 GPIO lines IO1 IO2 IO3 that can be controlled by new protocol commands PWM audio output that supports 8O speakers Sound playback of up to 9 minutes of recorded sounds or speech O O O O 4 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu Technical specifications Physical dimensions and pin assignment ve PWM 71 4770104 3HM 2 04 OvOSAGE J1 Pinout lt ETX ERX vcce CNDS 45mm ETX ERX VCC GND Connector Number Name Type eme 3 ERX Serial Data Receive TTL level 4 EX O Serial Data Transmit TTL level EE EE Differential audio output can directly drive 8O speaker 00 MIC RET lie Microphone reference ground CS MIC IN d es input signal a RST 00 Atv ow asyotvonou reset neal 100K puke 03
38. ized SI word or Training similar to SI word 1 Word index 0 31 In reply to CMD RECOG SI CMD RECOG SD CMD TRAIN SD SIS OUT OF MEM m 6Dh Memory error no more room for commands or sound table not present In reply to CMD GROUP SD CMD DUMP SX STS ID IX 78h Provide firmware identification 1 Version identifier 0 In reply to CMD ID STS PIN p 70h Provide pin input status 1 Logic level 0 input low 1 input high In reply to CMD QUERY IO STS TABLE SX d 64h Provide sound table data 1 2 Two 5 bit values that form a 10 bit count of entries in the sound table count 1 32 2 3 Length of table name 0 31 4 n Text of table name ASCII characters from A to In reply to CMD DUMP SX 26 EasyVR User Manual 3 3 v N VeeaR WWW Veear eu Communication Examples These are some examples of actual command and status strings exchanged with the EasyVR module by host programs and the expected program flow with pseudo code sequences The pseudo instruction SEND transmits the specified character to the module while RECEIVE waits for a reply character a timeout is not explicitly handled for simple commands but should be always implemented if possible Also the OK and ERROR routines are not explicitly defined since they are host and programming language dependent but appropriate code should be written to handle both conditions Lines begin
39. le memory You can add a new command by first selecting the group in which the command needs to be created and then using the toolbar icons or the Edit menu A command should be given a label and then it should be trained twice with the user s voice the user will be guided throughout this process see Figure 4 when the Train Command action is invoked Command Training Command 2 of Group 5 Sys TEST CMD TWO Phase 1 2 Press the Phase 1 button and say the word corresponding to the command TEST CMD TWO within 5 seconds Figure 4 Guided training dialog Note after clicking on Phase 1 or Phase 2 buttons remember to start speaking only when you see this little window Speak now If any error happens command training will be cancelled Errors may happen when the user s voice is not heard correctly there is too much background noise or when the second word heard is too different from the first one i Trained command is similar to existing command 0 Keep current training anyway RS Figure 5 Alert dialog in case of conflict The software will also alert if command is too similar to an existing one by specifying the index of the conflicting command in the Conflict column For example in the following Figure 6 the command 46 EasyVR User Manual 3 3 V W VeeaR WWW Veear eu TEST CMD ONE sounds too similar to TEST CMD ZERO i e they have been trained wi
40. ls Also a reasonable timeout should be used to recover from unexpected failures If the host does not send all the required arguments of a command the command is ignored by the module without further notification and the host can start sending another command The module automatically goes to lowest power sleep mode after power on To initiate communication send any character to wake up the module User Manual 3 3 EasyVR 19 www veear eu Arguments Mapping VeeaR Command or status messages sent over the serial link may have one or more numerical arguments in the range 1 to 31 which are encoded using mostly characters in the range of uppercase letters These are some useful constants to handle arguments easily ARG_MIN r 40h Minimum argument value 1 ARG_MAX 60h Maximum argument value 31 ARG ZERO A 4ih Zero argument value 0 ARG_ACK 20h Read more status arguments Having those constants defined in your code can simplify the validity checks and the encoding decoding process For example in pseudo code encode value 5 FIVE By ARG_ZERO decode value 5 FIVE ARG ZERO 5 validity check IF ARG lt ARG MIN OR ARG gt ARG MAX THEN ERROR Just to make things clearer here is a table showing how the argument mapping works ASCII PN B G n W Al Al T WW T HEX 40 41 42 43 iss 59 5A 5B 5C 5D 5E Value 1 0 1 2 S 24 25 26 27 28 29 5F 60 30
41. manually or automatically or you use adapter mode Open the EasyVR Commander and connect to the Arduino serial port see Getting Started To download a new sound table 1 2 Oo gv co Power OFF the EasyVR module for example removing the USB cable Connect the XM pin of J4 on the EasyVR module for boot mode see Flash Update for a possible circuit Power ON again the EasyVR module and the Arduino board reconnect the USB cable Make sure you activate bridge mode either manually or automatically or you use adapter mode Open the EasyVR Commander and select the Arduino serial port While disconnected choose Update Sound Table from the Tools menu see Using Sound Table TestEasyVR Arduino 0022 Edit Sketch Tools Help New Ctrl N Open Ctrl O Sketchbook VW Examples VW 1 Basics gt Chee CAN 2 Digital 5 Save Ctrl S 3 Analog gt Save As Ctrl Maiusc S 4 Communication gt Upload to I O Board Ctrl U 5 Control gt bag Page Setup Ctrl Maiusc P ni Print Ctrl P aa T 8 Strings gt Preferences Ctrl Comma ArduinoISP Lule Quit Ctrl Q ArduinoTestSuite gt Details are displ ayed on the sg EasyVR gt EasyVRBridge EEPROM TestEasyVR Example code for the EasyVR lib eu d Written in 2011 by RoboTech srl Firmata b WW veear EU LiquidCrystal To _the extent possible under la Matrix gt dedicated all d NewSoftSerial gt SD gt Servo D SPI D Stepper gt Wire To test the EasyVR module wit
42. me without notice and does not make any commitment to update the information contained herein TIGAL KG products are not authorized for use as critical components in life support devices or systems User Manual 3 3 EasyVR 51
43. nd index if recognition is successful 1 if no built in word has been recognized or an error occured int16 t getError Gets the last error code if any Return values 0 255 is the error code 1 if no error occured bool isTimeout Retrieves the timeout indicator Return values is true if a timeout occurred bool isConflict Retrieves the conflict indicator Return values is true is a conflict occurred during training To know what caused the conflict use getCommand and getWord only valid for triggers bool isMemoryFull Retrieves the memory full indicator only valid after addCommand returned false Return values is true if a command could not be added because of memory size constaints up to 32 custom commands can be created bool setPinOutput int8 t pin int8 t value Configures an I O pin as an output and sets its value Parameters pin 1 3 is one of values in PinNumber pin 0 1 is one of the output values in PinConfig or Arduino style HIGH and LOW macros Return values is true if the operation is successful int8 t getPinInput int8 t pin int8 f config Configures an I O pin as an input with optional pull up and return its value Parameters pin 1 3 is one of values in PinNumber pin 2 4 is one of the input values in PinConfig Return values is the value of the pin 42 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu void playSoundAsync int16 t index i
44. ne of values in Baudrate Return values is true if the operation is successful bool sleep int8 t mode Puts the module in sleep mode Parameters mode is one of values in WakeMode optionally combined with one of the values in ClapSense Return values is true if the operation is successful bool addCommand int8 t group int8 t index Adds a new custom command to a group User Manual 3 3 EasyVR 39 U MN WWW Veear eu VeeaR Parameters group 0 16 is the target group or one of the values in Groups index 0 31 is the index of the command within the selected group Return values is true if the operation is successful bool removeCommand int8 t group int8 t index Removes a custom command from a group Parameters group 0 16 is the target group or one of the values in Groups index 0 31 is the index of the command within the selected group Return values is true if the operation is successful bool setCommandLabel int8 t group int8 t index const char name Sets the name of a custom command Parameters group 0 16 is the target group or one of the values in Groups index 0 31 is the index of the command within the selected group Return values is true if the operation is successful bool eraseCommand int8 t group int8 t index Erases the training data of a custom command Parameters group 0 16 is the target group or one of the values in Groups index 0 31 is the index o
45. ning with a sharp character are comments Please note that in a real programming language it would be best to define some constants for the command and status characters as well as for mapping numeric arguments that would be used throughout the program to minimize the chance of repetition errors and clarify the meaning of the code See the Protocol header file for sample definitions that can be used in a C language environment Here below all the characters sent and received are written explicitly in order to clarify the communication protocol detailed in the previous sections Recommended wake up procedure wake up or interrupt recognition or do nothing uses a timeout or max repetition count DO SEND b LOOP UNTIL RECEIVE o Recommended setup procedure ask firmware id SEND x IF NOT RECEIVE x THEN ERROR send ack and read status expecting id 0 um V v id RECEIVE TE Ia TAr THEN it s a VRbot ELSE IF id 1B THEN it s an EasyVR ELSE next generation END IE set language for SI recognition Japanese SEND I7 SEND IC F RECEIVE o THEN OK ELSE ERROR set timeout 5 seconds SEND o SEND F F RECEIVE o THEN OK ELSE ERROR User Manual 3 3 EasyVR 27 www veear eu Recognition of a built in SI command start recognition in wordset 1 SENDAR SEND B wait for reply if 5s timeout has been set wait for max 6s then abort otherwise trigger re
46. nt8 f volume Starts playback of a sound from the sound table Manually check for completion with hasFinished Parameters index is the index of the target sound in the sound table volume 0 31 may be one of the values in SoundVolume Note The module is busy until playback completes and it cannot accept other commands You can interrupt playback with stop bool playSound int16_t index int8 t volume Plays a sound from the sound table and waits for completion Parameters index is the index of the target sound in the sound table volume 0 31 may be one of the values in SoundVolume Return values is true if the operation is successful Note To alter the maximum time for the wait define the EASYVR PLAY TIMEOUT macro before including the EasyVR library bool dumpSoundTable char name int16 t amp count Retrieves the name of the sound table and the number of sounds it contains Parameters name points to an array of at least 32 characters that holds the sound table label when the function returns count is a variable that holds the number of sounds when the function returns Return values is true if the operation is successful bool resetAll Empties internal memory for custom commands and groups Return values is true if the operation is successful Note It will take about 35 seconds for the whole process to complete and it cannot be interrupted During this time the module cannot accept any o
47. o drive lower impedance loudspeakers Note Connecting speakers with lower impedance directly to the module may permanently damage the EasyVR audio output or the whole module It is possible to connect higher impedance loads such as headphones provided that you scale down the output power according to the speaker ratings for example using a series resistor The exact resistor value depends on the headphone power ratings and the desired output volume usually in the order of 10kQ Note Connecting headphone speakers directly to the EasyVR audio output may damage your hearing General Purpose UO Since the EasyVR communication interface takes two pins of the host controller a few spare I O pins are provided that can be controlled with the communication protocol to get those pins back for basic tasks such as lighting an LED The three I O pins IO1 IO3 are connected directly to the embedded microcontroller on the EasyVR module So they are referenced to the internal 3 0V regulated power supply If you need to interface to circuits using a different supply there are a number of solutions you can adopt Some of these are outlined below here IOn indicates any one of the three I O pins of the EasyVR Use a pin as an output All the I O pins are inputs with weak internal pull up after power on You must explicitly configure a pin before you can use it as an output see the example code Use general purpose I O pins 8 EasyVR User
48. ovided examples for Arduino manage the bridge mode automatically when the EasyVR Commander requests a connection m Arduino rug BUT OPERI eo LS vuu ar Quino cc AS poutn anaLoG IN V Seu Grd Vin 0123435 Automatic bridge mode used to be supported only on Arduino boards with a bootloader implementing EEPROM programming The latest version of EasyVR Commander since 3 1 x and Arduino libraries since 1 1 does not rely on that feature anymore so it should work on all Arduino boards Note bridge mode cannot be used to download a Sound Table or to perform a flash update You need to use adapter mode or a true USB Serial adapter Adapter mode This connection scheme has the advantage of working with any Arduino board that has an on board USB Serial adapter and not needing a spare input pin to enter bridge mode Also it does not rely on the AVR microcontroller to do any software bridge between communication pins so it can be used to check your hardware in case of connection problems Using this method also allows you to download a Sound Table to the EasyVR module provided you also configure the module to start in boot mode see paragraph Flash Update User Manual 3 3 EasyVR 11 WWW Veear eu VeeaR Arduino pug Leg lt gt M jm Duemilanove Vuw er Quino cc power anaLoG IN A Su Gnd Vin 0123315 GET Hold reset to use as serial adapter This configuration with Reset shorted to
49. s cerry FEET 23 N Gud Qu Vin R XCOE E OI EasyVR J10 Shield CH UP PC H SPEAKER one J2 Shield interface same as on Arduino Pins 0 1 are in use when J12 is set as UP PC or HW J3 J4 Pins 12 13 are in use when J12 is set as SW Ja LINE OUT CS 3 5mm stereo mono headphone jack 160 320 headphones ae SPEAKER o Differential audio output can directly drive an 8Q speaker MIC_IN mW Microphone input signal 2 MIC RET Microphone reference ground ee Se General purpose I O 3 0 VDC TTL level J13 Also used for on board green LED D6 Ea General purpose I O 3 0 VDC TTL level E 103 VO General purpose I O 3 0 VDC TTL level Note the GPIO J13 2 J13 3 and J13 4 are at nominal 3 0VDC level Do not connect 5VDC directly to these pins 16 EasyVR User Manual 3 3 V Al VeeaR WWW Veear eu Jumper settings J12 Operating mode This jumper selects the operating mode of the EasyVR Shield and it can be placed in one of four positions o UP Flash update mode Use it for firmware updates or to download sound table data to the on board flash memory from the EasyVR Commander In this mode the Arduino controller is held in reset and only the embedded USB Serial adapter is used The EasyVR module is set in boot mode o PC PC connection mode Use it for direct connection with the Easy VR Commander In this mode the Arduino controller is held in reset and only the embedded USB Serial adapter is used o
50. s the RoboBasic bridge program to the controller board if not already present and pass to its programming mode you can add and train new custom commands or change the language for built in commands The bridge program also has a test mode that allows the user to work with the robot and the set of built in commands the EasyVR module provides once the bridge program has been downloaded to the robot controller you can disconnect the EasyVR Commander detach the serial cable and immediately start using the robot with the built in vocal commands see Built in Command Sets For example you can say Robot the LED will turn on then after a little pause say Move wait for the LED to blink then say Forward the robot will take a short walk The EasyVR Commander can also generate a template RoboBasic code to help you start working with custom commands Once you have created and trained all your desired commands you can generate the basic template program by using the icon on the toolbar or the File menu Then disconnect EasyVR Commander open the file with the HoboBasic Editor make the required changes to customize the behavior and finally download and run it on the ROBONOVA controller Have fun Please note the download of a sound table through the ROBONOVA controller board is not supported due to limitations of this hardware setup You may use an USB Serial adapter or another bridge configuration to update the flash m
51. set J 3 Wordset 1 SoundTable 14 T T Run Look Attack Stop Hello 90909009009 1 47 44 ceo JO NAUN E Y T wo Q eg oui 4T PUD et en eam cocoocoococooccoccococococcocoWuyNGO 0 a Qo Ready Figure 3 Main application window There are four kinds of commands in the software see Figure 3 and Figure 6 e Trigger is a special group where you have the built in SI trigger word Robot and you may add one user defined SD trigger word Trigger words are used to start the recognition process e Group where you may add user defined SD commands e Password a special group for vocal passwords up to five using Speaker Verification SV technology e Wordset built in set of SI commands for instance in Figure 3 above the Wordset 1 is selected 1 On some systems the EasyVR Commander can automatically upload the bridge program to the host board once connected That applies to Robonova controller board and Parallax Basic Stamp User Manual 3 3 EasyVR 45 D MN WWW Veear eu VeeaR Speech Recognition The recognition function of the EasyVR works on a single group at a time so that users need to group together all the commands that they want to be able to use at the same time When EasyVR Commander connects to the module it reads back all the user defined commands and groups which are stored into the EasyVR module non volati
52. sses eese enne nnne nnne nnn anne nnn innen nannten 35 EasyVR Class Heterence ai aa iaiaaeaia aaa aiaaia aaaaaN 35 Neila e 35 Public Member FUNCTIONS coeno eie poen pn ENSE eser ene ER kannten pa ten EA eg sa a aaa a 35 Detailed DeSCri tO nies E 36 Member Enumeration Documentation 36 Constructor amp Destructor Documentation 38 Member Function Documentation rseson ani annn aS KASS RANES EN ERARE ARAA 38 EasyVRBridge Class Reference AA 44 Public Member FUNCHONS sc ett Ir rrt aina EE ee A Uoc ua PEERS edv iaat 44 Detailed Descriptio sede vebetiessscnendives cbineseatenyiteechunetesnetdecesctis EEN ENEE ENEE 44 Member Function Documentation seesssssssssseseseeeeneee enne ennn nnne en nnne ener rennen ennt 44 Easy VR Commane eee 45 Getting State TEE 45 Speech Recognition ARR 46 Using Sound Tables irri eee bee ep brian cs boo Eege bee end ede bates qe ee bet nudes 48 How io get ebe m 50 User Manual 3 3 EasyVR 3 Y N WWW Veear eu VeeaR EasyVR Module Product Description EasyVR is a multi purpose speech recognition module designed to easily add versatile robust and cost effective speech recognition capabilities to virtually any application The EasyVR module can be used with any host with an UART interface powered at 3 3V 5V such as PIC and Arduino boards Some application examples include home automation such as voice controlled light switches locks or beds or add
53. t threshold fewest results reported enum Level Strictness values for the level settings used for recognition of custom commands except triggers Enumerator EASY Lowest value most results reported 36 EasyVR User Manual 3 3 Y MN VeeaR WWW Veear eu NORMAL Typical value default HARD Slightly higher value fewer results reported HARDER Higher value fewer results reported HARDEST Highest value fewest results reported enum Baudrate Constants to use for baudrate settings Enumerator B115200 115200 bps B57600 57600 bps B38400 38400 bps B19200 19200 bps B9600 9600 bps default enum WakeMode Constants for choosing wake up method in sleep mode Enumerator WAKE ON CHAR Wake up on any character received WAKE ON WHISTLE Wake up on whistle or any character received WAKE ON LOUDSOUND Wake up on a loud sound or any character received WAKE ON 2CLAPS Wake up on double hands clap or any character received WAKE ON S3CLAPS Wake up on triple hands clap or any character received enum ClapSense Hands clap sensitivity for wakeup from sleep mode Use in combination with WAKE ON 2CLAPS or WAKE ON 3CLAPS Enumerator CLAP SENSE LOW Lowest threshold CLAP SENSE MID Typical threshold CLAP SENSE HIGH Highest threshold enum PinConfig Pin configuration options for the extra I O connector Enumerator OUTPUT LOW Pin is a low output OV OUTPUT HIGH Pin is a high output 3V INPUT HIZ Pin is an high impedance input INPUT
54. th a similar pronunciation Note TEST CMD ZERO and TEST CMD ONE are just examples of labels you should use label names that reflects the real command that you are going to train File Edit Tools Help AA S coma amp G GQGO qlia s o B e mmm Group List Group 5 Command List Description Commands Index Label Trained Conflict Q 0 TEST CMD ZERO 2 OK 1 TEST_CMD_ONE 2 D Q 2 TEST CMD TWO 0 OK f Trigger Group Group Group Group Group Group Group Group 9 Group 10 Group Group 12 Group 13 Group 14 Group 15 Group 16 Password 1 Wordset on nok aM a MeoemooeoocococooococoWoonc a AAAA 00 049 49 4949 447 77 A Figure 6 Conflicting commands The current status is displayed in the EasyVR Commander list view where groups that already contain commands are highlighted in bold The selected group of commands can also be tested by using the icon on the toolbar or the Tools menu to make sure the trained commands can be recognized successfully Note If you want to re train a command you have to erase the previous training first Note Vocal passwords group 16 are much more sensitive to environment noise and distance from the microphone be sure to train and give the password in similar conditions User Manual 3 3 EasyVR 47 U MN WWW Veear eu VeeaR Using Sound Tables The EasyVR can also play one of the sounds or sentences saved on the internal fl
55. the EasyVR module in normal mode and the new sounds will be displayed by the EasyVR Commander in the special group SoundTable the last one in the list with a yellow icon They can be played back and tested using the Play Sound command on the toolbar or in the Tools menu See also how to do that in your application in the code example Use custom sound playback Arduino UNO and other boards with USB Serial adapter based on ATMEGA8U2 need the option Slow transfers enabled User Manual 3 3 EasyVR 49 J N WWW Veear eu VeeaR How to get support Please feel free to contact us with any questions queries or suggestions If your question is about technical support or troubleshooting for one of our products we kindly ask you to first check our Forum for a possible solution http www veear eu If you cannot find an existing solution on the forum we strongly recommend posting your support request on the forum for as quick a response as possible The more detail you provide the better support we can give 50 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu VeeaR TIGAL KG all right reserved TIG All VeeaR branded boards and software are manufactured by TIGAL KG Made in Austria TIGAL KG assumes no responsibility for any errors which may appear in this manual Furthermore TIGAL KG reserves the right to alter the hardware software and or specifications detailed herein at any ti
56. ther command The sound table data is not affected User Manual 3 3 EasyVR 43 Y N WWW Veear eu VeeaR EasyVRBridge Class Reference Public Member Functions e bool check e bool checkEEPROM e void loop uint8 ta rx uint8 ta tx uint8 tb rx uint8 tb tx Detailed Description An implementation of a software bridge between two series of Rx Tx pins that enables routing of the hardware serial port connected to the PC to digital I O pins used as a software serial port connected to the EasyVR Member Function Documentation bool check Tests if bridge mode has been requested Return values is true if bridge mode should be started Note The EasyVR Commander software can request bridge mode using the Serial port This method does not require to reserve EEPROM locations bool checkEEPROM Tests if bridge mode has been requested legacy method Return values is true if bridge mode should be started Note The first two EEPROM locations bytes 0 1 are used for discovery and request of bridge mode from the EasyVR Commander software Do not use the same locations for other programa data void loop uint8 ta rx uint8 ta tx uint8 tb rx uint8 tb tx Performs bridge mode between port A and B in an endless loop Parameters a rxis the Rx pin of port A a_tx is the Tx pin of port A b rxis the Rx pin of port B b_txis the Tx pin of port B Note Bridge mode internally connects Rx A to Tx B and Rx B
57. turn values is one of the values in Moduleld bool setLanguage int8 t lang Sets the language to use for recognition of built in words Parameters lang 0 5 is one of values in Language Return values is true if the operation is successful bool setTimeout int8 t seconds Sets the timeout to use for any recognition task 38 EasyVR User Manual 3 3 V N VeeaR WWW Veear eu Parameters seconds 0 31 is the maximum time the module keep listening for a word or a command Return values is true if the operation is successful bool setKnob int8 t knob Sets the confidence threshold to use for recognition of built in words Parameters knob 0 4 is one of values in Knob Return values is true if the operation is successful bool setLevel int8 t level Sets the strictness level to use for recognition of custom commands Parameters level 1 5 is one of values in Level Return values is true if the operation is successful bool setDelay uint16 t millis Sets the delay before any reply of the module Parameters millis 0 1000 is the delay duration in milliseconds rounded to 10 units in range 10 100 and to 100 units in range 100 1000 Return values is true if the operation is successful bool changeBaudrate int8 t baud Sets the new communication speed You need to modify the baudrate of the underlying Stream object accordingly after the function returns successfully Parameters baud is o
58. ume bool dumpSoundTable char name int16 t amp count bool resetAll User Manual 3 3 EasyVR 35 V MN WWW Veear eu VeeaR Detailed Description An implementation of the EasyVR communication protocol Member Enumeration Documentation enum Moduleld Module identification number firmware version Enumerator VRBOT Identifies a VRbot module EASYVRH Identifies an EasyVR module enum Language Language to use for recognition of built in words Enumerator ENGLISH Uses the US English word sets ITALIAN Uses the Italian word sets JAPANESE Uses the Japanese word sets GERMAN Uses the German word sets SPANISH Uses the Spanish word sets FRENCH Uses the French word sets enum Group Special group numbers for recognition of custom commands Enumerator TRIGGER The trigger group shared with built in trigger word PASSWORD The password group uses speaker verification technology enum Wordset Index of built in word sets Enumerator TRIGGER SET The built in trigger word set ACTION SET The built in action word set DIRECTION SET The built in direction word set NUMBER SET The built in number word set enum Knob Confidence thresholds for the knob settings used for recognition of built in words except trigger Enumerator LOOSER Lowest threshold most results reported LOOSE Lower threshold more results reported TYPICAL Typical threshold deafult STRICT Higher threshold fewer results reported STRICTER Highes
Download Pdf Manuals
Related Search
EasyVR easyvr 3 0 shield easyvr easyvr shield easyvr3 easyvrc easyvr commander easy vrp easyvrf4 easy crypto easyvr 3 plus easyvr module
Related Contents
AP229433 Azur 550-650A User`s Manual SM-PM50 - Shimano 平成 23 年 2 月 7 Ford 2008 Taurus Automobile User Manual Manuel d`installation Samsung Galaxy NotePRO 12.2 圧着端子および接続子 - PRODUCT SEARCH サービス終了のお知らせ Copyright © All rights reserved.
Failed to retrieve file