Оглавление:

LaserKitty !!: 7 шагов (с изображениями)
LaserKitty !!: 7 шагов (с изображениями)

Видео: LaserKitty !!: 7 шагов (с изображениями)

Видео: LaserKitty !!: 7 шагов (с изображениями)
Видео: Laserkitty 2024, Октября
Anonim
Image
Image
Получите свой материал
Получите свой материал

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

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

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

  • Полный контроль со смартфона
  • Ручной, автоматический и запланированный режимы
  • Пользовательский интерфейс приложения
  • Статус системы синхронизируется между несколькими веб-клиентами
  • Состояние системы отображается на LaserKitty !! сам
  • Настраиваемые ограничения диапазона поворота и наклона
  • Настраиваемая продолжительность и частота игрового сеанса
  • Настраиваемые игровые окна
  • Страница настройки с кратким обзором текущих настроек
  • Синхронизация времени NTP
  • WiFi-менеджер для легкой настройки в новых сетях
  • Генератор тона для воспроизведения темы «Миссия невыполнима» перед каждой игровой сессией: ваша кошка может оценить иронию, а может и не оценить ее.
  • Pushbullet-уведомления на все ваши устройства при запуске нового игрового сеанса
  • Настраиваемое исходное положение, чтобы время игры заканчивалось у миски для еды или стационарной игрушки
  • Все настройки хранятся в EEPROM, поэтому не потеряны при отключении электроэнергии
  • И многое другое! Ну не совсем, вот и все.

Шаг 1. Получите свои вещи

Вот что я использовал:

  • Миниатюрная сборка панорамирования и наклона. Это, конечно, не самый дешевый вариант, который вы можете найти, и для наших целей он требует некоторой модификации. Я выбрал его, потому что он выглядит немного круче дешёвых пластиковых сборок подвала. В качестве неожиданного бонуса его конструкция позволяет очень легко установить лазер. Он поставляется с парой микро сервоприводов, но я настоятельно рекомендую вам купить кучу дополнительных для замены. Вам понадобится как минимум один дополнительный сервопривод (сломанный - нормально).
  • Вложение. Мне больно платить 8 долларов за пластиковую коробку, и вы определенно можете найти что-то подходящее за меньшие деньги. Что-то в размере связанного корпуса все же верно.
  • Плата для разработки на базе ESP8266. Я использовал NodeMCU. Не будет преувеличением сказать, что я люблю эти вещи. Простота использования в среде Arduino IDE и много флеш-памяти для ваших веб-страниц. Также дешево и, по моему опыту, очень трудно жарить.
  • Мини-лазер. Десять за 6 долларов, включая Amazon Prime. Ты шутишь, что ли?? Теперь мне просто нужно решить, что делать с остальными девятью.
  • Пассивный зуммер для тонов.
  • Двухканальное реле. Я использую их для включения и выключения сервоприводов и лазера. Вы можете удалить этот компонент, как я объясню позже.
  • Источник питания 5 В постоянного тока. Надеюсь, у вас будет одна из этих давно забытых штуковин, но если не что-нибудь дешевое и веселое, которое может производить около 1 А при 5 В постоянного тока, это то, что вам нужно.
  • Разные расходные материалы, такие как резисторы, светодиоды, соединительный провод, термоусадка, припой, горячий клей. Обычно. Я также использовал цилиндрическое гнездо для входящего источника питания 5 В постоянного тока от моей смущающе большой коллекции разрушенных подделочных плат Arduino.
  • И последнее, но не менее важное: виниловая наклейка для этого причудливого финального штриха.

Так что да. Вы смотрите на сумму около 50 долларов. Вы могли бы сделать это за меньшие деньги, но разве ваш котенок не заслуживает самого лучшего?

Шаг 2. Инструменты и ресурсы

Инструменты и ресурсы
Инструменты и ресурсы

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

Этот проект действительно использует возможности ESP8266 и, в частности, NodeMCU. Если вы только начинаете работать с ESP8266, я не нашел лучшего универсального ресурса, чем эта штука. Помимо этого, все дело в поиске в Google ответов на возникающие проблемы.

Шаг 3. Подготовьте корпус

Подготовьте корпус
Подготовьте корпус
Подготовьте корпус
Подготовьте корпус

