Трюк или Netduino… Выпрыгивающий скелет для Хэллоуина на пневматике

Грэг Дункан

Хэллоуин приближается. Пугание, безопасное хэллоуиновское пугание, людям оно нравится. C# и Netduino тоже нравится.

Давайте объединим всё вместе…

Хэллоуин – пневматический выпрыгивающий скелет

Это мой первый проект на Netduino. Я собрал выпрыгивающий скелет и управлял им с помощью старого оборудования X10. Можно увидеть эту стадию в действии на этом видео. Но мне хотелось добавить сверкающие глаза на светодиодах и, возможно, некоторые звуки. Для этого я выписал Netduino+ пару недель назад.

Пока у меня есть следующие рабочие функции:

  1. Настройка Netduino для работы в качестве веб-сервера. Ничего особенного, одна страница с единственной кнопкой, запускающей цикл выпрыгивания. Я собирался использовать планшет Android в Хэллоуин чтобы пугать проходящих мимо людей.
  2. Цикл включает следующие шаги
    1. A. Подача сигнала внешней плате с реле используя линию цифрового ввода/вывода #2 в течении 2 секунд. Внешняя плата с реле подает переменное напряжение 24 В на автоматический клапан. Клапан позволяет сжатому воздуху от компрессора попасть в модифицированное устройство для закрывания двери.
    2. B. Мигание светодиодными глазами используя линии цифрового ввода/вывода #0 и #1 в течении 8 секунд.
    3. C. Я планировал добавить подсветку скелета и проигрывание записи смеха.
  3. Каждую минуту, когда цикл не работает, глаза мерцают с несколькими разными режимами.

На этом видео можно наблюдать мерцающие глаза.

clip_image002

clip_image004

clip_image006

Небольшой фрагмент кода:

 private static void PopupSkeletonThreadFunction()
  {
      DateTime beginTime = DateTime.Now;
      DateTime endAirActionTime = DateTime.Now;
      DateTime endTime = DateTime.Now;
      while (true)
      {
          if (m_BeginPopupSkeletonCycle)
          {
              m_PopupCycleRunning = true;
              m_BeginPopupSkeletonCycle = false;
              beginTime = DateTime.Now;
              endTime = beginTime.AddSeconds(8);
              endAirActionTime = beginTime.AddSeconds(2);
              airAction.Write(false);
          }
 
          if (DateTime.Now <= endTime)
          {
              EyesAlternateFlash(500);
 
              if (DateTime.Now >= endAirActionTime)
              {
                  airAction.Write(true);
              }
          }
          else
          {
              m_PopupCycleRunning = false;
              Thread.Sleep(500);
          }
      }
  }

Если вы ищете прикольный проект для Хэллоуина…(или может быть этот натолкнет вас на размышления, как и меня. Что если добавить в такой проект Kinect для Windows SDK…хм…)

Вот несколько ссылок, которые могут оказаться интересными: