Introduction: Simple Polygraph With Arduino
A polygraph is commonly known as a lie detector. Really, it detects how excited a person is. They aren't foolproof (and aren't admissable in court in the United States), but they are fun and a good way to learn about using biosensors. Our polygraph initially contained three parts, galvanic skin response, heart rate, and breathing rate and all the data was processed through arduino. In this instructable, I will demonstrate how the polygraph was built, and then how to read the data in real time to interrogate your friends (or for the more daring, your enemies). Feel free to contact me for clarification and assistance. Happy deception detecting!
- Arduino (I used an Uno, but any will do)
- Jumper cables and wires
- 1kOhm resistor
- Pulse sensor (or other heart rate monitoring device)
- 3D printing capabilites (optional)
- aluminum foil
- acrylic sheet
- hot glue
- strain gauge (optional)
- thick rope/belt (optional)
- Wire cutter
- Wire stripper
Step 1: Heart Rate Monitoring
The first component of our polygraph was a heart rate monitor. As I'm sure you've experienced, when you're nervous or excited, your heart tends to beat harder and faster. I used a plug and play Pulse Sensor which can be found here. All the code is open source and found on the pulse sensor website. I used this as the basis for my code and added in the (far simpler) code for the galvanic skin response and processing code.
For the arduino circuit, connect the red wire to 5V, the black wire to ground, and the purple data wire to an analog input.
The 3D printed clip for the pulse sensor can be found on GrabCAD here (I did not design this clip).
For an even more DIY experience, you could also make your own EKG (heart rate monitor), which I will write up instructions on in the near future.
Step 2: Galvanic Skin Response
Galvanic Skin Response, or GSR, is a fancy way of saying "how sweaty are you?" When you sweat, your skin becomes more conductive. If we let a little bit of electricity (too little for you to even feel) run over your skin, we can notice when it becomes more conductive. The super simple way to do this is to take aluminum foil and velcro. Place the stripped end of a wire on the velcro and cover it with aluminum foil, then make a smaller piece of the oppsite side of the velcro and stick it on top of the aluminum foil. You should be able to roll up the sensor around your fingertip snuggly and maintain good electrical contact. Make a second sensor exactly the same way, and use the breadboard so a 5V signal goes in one finger and out the other to the breadboard. Then, have the signal go through a 1kOhm pull up resistor, and to both an analog input and ground.
Step 3: Breathing Sensor
So for the record, the breathing sensor was removed from my project, but I bought a strain gauge that was going to be tied around the wearer's chest so every time they inhale the sensor would flex. Let me know if you try this out and how it works!
Step 4: Code and Interrogations
The code for this project is super simple (but feel free to reach out to me for help). I'm not just publishing it here because your circuit might be different than mine. The basis of the code was the pulse sensor, then I added in the functionality of analogreadserial for the GSR. This will also instruct you how to send the data to processing (you might want to offset the pulse or GSR on the y-axis so the values aren't overlapping).
To interrogate your friend, have them press their fingertip gently to the pulse senor and put two fingers into the GSR. Runt he code and open up processing. Start out simple, asking yes/no questions like if they are sitting and if today is their birthday. You should see very consistent heartbeats and a smooth, steady GSR signal. The more emotion associated with the response, the more fluctuation you will see. Every person is different, so take time and good luck!