Как я могу чувствовать, когда кто-то спит с моим Arduino?

15

Не обращайте внимания на название, похожее на сталкера.

Я думаю о создании проекта с Arduino, который может почувствовать ваши привычки ко сну, когда вы спите, и сколько вы спите. Было бы удобно не включать / выключать его ночью; он должен знать, как это сделать.

Некоторые идеи, которые у меня есть:

  • Датчик движения
  • Образы дыхания (если бы микрофон Arduino мог это даже определить ... Я был бы удивлен, если бы это было возможно)
  • Часы RTC могут помочь решить, что полночь. Обычно Стив не спит в это время по пятницам. Вероятно, он сейчас не спит. Это не всегда поможет вам, но вы можете попытаться получить более точные результаты таким образом

Как я могу сделать это? (Дополнительные очки за какой-то алгоритм, который может отличить сон от глубокого сна.)

Анонимный пингвин
источник
1
Вероятно, один из способов обнаружить состояние сна кого-либо - это измерить пульс сердца и определить, когда пульс становится ниже порогового значения (различного для каждого человека, но это может быть «угадано» системой после нескольких дней пробежки). При этом вы можете даже увидеть, были ли у человека какие-то ночные кошмары (увеличение пульса) :-) Это навязчиво (датчик пульса), но это также единственный способ узнать о сне ОДНОГО человека, когда двое находятся в одной комнате.
jfpoilpret
1
Neurosky EEG датчик мозговых волн, по-видимому, прекрасно работает с Arduino. Измерьте частоту. До 4 Гц -> NREM сна. До 8-9 Гц ---> БЫСТРЫЙ сон. Выше 8-9 Гц до 16 Гц ---> проснулся, но глаза закрыты и расслаблены. Над этим ---> проснулся.
Деймон

Ответы:

13

Я действительно сделал что-то подобное, используя датчик движения PIR .

Датчик движения достаточно хорош, чтобы обнаружить человека, поворачивающегося во сне, и мой простой алгоритм просто подсчитывает количество движений в минуту, а когда он превышает пороговое значение (найденное методом проб и ошибок), он раздает тревогу, чтобы разбудить вас.

введите описание изображения здесь

Изображение выше представляет движения моего тела в течение ночи. Шипы представляют собой высокие движения / минуту.

Здесь мы видим, что примерно через 30 минут движение тела стало минимальным. Это говорит о том, что я был в более глубокой стадии сна в течение этого времени.

Пик на 250 минут (около 4:30 утра) - это когда я проснулся только для того, чтобы понять, что могу спать еще пару часов. Я вспоминаю время 4:38, когда я смотрел на часы и уже смотрел на них. Это означает, что я повернулся лицом к часам, но на самом деле «проснулся» через 8 минут, чтобы увидеть время, а затем повернулся назад (на что указывает более короткий пик на 265).

Данные показывают, что я не мог спать очень хорошо (по сравнению с периодом времени между 30 и 240 минутами) после одного пробуждения и, наконец, встал в 400 минут (7:00 утра), когда я все выключил.

Вот пара постов из моего блога, которые содержат гораздо больше информации.

sachleen
источник
1
Спасибо за ссылки в вашем блоге. У меня есть один вопрос: как вы решаете, что кто-то не читает книгу и не смотрит телевизор, когда что-то делает, лежа на кровати? Это хорошие данные. Тебе нужно было выключить проект, когда ты лег в постель?
Анонимный Пингвин
Мой - будильник, поэтому он должен обнаруживать движения только за полчаса до срабатывания будильника. Так что это единственное время, которое имеет значение. Ночной график предназначен только для сбора данных, чтобы выяснить, сколько движений / булавок считается «легким сном, легко разбудить»
sachleen
Есть ли у вас какие-либо предложения о том, как определить, просто ли это или просто сон? Возможно, мне придется сделать некоторые из моих собственных данных ...
Anonymous Penguin
Я бы посмотрел, как график выглядит для сна против различных действий. Взвесьте это в зависимости от времени суток (вероятность того, что вы спите в 3 часа ночи, а не чтения). Трудно сказать, не собирая много данных.
сахлин
1
Чтобы помочь вам в поиске, эта техника называется актиграфией. Википедия имеет достойное вступление. Некоторая обработка сигналов, по-видимому, необходима, но не слишком сложна и не выходит за рамки возможностей Arduino. Чтобы классифицировать стадии сна (включая бодрствование), я бы посмотрел научные статьи на эту тему. Нужно решить, хотите ли вы поместить датчики на кровать (легко, с низкой точностью) или на запястье (сложнее, точнее, и вы можете измерять температуру тела, окружающий свет и проводимость кожи).
JJM