Для электронщиков и радиолюбителей

Детектор лжи на основе Arduino

В данном проекте мы покажем вам, как сделать простой детектор лжи на основе Arduino, чтобы, например, узнать, когда ваши друзья лгут вам или измерять различные реакции вашего тела в зависимости от ситуации, в которой вы находитесь, или эмоций, которые вы испытываете. При этом мы сможем видеть, как все эти изменения происходят в режиме реального времени на графике с помощью последовательного порта Arduino.

Наша кожа весьма интересна. Она обеспечивает среду для нас, чтобы испытывать осязание, она защищает от инфекций и сохраняет внутренности, но некоторые могут не знать, что наша кожа меняет проводимость в зависимости от множества разных факторов, одним из которых является наше настроение. Это называется электродермальной активностью (EDA). Суть в том, что наша кожа меняет свою проводимость в зависимости от того, как мы себя чувствуем.

Мы подключим Arduino к объекту, а затем подключим Arduino к компьютеру с программным обеспечением для построения графиков. Мы должны начать с того, что зададим испытуемому несколько простых вопросов, на которые, как мы знаем, он ответит правдиво, например, «как тебя зовут» и «где ты живешь», чтобы получить исходную информацию, и потом мы можем начать задавать вопросы, на которые он может солгать, если он, вероятно, будет нервничать, и тогда мы сможем прочитать изменение базовой линии, которое будет установлено ранее, если он лжет.

Схема на основе весьма проста и представлена далее. Нам понадобится Arduino Nano, несколько светодиодов, липучки, резисторы 2 кОм и некоторые основные инструменты, такие как картон, фольга, горячий клей, паяльник и канцелярский нож.

Детектор лжи на основе Arduino

Подключите длинный кусок провода к аналоговому контакту 0 платы Arduino. Подключите резистор 2 кОм к земле и удлиненному аналоговому контакту 0. Подключите длинный кусок провода к 5-вольтовому контакту Arduino. Подключите анод (длинная ножка) зеленого светодиода к контакту 2, а катод (короткая ножка) к земле. Подключите анод оранжевого светодиода к контакту 3, а катод к земле. Подключите анод красного светодиода к контакту 4, а катод к земле. Это вся проводка для Arduino, теперь нам нужен способ держать провода датчика на пальцах, мы рассмотрим это позже, сейчас же поговорим о программном обеспечении.

Основное программное обеспечение, которое мы собираемся использовать – это новейшая версия Arduino IDE. Новое обновление предлагает новый способ просмотра данных, получаемых от Arduino. Теперь они могут отображаться в виде графика в реальном времени, который поможет нам определить, когда данные изменяются (когда кто-то врёт).

Детектор лжи на основе Arduino
Детектор лжи на основе Arduino

Чтобы открыть плоттер, откройте Arduino и перейдите в меню инструментов, и вы должны увидеть его там чуть ниже последовательного монитора. Теперь код микроконтроллера будет находиться в разделе кода ниже. Скопируйте его и загрузите на свою плату.

Теперь, когда основная форма проекта завершена, мы можем начать добавлять функциональные возможности, чтобы упростить его использование. Мы начнем с добавления зажимов для пальцев, чтобы сохранить стабильное соединение между нашими пальцами и проводами. Давайте начнем с приклеивания полоски фольги к нижней части полоски липучки, сделайте это для обеих частей липучки (крючок и петля). Теперь обмотайте ее вокруг пальца до плотного прилегания (см. оголенный провод от аналогового контакта 0 к оловянной фольге и повторите этот шаг для 5-вольтового контакта (убедитесь, что он обеспечивает хорошее соединение).

Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino

Теперь сделаем небольшое отделение для складывающихся подушечек пальцев и три отверстия для торчащих светодиодов. Его мы собираемся сделать из картона, и для его изготовления нам нужно будет вырезать следующие фигуры. Вырежьте два прямоугольника 15х3 см. Один прямоугольник 15х5 см. Три прямоугольника 5×3 см (на одном из них вырезаем квадрат посередине для nanos usb) Один прямоугольник 9х5 см. Один прямоугольник 6х5 см. Прямоугольник 15×5 является основой. Два прямоугольника 15×3 и два прямоугольника 5×3 приклеиваются к сторонам основания. Теперь приклейте третий прямоугольник 5×3 к основанию на расстоянии 6 см от края (ближе к середине, посмотрите фото). Теперь у вас должен получиться прямоугольник, разделенный на две стороны, одна из которых имеет длину 6 см, а другая – 9 см. Сторона длиной 6 см – это то место, где мы собираемся разместить электронику, а другая сторона – место, куда идут подушечки пальцев. Затем вырежьте 3 отверстия (размером, равном размерам светодиодов) в прямоугольнике 6×5 и приклейте его к 6-сантиметровой стороне (как крышку). Наконец, нам нужно приклеить короткую сторону прямоугольника 9×5 к дальней стороне 9-сантиметровой стороны (это действует как крышка, которая поднимается и опускается, открывая подушечки пальцев).

Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino
Детектор лжи на основе Arduino

Последнее, что нам нужно сделать, это поместить электронику в корпус, начните с размещения Arduino и всех проводов и протяните удлиненные провода к другой стороне прямоугольника (9 см). Теперь приклейте три светодиода к отверстиям, которые мы сделали на прямоугольнике 6×5 см, и проверьте их.

Детектор лжи на основе Arduino

Реализовав все это, теперь у вас должен быть небольшой портативный детектор лжи на основе Arduino, но позвольте нам предупредить вас, что это не самая точная система. На самом деле большинство настоящих детекторов лжи используют множество других датчиков, чтобы определить, лжет ли кто-то, таких как монитор сердечного ритма и другие, поэтому не используйте результаты этого устройства для получения ответов на серьезные вопросы.

Ну а теперь приведем код Arduino.

void setup()
{
	Serial.begin(9600);
	pinMode(2, OUTPUT);
	pinMode(3, OUTPUT);
	pinMode(4, OUTPUT);
	digitalWrite(2, HIGH);
	delay(500);
	digitalWrite(3, HIGH);
	delay(500);
	digitalWrite(4, HIGH);
	delay(500);
}

void loop()
{
	if (analogRead(A0) > 60)
	{
		digitalWrite(4, HIGH);
	}
	else
	{
		digitalWrite(4, LOW);
	}
	if (analogRead(A0) > 20)
	{
		digitalWrite(2, HIGH);
	}
	else
	{
		digitalWrite(2, LOW);
	}
	if (analogRead(A0) > 45)
	{
		digitalWrite(3, HIGH);
	}
	else
	{
		digitalWrite(3, LOW);
	}

	Serial.println(analogRead(A0));
	delay(20);
}

1 комментарий к Детектор лжи на основе Arduino

Обсуждение закрыто.