Arduino, watchdog, bootloop и прошивка загрузчика optiboot

Watchdog

Watchdog

Как вам может быть известно, Arduino (а вернее, микроконтроллер на плате) поддерживает watchdog (сторожевой таймер) который позволяет установить промежуток времени, через который микроконтроллер будет перезагружен, даже если программа зависнет. При этом, сторожевой таймер может быть сброшен программно. Схема работы примерно следующая: «взодим» таймер на некоторое количество секунд, а далее в основной программе постоянно обнуляем счётчик, если всё идёт нормально. Как только мы перестанем обнулять счётчик (а это и может означать зависание), контроллер автоматически перезагрузится по истечению заданного времени. Однако, работа с watchdog должна поддерживаться загрузчиком платы. Дело в том, что после перезагрузки, которая была вызвана watchdog, контроллеры последних выпусков оставляют включенным сторожевой таймер на минимальный период, т.е. 15ms. Это нужно для того, чтобы была возможность внутри программы узнать, что перезагрузка была по watchdog.Поэтому первоочередная задача загрузчика — сохранить информацию о том, что перезагрузка была «неожиданной» и сразу же выключить сторожа. Если этого не сделать, то система уйдет в bootloop, т.е. будет вечно перегружаться. Как известно, в Arduino есть специальный загрузчик, который выполняется в первую очередь после перезагрузки системы. И, к огромному сожалению, стандартный загрузчик не сбрасывает watchdog! Таким образом, система заходит в жестокий bootloop (состояние «crazy led», при котором светодиод на 13-м пине мигает как сумасшедший). Из статьи вы узнаете, как проверить загрузчик своей платы на поддержку watchdog и что делать, если он не поддерживается.

Читать далее

Перенос rootfs banana pi на HDD

banana

Banana pi — это одноплатный компьютер, очень похожий на raspberry pi, но не являющийся ее клоном. Я использую банану для файлового хранилища, потому что плата сильно выигрывает по производительности у raspberry в задачах обмена данными между диском и сетью, а еще банана оборудована sata разъемом и позволяет подключить жесткий диск. Ну а подключив hdd возникает соблазн перенести образ корневого раздела на диск и загружаться с него. В статье расскажу, как перенести корневой раздел на жесткий диск и почему все другие инструкции устарели и не работают. Купить Banana pi у проверенного мной продавца вы можете здесь. А вот ссылка на набор комплектующих для banana pi по адекватной цене.

Читать далее

Подключение радио-модуля NRF24 к ардуино

Радиомодуль NRF24L01

Радиомодуль NRF24L01

Нередко возникают задачи, связанные с необходимостью получать данные от датчиков, находящихся на значительном удалении от управляющего устройства. Простое решение: протянуть пару десятков метров провода. Но в реальности это не всегда возможно. Длинные провода подвержены наводкам. Кроме того, подача питания по длинным проводам часто невозможна из-за высокого сопротивления проводника. Поэтому, источник питания всё равно приходится размещать в непосредственной близости от датчика. О необходимости прятать провода для минимальной эстетической привлекательности тоже не стоит забывать. Всё это подталкивает нас к идее обойтись вовсе без проводов, а именно построить систему передачи данных по радиоканалу. Существует и недорогое решение для беспроводной связи: радио-модуль на базе чипа NRF24. О подключении и работе с одной из разновидностей такого чипа и пойдёт речь в статье. Модуль стоит всего 1 доллар. По ссылке модуль можно купить с бесплатной доставкой у проверенного мной продавца. Или можно купить сразу десяток модулей. Тогда ещё дешевле.

Читать далее

Цветное многострочное приглашение командной строки

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

Это временно изменит ваше приглашение на трёхстрочное и вы сможете попробовать его в деле. Сделайте пару переходов по каталогам. Оцените удобство «длинной» версии пути до текущего каталога у вас перед глазами. Понравилось? Тогда добро пожаловать в статью, там всё разложено по полочкам. Ну а если не понравилось, просто закройте терминал. После перезапуска восстановится ваше обычное приглашение командной строки.

Читать далее

Автоматический переводчик выделенного текста в Ubuntu

Результат перевода

Результат перевода

