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.

Читать далее