Tag Archives

16 Articles

Posted by lex232 on

i2c передача данных между двумя arduino. Передаём числа float и int

i2c передача данных между двумя arduino. Передаём числа float и int

Часто по разным причинам не хватает одного контроллера в проекте, особенно в процессе прототипирования. Допустим, подключили вы на одну плату дисплей и тачпад, и он занял почти все выводы, аппаратную шину SPI, а какой-нибудь датчик отнимает всё время для вычислений. Нужно временно расшириться, ставим рядом ещё одну плату, но возникает логический вопрос – как передавать данные между ними?

Posted by lex232 on

Переход от прототипа Arduino к устройству на примере игрального кубика

Переход от прототипа Arduino к устройству на примере игрального кубика

В прошлой статье мы разобрали, что нужно для голого микроконтроллера, для его работы и как его прошить прошивкой от Arduino. Попробуем проделать это на практике. Чтобы завершить проект игрального кубика, мне нужно было уместить всю электронику в размер куба 4х4 см, т.е. плата должна была быть и того меньше. Вспомним, как у нас это выглядело на примере Arduino

Posted by lex232 on

Как перейти от Arduino к серийному образцу. Минимальная обвязка AtMega 328

Как перейти от Arduino к серийному образцу. Минимальная обвязка AtMega 328

Вот вы написали программу, и залили её в свой UNO. Всё великолепно работает, но такую громадную железку не запихнуть в миниатюрный корпус. Да и вдруг, вы хотите сделать 100 таких устройств, а зачем вам увеличение себестоимости, ведь на платах Arduino куча ненужного барахла.

Posted by lex232 on

Динамическая индикация в Arduino, на примере led-матрицы 8х8 + uln2803

Динамическая индикация в Arduino, на примере led-матрицы 8х8 + uln2803

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

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

Демоплата на AVR

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

демоплата аврК этой же плате мы подключили управление глазами-эмоциями робота, и в будущем подключим ещё и управление головы

154