ЗАМОК С “СЕКРЕТНЫМ СТУКОМ” НА ARDUINO

Замок с сервоприводом и датчиком звука/вибрации/касания, которые позволяют задавать и распознавать секретный стук, то есть последовательность ударов. Сервопривод открывает и закрывает крышку, питается система от пальчиковых батареек/аккумуляторов. Что умеет:

  • “Запоминает” секретный стук, а именно – время между “ударами”
  • Умеет распознавать слишком быстрое нажатие, слишком медленное, ну и само собой “правильное” нажатие
  • Работает от аппаратного прерывания, что даёт очень стабильную и чёткую отработку “стуков”
  • Использована библиотека сна, потребление в режиме ожидания около 0.1 мА

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

  • В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций, всё это с приятным монтажиком, музычкой и комментариями. В общем, приятного просмотра!
поддержать автора
канал на youtube
страничка на github
группа вконтакте

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

Логика работы построена следующим образом: при подключении питания запускается функция записи секретной комбинации нажатий или стуков. Все стуки и нажатия обрабатываются как прерывания, поэтому точность записи и распознавания очень высокая. Сначала система ждёт первого нажатия. Если есть сигнал, то начинает измерять время между всеми последующими стуками и записывать их в память. Далее если в течение 3 секунд сигналы не приходят, комбинация считается завершённой, далее записанная комбинация проигрывается, … крышка закрывается и система засыпает чтобы не тратить энергию. Так как я использую прерывания, то от любого срабатывания с датчика система просыпается и начинает распознавать секретный стук, сравнивая время между ударами или нажатиями. И тут возможны вариатны, слишком быстро или слишком медленно, в любом случае попытка проваливается. Чтобы открыть замок, нужно чтобы полностью совпала вся комбинация. Ну и чтобы закрыть замок нужно просто коснуться датчика или нажать кнопку закрытия, которую я убрал в своём варианте шкатулки. Ну и собсна всё.

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Схема

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

РАССЫПУХА

  • МОСФЕТ
    • IRF3704ZPBF
    • IRLB8743PBF
    • IRL2203NPBF
    • IRLB8748PBF
    • IRL8113PBF
    • IRL3803PBF
    • IRLB3813PBF
    • IRL3502PBF
    • IRL2505PBF
    • IRF3711PBF
    • IRL3713PBF
    • IRF3709ZPBF
    • AUIRL3705N
    • IRLB3034PBF
    • IRF3711ZPBF
  • Резистор 100 Ом
  • Резистор 10 кОм
  • Пищалка из компьютера
всё для пайки
аккумуляторы и модули
все arduino модули
мультиметры
инструменты
бп и преобразователи

ПРОШИВКА И НАСТРОЙКА

Содержимое папок в архиве

  • Low-Power – библиотека сна C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)
  • knock_lock – прошивка для Arduino, файлы в папках открыть в Arduino IDE (читай FAQ)
скачать архив
страница на github

Как прошить?

  • ЕСЛИ ЭТО ПЕРВЫЙ ОПЫТ РАБОТЫ С ARDUINO – посмотреть ВИДЕО о платформе с целью ознакомления, далее скачать, установить и настроить необходимые для работы программы согласно СУПЕР ПОДРОБНОЙ ИНСТРУКЦИИ (там даже видео версия есть!).
  • Скачать архив с проектом напрямую, или с GitHub (кнопки чуть выше)
  • Установить библиотеки (папка Libraries) в
    C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
    C:\Program Files\Arduino\libraries\ (Windows x86)

  • Подключить Ардуино к компьютеру при помощи Data-кабеля
  • Открыть файл прошивки желаемой версии (файлы прошивок .ino лежат в одноимённых папках)
  • Настроить Arduino IDE (COM порт, куда подключена плата; подключенная модель Arduino, как в статье из первого пункта)
  • Настроить что нужно в прошивке, нажать загрузить
  • Если происходит ошибка компиляции или ошибка загрузки, читать 5-ый пункт в ЭТОЙ СТАТЬЕ

Настройки в прошивке

difficulty 100  // миллисекунд на реакцию (плюс минус)
max_knock 30    // число запоминаемых "стуков"
close_angle 85  // угол закрытия
open_angle 180  // угол открытия
debug 1         // режим отладки - вывод в порт информации о процессе игры

Дополнительно

  • Если не работает, и явно не хватает напряжения на сервоприводе – грешите на китайский мосфет!

АЛГОРИТМ РАБОТЫ

2018-02-11T23:37:08+03:00