Оглавление:
- Шаг 1: "Один дома" конструируем картонного человечка
- Шаг 2: «Один дома» Создание контроллера
- Шаг 3: «Один дома»: программное обеспечение
- Шаг 4: «Один дома» средство сдерживания взлома: используйте
- Шаг 5: «Один дома» Что не сработало ……
Видео: «Один дома» средство сдерживания взлома / Использование Attiny13 для управления шаговым двигателем и сервоприводом: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Это может быть один из моих самых странных проектов:-) Но даже если вы не заинтересованы в том, чтобы держать грабителей подальше, этот проект можно использовать для всего, где вам нужно управлять шаговым или серводвигателем, или даже несколькими двигателями постоянного тока с Attiny13. Большинство из вас помнят фильм «Один дома», где МакКоли Калкин пытается притвориться грабителям, что на самом деле он не один дома, помещая картонную фигурку на проигрыватель и надевая веревки на другую картонную фигурку, чтобы он мог подражать людям. Так как я часто бываю вдали от дома, я очень хорошо понимаю, что покину свой дом, как будто он все еще занят. похоже, что кто-то присутствует. Я добавил фальшивый телевизор, который делает вид, будто играет телевизор. Все это помогает, но если дело доходит до имитации присутствия, нет ничего лучше, чем реальное движение. Поэтому мне нужно было что-то, что двигалось, а поскольку у меня нет проигрывателя, и мне нужно было что-то, что могло бы работать, пока меня не было, мне нужно было что-то более твердое. Самый очевидный способ заставить картонную фигурку создавать впечатление движения - это повернуть его на 90 градусов, чтобы он попеременно блокировал свет, а не свет. Сначала я сделал это с дешевым сервоприводом, но это дало две проблемы: было трудно добавить картонную фигуру, даже не слишком большую, к оси и один раз Я сделал, сопротивление было бы слишком большим для этого сервопривода. Цена на более мощный сервопривод резко выросла, поэтому я подумал о шаговом двигателе. У меня все еще был один, который был тяжелым из-за прикрепленного к нему радиатора, так что он казался идеальным. Программа для поворота шагового двигателя была легко написана на Arduino, но перетаскивание все еще вызывало небольшую проблему, поскольку моя картонная фигура имела размер торс человека (длиной около 80 см). Пришлось либо укрепить картон, сделав его тяжелее, либо уменьшить его. Последнее показалось мне лучшим решением, так как я мог просто поставить его поближе к свету. Все это время я также играл с мыслью, чтобы фигура встала. Моторы, шкивы и т. Д. Приходили мне в голову, и хотя я не полностью отказался от этой идеи, на данный момент я просто решил добавить небольшую деталь к картонной фигуре, и это была движущаяся голова. Моя идея заключалась в том, чтобы фигурка поворачивалась на 90 градусов. чтобы он отбрасывал полную тень, а затем кивал головой. И тут снова появился мой сервопривод. На самом деле я не хотел жертвовать целым ардуино только для того, чтобы превратить картонную фигурку. Напротив, я предположил, что Attiny13, который у меня лежал, также может справиться с этой задачей: 4 контакта для шагового двигателя, 1 контакт для сервопривода. это именно то, что может предложить Attiny13. Я признаю, что иногда я могу быть очень плотным, потому что я думал о всевозможных сценариях того, как управлять устройством для работы в определенное время, в течение определенного времени, потому что в идеале я хотел контролировать это из «Симулятора дома», о котором я упоминал ранее. Итак, я подумал о проводе или беспроводной связи, но тогда Attin13 был не лучшей идеей, потому что у него проблемы с Manchestercode, и мне нужен был штырь для приемника, а чувствительность этих дешевых приемников не так уж велика. Я уже думал о коммерческом таймере, но потом понял, что был идиотом. Поскольку для этой штуки потребуется собственный блок питания, почему бы не взять настенный блок и не вставить его в удаленный переключатель, которым я уже мог управлять с помощью симулятора At Home. Итак, я приступил к созданию своего окончательного проекта.
Дешевый шаговый двигатель ServoA Картонная коробка Attiny13A 8-контактное гнездо ICA Кусок картона 9 полосок по 17 отверстий Некоторые удлинители сервоприводаA ULN2003A 16-контактное гнездо ICA Резистор 10 кОм Пластиковая разделочная доска (или какой-либо другой кусок легкого материала) 3-контактный штекер (для сервопривода) 6-контактный штекер (для шагового двигателя) клейкая лента (конечно)
Дополнительно: способ программирования Attiny
Замечание о шаговом двигателе. Я использую старый 55SI-25DAWC, но если вам все же нужно его купить, есть очень дешевый комплект шагового двигателя / драйвера: 28BYJ-48. Сам двигатель стоит 1,50 евро, но за 2 евро вы можете получить тот же мотор с платой водителя. так что это хорошая сделка
Шаг 1: "Один дома" конструируем картонного человечка
Из коробки вырезаю кусок 40х20 см и кусок 18х18. Я соединил эти две части вместе, как голову и туловище, используя изоленту, оставив небольшой промежуток между двумя частями, но прикрытый изолентой, чтобы сформировать шарнир для шеи. (На фотографиях это очень хорошо видно) Из старой разделочной доски я вырезал кусок длиной 20 см, толщиной примерно полсантиметра (толщина доски) и шириной примерно 1,5 см. 1,5 см хватило на ось моего степпера. Если у вас другой шаговый двигатель, убедитесь, что вырезанный кусок достаточно широк для оси вашего шагового двигателя. Просверлил отверстие в мертвой точке, которое подошло бы для моей оси. Затем я приклеил пластик к основанию картонного торса. под «шею» из кусков картона соорудил держатель для сервопривода. Конечно, это можно сделать с помощью уголка (или пластика), но его немного сложно прикрепить к картонному торсу, поэтому я просто использовал картон для установки сервопривода. Я добавил к сервоприводу рычаг, сделанный из куска пластика размером 11 x 0,6 x 0,6 мм с разделочной доски, и прикрепил его к сервоприводу. Опять же, посмотрите на изображения, чтобы увидеть, как это делается. Хотя мой шаговый двигатель был достаточно тяжелым, чтобы нести картонную фигуру, крутящий момент и сопротивление, вызванное его вращением, заставили бы двигатель начать `` ходить '', поэтому я создал опорную пластину из Доска разделочная 24 * 11 см. Я просверлил два отверстия для крепления шагового двигателя и все еще оставил достаточно места для контроллера. Хотя сервопривод поворачивается на 180 градусов, я расположил рычаг так, чтобы он не поднимал голову полностью прямо. Таким образом, он легко откатится, когда сервопривод возвращается в положение 0.
Шаг 2: «Один дома» Создание контроллера
Контроллер - это Attiny13, подключенный к ULN2003. Хотя в своей версии я использовал немного больше контактов, чтобы сделать плату более гибкой для использования в других проектах, единственные заголовки, которые вам нужны, - это 3-контактный штекер сервопривода и 6-контактный штекер для шагового двигателя.
Шаг 3: «Один дома»: программное обеспечение
РЕДАКТИРОВАТЬ 2019 Проект был создан на базе некогда популярного ядра Smeezekitty для Attiny13. Часто используемый сейчас MicroCore от MCUDude, по-видимому, имеет проблемы с переменными в операторах delayMicroseconds. Если вы его используете, замените delayMicroseconds (300 + p * (2500/180)); "задержкой (5);"
Вышеупомянутая программа показывает, как управлять моим конкретным шаговым двигателем, и вам может потребоваться изменить значения, записываемые в PORTB, если у вас есть другой шаговый двигатель. Поскольку у Attiny13 довольно мало памяти, а также не слишком много контактов, программе не хватает некоторых изощрений. Запись напрямую в PORTB допустима, но в этом случае она также запишет «0» в PB4 и PB5. PB5 не представляет большой проблемы, но вы можете использовать PB4. В моем случае это то место, куда я помещаю свой сервопривод, и это на самом деле не вызывает проблем, поскольку я не использую их одновременно.
Однако, если вы хотите использовать другой микроконтроллер, такой как 328, и хотите избежать записи в PB4 и PB5, PB6 и PB7, используйте маску для записи только в биты 0–3. Маска для этого - B00001111.
Если вы хотите установить биты 0 и 2, сделайте следующее:
Вместо PORTB = 5 укажите: PORTB = (PORTB & ~ mask) | (B00000101);
Для тех, кому это кажется слишком загадочным:
он сначала ИЛИ значение PORTB с маской НЕ и ИЛИ результат со значением, которое мы хотим записать, и присваивает это обратно PORTB.
Итак, предположим, что PORTB = 00010000, и мы хотим записать в него 00000101, мы не можем назначить это немедленно, потому что это очистит PB4.
Однако, если мы сделаем так, как описано, это станет:
PORTB = (PORTB & 11110000) | 00000101
PORTB = (00010000 и 11110000) | 00000101
PORTB = 00010000 | 00000101
PORTB = 00010101
Мы написали нашу стоимость и сохранили PB4
Итак, почему мы не можем сразу выполнить OR PORTB с желаемым значением вместо того, чтобы сначала выполнить операцию AND?
Ну, потому что это может сохранить PB4 и PB5 … но также не изменит PB3-PB0, если один из них уже содержит «1»
Конечно, в инвертировании маски не было бы необходимости, если бы мы определили ее уже инвертированной, но это обычная практика, чтобы делать это как таковую.
Шаг 4: «Один дома» средство сдерживания взлома: используйте
посмотрите видео, чтобы увидеть, как это работает (он повернут на -90 градусов, извините за это)
Это устройство предназначено для отбрасывания движущихся теней на шторы или жалюзи. Поэтому он лучше всего работает с легкими занавесками. Само устройство не должно быть видно снаружи. Убедитесь, что где-то позади него есть источник света. Я управляю им, посылая РЧ-сигнал на дистанционный переключатель в сетевой розетке, которая питает настенный блок питания для этого устройства, но вы также можете использовать таймер.
Шаг 5: «Один дома» Что не сработало ……
В этом видео показан один из моих ранних экспериментов с большим туловищем и простым сервоприводом. Очевидно, не лучший дизайн
Рекомендуемые:
Управление шаговым двигателем: 5 шагов
Управление шаговым двигателем: этот учебник действителен как при использовании Arduino, так и при использовании в обоих случаях платы Drivemall, расположенной ниже по ссылке для создания Drivemall. Преимущество предпочтения Drivemall перед классической платой Arduino заключается в уменьшении сложности соединений
Шаговый двигатель, управляемый шаговым двигателем, без микроконтроллера !: 6 шагов
Шаговый двигатель, управляемый шаговым двигателем, без микроконтроллера! В этом кратком руководстве мы создадим простой контроллер шагового двигателя с использованием шагового двигателя. Этот проект не требует сложной схемы или микроконтроллера. Итак, без лишних слов, приступим
Использование таймера 556 для управления шаговым двигателем: 5 шагов
Использование таймера 556 для управления шаговым двигателем: в этой инструкции объясняется, как таймер 556 может управлять шаговым двигателем. Для этой схемы код не требуется
Повторное использование тачпада старого ноутбука для управления шаговым двигателем: 11 шагов (с изображениями)
Повторно используйте тачпад старого ноутбука для управления шаговым двигателем: я сделал этот проект несколько месяцев назад. Несколько дней назад я выложил видео проекта на r / Arduino на Reddit. Видя, что люди проявляют интерес к проекту, я решил сделать это руководство, в котором я внес некоторые изменения в код Arduino и
Использование Artmoney для взлома игр: 8 шагов
Использование Artmoney для взлома игр: узнайте, как взламывать игры с помощью сканера памяти artmoney в этом руководстве