Parts List:
  • Support Material
    • Support made from wood
  • Linear Actuator
    • Made with rack and pinion
  • DC Motors and Encoders (for measuring position)
  • EasyVR
  • 1 Mbed
  • H bridges
  • A claw or claw-like end effector
  • Distance Sensor
Speech:
   
Voice recognition was accomplished using the Veear EasyVR module. The EasyVR is a multi-purpose speech recognition module and was chosen among other speech recognition software because of its effective speech recognition, its user-friendly GUI, and mbed support. The EasyVR contains flash memory in which the trained speech words are stored along with their corresponding return character when recognized succesfully. EasyVR commander is a program available for free on the Veear website and is used to train and store recognizeable words on the easyVR flash memory.

Processing (mbed):
   
The mbed uses the EasyVR as an input, once speech is recognized it recieves a unique character from the EasyVR module based on the wordset stored in flash memory. The mbed can then use this character to trigger events programmed in the mbed code, such as turning on an LED. The mbed after the recognization of four "coordinate" characters then outputs a string of these character to the pc. An overview of mbed and EasyVR implementation can be found on the resources page.

The mbed code used for the implementation of the EasyVR can be downloaded here.

Game Tracking & Coordinates:
    An open source chess program, chess at nite, was used to dictate the game, recognizing illegal moves, maintaining a users turn, and keeping track of the status of the board. Coordinates are given based on a regulary numbered chess board, using a letter and number for the source as well as the destination. The claws location at the beginning of the game starts at absolute zero. Then as the game progresses ticks, or slight rotations of the motor encoder, are calculated based on a set number of ticks for each chess square moved. This allows a dynamic calculation of distance based on the claws current position on the board.



Motor Commands (mbed):
   
The X and Y axis motors have encoder attachments (I2C devices). They are polled in an interrupt routine for position. Motor input is speed controlled by PI. This needs adjustment as occasionally we will see the motor overshoot multiple times. Once the motor is in an acceptable range, it goes into an "adjusting mode", which is movement at a much lower speed to move closer to desired position. The Z axis is determined by a distance sensor and once all axis are positioned, a piece may be removed or placed by releasing or closing the claw.


The mbed code used for the implementation of the motors can be downloaded here.