Оглавление:

Череп SpookyEyes: 8 шагов
Череп SpookyEyes: 8 шагов

Видео: Череп SpookyEyes: 8 шагов

Видео: Череп SpookyEyes: 8 шагов
Видео: Как нарисовать череп правильно и не правильно 2024, Ноябрь
Anonim
ЖуткийГлаза Череп
ЖуткийГлаза Череп

Вот простая модификация пластикового черепа на Хэллоуин, которую я сделал. Просверлил глазницы и добавил пару красных светодиодов. Светодиоды подключены к микроконтроллеру для создания специальных эффектов (постепенное появление / исчезновение, мигание и тому подобное). Есть некоторые дополнительные особенности этой конструкции:

  • Батарея заряжена
  • Оптимизирован для длительного срока службы (я полагаю, 200 часов или более на комплекте из 3 щелочных батареек AA.

    • Включается в сумерках.
    • Работает N часов (устанавливается программистом), затем выключается.
    • Не отдыхает в течение дня.
  • Использует микросхему микроконтроллера ATtiny84.

Если вы энтузиаст Arduino и все, с чем вы когда-либо работали, - это чипы, которые предустановлены на плате Arduino, то это может быть хорошим проектом для вас, чтобы немного расширить свой кругозор. Существует настолько широкий спектр чипов ATmega различных размеров, что оставаться заблокированным для 2 или 3 устройств, которые предоставляются обычными предложениями Arduino, довольно ограничивает. Во-первых, этот проект был бы реализован иначе, если бы мне пришлось использовать Uno Rev. 3. Сама плата стоит 22 доллара; Я делаю здесь работу всего за 1,50 доллара! Кроме того, поскольку он намного медленнее (хотя и достаточно быстрый, чтобы зажигать светодиоды), он потребляет меньше энергии. Это означает, что он лучше подходит для проекта с батарейным питанием.

Шаг 1. Цели

Цели
Цели

Вот они:

  1. Создайте жуткие красные глаза в глазницах обычного дешевого пластикового черепа на Хэллоуин.
  2. Для питания от батареек.
  3. Чтобы он проработал около двух недель на указанных батареях.
  4. Иметь срок годности. Я живу в районе, где крутые вещи, оставленные без внимания, имеют тенденцию уходить. (Страшно, правда? Я имею в виду, череп на Хеллоуин внезапно поднимается и уходит. Я никогда его не видел, но я знаю, что это случается, и эта идея наполняет меня ужасом.) Поэтому:

    • Я не хочу, чтобы какой-нибудь придурок наслаждался плодами моего труда. Если они получат мой череп, он скоро станет им бесполезен! МВА-ха-ха-ха-ха-ха-ха-ха !!!
    • Этот череп будет светиться только X дней, прежде чем он откажется от призрака, так сказать.
  5. Минимальные детали (см. Пункт № 2 выше).
  6. Чтобы получить знания о других микроконтроллерах AVR, помимо ATmega328p в Arduino Uno и других.
  7. Чтобы узнать, как использовать устройство USBASP. См. Https://www.fischl.de/usbasp/. Как говорит Томас, «USBasp - это внутрисхемный USB-программатор для контроллеров Atmel AVR… Программист использует USB-драйвер только для встроенного ПО, специальный USB-контроллер не требуется».

Как вы, возможно, знаете, платы на базе Arduino Uno, Leonardo и другие AVR поставляются с множеством дополнительных компонентов, таких как микросхема FT232RL USB-to-serial, регулятор мощности, кварцевый генератор, различные разъемы и индикаторы, заголовки. для проводки и т. д. И после того, как микросхема запрограммирована через интерфейс USB, дополнительная ИС просто потребляет энергию. Кроме того, если вы питаетесь от батарей, регулятор напряжения в лучшем случае бесполезен, а в худшем - больше истощает ваш источник питания. Если вы хотите управлять только парой светодиодов, почти все, кроме процессора, будет лишним на протяжении большей части жизни вашего проекта.

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

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

Компромисс заключается в том, что вам нужно принести собственное устройство программирования. К счастью, есть один под названием «USBASP». Думайте об этом как о встроенном в Arduino чипе USB-to-serial, но отдельно и съемном. Вы можете использовать его для всех своих проектов. Более того, это устраняет необходимость в загрузчике. Вы получите эту память обратно, если она вам понадобится.

И не бойтесь - USBASP действительно прост в использовании. Многие первопроходцы до вас использовали его, поэтому он хорошо знаком и хорошо подходит для этой задачи. В этом руководстве мы будем использовать его, и, как простой проект для знакомства с миром процессоров ATtiny, это может быть хорошее время для вас, чтобы познакомиться.

8. Конечная цель: надеюсь, вам понравится это руководство!

Шаг 2: ингредиенты

Ингредиенты
Ингредиенты
Ингредиенты
Ингредиенты
Ингредиенты
Ингредиенты
  • 3 батарейки типа АА (Walgreens)
  • Батарейный отсек для 3 батареек АА (eBay)
  • Зажим аккумулятора 9 В (eBay)
  • Макет для тестирования (eBay)
  • Печатная плата (паяемая макетная плата)
  • Разъемы с гнездом 0,1 дюйма (0,254 мм) (для вашего ATtiny84a. Если вы уверены, просто припаяйте ATtiny к печатной плате). (EBay)
  • 2x 5 мм красных светодиода (eBay)
  • Электролитический конденсатор 100 мкФ (eBay)
  • Керамический конденсатор 0,1 мкФ (eBay)
  • Резистор 2,2 МОм (eBay)
  • светочувствительный резистор (eBay)
  • 2 резистора 82 Ом (eBay)
  • Микросхема микроконтроллера ATtiny84a (eBay)
  • Жесткий соединительный провод 24 калибра (eBay)
  • паяльник (Amazon или Radio Shack)
  • припой (Amazon или Radio Shack. Лучше всего бессвинцовый).
  • клей
  • пластиковый череп на Хэллоуин, не слишком маленький, полый (Walmart, Dollar Store и др.)
  • программист usbasp (eBay)

Советы и рекомендации по покупке электроники для жителей США:

Если вам нужна основная информация (резисторы, транзисторы, конденсаторы, светодиоды и т. Д.), Перейдите на eBay. Ваши проекты электроники обычно имеют стандартные размеры (как здесь); это прекрасное время, чтобы запастись. Обыщите вокруг и найдите пачки по 20, 40, 100 штук. Купите те; Обычно их можно найти менее чем за 10 баксов с бесплатной доставкой. Это намного дешевле, чем Mouser / Digi-Key / Newark. Там вы получите разумные цены на запчасти, но потом вам дадут 9 баксов за доставку; эти низкие цены испаряются в спешке! Вы, безусловно, можете найти специализированные детали, и в специализированных магазинах их большой выбор, но такая доставка вас задела. С другой стороны, я нашел на eBay пачку из 5 ATtiny84a за 7,50 долларов с бесплатной доставкой. 5 микроконтроллеров по цене меньше, чем цена доставки 1 от Mouser! Йоусер! И на eBay есть все пакеты разнообразных компонентов, которые могут вам понадобиться, и вы знаете, что если вам нужен один резистор, вам понадобится дюжина!

Шаг 3: USBasp

USBasp
USBasp
USBasp
USBasp

Прежде чем мы начнем, давайте немного поговорим о USBasp. Их легко найти на eBay, так что купите. Не волнуйся, я подожду …

Ты понял? Хороший! Вы покупали в Китае? Неудивительно, что это заняло так много времени.:-) Ладно, я уверен, так было дешевле. Бесплатная доставка тоже.

