Introduction: Arduino Lie Detector
Hey everyone today I want to show you how to make an Arduino-controlled lie detector to see when your friends are lying to you :D or to measure the different responses that your bodies skingoes through depending onthe situation you are in or the emotions you are feeling and the coolest thing of all is that we can see all of theses things happen in real time in an Arduino graph.
Step 1: How It Works
Our skin is amazing! It provides a medium for us to experience the sense of touch, it keeps infections out and keeps innards in but I bet you didn't know that our skin changes conductivity depending on many different things one being our mood! It called Electrodermal activity (EDA) and there's a really interesting Wikipedia page you can read here. The basics are that our skin changes its conductivity depending on how we feel.
We start by connect our Arduino to the subject and then connect the Arduino to a computer with the graphing software (I'll go over this in detail later)
We have to start by asking the subject some easy questions we know they will answer truthfully like "what is your name" and "where do you live" to get a baseline and from there we can start asking questions that they may lie about, if they do they would probably feel nervous and then we can read the change in the base line that be established earlier if they lie :D
Step 2: Parts List
We are going to need a microcontroller to control the three LEDs and send the computer the data. In order for the computer receive the data from the microcontroller the microcontroller has to have a serial communication chip this means we can't use the Arduino pro mini or Adafruit trinket so when picking your microcontroller make sure it has a serial communication chip built in (USB communication chip)
Electronics components parts list
- Arduino Nano ( Get it here)
- Geen LED (Get it here)
- Red LED (Get it here)
- Orange LED (Get it here)
- resistor (10k) (Get it here)
- cables
Materials Needed
- Cardboard
- Tinfoil
- Velcro
- Hot Glue
Tools Needed
- Hot Glue Gun
- Soldering Iron
- Craft Knife
Step 3: Wiring
The wiring for this is pretty easy, we will start by connecting them in this order:
- Connect A long piece of cable to Arduino analog pin 0
- Connect the 2k resistor to ground and the the extended analog 0 pin
- Connect A long piece of cable to Arduinos 5 volt pin
- Connect the anode (long leg) of the green led to pin 2 and the cathode (short leg) to ground
- Connect the anode of the orange led to pin 3 and the cathode to ground
- Connect the anode of the red led to pin 4 and the cathode to ground
That's all the wiring for the Arduino, now we need a way to keep the sensor wires on our fingers we will cover this later.
Step 4: Software and Code
The main piece of software we are going use is the newest version on the Arduino IDE. The new update brings a new way to see the data being received from the Arduino, instead of being in text form from the serial monitor, it can now be displayed in a real time graph which will help us identify when the data changes its pattern (when someone lies)
To open the plotter open Arduino and navigate to the tools menu and you should see it there just below serial monitor.
Now the code for the micro controller download the attached file, open it and upload it to your board
Attachments
Step 5: Making the Finger Clips
Now that the basic form of the project is done we can start adding features to make it easier to use we will start by adding finger clips to keep a stable connection between our fingers and the cables. Lets start by gluing a strip of tinfoil to the bottom of a strip of velcro, do this for both pieces of velcro (the hook and the loop. Now rap it around your finger until it makes a tight fit (check photos) then tape the exposed wire from analog pin 0 to the tin foil and repeat this step for the 5 volt pin (make sure it makes a good connection)
Step 6: Making the Case
The plan is to make a small compartment for the finger pads to fold away and to have three holes for the leds to stick out. Its going to be made out of cardboard and to make it we will need to cut the following shapes out:
- Cut two 15x3 cm rectangles
- One 15x5 cm rectangle
- Three 5x3 cm rectangles (cut a square in the middle on one of them for the nanos usb)
- One 9x5 cm rectangle
- One 6x5 cm rectangle
The 15x5 rectangle is the base. The two 15x3 rectangles and two of the 5x3 rectangles get glued to the sides of the base. Now glue the third 5x3 rectangle to the base 6cm from the side (close to the middle, check photos) Now you should have a rectangle thats divided into two sides, one with a length of 6cm and the other with a length of 9cm. The side with a length of 6cm is where we are going to put the electronics and the other side is where the finger pads go. Next cut 3 holes (the size of leds) on the 6x5 rectangle and glue it down to the 6cm side (as a lid). Last we need to tape the short side of the 9x5 rectangle to the far side of the 9cm side (this acts as a lid that flips up and down to reveal the finger pads)
Step 7: Putting It All Together
The last thing we need to do is put the electronics in the case start by gluing down the arduino and all wires in the 6cm side and run the extended wires(pin analog 0 and 5 volt) to the other side of of the rectangle (9cm side). Now glue the three leds to the holes we made on the 6x5cm rectangle and give it a test if all goes well you should have a small portable Arduino lie detector but let me warn you this isnt the most accurate system in fact most real lie detectors use a host of other sensors to determine if someone is lying such as a heart rate monitor and others, what im saying is dont uses the result of this for serious questions. :D
If you have any questions please either send me a personal message or leave a comment and ill try my best to get back to you.
51 Comments
4 years ago on Introduction
Hi,
I want to apply your lie detectors project with arduino uno. I know that arduino "uno" and "nano" nearly same. My values is not between 20 and 60 on graph. It is like 1023 or 0. If you understand me, ıs there any idea about that?
Reply 10 months ago
Can u send me schematic diagram
Question 1 year ago
hi for some reason when i put it on it starts shocking me its like a sharp period of time that i feel in my finger pls help
Question 1 year ago
What is the exact cable you used? I just want to know the kind. Thank you in advance!
Question 4 years ago on Step 2
What is the exact kind of cable you used?
Answer 1 year ago
You get this cable when you buy arduino nano
6 years ago
How well does it work?
Reply 2 years ago
Ours was not fully tested because we mainly used it as a toy. It was fun enough that we would do it again. The screen readout was easier to understand than just using the lights alone.
Reply 6 years ago
Pretty well, It can accurately see the change in someones skin resistance due to the persons reaction to a question and relay it back to the user but if someone can keep very calm while lying it wont work that well.
Question 2 years ago
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
An error occurred while uploading the sketch
i got this please help
Question 3 years ago
hola estoy realizando el proyecto con una imitación de arduino uno. y los leds encienden pero sin que lean mi conductividad. Encienden sin lectura alguna.
Segui los pasos al pie de la letra, y el programa es el mismo.
Answer 3 years ago
Hello, I will try to speak in English hehehe.
His advice served, but I used a 10K resistor and it showed low values, I changed it to 2.2k and they were even lower, it was strange, but I put a variable resistance and it worked.
Answer 3 years ago
Hola. Por favor, disculpa mi mal español. Es tan bueno como el traductor de google. Si los valores que está obteniendo no son los mismos que los míos, le recomiendo cambiar la resistencia a un valor diferente. Si sus valores son más grandes que los míos, use una resistencia con un valor OHM más alto si sus valores son más pequeños que los míos, use una resistencia con un valor OHM más pequeño. La mejor de las suertes para ti. Por favor, avíseme si todo funciona.
This person has asked why they are not getting the same values as me. I have said here if they are getting bigger values they might want to try a larger resistor and if their values are smaller than mine they might want to try a smaller resistor.
Question 4 years ago on Step 4
I'm trying to download the code for the polygraph, but it won't open/work. Is there any way someone could open it and copy-paste it or something?
4 years ago
I need some help!
Question 4 years ago
In the video you used Arduino Uno. Can you send me a link for that product. Thank you.
P.S. Great video!
6 years ago
Interesting instructable! New to Arduino, but my understanding of the code would say that the three LED's stay low until they hit the incremental values of 20, 45 and 60. Do these increments need tailored to the user? Or is it normal that all the values that my device receives are too low for any of the LED's? My readings are averaging around 8 - 10 at rest, but never much more than that.
Reply 6 years ago
Great question! First off your understanding is 100% correct. All the people i tested on had their values stay in between 20 and 60 depending on how they felt but it's absolutely necessary to change the values if your skin is only giving a reading of 8 to 10. Thanks for the question
Reply 5 years ago
Will this code also work in arduino uno??
Reply 6 years ago
Thanks for the instructable and your reply! I am still playing around with this!