Оглавление:
- Шаг 1. Возможные идеи или решения
- Шаг 2: Изготовление сборки
- Шаг 3: проектирование слепого снаряжения
- Шаг 4: кодирование слепых
- Шаг 5: завершающие штрихи
- Шаг 6: Оценка проекта
Видео: Автоматическое открывание жалюзи с использованием EV3: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
У меня в спальне есть рулонные затемняющие шторы, которые я часто забываю открывать или закрывать утром или вечером. Я хочу автоматизировать открытие и закрытие, но с переопределением, когда меня переодевают.
Шаг 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. Когда я снова буду работать над этим проектом, я спроектирую двигатель так, чтобы он располагался внутри жалюзи, так как это было бы легче скрыть. Самый большой урок, который я усвоил, - это логическая отладка и продумывание, документирование и тестирование кода перед его реализацией.
Рекомендуемые:
Управление жалюзи с ESP8266, интеграция с Google Home и Openhab и веб-контроль: 5 шагов (с изображениями)
Управление жалюзи с помощью ESP8266, интеграции с Google Home и Openhab и веб-управления: в этом руководстве я покажу вам, как я добавил автоматизацию в свои жалюзи. Я хотел иметь возможность добавлять и убирать автоматику, чтобы вся установка выполнялась зажимами. Основные части: Шаговый двигатель, управляемый шаговым драйвером bij ESP-01 Шестерня и крепление
Автоматическое светодиодное освещение для аквариумов с растениями с использованием RTC: 5 шагов (с изображениями)
Автоматическое светодиодное освещение для аквариумов с растениями с использованием RTC: Пару лет назад я решил создать аквариум с растениями. Я был очарован красотой этих аквариумов. Я сделал все, что должен был делать при установке аквариума, но упустил одну важную вещь. Эта штука светилась
Автоматическое освещение с использованием DMX и Perl: 6 шагов
Автоматическое освещение с использованием DMX и Perl: зачем автоматизировать освещение? Честно говоря, большая часть моего дома автоматизирована, так что это казалось очевидным. Есть много преимуществ в автоматизации частей вашего дома, в частности, освещение упрощает жизнь, свет включается, когда вы
Автоматическое открывание жалюзи: 11 шагов
Автоматическое открывание жалюзи: http: //contraptionmaker.infoМы живем в 150-летнем фермерском доме с оригинальными окнами. Несмотря на изоляцию и новый сайдинг, зимой это похоже на жизнь в сите. Чтобы решить эту проблему, мы устанавливаем пластиковые окна на окна, чтобы попытаться
Контроллер NES USB-ленточное открывание для бутылок: 6 шагов
USB-устройство для открытия бутылок с контроллером NES: это руководство по созданию идеального инструмента для ретро-геймеров, USB-открывателя для бутылок NES Controller. Это возможность играть в игры NES на ПК с настоящим контроллером NES и, кроме того, не искать инструмент, чтобы открыть ваше пиво