Прошивка AVR (ATMEGA328) различными программаторами (в том числе и из-под Arduino)

Мир «Arduino» чрезвычайно разросся за последние несколько лет. Еще, казалось бы, совсем недавно возможность собрать что-то из цифровой электроники своими руками представлялось фантастической идеей, воплотить которую могут, пожалуй, только гении, то сегодня соединить несколько датчиков между собой и записать программу в микроконтроллер может почти любой с руками растущими чуть выше пояса. В сети полно ресурсов ломящихся от мегабайтов полезных статей о том, как запрограммировать тот или иной алгоритм под Arduino (тут, конечно, стоит понимать, что в экосистему Arduino попадают далеко не только оригинальные платы от итальянцев). А вот если вам захочется копнуть немного дальше и глубже, то вы столкнетесь с информационным вакуумом, отделяющим мир обычных любителей от мира продвинутых электронщиков. И, казалось бы, между этими двумя мирами — настоящая пропасть, перешагнуть через которую отважится не каждый. Но я попробовал, получилось и возникло желание как-то зафиксировать свой опыт, дабы в последствии им можно было бы делиться с окружающими или же вернуться к записи и освежить воспоминания, если вдруг что-то позабылось.

Итак, в качестве хобби я решил разработать для своей компании электронное устройство с «сердцем» в виде микропроцессора ATMEGA328P. Да-да, именно на основе той микросхемы, что применяется в Arduino. Только вот никакой обвязки вокруг микросхемы нет. В ней некуда подключать USB, полностью отсутствует и внешний стабилизатор питания, не говоря уже о каких-либо индикаторных светодиодах. И это чудо как-то нужно программировать, как-то заливать в него свою прошивку, как-то оживлять. Я уделил данному вопросу некоторое внимание в своей статье по детальному анализу среды разработки Arduino «Arduino IDE: разбираемся с меню Tools и некоторыми другими функциями», а в этой статье я лишь продолжу изыскания по своим наработкам.

atmel studio, blink, arduino, assempler, c++, c/c++, open, file, version7

Интерфейс Atmel Studio с импортированным Blink из Arduino

Прошивать ATMEGA можно при помощи Atmel Studio, специальной среды разработки для AVR. Среда обладает неплохим набором инструментов для полноценной разработки чего-либо под фирменные микроконтроллеры. В 7-й версии «из коробки» доступно создание проектов на С, С++ и на Assembler. Более того, возможно создание проекта из скетча Arduino. При всем при этом у разработчика в руках оказывается отладчик, с возможностью дизассемблирования кода, просмотра всех регистров и любого уголочка памяти микроконтроллера. Прямо-таки золотая мечта любого ардуиниста. А если учесть, что программировать и отлаживать код, в большинстве сценариев, можно на эмуляторе микроконтроллера, то очевидно, что Atmel Studio кроет Arduino IDE с заметными преимуществами. Но… Atmel Studio — профессиональный инструмент и для подавляющего большинства энтузиастов окажется слишком затратным по времени для изучения. Поэтому дальше речь пойдет больше про Arduino IDE в связке с AVRDUDE. Тем не менее, если вы вдруг, после знакомства с Atmel Studio почувствовали нестерпимый зуд от желания познакомиться с этой IDE поближе, то You Are Welcome. А мы же продолжим далее.

Читать далее ...



Arduino: один скетч под несколько платформ

Мир DIY на основе экосистемы Arduino цветет и пахнет. Количество плат, совместимых с Arduino становится все больше и больше. Какие-то платы полностью совместимы с Atmel AVR, какие-то имеют существенные отличия. Да и среди микроконтроллеров AVR могут быть значительные несоответствия, которые необходимо учитывать, если требуется написать скетч или библиотеку, которые должны без проблем работать на разных аппаратных платформах.

robot, франкенштейнРазличия между микроконтроллерами и платформами обычно заключается в следующих моментах (список далеко не полный):

  • Конкретные пины у разных микроконтроллеров могут иметь различные функции. К примеру, на одном микроконтроллере пин за номером 1 умеет делать PWM, а на микроконтроллере другого типа нет.
  • Могут различаться разрядности АЦП (используем для analogRead) и ЦАП (используем для analogWrite, т.е. для ШИМ). На одном микроконтроллере разрядность 8бит (изменение от 0 и до 254), на другом 10бит (измерение от 0 и до 1023), а на третьем 12бит.
  • Могут кардинально различаться даже способы указания пинов. Так, для Atmel AVR применяется просто числовое указание пинов 1, 2, 3 и т.п. А для экосистемы ESP используется наименование пинов D1, D2, D3 и т.п.

Если вы разрабатываете библиотеку или же скетч, которые должны нормально использоваться на разных платформах или же с разными микроконтроллерами, то имеет смысл данную возможность заложить, благо ее реализация вполне может быть осуществлена через так называемые макросы препроцессора компилятора.

Читать далее ...



Arduino IDE: разбираемся с меню Tools и некоторыми другими функциями.

Итальянцы молодцы. Запустили в мир DIY настоящего монстра. С появлением экосистемы Arduino весь рынок цифрового DIY получил мощнейший толчок. Тысячи, сотни тысяч, миллионы пользователей принялись покупать оригинальные и совместимые платы для их последующего программирования и использования в своих поделках. Причина такой популярности в первую очередь связывают с низким порогом для входа в эту среду. Вам не нужно тратить много денег на приобретение плат: открытый стандарт дал дорогу на рынок множеству последователей и копировщиков. Вам так же не стоит сильно заморачиваться над программированием: поставляемая «в комплекте» Arduino IDE упрощена настолько, насколько это возможно. Пользователь просто пишет код и не задумывается о настройках компилятора, о том, что программировать при помощи Arduino IDE можно разными программаторами, а иногда и вообще голые микросхемы.

