Из заметки Как собрать Arduino прямо на макетной плате вы можете помнить, что Arduino так легко и просто программируется благодаря залитому в его микроконтроллер бутлоадеру. Но использование бутлоадера не всегда удобно, так как он занимает лишнюю flash-память в микроконтроллере, тормозит при его запуске, не говоря уже о том, что в новые микроконтроллеры его нужно каждый раз прошивать. И ведь можно обойтись без него, если один раз обзавестись программатором.

На конференции ZeroNights, которая состоялась в прошлом ноябре, можно было получить особый бейдж — печатную плату в форме логотипа конференции, матрешки. Он также известен, как ZeroNights Badge или ZeroBadge. Мне лично бедж достался за вроде как интересные вопросы на митапе r0 Crew. Как выяснилось, ZeroNights Badge представляет собой плату Arduino Leonardo, ту, что на базе микроконтроллера ATmega32U4. Такой модели Arduino у меня не было, да и поупражняться лишний раз в пайке поверхностным монтажом я был не против, поэтому я решил впаять в бейдж недостающие компоненты.

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

После знакомства с Arduino вы могли заметить, что в некоторых аспектах это устройство не очень-то удобно. Лично у меня провода между Arduino и макетной платой постоянно отваливаются, да и места эта конструкция занимает многовато. К счастью, микроконтроллер ATmega328P, на базе которого работает Arduino Uno, можно легко извлечь из устройства. Нужно только воткнуть под него пинцет сначала с одной стороны, а затем с другой. Учитывая, что помимо ATmega328P в Arduino Uno не так уж много компонентов, интересно, удастся ли нам собрать свою Arduino прямо на макетке?

Поскольку теперь мы читаем электронную почту из консоли при помощи Mutt и сидим в IRC также из консоли благодаря Irssi, не говоря уже об использовании классики вроде Vim или Git, было бы неплохо обзавестись и консольным аудиоплеером. Соображения те же — удобно все делать хоткеями, одинаковые шрифты и тона для всех приложений, можно переживать перезапуск иксов в screen, и так далее. Консольных аудиоплееров существует много, но рассмотрим мы только один из них, cmus.

Это было неизбежно. Увлекшись электроникой, я должен был рано или поздно дойти и до программирования микроконтроллеров. А что может быть проще программирования AVR-микроконтроллеров в устройствах Arduino? Не удивительно, что начать я решил именно с них. Что же из этого получилось — читайте далее.

Нет причин не продолжить наше с вами изучение библиотек для языка C. Ранее в этом блоге рассматривались библиотеки libcurl, libpcap, а также некоторые сильно менее распространенные. Сегодня же мы узнаем, как программы на C могут работать с реляционными базами данных.

Сегодня мы познакомимся с очень полезными элементами, которые выполняют прекрасно знакомые всем программистам логические операции, типа AND, OR, XOR и NOT. В русскоязычной литературе эти компоненты называются логическими вентилями, а в англоязычной — logic gates. Соответствующие микросхемами называют микросхемами стандартной логики. Будучи выполненными по технологии CMOS, микросхемы маркируются, как 74HCxx, например, 74HC08, 74HC32, и так далее.

Не то, чтобы в использовании печатных плат с дорожками, как на макетной плате, было что-то зазорное. Просто это не очень удобно, так как дорожки приходится соединять проводами. Да и элементы на плате зачастую можно разместить куда компактнее, чем это позволяет макетная плата. Существуют готовые платы без дорожек, которые решают вторую проблему, но не решают, а скорее даже усугубляют, первую. К счастью, существуют проверенные временем способы изготовления печатных плат своими руками, один из которых, так называемый ЛУТ (в английском языке — TTM, Toner Transfer Method), и будет рассмотрен в данном посте.

После перехода на Arch Linux у меня возникла проблема выбора решения для шифрования домашнего каталога. Отсутствие шифрования — не вариант, потому что как минимум ноутбук могут украсть. Мне не хочется потом в панике бегать менять пароли и сбрасывать сессии на всех сайтах, от которых утекли куки. Сначала я попробовал encfs. Но это решение быстро потеряло все мои данные (не говоря уже про известную проблему с длинными именами файлов), поэтому от него пришлось отказаться. На Reddit многие посоветовали dm-crypt, на нем я в итоге и остановился.