Если вы, как и я, фанат Linux, USBasp работает «из коробки». Для Windows 10 все немного сложнее. Итак, давайте пройдемся через это:

Веб-сайт USBasp по адресу https://www.fischl.de/usbasp/ указывает нам на инструмент установки драйвера "Zadig" по адресу

  • Загрузить. Скачал версию 2.4.
  • Windows 10 спросит вас, хотите ли вы внести изменения в ваше устройство. да. Да, конечно.
  • Решите, хотите ли вы, чтобы Zadig проверял наличие обновлений приложения. Я сказал да.
  • Теперь я выполнил инструкции https://rayshobby.net/dead-simple-driver-installa…. То есть,
  • Подключите устройство USBasp. Возможно, вы увидите, что на нем загорится красный светодиод.
  • В Zadig в поле справа от большой зеленой стрелки нажимайте маленькие стрелки вверх или вниз, пока не увидите libusbK (v3.0.7.0). Это для Windows 10.
  • Нажмите большую кнопку «Установить драйвер».
  • Ждать. Через несколько секунд вы увидите сообщение «Драйвер успешно установлен». чат. Закрой его.

Теперь ваше устройство USBasp готово!

Шаг 4: поддержка Arduino для ATtiny

Поддержка Arduino для ATtiny
Поддержка Arduino для ATtiny
Поддержка Arduino для ATtiny
Поддержка Arduino для ATtiny