И вот, наступает момент, когда стандартная Arduino IDE становится тесновата, а ее неудобство начинает просто выбешивать, особенно, если пользователь знаком с более продвинутыми средами разработки по другим платформам и языкам программирования. Кто-то начинает мигрировать на что-то более интересное, например, на Atom или VS.Code в смеси с PlatformIO, а кто-то старается выжать из Arduino IDE все, что только можно.

Сегодня я выступлю как раз в роли подобного «особо интересующегося персонажа» и попробую вместе с читателем разобраться чуть-чуть побольше в тонкостях Arduino IDE. Все ниженаписанное более-менее соответствует версии 1.8.9 Arduino IDE.

Читать далее ...



Как собрать велосипед самостоятельно…

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

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

Кстати, все ниже и вышеописанное ни в коей мере не относится к велосипедам класса «ашанбайк». Речь идет о более-менее нормальных велосипедах, пригодных для длительной эксплуатации с ожидаемым уровнем удовольствия от катания на «классном» аппарате.

Читать далее ...



При помощи чего удобно закачивать прошивки в модули ESP8266 от Ai-Thinker под Arduino и прочее?

Модули на основе ESP8266, пожалуй, мои безусловные фавориты, если речь идет об автоматизации с применением подключения по Wi-Fi. Модули обладают достаточной производительностью, чтобы работать в качестве самостоятельного контроллера, стабильны и дешевы. В основном я использую платки WeMos D1 Mini различных модификаций (просто Mini, Mini Lite, Mini Pro). В чем их преимущество кроме всего вышеперечисленного? Платки Mini невелики размером и программировать их можно просто подключив USB-кабелем к компьютеру. Но ведь не весь свет клином сошелся на WeMos, в природе существуют и другие производители, не менее популярные, например, Ai-Thinker.

esp, esp downloader, esp-downloader, esp8266, frogo pins

Два загрузчика прошивок и отладочные платы для ESP8266

Китайская компания Ai-Thinker точно так же, как и WeMos, подсела на модули ESP. В ее линейке на текущий момент не менее пятка модулей только на ESP8266, не говоря уже о более совершенных ESP32, да прочих GPS/LoRa устройств. Все они так же, как и продукция WeMos, дешевы и крохотного размера. Но есть у модулей от Ai-Thinker и определенные пользовательские недостатки. Они используют нестандартный шаг для ножек и никак не совместимы с распространенными штыревыми макетными платами. Более того, модули не имеют на борту интерфейса USB для легкого и безболезненного подключения к персональному компьютеру. Оба этих фактора вызывают мучительную боль, не дающую нормально сосредоточиться именно на разработке, вместо этого приходится заниматься сборкой программатора и прилаживанием контактов. Разумеется, производитель предлагает схему и способы подключения своих модулей, но очень не хочется изобретать каждый раз все заново. Тем более что у меня так и не запустилась предлагаемая схема.

Читать далее ...



Интернет-радио на основе Raspberry Pi. Проект длинною в полтора года.

internet-radio, raspberry, bbk, колонки, картина

Общий вид интернет-радио на Rasberry Pi

Некоторое время тому назад я купил одну плату Raspberry Pi 3 Model B. Побаловался с ней немного, но так и не решил, что же с ней такого можно сделать. Полезного и нужного. Для средств домашней автоматизации с головой хватает ESP8266, а для более серьезных задачек есть микросервера. Так и валялась плата у меня в столе, а я мучался в тщетных попытках придумать и сделать с ней хоть что-то.

И валялась она ровно до тех пор, пока я не наткнулся на проект по реализации интернет-радио как раз на платах семейства Raspberry Pi. Проект реализуется компьютерным энтузиастом и профессиональным программистом Бобом Ратбоном и насчитывает далеко не одну реализацию. Идея мне показалась весьма интересной. В моей загородной резиденции уже давно просится на покой старенькая мини-система от BBK, да и с радиоприемом в удалении от города есть некоторые проблемы. Интернет ловится отлично, а радио с ужасными помехами.

Ну, что же – решено, делать радио, так делать.

Читать далее ...



Отличная коптилка горячего копчения для мангала своими руками

Еще каких-то 30 лет тому назад горожане выезжали на свои дачные участки исключительно чтобы позаниматься сельским трудом, повыращивать картошку, морковку, да прочие углеводы. А вот нынче… Нынче мало кто утруждает себя копанием грядок. В гамаке полежать, газон покосить, да шашлычка пожарить, вот и весь досуг. И так выходные за выходными, месяц за месяцем и до того момента, как надоедает даже банальный шашлык. Хочется чего-нибудь эдакого.

коптильня, дешевая, решетка, крышка, металл

Одна из самых примитивных коптилень. Фото с ozon.ru.

Вот в качестве эдакого некоторые из дачников пристрастились к процессу копчения. Наберешь рыбы, грудинки, цыплят. Засунешь все это в коптильню, насыпаешь щепы ольховой или другого какого древа, дающего вкусный дымок. И на мангал, где уже горит огонек. Спустя час или два, в зависимости от условий копчения, истомившемся гостям подается очередной деликатес с дымком. А особо продвинутые коптильщики умудряются изготовлять в коптильне десерты. Мясные, вкуснейшие десерты. Которые преподносятся в самом конце застолья в качестве вершины эталона мастерства доморощенного повара.

Приобщиться к братству коптильщиков может любой. Достаточно только сгонять в местные промтовары и прикупить металлический ящик, гордо носящий имя «коптильня» и стоящий несусветных денег. И именно тут начинается проблема, с которой сталкивается, наверное, каждый начинающий коптильщик. Купить хорошую коптильню за разумные деньги практически невозможно.

Читать далее ...