Практический замок на Arduino UNO и RDM6300

Тема в разделе "Посоветуйте детальки", создана пользователем AndroT, 17 июл 2017.

  1. AndroT

    AndroT Guest

    Приветствую всех знатоков своего дела!
    Имеется в наличии Arduino UNO и модуль для чтения/записи радио меток на частоте 125 кило Герц RDM6300.
    Стоит вопрос и задача сделать на их базе замок со следующей логикой действия:
    Во первых должна быть простая возможность добавлять и удалять коды ключей из памяти.
    Во вторых при совпадении кода ключа с базой должен вращаться электромотор через раз в прямом и обратном направлении.
    То есть при закрытом замке во время поднесения ключа замок должен открыться, а при открытом замке наоборот, во время поднесения ключа замок должен закрыться.
    Не судите строго, кто то подумает что я сразу стал создавать тему не поискав в интернете.
    Я конечно искал, и нашел много тем где обсуждалась работа подобного замка, но к сожалению не было ни одного с точно такой логикой действия, а я хорошо разбираюсь в железе, но никак не в программировании и микроконтроллерах. Поэтому я предпочел задать этот вопрос именно здесь со специалистами, и не тратить время на сомнительных сайтах с просто копирующими код программы людьми, таких же как и я не очень понимающих этого дела. Прошу высказать свое мнение и дать совет!
     
    Student нравится это.
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    Не надо пытаться сделать все сразу. Разбивай на подзадачи по приоритету.
    1. Работа с картой - получение ID карты, сравнение с "эталоном" (пока только один ID, жестко записанный в ПО).
    2. Управление мотором: вращение в одном направлении по событию с карты. Смена направления вращения (вообще элементарно).
    3. Реализация логики "добавлять и удалять коды ключей из памяти".

    Что из этого уже работает, и понятно как именно работает?
    Без самостоятельного выполнения ( =понимания ) к следующему шагу не переходить.
     
  3. AndroT

    AndroT Guest

    Спасибо за ответ!
    Интересный подход. У меня получилось первое, из примеров в интернете, только я не совсем понимаю как это работает.
    На счет второго - у меня не сервопривод, а обычный мотор с драйвером изменения направления движения, который во время работы должен включатся скажем на 0.3 секунды. Также есть некоторые датчики в замке: 1. Разрешающий закрывание (и только, не открывание!) замка по карточке, что бы случайно не остаться за дверью без ключа. 2. Определяющий что замок закрыт и запрещающий повторное вращение двигателя в закрывающем направлении. 3. Определяющий попытку взламывания двери физическим усилием.
    И еще вопрос, так как в каждом направлении двигатель должен вращаться через раз при поднесении ключа, то что будет если ключ долго держать возле считывателя, не вызовет ли это последовательное закрывание- открывание замка. Да, и нужна разная световая и звуковая индикация во время закрывания и открывания замка.
     
    Student нравится это.
  4. CYITEP_BAC9I

    CYITEP_BAC9I Гик

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

    логика в принципе тоже не сложная. если вы выходите из дома, явно нажмете кнопку открыть замок, (это и будет одним из условий). Затем сработает датчик открытия двери(второе условие) если после этого дверь закрыта и приложили метку. ==> то закрыть замок. если замок закрыт и приложить метку то открыть. что бы не было повторного срабатывания. можно таймер поставить в код, чтоб если есть совпадение, то не принимать карточки ... секунд. или как условие поставить , если приложили метку, открыть замок и ничего не делать, пока не получим сигнал от датчика, что дверь была открыта закрыта + 20-30сек. по крайней мер,е я так себе замок собираюсь делать. Кот пока не писал(некогда).

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

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

    rkit Гуру

    Что-то я упустил вопрос
     
  6. AndroT

    AndroT Guest

    Приятно общаться с умными людьми, вы правильно проследили ход моих мыслей. Крайне не рекомендую использовать сервопривод и двигать им ригель замка. Поделюсь с Вами моим опытом. У меня нет проблем в плане железа, все готово и все работает, нужна только система контроля и управления. На моей работе я имею дело с промышленными электронными замками высокого качества. Я детально изучил принцип их работы и по ихнему образу переделал мой домашний замок добавив в него механизм блокировки и указанные датчики. А работает это следующим образом: механизм на основе двигателя и червячной передачи блокирует ригель замка, а не двигает его напрямую. Первый датчик срабатывает на выдвижение ригеля, после чего разрешается включение механизма и блокировка. Второй датчик определяет блокировку ригеля механизмом, это как бы концевик на движении блокиратора, но для надежности по любому нужно ограничить время вращения двигателя определенным интервалом, достаточным для запирания или открывания блокиратора. Третий датчик реагирует на поворот ключа в любом направлении и включает тревогу или передает сообщение владельцу если до насильного действия не была приложена метка. Я реализовал все это на логических микросхемах и на пульте дистанционного управления, но нужно переделать под радио метки на базе ардуино. К сожалению я не разбираюсь в микроконтроллерах и их программировании.
     
    Student нравится это.
  7. rkit

    rkit Гуру

    По-вашему, это вопрос? Я это даже за синтаксически корректный отрывок предложения засчитать не могу. Попробуйте еще раз.
     
  8. AndroT

    AndroT Guest

    Как добавлять и удалять коды ключей из памяти?
    Какой должна быть программа что бы при совпадении кода ключа с базой вращался электромотор через раз в прямом и обратном направлении?
     
  9. rkit

    rkit Гуру

    Если вы хотите, чтобы за вас написали код, то готовьте деньги, и пишите подробное задание с подробным и пошаговым описанием всего функционала и железа.
     
  10. rkit

    rkit Гуру

    Стоимость после задания. Договор - ради бога.
     
  11. koteika

    koteika Гик

    Конечно не нашел. Халява она такая.
     
  12. koteika

    koteika Гик

    Это на эту свистоперделку лицензия то нужна была?:eek::eek::eek:
     
  13. koteika

    koteika Гик

    Я не думаю, что кто либо больше тут даст вам каких полезных советов.
    Людей которые так резко заходят в какое либо сообщество и пытаются что-то шатать, ну вы сами знаете.
     
  14. akl

    akl Гуру

    интересно, а банкоматы на ардуино уже кто-нибудь делал?
     
  15. koteika

    koteika Гик

    Банкоматы наврятли. Проще пк поставить.

    А вот вендинговые автоматы, для продажи напитков и т.д., возможно делали и делают.
     
    AndroT нравится это.
  16. AndroT

    AndroT Guest

    Нашел вот такой скетч, но он не компилируется, выдаются ошибки. Взгляните пожалуйста что там не так:

    Ардуино и карты доступа
     
  17. CYITEP_BAC9I

    CYITEP_BAC9I Гик

    там работа идите с софтсериалом значит одна из пустых строк должна быть
    Код (C++):
    #include <SoftwareSerial.h>.
    а что автор имел ввиду под
    Код (C++):
     #include //Библиотека работы с памятью
    без понятия так как глянул скетч и с еепромом там работы нет. я пока знаю только <EEPROM.h>
     
    Последнее редактирование: 31 июл 2017
    AndroT нравится это.
  18. AndroT

    AndroT Guest

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

    CYITEP_BAC9I Гик

    там похоже идет библиотека типа
    Код (C++):
    #include <avr/pgmspace.h>
    . но один фиг не компилируется. вообще для SoftwareSerial написать код относительно несложно. Другое дело что кто это сделает. ) попробуйте еще скетчи поискать особенно на англоязычной стороне
     
    AndroT нравится это.
  20. b707

    b707 Гуру

    Понятно, что он и не будет компилироваться- посмотрите на предпоследнюю строчку, там при вставке в HTML половина символов пропала. Может. есть и другие ошибки - не проверял
     
    AndroT нравится это.