Arduino IDE не поддерживает серию микросхем ATtiny из коробки. Вам нужно добавить его в IDE с помощью менеджера досок. См.

Предполагая, что вы уже загрузили программное обеспечение Arduino, я воссоздаю шаги из URL-адреса выше. Просто

  • Откройте программное обеспечение Arduino (на момент написания этой статьи я использовал версию 1.8.7).
  • Откройте меню: Файл -> Настройки. Найдите внизу поле «Дополнительные URL-адреса менеджера плат».
  • Скопируйте и вставьте следующее:

raw.githubusercontent.com/damellis/attiny/…

  • Это
  • Нажмите ОК.
  • Откройте меню: Инструменты -> Доска: "" -> Менеджер плат (вверху списка)
  • Прокрутите вниз. Вы должны найти «Аттини Дэвида А. Меллиса».
  • Щелкните кнопку Установить.
  • Прокрутите список до конца. Теперь вы должны увидеть "УСТАНОВЛЕН".
  • Откройте меню: Инструменты -> Доска: ""
  • Вы должны увидеть ATtiny внизу списка. Нажмите «ATtiny24 / 44/84».
  • Откройте меню: Инструменты -> Процессор: "". Выберите ATtiny84.
  • В меню «Инструменты» вы должны увидеть запись «Часы». По умолчанию все в порядке. Так поставляются процессоры ATtiny с внутренней тактовой частотой 1 МГц.
  • В меню Инструменты выберите Порт. Вы хотите "COM1".

Шаг 5: Тестирование, тестирование: макет вашей схемы

Тестирование, тестирование: макет вашей схемы
Тестирование, тестирование: макет вашей схемы
Тестирование, тестирование: макет вашей схемы
Тестирование, тестирование: макет вашей схемы

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

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

Вставляя светодиоды и электролитический конденсатор, помните, что это направление имеет значение: вам нужно расположить отрицательную сторону к отрицательной стороне батареи, а положительную сторону - к более положительной стороне вещей. Что касается светодиодов, они будут гореть, когда контакт ATTiny84a станет положительным (или «HIGH»). Таким образом, положительная сторона светодиодов должна подключаться к соответствующему контакту на ATTiny84a.

Есть много веб-сайтов, на которых обсуждается полярность светодиодов; один такой учебник можно найти здесь: https://learn.sparkfun.com/tutorials/polarity/diod…. В конечном счете, лучший способ, который я нашел для проверки полярности, - это подключить резистор 120 Ом к минусу батареи, подключить один контакт светодиода к другому концу этого резистора, а затем подключить другой конец светодиода к плюсу батареи (также известный как VCC). Если светодиод загорается, вы знаете, какой контакт какой.

Для конденсатора на 100 мкФ это конденсатор электролитического типа. В основном это означает, что важна и его ориентация. Отрицательный вывод должен быть помечен. Путем исключения вы можете определить, какой из контактов является положительным:-). Подключите правильно.

Резисторы, фотоэлемент и маленький керамический конденсатор круглой формы не имеют полярности. Соединяйте их в любом направлении. Убедитесь, что вы подключаете маленький керамический конденсатор очень близко к контактам VCC и GND ATTiny84a. Его задача - сглаживать любые резкие скачки мощности микроконтроллера ATtiny. Он заполнен крошечным зарядом от источника питания (батарей), который становится доступным очень быстро, если микроконтроллеру он понадобится за микросекунду. Это предотвращает слишком низкое падение напряжения питания микросхемы из-за переходного быстрого потребления тока.

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

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

Обновлять

Здесь не показан, но необходим резистор 10 кОм между контактом 4 и Vcc. Вам следует установить его. Однако я этого не сделал, и схема работала нормально. Однако без этого вы рискуете ошибиться в перезагрузке чипа.

Шаг 6: загрузите эскиз

Загрузите эскиз
Загрузите эскиз

Пришло время загрузить скетч. Сделаем эти мигалки!

