Роботизированные занавески на Arduinо | Школа №29 Подольск nikitaxru's blog / 30.08.2015 В нашей школе постепенно реализуется проект по максимальной роботизации учебных кабинетов, лабораторий и т.д. У нас несколько иной подход к робототехнике. Вместо "радиоуправляемых машинок" мы делаем вещи, которые будут приносить реальную пользу, например, концепт "Роботизированный эксперимент по физике", о котором я буду писать в своих следующих статьях или "Умный кабинет/лаборатория". Arduino контроллеры возьмут на себя управление светом, кондиционированием, контролем доступа, включением и выключением различного оборудования (например, проекторов). В рамках этой программы был создан прототип автоматических штор, которые бы реагировали на свет и в зависимости от освещения сами бы открывались и закрывались, таким образом создавая оптимальные условия для образовательного процесса. Также, будет предусмотрена возможность управления шторами по школьной локальной сети и с помощью обычных кнопок (мало ли что в жизни бывает ). Используемое оборудование: 1) Arduino Mega 2560 (дешевая китайская копия). Научный руководитель пожадничал. Она в общем-то ничем и не отличается от оригинальной.2) Шаговый двигатель 12B. Самый обычный, российского производства, точность ужасная, но для нашего проекта вполне подойдет.3) Драйвер шагового двигателя. Заказал на Амперке тут.4) Металлические детали, взятые из какого-то китайского конструктора.5) Troyka Shield и фоторезисторы к ней. Куплено на той же Амперке. Очень удобная штука. Можно посмотреть тут.Итак, все оборудование закуплено и собрано в кучу. Теперь бы спроектировать все это. Основной задачей сего механизма - открывание и закрывание штор.Были выделены подзадачи:1) День - ночь - день. То есть плата должна определять время суток, и в зависимости от него открывать или закрывать шторки. Логично предположить, что на ночь окна нужно закрыть, а утром открыть к приходу учителя или ребят. 2) Пасмурно - ясно - пасмурно. Программа должна понимать, светло ли сейчас на улице или темно. Например, если на улице темно, а в помещении горит свет, то нужно закрыть, так как все будет проглядываться с улицы, а если на улице светло, но в комнате мрак, то шторы желательно приоткрыть.3) Темно - светло (комната). Подзадача нужна для нормального функционирования предыдущей.4) Переход в автоматический/ручной режим. Функция нужна чтобы скайнет мир не начал захватывать в случае чего окончательный контроль системы принадлежал человеку.Были выделены приоритеты выполняемых задач. Первая цифра - номер подзадачи, вторая - приоритет. 1 - 32 - 23 - 13 - 0Отсюда следует, что наивысший приоритет - переход в ручной режим.Это примерный план расположения навигационных кнопок и экрана над ними, на котором будет вся основная информация о работе системы.Управление• Скорость закрытия/открытия штор• Пороговый уровень (датчик света)• Ручной/авт режим закрытия – открытия• Переход в режим разработчика (отладки) – одновременное нажатие и удерживание в течении 5 секунд кнопок «Открыть» и «Закрыть»Индикация• Освещенность в комнате• Освещенности на улице -> погода• Пороговый уровень срабатывания• Часы (таймер)• Текущий режим работы (авт/ручн)Условные обозначения: К - кнопкаИК - инфракрасный портРМ - радиомодульBT - BlueToothСразу оговорюсь, что подключения на этой схеме могут быть неверными, так как я работаю на других аналогичных платах. Тут я лишь хотел показать принцип.Саму плату собрал с использованием до неприличия дешевого пластика, потому что на его основе можно быстро собрать прототип. Легко режется и гнется при нагревании горелкой. Фотографии первой версии.Как и ожидалось в начале, все закреплено жестко и надежно, почти без синей изоленты Осталось только подумать о концевиках. Я решил, что удобнее всего в этом случае будет использовать герконы. Сам геркон на клее моменте держится на металлической раме, а ответная часть (магнит) закреплена на шторе. Такой же геркон с другой стороны.Осталось только избавиться от наводки (кнопка срабатывает рандомным значением). Поэтому, включим в цепь резистор, который заберет всю наводку на себя и у нас будет конкретное значение на пине. Схема: Осталось только повесить эту конструкцию на стену и запустить.Установка в полной боевой готовности.Да, а за запуск как раз будет отвечать скетч, который был написан за пару дней. Я даже где-то оставлял комментарии, так как я пишу код исключительно ночью, то без них разобраться в написанном бывает очень затруднительно. Самое главное - обработка от случайных аномальных значений (солнечный зайчик на фоторезистор попал, например). Поэтому делается 1500 измерений через 2 мс, все это закидывается в массив. Затем вычисляется среднее арифметическое значений в массиве. Затем я задаю следующее условие: число в массиве не должно выходить за рамки "среднее арифметическое ячеек массива + 100 и среднее арифметическое ячеек массива - 100). Например, среднее арифметическое ячеек массива = 560. А число в ячейке = 200. Оно выбросится, как не валидное, а если число будет равно 500, то останется. После этой процедуры считается среднее арифметическое оставшихся чисел. Затем, сравнивается с установленным пороговым значением. Далее по программе, в зависимости от полученного значения шторы или закрываются или открываются. Смотрим на результат:Скоро будет выпущена улучшенная модель. И практически завершен проект "СКУД своими руками", тоже на Arduino!Заходите на наш сайт: http://school29.ruМоя почта nikita@school29.ru arduino school29 Ардуино Подольск Роботы школа 29