Yearly Archives

13 Articles

Posted by lex232 on

Контроль доступа. Часть 6. Подключаем зуммер

Контроль доступа. Часть 6. Подключаем зуммер

Будет достаточно проще пользоваться устройством, если мы реализуем звуковое сопровождение, подключим зуммер к нашей плате. У нас немного поменялось расположение элементов, поэтому обновим несколько директив #define, а конкретно зуммер подключим к ШИМ выходу arduino. (Полный код, как обычно будет в конце статьи)

Posted by lex232 on

Контроль доступа, часть 5. Алгоритм сброса и первого старта программы через джампер в Arduino.

Контроль доступа, часть 5. Алгоритм сброса и первого старта программы через джампер в Arduino.

В прошлый раз, мы сравнивали введённый пароль с паролем, который был записан во flash память контроллера. Но ведь известно, что эту область памяти нельзя изменить в процессе работы устройства, и для хранения таких данных нужно бы использовать EEPROM. Сегодня разберём, как можно делать аппаратный сброс, где и как хранить эти данные, как реализовать первичный запуск устройства, с заданием характеристик. Самое простое, что мы можем использовать для сброса — джампер.

Posted by lex232 on

Знакомимся с EEPROM AVR в Arduino IDE.

Знакомимся с EEPROM AVR в Arduino IDE.

Самое время вспомнить, что при перезагрузке arduino теряет сохранённые данные. Конечно, мы можем вписать пароль, который будет верифицирован, в тело программы, но если потом пользователь захочет поменяеть его? Для этого в arduino есть ячейки энергонезависимой памяти eeprom. Расшифровывается, как Electrically Erasable Programmable Read-Only Memory, т.е. дословно, энергонезависимая память. Отличается от ПЗУ, в которой хранится программа тем, что в исходном коде в процессе работы устройства изменения без программатора сделать нельзя, а в eeprom — можно. Значит мы можем менять пароль в процессе работы устройства, а также хранить данные карт памяти и другие параметры.

Posted by lex232 on

Контроль доступа. Часть 4 — алгоритм ввода чисел с клавиатуры.

Контроль доступа. Часть 4 — алгоритм ввода чисел с клавиатуры.

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

Posted by lex232 on

Контроль доступа. Часть 3 — Управляем замком и читаем кнопку.

Контроль доступа. Часть 3 —  Управляем замком и читаем кнопку.

В предыдущей статье, мы рассмотрели, как уйти от простой команды delay();. Предлагаю убрать дребезг кнопки открытия двери нашим новым кодом, с использованием millis. Просто будем опрашивать кнопку раз в 70 мс, чаще смысла нет, потому что физически нажать кнопку на более короткое время, учитывая дребезг контактов практически невозможно. Но сначала зададим переменные, которые мы будем использовать для организации ожидания.

                        // Переменные времени
uint8_t  buttonTime;    // Переменная времени дребезга кнопки открытия
uint16_t openLockTime;  // Переменная времени задержки открытия времени замка
uint16_t openTime;      // Время открытия замка
Posted by lex232 on

Контроль доступа. Часть 2 — Работаем с задержками без delay() на arduino.

Контроль доступа. Часть 2 — Работаем с задержками без delay() на arduino.

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

Posted by lex232 on

Open-source система контроля доступа. Часть 1 — опрос матричной клавиатуры на arduino

Open-source система контроля доступа. Часть 1 — опрос матричной клавиатуры на arduino

Подумал, что интересно будет не только делать уроки, а сразу делать реальное изделие, которое можно применить в жизни. По основной работе я занимаюсь системами безопасности, и очень часто работаю с системами контроля доступа. Я работал с Болид, z5r, z5r web, и т.д. Какие-то системы невероятно сложные в установке и настройке (Болид привет), каким-то не хватает стабильности и функционала.

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

Posted by lex232 on

Зажигаем светодиод в Arduino на ассемблере, изучая даташит на МК.

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

Понимая работу команд на низком уровне, можно будет разобраться с ошибками, которые выйдут за пределы стандартных уроков, когда вы будете конструировать что-то своё. И так, наша подопытная плата будет Arduino Uno, а в её сердце находится atmega328, это 8-битный микроконтроллер AVR. Откроем даташит на неё, и посмотрим ключевые моменты, которые могут нам помочь начать ориентироваться в этой микросхеме.

Posted by lex232 on

Установка Arduino IDE на Ubuntu 18

Всем привет! В своём блоге, я пишу в основном о путешествиях, но также я плотно увлекаюсь робототехникой и схемотехникой, и хотелось бы иногда писать об интересных решениях, связанных с этой областью. Начнём с установки arduino ide на ubuntu, которую я использую как основную на своём ноутбуке. К сожалению, по основной работе я много работаю с аппаратурой, для которой требуется Windows, поэтому полностью отказаться от этой системы не могу. Ранее я это делал из маркета приложений, или мне так казалось по старой памяти, но в этот раз я ардуино тут не нашёл. Быстро нашёл мануал по установке на официальном сайте, и всё сделал, правда пара моментов всё-таки отличалось, может из-за версии 18. Сначала переходим на страницу загрузок

Установка Arduino IDE на Ubuntu 18
Posted by lex232 on

Милан, и дорога до Модены. Супер квартира на AirBnb

Милан, и дорога до Модены. Супер квартира на AirBnb

В Милан мы добрались поздно, хотя и слегка нарушали скоростной режим. Наш air bnb хост дождался нас, за что ему спасибо, быстро заселил, и всё рассказал. Квартира оказалась отличная, с двумя спальнями и комфортной кухней, что нам и требовалось после дороги.Милан, и дорога до Модены. Супер квартира на AirBnbПорадовал раздельный сбор мусора внутри квартиры, за такие вещи я обожаю европейцев, это очень круто.