Вы найдете исходный код скетча на

  • Возьмите его и загрузите в программное обеспечение Arduino.
  • ПРИМЕЧАНИЕ. В коде есть такой раздел:

// --- DEBUG DEBUG DEBUG DEBUG D - vvvv - UG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG // --- DEBUG DEBUG DEBUG DEBUG D - vvvv - UG DEBUG DEBUG DEBUG / --- DEBUG DEBUG DEBUG DEBUG D - vvvv - UG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG DEBUG // --- DEBUG DEBUG DEBUG DEBUG D - vvvv - UG DEBUG DEBUG DEBUG

Я рекомендую изменить

#undef DEBUG

к

#define DEBUG

поскольку время цикла значительно сокращается. Вы должны изменить его и повторно загрузить, когда будете готовы отобразить SpookyEyes по-настоящему.

  • Давай, сделай это сейчас. Остальная часть этой страницы предполагает, что вы это сделали.
  • Убедитесь, что вы выполнили шаги из шага 4: Поддержка Arduino для ATtiny
  • Теперь подключите сторону Arduino usbasp к своей плате. Вы хотите подключить его следующим образом:

    • GND к отрицательной батарее
    • MOSI к выводу 7 ATtiny
    • MISO к выводу 0 ATtiny
    • SCK к выводу 9 ATtiny
    • RST к выводу 4 ATtiny
  • Подключите другой конец USBasp к USB-порту вашего ПК.
  • Подключите к своей цепи аккумулятор или другой источник питания 5 В.
  • Загрузите скетч с помощью Arduino IDE (Sketch-> Upload). Светодиоды будут мигать, поскольку некоторые контакты, которые используются для схемы, также используются для USBasp.

Как работает набросок

Убедитесь, что вы находитесь в довольно яркой комнате, или направьте свет от фонарика на маленький светочувствительный резистор. Включите цепь и наблюдайте за светодиодами в глазах. Это «дневной» режим. Теперь, когда скетч запущен, вы должны увидеть следующее. Обратите внимание, что области кода, описанные здесь, помечены «BooKmarks», а не номерами строк, поэтому вы можете следить за ними. Они имеют вид: # BK.descriptive_string («Фунт BK Period», затем какая-то описательная строка). Например, первая закладка называется «# BK. Hello», и ее можно найти в коде, где светодиоды загораются на секунду, а затем остаются пустыми:

  • Оба светодиода загорятся на секунду, затем погаснут на секунду. # BK. Hello
  • Они оба медленно моргают 3 раза. Это означает, что ATtiny настроен на частоту 1 МГц. # BK.check_time * См. ПРИМЕЧАНИЕ A ниже.
  • Сделайте паузу на секунду.
  • Затем они быстро мигают два раза.
  • Сделайте паузу на секунду.
  • Теперь вы в loop () # BK.loop. Помните, час сейчас всего 10 секунд.

"Защелка" выключена. И количество часов HOUR_millis (== 1 час в обычном режиме) еще не прошло. Итак, мы пропустим все, пока не дойдем до # BK.indicate_duration. Пока мы находимся в нулевом часе, поэтому мы мигаем глазами 0 раз.

  • Это продолжается до тех пор, пока мы не достигнем HOUR_millis секунд (10 секунд в режиме DEBUG).
  • Затем быстро моргните три раза. # BK.time_management
  • Добавьте еще один «час», увеличивая переменную latch_time_off
  • Затем полностью перейдите к # BK.indicate_duration. Здесь мы высвечиваем количество отработанных часов. Этот номер хранится в EEPROM, поэтому он доступен даже при отключении питания от микросхемы.

    • Наш первый час на свету закончился. Итак, мы кратко мигаем один раз.
    • Затем сделайте паузу 2 секунды.
  • Вернуться к циклу ():

    • Теперь на каждой итерации цикла мы проверяем, прошло ли время HOURS_milli. Для первых нескольких итераций (в DEBUG) этого не произошло. Так что мы не мигаем 3 раза.
    • Мы переходим к # BK.indicate_duration, и быстро мигаем счетчик количества часов, в течение которых мы были на свету, который снова сохраняется в ячейке 0 EEPROM.
    • Так продолжается долгое время.
    • Обратите внимание, что как только число в ячейке EEPROM 0 становится достаточно большим, цикл просто становится:

      • Вспышка 3 раза с разумной скоростью,
      • Быстро мигайте количество HOURS_millis, которое мы были на свету,
      • Подождите 2 секунды,
      • повторить.