Как я, возможно, уже упоминал, платить 8 долларов за пластиковый корпус кажется возмутительным. Что еще хуже, так это то, что все испортишь, сделав дырку не в том месте. Поэтому, прежде чем у вас будет коробка с дрелью и / или любым другим создателем хаоса в вашем распоряжении, подумайте об ошибках, которые я допустил.

  • Во-первых, вам нужно подумать о том, где все это поместится. Хорошая новость заключается в том, что в корпусе, который я предлагаю, достаточно места, даже с очень неопрятной проводкой, которую вы видите здесь. Возможно, вам даже удастся обойтись меньшей коробкой, особенно если вы удалите реле.
  • Наиболее важно то, где вы будете устанавливать блок панорамирования и наклона в крышке. Здесь показана моя первая попытка. Я подумал, что художественно перенесу его не по центру и немного назад для стабильности. Плохая идея! Сборка необходима как можно ближе к боковой стороне крышки, чтобы сам корпус не мешал лучу при больших углах наклона. Кроме того, я думаю, что идеальным вариантом было бы установить панорамный лазер перпендикулярно короткой стороне, а не, как я, длинной стороне. Я сделал это по-другому из чисто эстетических соображений, хотя есть немного больше возможностей для вмешательства.
  • Как видите, NodeMCU установлен на Perfboard и его можно было легко разместить так, чтобы его разъем micro USB был доступен из слота сбоку или сзади. Это упростит обновление программного обеспечения (не нужно снимать крышку). Моя первоначальная идея состояла в том, чтобы использовать библиотеку Over-The-Air (OTA) для обновлений, и вы увидите, что мой код включает эту функцию, хотя и закомментирован. Проблема заключалась в том, что тон-генератор и OTA не могли хорошо работать вместе (NodeMCU неоднократно сбрасывался в середине песни). Эта проблема, вероятно, исправима, но мне никогда не удавалось обновлять SPIFFS, кроме как через USB, поэтому было бы неплохо иметь доступ к разъему USB. К тому времени, когда я со всем этим разобрался, я установил NodeMCU на Perfboard таким образом, что вытащить разъем из коробки было невозможно без большого количества ошибок. Ну что ж.
  • Если бы мне пришлось делать проект снова, я бы совместил светодиод RGB с красным светодиодом включения. (Назначение светодиода RGB - указать, в каком режиме находится LaserKitty !!, не заглядывая в приложение.)

Единственная немного сложная часть на самом деле проделать отверстия - это прямоугольная часть сервопривода панорамирования. Я использовал дрель и напильник. Как вы можете видеть с моей первой попытки, сделать его точно квадратным (или прямоугольным, я думаю) сложно. Но когда сервопривод установлен, вы этого не видите.

Вам нужно будет проделать еще три отверстия. Они должны быть расположены в задней части коробки и использоваться для разъема источника питания, зуммера и точки входа для сервопривода наклона и проводки лазера. Все эти отверстия могут быть круглыми, и их несложно проделать с помощью дрели.

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

Шаг 4: Сборка панорамирования и наклона

Сборка панорамирования и наклона
Сборка панорамирования и наклона
Сборка панорамирования и наклона
Сборка панорамирования и наклона
Сборка панорамирования и наклона
Сборка панорамирования и наклона
Сборка панорамирования и наклона
Сборка панорамирования и наклона

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

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

Вспышка вдохновения, которая возникла у меня, заключалась в том, чтобы использовать исходное расположение второго сервопривода для установки лазера. Еще лучше, если вы обезглавите сервопривод и просверлите крепление шлицевого рычага, это будет идеальное место для установки лазера! Только не стоит недооценивать усилия, необходимые для разборки сервопривода. Есть немного мяса этим маленьким мерзавцам!

После сборки и установки в корпус, И ПЕРЕД ПОДКЛЮЧЕНИЕМ ПИТАНИЯ убедитесь, что он поворачивается на 180 градусов по лицевой стороне корпуса. Так или иначе, после того, как я однажды успешно установил его, я снова собрал крепление для поддона, так что головки болтов на основании упирались в приподнятую часть сервопривода, где должен быть установлен рычаг. В результате сервопривод сразу лишился шестерен. С другой стороны, теперь у меня есть еще один сервопривод, который можно использовать в качестве крепления для лазера.

Шаг 5: Подключите его

Подключите его
Подключите его

Надеюсь, набросок Фритцинга проясняет ситуацию. Некоторые моменты, требующие дальнейшего уточнения:

  • Как обсуждалось позже, я хотел сделать лазер как можно более тусклым, сохранив при этом достаточную яркость, чтобы его можно было использовать при любом освещении, кроме самого яркого в помещении. Немного поэкспериментировав, я остановился на питании его от вывода 3.3VDC на Node MCU, добавив последовательно резистор 22 Ом для хорошей меры. При такой настройке он потребляет около 10 мА, поэтому теоретически он может питаться напрямую от вывода GPIO, но я обнаружил, что это слишком тускло, даже без резистора.
  • У лазера очень ограниченная способность изменять фокус (коллимацию?), Которую я использовал, чтобы увеличить точку и, таким образом, рассеять энергию лазера.
  • Моей первой мыслью было включать и выключать сервоприводы с помощью транзистора, но это привело к тому, что сервомашинки сходили с ума. Я уверен, что для этого есть веская причина, но поскольку у меня уже было несколько реле под рукой, я выбрал простой выход и полностью изолировал питание сервоприводов. А поскольку у реле было два канала, я подумал, что могу также переключить лазер таким же образом (фиолетовые провода - это управляющий сигнал от MCU). Мне тоже нравится механический щелчок, который производит это решение. Однако вы можете решить иначе. Не показано, но реле питаются напрямую от источника 5 В постоянного тока - NodeMCU мог просто запитать двухканальное реле напрямую, но не было причин рисковать. Если вы использовали эти реле до того, как узнаете, что для этого потребуется удалить перемычку между JD-VCC и VCC.
  • Светодиод RGB имеет токоограничивающие резисторы 220 Ом на красном и зеленом и 100 Ом на синем. Красный светодиод включения питания имеет резистор 450 Ом, поскольку он питается от 5 В постоянного тока, а не от 3,3 В постоянного тока. Это лишь приблизительные значения для получения достаточной яркости и разумной долговечности.
  • Зуммер довольно громкий. Вы можете добавить резистор к сигнальной линии, чтобы уменьшить громкость. Звуки можно полностью отключить с помощью программного обеспечения, но что-то среднее может быть приятным.

