На базе Arduino Nano сделал Умный бизиборд для ребенка 2-5 лет. Бизиборд выполнен в виде домика.

Бизиборд. Вид спереди

На передней панели имеется кнопка, выполняющая функции звонка, красный светодиод для индикации режима сигнализации, ручка энкодера для постановки и снятия с сигнализации и для переключения режима освещения .

Реализованы следующие функции:

Ставим и снимаем на сигнализацию.

Для этого вращаем ручку энкодера на полоборота вправо, один раз влево и снова вправо. При такой комбинации ставится/снимается сигнализация.

Если домик не стоит на сигнализации:

1. Работает звонок (звучит при нажатии кнопки)

2. При открытии двери включается обычный белый свет внутри

3. Нажатием на кнопку энкодера включается режим динамической индикации радуги

4. Светодиод не горит

Если домик стоит на сигнализации:

1. Горит красный светодиод

2. Работает звонок

3. При открытии двери срабатывает сигнализация

При срабатывании сигнализации:

1. Звучит сирена

2. Светодиодная лента работает в режиме бегущий огонь красным и синим цветом

Видео работы системы

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

Бизиборд. Вид сзади

В качестве датчика открытия двери выступает оптический концевик. Закреплен он на обратную сторону передней стенки, над дверцей. Прикреплен к обычной распределительной коробке, снизу.

Оптический концевик

На двери закреплен обычный уголок из строительного магазина. Уголок заклеен с двух сторон черной бумагой. Попадая в щель датчика, происходит его срабатывание.

Уголок на дверце для замыкания концевика

Изначально уголок был закреплён на клей. Но это решение не просуществовало и одного дня. Поэтому пришлось крепить на саморез, для этого предварительно сделав в дверце отверстие микросверлом 0,8 мм.

Коробка для элеткроники

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

Вид изнутри. Отверстие 30мм для установки энкодера

Для монтажа энкодера я использовал обычную заглушку канализации на 32 мм. Чтобы она поместилась на передней панели, сделал отверстие перовым сверлом по дереву на 30 мм. Далее 2 мм "расточил" при помощи наждачной бумаги.

С помощью энкодера домик можно поставить на сигнализацию и снять с охраны. Для этого необходимо сделать половину оборота по часовой стрелки, затем поворот против часовой стрелки на любое положение и снова по часовой стрелки на любое положение. Можно было бы сделать алгоритм и сложнее, но на мой субъективный взгляд получился оптимальный по сложности алгоритм для ребенка 4 лет. Когда домик стоит на сигнализации, на передней панели горит красный светодиод.

Наконец, один из главных элементов - адресная светодиодная лента WS2812. Питается от 5 вольт.

Адресная светодиодная лента, закрепленная на обратной стороне задней стенки домика.

Наиболее ресурсоёмким является режим работы сигнализации. Столкнулся с тем, что контроллер не успевал обрабатывать одновременно индикацию ленты и генерацию сигнала на зуммер. После того, как развел эти процессы на разные аппаратные таймеры, подключив на соответствующие пины, и программно сделав разное время обработки, всё заработало. Код режима работы сигнализации выглядит следующим образом:

  while (sign && door) {
    sign_set();
    if (millis() - DoorTimer > 200) {
      DoorTimer = millis();
      door = !digitalRead(5);  // концевик на 5 пин: 0-дверь закрыта; 1 - нет припятствия дверь открыта.
    }
    if (millis() - tmrAlarm > 30) {
      tmrAlarm = millis();
      val += dir;                                 
      if (val >= 1000 || val <= 100) dir = -dir;  
      tone(BUZZER_PIN, val);
    }

    if (millis() - tmrAlarm2 > 50) {
      tmrAlarm2 = millis();
      FastLED.clear();
      leds[counter1] = CRGB::Red;
      leds[counter2] = CRGB::Blue;
      if (++counter1 >= LED_NUM) counter1 = 0;
      if (++counter2 >= LED_NUM) counter2 = 0;
      FastLED.show();
    }
  }

Питание ленты осуществляется напрямую от источника. Провод данных идёт на контроллер. При открытии двери в обычном режиме лента светится обычным белым светом, либо динамической радугой (переключение осуществляется кнопкой энкодера). При срабатывании сигнализации лента работает в режиме полицейской мигалки: зажигаются красный и синий светодиоды, 1й и 30й из 60, и далее n+1.

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