Tag Archives

9 Articles

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 IDE на Ubuntu 18

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

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

Управляем элементом бегущей строки Adafruit с Arduino. Часть 2. Программирование

Управляем элементом бегущей строки Adafruit с Arduino. Часть 2. Программирование

В прошлой части, мы разобрались как подключить элемент бегущей строки к arduino mega напрямую, но если включить эту конструкцию — всё что вы увидите, это засвеченную полоску зелёного цвета (или какого повезёт). Теперь попробуем накидать программу в arduino IDE, и посмотреть как можно использовать эту бегущую строку. дисплей arduino adafruit

Для начала нужно установить две библиотеки для нашего дисплея, скачать их можно на гитхабе.

Posted by lex232 on

Управляем элементом бегущей строки Adafruit с Arduino. Часть 1. Подключение

Управляем элементом бегущей строки Adafruit с Arduino. Часть 1. Подключение

Недавно я штудировал китайские сайты на предмет светодиодных матриц, которые можно было бы использовать как глаза робота. Нашёл на алиэкпресс версию с хорошим разрешением 64х32 пикселя и небольшими габаритами. До его прихода в Россию, особо в рунете информации по использованию не нашёл, смотрел библиотеки adafruit, и пытался компилировать в среде arduino разные примеры. Как только панель пришла, я растерялся в вариантах её подключения, потому-что это был китайский клон.дисплей от бегущей строки 64 32 пикселяВсё, что полезного я тут нашёл из подсказок — это IN, VCC и GND. Вот здорово! Теперь то всё ясно. Но не отчаиваемся и идём на сайт adafruit.