Здравствуйте! Началось всё с того, что я узнал о утилитке xsel, которая с опцией -o выводит содержимое мышиного буфера обмена (ну тот самый, который «выделил — нажал среднюю кнопку мыши») в STDOUT. Немедленно возникло жгучее желание использовать это знание во благо. Немного поразмыслив я неожиданно понял, что нащупал решение давней проблемы, возникающей при чтении англоязычных статей. Я не могу похвастаться высоким уровнем знания языка, но рабочие задачи заставляют читать англоязычную документацию, что заметно подтянуло уровень. Однако, часто встречаются слова ради которых приходится лезть в переводчик. И это не очень удобно. Как можно заметить на скриншоте, проблему я успешно решил, а в этой статье расскажу об этом подробнее. Читать далее

Как работать с беспаечной макетной платой.

Беспаечная макетная плата

Беспаечная макетная плата

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

Читать далее

Подключение жидкокристаллического дисплея к Arduino

ЖК дисплей

ЖК дисплей

При создании собственного устройства не редко возникает необходимость оперативного вывода разнообразной информации. Например, если вы создаёте контроллер умного дома, то разумно оснастить прибор устройством вывода, позволяющим быстро узнать текущее состояние систем. Лучшим решением является жидкокристаллический дисплей. Энергопотребление при отключённой подсветке минимально а работа с дисплеем предельно проста и не требует сильного вмешательства в код программы. Фактически, вывод информации на ЖК дисплей не многим отличается от вывода в серийный порт. В статье рассмотрено подключение знакогенерирующего дисплея на базе популярного чипа HD44780 к контроллеру Arduino.

Читать далее

Подключение и использование SD карты c Arduino

SD модуль

SD модуль

Постоянная память, доступная пользователю на самой «навороченной» плате Arduino Mega всего 4 килобайта. Arduino Nano имеет всего 1 килобайт памяти. Этого хватит для запоминания нескольких переменных. А что если возникает задача, в которой необходимо хранить большие объёмы данных? Например, историю изменения температуры или телеметрию квадрокоптера? Идеальное решение проблемы — подключение к контроллеру SD карты. Вы получаете практически неограниченный объём для хранения любой информации. SD карту можно подключить к Arduino напрямую, припаяв провода прямо к контактам карты. Однако, проще и удобнее воспользоваться специальным модулем для работы с SD картой. В статье рассказано о подключении такого модуля к различным платам Arduino и работе с самой SD картой. Заказать модуль у проверенного мной продавца вы можете здесь.

Читать далее

Транзистор

Транзистор IRF530

Транзистор

Транзистор — полупроводниковый прибор позволяющий с помощью слабого сигнала управлять более сильным сигналом. Из-за такого свойства часто говорят о способности транзистора усиливать сигнал. Хотя фактически, он ничего не усиливает, а просто позволяет включать и выключать большой ток гораздо более слабыми токами. Транзисторы весьма распространены в электронике, ведь вывод любого контроллера редко может выдавать ток более 40 мА, поэтому, даже 2-3 маломощных светодиода уже не получится питать напрямую от микроконтроллера. Тут на помощь и приходят транзисторы. В статье рассматриваются основные типы транзисторов, отличия P-N-P от N-P-N биполярных транзисторов, P-channel от N-channel полевых транзисторов, рассматриваются основные тонкости подключения транзисторов и раскрываются сферы их применения.
Читать далее

Как подключить сдвиговый регистр к Arduino (или увеличиваем число выводов микроконтроллера)

Микросхема сдвигового регистра

Микросхема сдвигового регистра

Рано или поздно каждый начинающий схемотехник, перейдя от простых обучающих примеров к реальным задачам задается вопросом: где же взять столько выходов микроконтроллера, сколько нужно? После подключения одного светодиода встает вопрос — а как подключить пять? десять? двадцать? Стандартных 14 выходов на Arduino Nano или даже 54 наArduino Mega легко может не хватить для решения прикладных задач. Неужели придется покупать еще один микроконтроллер, думать о синхронизации двух устройств? Конечно нет. Существует элегантное решение проблемы недостатка выводов — выходной сдвиговый регистр (например, микросхема 74HC595).

Читать далее