Шаг 6: Код

Код
Код
Код
Код
Код
Код
Код
Код

Несмотря на довольно пространное объяснение аппаратной части, 90% усилий здесь было вложено в код. Было бы больше, но я "позаимствовал" отсюда какой-то отличный код для движения лазера в автоматическом режиме. Нет смысла изобретать велосипед. Фактически, вы вполне можете решить следовать этому проекту, а не этому, или сочетать и сочетать аспекты обоих. Конечно, мне нравится идея изготавливать некоторые компоненты с помощью трехмерного принтера, но у меня его нет.

Мой код (его можно найти на GitHub здесь) состоит из трех основных частей. Есть сам скетч Arduino, HTML-файлы с кучей Javascript для содержимого приложения и связанные файлы CSS для стилизации. Я использовал этот проект, чтобы узнать немного больше обо всех этих элементах программирования, начиная с очень низкой базы, особенно на стороне интерфейса приложения. Я попытался немного привести код в порядок, но мое основное внимание было сосредоточено на том, чтобы заставить его работать. Код использует веб-сокеты для двунаправленной связи между сервером NodeMCU и подключенными клиентами.

Код Arduino широко комментируется, поэтому, надеюсь, вам будет легко следить за ним. После того, как вы загрузили его с GitHub, поместите все это в папку, загрузите скетч в свой MCU, а затем загрузите содержимое подпапки «data» в SPIFFS.

На самом деле, поцарапайте это. Если вы хотите использовать функцию уведомления Pushbullet, вам сначала понадобится токен доступа API, доступный здесь. Он находится в строке 88 кода Arduino. Pushbullet работает хорошо, но если вы впервые настраиваете учетную запись на своем телефоне, вы можете обнаружить, что вам нужно войти в систему, выйти, а затем снова войти в систему, прежде чем уведомления начнут появляться в соответствии с настройками вашего телефона.

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

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

Шаг 7: Последние штрихи и лазерная безопасность

Последние штрихи и лазерная безопасность
Последние штрихи и лазерная безопасность
Последние штрихи и лазерная безопасность
Последние штрихи и лазерная безопасность
Последние штрихи и лазерная безопасность
Последние штрихи и лазерная безопасность

Несмотря на головокружительную стоимость в 8 долларов, корпус довольно утилитарный. Немного покопавшись в Etsy, я нашел виниловую графику, которую вы видите на готовом продукте (и которая отражена на странице приложения). Поставляемый из Великобритании, он был немного дорогим, но определенно того стоил - и вы получите два на случай, если захотите повторить проект. В качестве своего последнего художественного достижения я повернул маленькие «ямочки» в глазах кошки так, чтобы они смотрели на ярко-красный светодиодный индикатор питания, который заменяет лазерную точку. В зависимости от вашего пристрастия к прихотям вы можете или не захотите пройти эту лишнюю милю.

HTML-файл заставки содержит код для добавления значка на домашний экран iPhone.

Наконец, я не должен игнорировать опасения, высказанные по поводу использования лазера для игры с кошками. Есть два основных возражения:

  • Лазер может ослепить или повредить кошачьи глаза
  • Игра с лазерной точкой в конечном итоге неудовлетворительна для кошек, потому что они никогда не могут ее поймать или "убить".

В интервью по обеим темам много разногласий, некоторые из них, казалось бы, информированы, некоторые менее. В конце концов, вы должны сами решить, подходит ли этот проект или любая другая лазерная игрушка для вашей кошки. Что я сделал, так это попытался решить первую проблему, сделав лазер как можно более тусклым, не делая его слишком трудным для просмотра при разумном уровне освещенности. Кроме того, убедитесь, что любая кошка, использующая устройство, не склонна пялиться на сам лазер, а не на точку - особенно если вы собираетесь использовать LaserKitty !! в автоматическом или запланированном режимах. Одна из целей функции уведомления Pushbullet - использовать ее вместе с камерой наблюдения, чтобы вам напоминали, чтобы вы наблюдали за игрой вашего котенка, пока вас нет.

Что касается второго возражения, я включил возможность сохранять «исходное положение», в которое лазер вернется после запланированных игровых сессий. Если вы установите его так, чтобы он указывал на стационарную игрушку или миску с едой вашего котенка, мы надеемся, что это даст некоторое разрешение. Хотя, с кошками, кто знает?

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