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. Что весьма удобно. Однако, шифрование целиком всего и вся, далеко не всегда удобно, хотя, безусловно, применение полного шифрования диска имеет определенный смысл. А вот про частичное шифрование файлов и каталогов, почему-то все забывают.

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



Датчик света и цвета TCS3200 + Arduino Mega = что-то получается

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

TCS3200, colormeter, измеритель цвета, в корпусе, дисплей

Окончательный вид измерителя цвета на основе TCS3200 в корпусе.

Совершенно случайно, на глаза попался плата для Arduino с чипом TCS3200. Ознакомившись с описанием, я понял, что сенсор, установленный на плате — выполняет как раз ту самую работу, которую и необходимо автоматизировать. Сам чип TCS3200 производится некой компанией AMS, которая в спецификации на сенсор называется TAOS. Но не суть, суть, что компания занимается, в основном, разработкой как раз таких вот недорогих решений по «колометрии на чипе».

TCS3200, сенсор, color, sensor, проводники, микросхема, плата

Сенсор TCS3200 крупным планом. Если приглядеться, то видны не только тончайшие проводники но и отдельные группы фотодиодов.

Чип TCS3200 состоит из 64 фотодиодов, 16 из которых не покрыты цветными фильтрами, а остальные затенены по 16 штук с применением синего, зеленого и красного светофильтров. Что это значит? Это значит, что чип способен измерить отдельно каждый из RGB-цветов, плюс замерить общий световой поток. Помимо TCS3200 в аналогичных платах может встречаться чип немного попроще — TCS3210. У TCS3210, в отличии от TCS3200, всего 24 фотодиода, соответственно на каждый из цветов, включая просто белый свет, приходится по 6 отдельных фотодиодов. Другими словами, чувствительность и точность измерений у TCS3200 должна быть выше, чем у его собрата TCS3210.

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