Прошивка 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.

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



Добываем IPv6 из МГТС с ZTE F660 и Keenetic

Проблема с конечным количеством IPv4 адресов нахлынула на человечество в начале текущего тысячелетия. Бурное развитие компьютеризации, множество гаджетов и проникновение интернета во все дома и квартиры привели к тому, что для большинства домашних и корпоративных пользователей использование глобальной сети превратилось из обоюдного обмена в одностороннее скачивание. Причина тому исчерпание свободных IPv4 адресов глобального сегмента. Без "белого" или "публичного" IP-адреса ваш компьютер не будет доступен извне. Выйти в сеть и открыть страничку с сайта он сможет, а вот подключиться к нему из другого города без посредника уже никак. И все потому, что провайдер выдаст не белый (и пушистый) адрес, а "серый". Работать с которым можно только в "пользовательском" режиме. Ни тебе свой собственный web-сервер установить, ни игровой сервер запустить. Тоска в общем.

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

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



System error 1219 has occurred.

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

С тех пор не перфолент было испорчено, а программно-аппаратные комплексы, компьютеры с которыми мы работаем, стали на несколько десятков порядков более сложными. И ошибки в них возникают порой настолько экзотические, что решить их зачастую практически невозможно, так как легче переустановить заново Windows и сбросить Linux.

Перфолента винтажная

Перфолента винтажная

Именно о такой «ошибке» и пойдет дальше речь. Действие происходит в среде операционной системы Windows 10. Разрядность или редакция системы не имеет значения. При попытке подключения к сервису Samba удаленного сервера в локальной сети на Linux при использовании команды net use возникает ошибка множественного доступа:

System error 1219 has occurred.

Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again.

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



Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция.

Однажды, в студеную зимнюю пору, возникла у меня потребность в открытии некоторых ресурсов внутреннего сервера частной сети внешним пользователям. Сервер сам удобно расположился в скромной серверной на краю промышленной зоны, в предместьях небольшой подмосковной деревушки. Где из всего многообразия способов подключения к сети Интернет, доступен только 4G модем. Да и тот, изредка пытается перейти на сеть 3G, несмотря на могучую внешнюю направленную антенну.

В довесок к нестабильной связи, российские сотовые операторы, не желают раскошеливаться на современное аппаратное и программное обеспечение и, как следствие, пользователям доступны только IPv4 сети. Никаких IPv6 нет и в помине, да и не планируется в ближайшее столетие. Плюс все это находится за NAT провайдера. Другими словами, пробраться извне к серверу, расположенному в локальной частной сети, которая подключена к глобальной сети через частную сеть сотового оператора — задача, невыполнимая без использования посредника обладающего реальным IP-адресом. Если свой NAT на своем роутере еще можно как-то настроить для подключения извне, то с NAT провайдера поделать решительно ничего нельзя.

сервер, стрелка, молния, крей, модем

Типичная топология подключения в промзоне

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



Защищаем конфиденциальные файлы в Win10 при помощи шифрованной файловой системы (EFS)

Cool HazkerПредположим, что у вас есть компьютер под управлением Windows самой распоследней версии. Вы на нем играете в игры–стрелялки, пишите свою диссертацию, ведете бухгалтерию ИП по упрощенной системе, да и вообще, развлекаетесь, как можете. Но, вдруг, совершенно необоснованно вы начинаете чувствовать, что что-то извне угрожает безопасности некоторых данных, что хранятся на вашем персональном компьютере. Вы, с горячим взглядом, читаете многочисленные кибер-форумы и с ужасом понимаете, что все ваши данные на жестком диске никак не защищены. И если ваш любимый компьютер похитят, а риск хищения для портативной техники не такой уж и низкий, то злоумышленник сможет добраться до всего содержимого жесткого диска! О, моя бесценная диссертация!

Давайте попробуем разобраться, действительно ли можно получить несанкционированный доступ к файлам, если на компьютере работает операционная система Windows 10. Инженеры IBM, а впоследствии и Microsoft, потратили немало усилий на реализацию системы разделения прав для файловой системы NTFS (в бытность IBM это была HPFS). И если Win10 запущена на компьютере, то получить без разрешения доступ к чужим файлам очень и очень сложно, а в случае блокировки доступа и вовсе нельзя. Windows надежно охраняет файлы пользователей.

Но стоит только загрузиться в другую операционную систему, например, в Linux Mint, то все пользовательские файлы будут как на ладони. Качай что хочешь. А загрузиться в Mint можно хоть с флешки, хоть с CD-ROM, нужно только добраться до UEFI (BIOS) и активировать загрузку со съемных накопителей, если она не была активирована ранее, либо воспользоваться меню загрузки. Предположим, что вы поставили пароль на вход в UEFI и отключили выбор накопителя для загрузки как класс, тогда ваши файлы защищены немного сильнее. А злоумышленник может просто развинтить ваш компьютер, вытащить жесткий диск и подключить его к своему компьютеру, а затем скачать, все, что требуется. Ведь данные в виде файлов будут у него как открытая тетрадь на руках.

Специалисты от IT, знают, что несколько обезопасить данные в своем компьютере можно при помощи технологии BitLocker. BitLocker — штука хорошая, но позволяет шифровать только целиком разделы на дисках, либо физические, либо виртуальные. При этом обеспечивается сохранность ключей, в том числе и с хранением в модулях TPM. Что весьма удобно. Однако, шифрование целиком всего и вся, далеко не всегда удобно, хотя, безусловно, применение полного шифрования диска имеет определенный смысл. А вот про частичное шифрование файлов и каталогов, почему-то все забывают.

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