Проекты

Шкатулка с кодовым замком

Работа призёра конкурса проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» в секции «Интеллектуальные робототехнические системы, беспилотные аппараты»

Направление работы: Инженеры
Авторы работы: ГБОУ Школа № 853
Предметы: Информатика, Технология
Классы: 10 класс
Мероприятия: Конкурс проектов и исследований «Инженеры будущего» открытой городской научно-практической конференции «Инженеры будущего» 2021 года

Актуальность

Проект «Шкатулка с кодовым замком» представляет собой проектирование и изготовление электронного кодового замка с последующей установкой в шкатулку для личных принадлежностей. Саму шкатулку предполагается также изготовить самостоятельно из подручных материалов. Прямых аналогов найдено не было. Все модели в интернет-магазинах обладают механическими кодовыми замками или замками с ключом.

Цель

Разработать и изготовить шкатулку с электронным кодовым замком на основе микроконтроллера Arduino Uno.

Задачи

  1. Изучить основы программирования микроконтроллеров Arduino.
  2. Изучить основы электротехники.
  3. Спроектировать и собрать схему электронного кодового замка.
  4. Изготовить шкатулку для хранения личных принадлежностей с выдвигающимся ящиком.
  5. Разработать механизм для автоматического выдвижного ящика.
  6. Встроить изготовленный кодовый замок в шкатулку.
  7. Отладить работу всех компонентов изделия.

Оснащение и оборудование, использованное при создании работы

  • Плата Arduino UNO,
  • макетная плата,
  • DVD-привод,
  • держатель для 6 пальчиковых батареек,
  • MP3-модуль,
  • динамик, тактовые кнопки,
  • соединительные провода, пенокартон,
  • клей универсальный, саморезы

Описание

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

Реализацию самого замка было решено осуществить на основе микроконтроллера Arduino Uno по ряду причин: 

  1. простота,
  2. доступность,
  3. надёжность, 
  4. многофункциональность.

Замок имеет восьмизначный код, который предварительно установлен в память устройства. Ввод комбинации осуществляется при помощи пяти клавиш управления с функциями:

  1. изменение «активного символа» назад (влево);
  2. значение на 1 меньше;
  3. значение на 1 больше;
  4. изменение «активного символа» вперед (вправо);
  5. подтверждение ввода.

Также имеется кнопка для закрытия выдвижного ящика при его открытом состоянии.

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

 

Реализовано звуковое сопровождение действий пользователя при помощи дополнительного модуля для воспроизведения звуковых файлов и динамиков от старого сломанного ноутбука.

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

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

Механизм замка работает от шести пальчиковых батареек АА. Однако планируется перевести его на литий-ионный аккумулятор (Li-ion), который широко распространён в современной бытовой электронной технике и находит своё применение в качестве источника энергии в электромобилях и накопителях энергии в энергетических системах.

 

Весь программный код замка на языке C++ доступен в приложении. Здесь же представим основные этапы алгоритма программы.

В самом начале программы создаются и инициализируются все необходимые библиотеки и переменные. В замке используется символьный дисплей, для которого необходима специальная библиотека LiquidCrystal. Сюда также входят и массивы для хранения парольной комбинации цифр.

Далее идёт код обработки нажатия клавиш и подачи нужного напряжения на аналоговый вход. В зависимости от уровня напряжения на аналоговом входе нужная переменная принимает определённое значение.

Для работы с массивом и выводом соответствующего изображения на экране прописаны условия с необходимыми действиями. Например, уменьшение значения на 1 при нажатии на кнопку достигается при помощи вычитания единицы из активной ячейки массива «enter». Приведём фрагмент кода:

 

If (button2 == HIGH){ 

    enter[curPos] = enter[curPos] - 1;

    if (enter[curPos] == -1){

      enter[curPos] = 9;}

      lcd.print(enter[curPos]);

    delay(200);}

 

Массив «enter» хранит пароль, который вводит пользователь, а массив «password» – ключевую комбинацию.

Когда массив «enter» с парольной комбинацией полностью заполнен, то производится сравнение с массивом «password», хранящим верный пароль. Если они совпадают, то на экран выводится надпись о правильном вводе пароля «Congratulations! Correct password!», затем срабатывает механизм открытия замка (серводвигатель) с воспроизведением соответствующего звукового сигнала через пьезоэлемент, и включается лампочка освещения. При несовпадении комбинаций звучит альтернативный звуковой сигнал, на экран выводится надпись «Error! Wrong password!» и замок не открывается. При этом программа ждёт 5 секунд, после чего сбрасывает комбинацию.

Результаты работы/выводы

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

В перспективе планируется записать голосовое сопровождение действий пользователя и создать систему установки сброса пароля.