Теперь положите палец на светочувствительный резистор. Или просто выключите свет. Теперь цикл становится:

  • Наш latch_time_off был более часа, и сейчас темно. Итак, в # BK.check_the_light мы обнаруживаем, что действительно темно.
  • Включаем защелку. Это запускает жуткие вещи в каждом цикле. Смотрите ЗДЕСЬ ЖУТКИЕ ВЕЩИ. Код должен быть достаточно информативным.
  • Как только защелка проработает достаточно долго, мы ее выключим. См. # BK.turn_spookiness_off.
  • Теперь вернемся к # BK.time_management, как описано выше, «быстро мигните три раза».

Беги по-настоящему

Не забудьте изменить скетч на #undef DEBUG.

ПРИМЕЧАНИЕ А

* ПРИМЕЧАНИЕ A: Включен код для установки 8 МГц. См. CLKPR = 0x00; закомментированный код. Если вы хотите сделать это (а для этой схемы нет причин для этого), убедитесь, что вы изменили IDE Arduino в пункте меню Инструменты-> Часы.

Шаг 7: от макета к паяльной схеме

От макета к паяльной схеме
От макета к паяльной схеме
От макета до паяной схемы
От макета до паяной схемы
От макета до паяной схемы
От макета до паяной схемы

Пришло время изготовить схему производства! Возьмите небольшую монтажную плату для пайки; Мне нравится каталог Radio Shack №: 2760159, который можно посмотреть здесь: https://www.radioshack.com/collections/prototyping…. Есть много отверстий для переноса компонентов вашей печатной платы на перфорированную плату.

Не забудьте приложить маленькие разъемы для вставки проводов USBasp (для программирования)! Вам понадобится 5 штук.

Подготовьте череп

Сориентируйте череп так, как он будет стоять на земле. Вам нужно будет просверлить отверстие для фоторезистора, чтобы он действительно освещался:-). … Важный шаг! Также, используя свой любимый режущий инструмент, разрежьте нижнюю часть черепа, чтобы освободить место для печатной платы и батарей. Разрежьте его только с 3-х сторон, чтобы получилась дверь.

Просверлите отверстие, в котором фоторезистор будет плотно прилегать. Очевидно, вы можете проверить размер с внешней стороны черепа, чтобы получить правильное представление. Всегда начинайте сверлить с малого и не сверлите его слишком быстро, чтобы не образовать много вспышек вокруг отверстия, которые вам придется сбрить ножом.

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

Я также был осторожен с тем, чтобы обернуть один из проводов каждого светодиода термоусаживаемой трубкой.

Вставьте схему

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

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

Шаг 8: Глаза Споооооки !!!! Ооооооо !!

Спооооокий Глаз !!!! Ооооооо !!!!
Спооооокий Глаз !!!! Ооооооо !!!!

Хорошо, вот и все. Ваши Spooky Eyes включатся в сумерках, будут отображаться для тех, кто занимается трюком или лечением, в течение 4 часов, а затем выключится, чтобы сберечь батареи. Он будет отключен до следующего вечера. Он будет делать это в течение TOTAL_RUN_HOURS часов, поэтому тщательно подготовьте это значение в скетче. Поскольку у меня по умолчанию MAX_RUNTIME 4 часа, 40 часов для TOTAL_RUN_HOURS означает, что он будет работать в течение 10 дней.

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

Уберите SpookyEyes на время сезона. В следующем году просто загрузите скетч еще раз, и SpookyEyes оживает! Насколько это жутко? Ооооооо !!!!

Улучшения

Я, наверное, должен был заставить ATtiny заснуть днем. В выключенном состоянии он потребляет очень мало тока.

Я должен был поставить резистор 10 кОм на вывод 4. Это предохраняет схему от загадочного сброса. Однако у меня не было никаких проблем. Но это нужно делать, чтобы было правильно.

Батарея заряжена

Мне нравится ATtiny84. Это отличная маленькая микросхема для маломощной схемы. Конечно, у него нет возможностей Serial.print () Arduino ATmega328p и ему подобных, но вы можете заставить индикаторы мигать определенным образом, чтобы сообщить вам, что происходит внутри вашей схемы, для отладки. Работать с ним несложно.

Надеюсь, вы нашли это Учебное пособие… поучительным!

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