Introduction: EMS Diagnostic Robot With BPM

In certain situations, first responders to an emergency may be unable to reach potential victims due to hazardous conditions. For example, first responders to a house may be unable to enter the home but will still want to assess the situation in regards to potential victims. This diagnostic robot was designed for these kinds of situations. From a remote distance, responders can control the movement of the robot to guide it towards a potential victim. The robot is equipped with a sensor which can determine the heartbeat of a victim with just the touch of a finger. This heartbeat (beats per minute) information is then sent back to the responders, from which they can then judge the need and urgency of saving that particular victim (Does the victim have an irregular heartbeat and should be saved quickly? Is the victim deceased so responders should focus on saving others?). This robot could certainly implement further applications. For example, a camera could be attached so the user wouldn't need to view the robot from a distance, and a mechanical device could be added which could clasp the victim's finger upon the sensor (as opposed to victims placing their finger upon the sensor). Ultimately, our design can serve as a basis for a further developed device which can be implemented to save lives in an urgent, hazardous situation.

Step 1: Get Materials


  • chipKit MX4 Microcontroller
  • chipKit WF32
  • 4 PmodHB5
  • Breadboard


  • Photo Diode
  • IR LED
  • Op-Amp
  • Clothespin
  • MRK Kit
  • Analog Discovery Kit (Optional)
  • Power Supply

Step 2: Configure Wi-Fi Module

In order to allow communication between the robot and your computer, the WF32 WIFI chip must be configured and programmed. Use the example code at to familiarize yourself with the WF32 and make sure you can establish a connection between the module and your computer. For this project, the HTMLgetPins.cpp file needs to be modified so that the Get Pins page only shows relevant pins and displays a controller with forward/reverse/left/right/brake buttons. This is done by altering the state machine and adding some dynamic HTML/ JS/ CSS. Once this file loads, you may either use the keyboard arrow keys and spacebar (brake) to control the robots, or may physically click the directional buttons.

Step 3: Construct Pulse Oximeter

In this step a pulse oximeter was constructed that allowed for a pulse rate to be detected and heart waveform to be clearly seen using an oscilloscope. The actual sensor was made using a matched photodiode and an infrared LED. The infrared light shines through the finger that is placed in the clothes pin. Blood absorbs infrared wavelengths (~nm), thus with each pulse the volume of blood in the finger changes, causing more or less light to pass through and be detected by the photodiode on the opposite side. The current produced by the photodiode was converted to voltage and amplified using an op amp in a current amplification configuration. The output of this stage was then sent through a voltage follower op amp for a buffer. This buffered signal was then sent through a low pass filter to remove the DC offset of the signal so that it could then be amplified. The filtered signal was sent then through an amplifier (op amp in negative feedback configuration) that amplified the signal times to that a readable waveform could be seen. This waveform was then inputted into the MX4 analog input.