Оглавление:

Автоматическое открывание жалюзи с использованием EV3: 6 шагов
Автоматическое открывание жалюзи с использованием EV3: 6 шагов

Видео: Автоматическое открывание жалюзи с использованием EV3: 6 шагов

Видео: Автоматическое открывание жалюзи с использованием EV3: 6 шагов
Видео: ТЕХНИКА БЕЗОПАСНОСТИ. Вид Грубейшего Нарушения ТРЕБОВАНИЙ ТБ при работе на СТАНКАХ. 2024, Ноябрь
Anonim
Автоматическое открывание жалюзи с использованием EV3
Автоматическое открывание жалюзи с использованием EV3
Автоматическое открывание жалюзи с использованием EV3
Автоматическое открывание жалюзи с использованием EV3

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

Шаг 1. Возможные идеи или решения

Посмотрев на различные сайты, такие как YouTube, Instructables и Thingiverse, я обнаружил, что наиболее распространенным решением было моторизовать катушку, которая наматывала и разматывала жалюзи, с помощью шагового двигателя или сервопривода. Я нашел 2 основных варианта с разными достоинствами и недостатками.

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

Идея 2: шнуровой метод, при котором двигатель и зубчатая передача размещаются на шнуре. Это имеет то преимущество, что он проще и легко доступен для сборки. Однако у него есть недостаток, заключающийся в том, что он может быть уродливым и громоздким, а также в том, что его необходимо прикрепить к подоконнику при установке.

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

Шаг 2: Изготовление сборки

Изготовление сборки
Изготовление сборки
Изготовление сборки
Изготовление сборки

Я сделал этот проект, используя свой Lego mindstorms EV3, у которого есть функции, которые мне нужны, чтобы показать, что проект может работать, и я знаком с программным обеспечением, которое определенно мне очень помогло. Поскольку в жалюзи для привода катушки используется шариковая цепь, с которой шестерни Lego несовместимы, я решил, что лучшим решением было разработать шестерню с правильным расстоянием между шариками снаружи - со стандартным крестообразным отверстием в корпусе. центр, где я затем распечатал дизайн. На этом этапе я также сделал кнопку калибровки и прикрепил к своему окну датчик освещенности, а также кнопку, которая выполняет функцию коррекции.

Шаг 3: проектирование слепого снаряжения

Проектирование слепого снаряжения
Проектирование слепого снаряжения
Проектирование слепого снаряжения
Проектирование слепого снаряжения
Проектирование слепого снаряжения
Проектирование слепого снаряжения
Проектирование слепого снаряжения
Проектирование слепого снаряжения

Разобрал шторку, чтобы подробнее посмотреть, как выглядит шатун. Во время разборки я обнаружил небольшую шестерню с 16 зубьями, которая удерживалась натянутой катушкой, это была та деталь, которую я искал. После создания копии шестеренки я добавил необходимые Lego-совместимые отверстия, распечатал 3 отдельные части и, наконец, склеил их вместе с помощью суперклея. Изначально у меня были проблемы с совместимостью детали с Lego, в том смысле, что у моего 3D-принтера не было разрешения, чтобы сделать отверстие «x» в достаточной степени, однако у него не было проблем с круглыми отверстиями по обе стороны от него. Поэтому я заменил «x» круглым отверстием, и все получилось нормально. Затем, после небольшого количества тестов, я увидел, что он может выдерживать крутящий момент и вес от жалюзи. Я свяжу свои проекты для снаряжения ниже, или вы можете найти его на Thingiverse по адресу:

Шаг 4: кодирование слепых

Кодирование слепых
Кодирование слепых

Мне нужен был код, который автоматически открывал и закрывал жалюзи при достижении определенного уровня освещенности, но в нем также была кнопка отмены, чтобы можно было открывать или закрывать жалюзи, когда они захотят. Я связал свой GitHub с финальной версией кода здесь:

Код для проекта занял у меня несколько дней, у меня была основная логика программы, работающей правильно с датчиком освещенности, однако кнопка мгновенной отмены не работала должным образом. Он действительно изменял состояние жалюзи при нажатии, но у него отсутствовала функция «защелкивания», которая означала бы, что жалюзи оставались в этом положении, то есть жалюзи немедленно откатывали бы их в прежнее положение. Я исправил это с помощью блока «ждать, пока», связанного с логическим элементом ИЛИ, который считывает значения датчика освещенности и датчика касания, что я объясню ниже.

Код начинается с калибровки двигателей и жалюзи, начиная с полностью открытой жалюзи и опускания ее, пока она не коснется сенсорного датчика внизу, подсчитывая, сколько четверти оборота нужно, чтобы добраться до дна, что сохраняется как «Необходимые вращения». Переменная. Затем он записывает «false» в переменную «BlindOpen», которая используется для отслеживания положения жалюзи. На этом этапе код разбивается на 4 цикла.

Одним из таких циклов является цикл «Buttonstate», который постоянно публикует состояние кнопки в переменной с именем «ButtonPressed». Это избавляет от необходимости размещать в скрипте несколько блоков кнопок.

Второй цикл - это «Свет или тьма», который постоянно сравнивает уровень освещенности за моим окном с константой, определенной ранее в коде. Если результат ниже этой константы, цикл напишет «false» в переменную «ItIsLight», тогда как если он выше значения, он напишет «true».

Третий цикл содержит числовой список из 3 вариантов, которые в основном говорят слепому, что делать: 0 = слепой вниз, 1 = слепой вверх, 2 = ничего не делать, потому что слепой находится в правильном месте. Цикл начинается с чтения переменной «BlindShould», которая указывает правильную задачу, которую слепой должен выполнять, затем выполняет эту задачу, изменяет переменную «BlindOpen» на правильную опцию и затем становится неактивным до тех пор, пока не будет изменена переменная «BlindShould», где это повторяется. Он использует значение «Необходимые вращения», а также мощность +/- 100% для полного открытия или закрытия жалюзи.

Четвертый и последний цикл является наиболее сложным, это цикл «Decider», который обрабатывает все данные и решает, что делать с каждой перестановкой. Он делает это с помощью логики, основанной на «развилках на дороге», где «кнопка нажата», «уровень освещенности», «штора открыта» - это истинные или ложные вопросы. Все перестановки имеют жестко закодированный ответ, который либо 0 = вслепую, 1 = вслепую, либо 2 = ничего не делать - это значение записывается в переменную «BlindShould», которая затем обрабатывается предыдущим циклом. Некоторые ответы затем будут ждать изменения переменной «ItIsLight» и / или «ButtonPressed» перед завершением скрипта, это только в случае перестановок, активируемых кнопкой, поскольку в противном случае он немедленно попытается исправить свое положение, что означает, что слепой вернется в исходное состояние. Затем этот процесс зацикливается, чтобы создать надежную и относительно простую автоматическую систему, которую можно легко добавлять и отлаживать. Уф.

Шаг 5: завершающие штрихи

Последние штрихи
Последние штрихи

Впоследствии я решил подключить источник питания 9 В к моему EV3, используя несколько деревянных дюбелей и шурупов в качестве «батарей», это сделало продукт ненадежным для батарей и избавило меня от необходимости менять батарейки каждые пару дней.

Шаг 6: Оценка проекта

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

Рекомендуемые: