Как стать автором
Обновить

Вебинар «Умное решение для повышения эффективности термообработки»

Время на прочтение1 мин
Количество просмотров653

Термическая обработка – энергозатратный технологический процесс, требующий огромного количества ресурсов. Стоимость этих процессов высока и сильно влияет на себестоимость продукции, а их нарушение ведет к появлению брака и дополнительным тратам на повторный запуск. Для обеспечения уверенности в соблюдении технологии и выявления причин брака необходим постоянный контроль процессов термической обработки и анализ данных, полученных с оборудования. Что делают промышленные предприятия, когда стандартных отчетов не хватает?

Читать далее
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

NORVI Arita. Контроллер на ATmega2560

Время на прочтение8 мин
Количество просмотров26K


Сегодня у нас на обзоре долгожданный контроллер NORVI Arita на ATmega2560. Долгожданный он потому, что большинство производителей, на мой взгляд незаслуженно, игнорируют замечательный микроконтроллер ATmega2560, и там где нужно и, самое главное, где не нужно, используют ESP32.

У ATmega2560 нет Wi-Fi, но зато есть «дубовая» 5-вольтовая логика, 4 хардверных Serial-а (на отдельных пинах), 53/69 (!) GPIO, 16 аналоговых входов, 15 портов с ШИМ, 4КБ «честной» EEPROM памяти, 40 мА нагрузочная способность пинов и прочие практически полезные прелести. На этом фоне ESP32 с его десятком рахитичных GPIO смотрится просто каким-то недоразумением.

В умелых руках ATmega2560, в совокупности с сетевым интерфейсом W5100/W5500 и картридером для microSD карт (до 32 ГБ), превращается в самодостаточное устройство с развитым (ничуть не хуже, чем на ESP32) веб-интерфейсом, огромными возможностями по управлению различным оборудованием, поддержкой сложной многослойной логики и коммуникаций с внешним миром по Ethernet, LoRa, nRF24 и т. д. и т. п.

Проблема только одна — на рынке нет Arduino Mega «с человеческим лицом», за редкими исключениями, с одним из которых я и приглашаю вас познакомиться…
Читать дальше →
Всего голосов 43: ↑21 и ↓22+6
Комментарии50

KC868-A16S: тоже железный, но в два раза дешевле

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров8.7K


Продолжаем обзоры новой «железной» серии контроллеров Kincony и на этот раз разберём очередного её представителя — KC868-A16S. В прошлом обзоре комментаторы справедливо заметили, что сколько бы ни был хорош контроллер, но цена в 50 тыс. рублей не очень гуманна — в этом смысле KC868-A16S выглядит гораздо привлекательнее: внешне он почти неотличим от AIO, имеет тот же металлический корпус, развитый функционал, а стоит при этом в два (а в некоторых конфигурациях и в три) раза дешевле.

Как получается, что цена на «почти одно и то же» отличается в разы и чем пришлось пожертвовать разработчикам мы и узнаем из этой статьи.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии12

Starting Electronics: руководство по веб-серверам на Arduino. Часть2. HTML и веб-сервер с SD картой

Время на прочтение8 мин
Количество просмотров8.1K


От переводчика. Продолжаем изучать тему создания веб-серверов на Arduino и на микроконтроллерах вообще. В этой статье скомпонованы две части оригинального руководства — «Структура веб-страницы (HTML)» и «Arduino веб-сервер с SD картой».

Материал в этих уроках излагается последовательно и после прочтения этой статьи вы будете иметь начальное представление о внутреннем устройстве веб-страниц и принципе работы веб-сервера с SD картой в качестве хранилища этих страниц.

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

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Kincony KC868-A256: а ты готов к настоящему хоккею?

Время на прочтение4 мин
Количество просмотров3.2K


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

(Особенно впечатляюще KC868-A256 смотрится в сравнении с контроллерами, которые имеют всего несколько GPIO на вход и несколько GPIO на выход, а то и не имеют таковых вовсе.)

Как к этому относиться — как к демонстрации возможностей и технологическому курьёзу или как практическому девайсу для автоматизации — каждый может решить сам, мы же далее посмотрим подробно как всё это устроено и как это работает.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+25
Комментарии41

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

Уровень сложностиПростой
Время на прочтение57 мин
Количество просмотров69K

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

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

Читать далее
Всего голосов 135: ↑110 и ↓25+122
Комментарии403

Миссия невыполнима: подключаем электросчётчик SDM220 к трансформеру Lavritech V7.1 Lite по RS485/Modbus RTU

Время на прочтение14 мин
Количество просмотров4K


Некоторое время назад в моём блоге вышел цикл статей об устройстве и программировании Lavritech V7.1 Lite — ESP32 контроллера с необычной модульной архитектурой. Необычность архитектуры заключается в том, что функционал Lavritech V7.1 Lite можно набирать из отдельных модулей, как в конструкторе Lego. Я подробно рассмотрел как работу с внутренними модулями (вставляемые в специальные разъёмы, на манер плат IBM PC), так и с внешними блоками Wiren Board, на подключение которых рассчитан Lavritech V7.1 Lite.

Но в этих статьях остался нераскрытым один важный аспект — работа контроллера по интерфейсу RS485 при помощи подключаемых (внутренних) модулей. Я оставил эту тему для отдельной статьи ввиду её сложности и объёмности — и вот статья готова и нас ждёт увлекательное путешествие в мир DIY хардкора.

В качестве примера будем подключать электросчётчик SDM220 к модулю Lavritech RS485 V1 по RS485/Modbus RTU (плюс осциллограммы и рабочий код в подарок).
Читать дальше →
Всего голосов 13: ↑11 и ↓2+12
Комментарии6

Lazy Loading в Java

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.2K

Привет, Хабр!

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

Как и наши хвостатые друзья, существует такой паттерн как Lazy Loading, который позволяет экономить ресурсы, инициализируя объекты только тогда, когда они действительно нужны.

Рассмотрим, как мы можем применить этот котиковый подход в Java. Будем как котики — умными, экономными и эффективными!

Читать далее
Всего голосов 10: ↑5 и ↓5+1
Комментарии6

Lavritech: теперь с дисплеем и платой управления (наконец-то дождались)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров8.7K


В своё время, в беседе с разработчиками Lavritech, я высказал пожелание оснастить их контроллеры дисплеем, платой управления и индикации — у меня не вызывает сомнений, что это простое дополнение значительно расширяет возможности и удобство пользования контроллером.

Но, как говорится, быстро сказка сказывается, да не быстро дело делается — прошло около полутора лет — и вот на моём столе новая версия контроллера Lavritech со встроенным разъёмом для платы расширения и с самой платой дисплея и управления.

Вообще, — красота и именно то, что я (все мы) так долго ждали. Давайте посмотрим как это устроено и как это работает на практике.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии7

CG Charger BQ: как TP4056, только на стероидах (BQ25895)

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров14K


Сегодня на нашем операционном столе очередное гениальное изобретение компании ClimateGuard — девайс под не менее гениальным названием CG Charger BQ. Расшифровке того, что же всё-таки скрывается под этими загадочными буквами BQ (что означают буквы CG постоянные читатели моего блога уже знают) и посвящена эта статья.

Перед нами умная зарядка для аккумулятора и модуль питания для различных DIY устройств с возможностью микроконтроллерного управления по интерфейсу I2C. Это формальное определение назначения этого модуля, но после ознакомления с даташитом BQ25895 и экспериментов с самим модулем я могу сказать, что это невероятно продвинутая микросхема управления питанием, которая при соответствующем подходе сможет удовлетворить любые ваши прихоти по обеспечению питанием ваших гаджетов.

Правда для осмысленной работы с BQ25895 вам понадобятся пара высших образований в Computer Science (смайл) и… эта статья…
Читать дальше →
Всего голосов 42: ↑41 и ↓1+55
Комментарии40

HabraTab: извлечение и модернизация движка (о, сколько нам открытий чудных...)

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров3.9K


Недавно на Хабре вышла статья «HabraTab — девайс для хаброзависимых», которая вызвала неподдельный интерес у хабропользователей и, можно сказать, произвела своего рода фурор (на данный момент рейтинг статьи +137).

Действительно, проект довольно интересный как своей концепцией, так и исполнением, как программным, так железным и даже дизайнерским — девайс выглядит весьма своеобразно и оригинально.

Каждый нашёл в нём что-то своё, сам девайс меня не заинтересовал, но зато заинтересовал код, который может получать данные (кроме Хабра) с различных сайтов в интернете и затем эти данные использовать в IoT системах. Также этот код можно использовать для получения данных со встроенных веб-интерфейсов различных устройств в локальной сети, чему можно найти множество применений в реальных проектах по автоматизации (и не только).

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

Итак, начнём…
Читать дальше →
Всего голосов 21: ↑20 и ↓1+27
Комментарии7

EBYTE MA01-AACX2240: программирование цифровых входов

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2K


В предыдущих статьях мы познакомились с замечательным внешним RS485/ModbusRTU блоком расширения EBYTE MA01-AACX2240 и научились управлять работой его реле. Сегодня мы разберём программирование цифровых входов MA01-AACX2240 и научимся получать с них данные в контроллере на ESP32.

Поскольку это RS485/ModbusRTU блок, то при помощи него можно не только расширить функционал вашего контроллера, но и вынести реле, цифровые и аналоговые входы на значительное расстояние от самого контроллера (десятки и сотни метров), что может быть полезно в различных проектах.

MA01-AACX2240 это довольно функциональное устройство и позволяет не только получать данные с цифровых входов, но и тонко настраивать работу самих этих входов — можно использовать счётчики, устанавливать работу по фронтам сигнала, выбирать метод обнуления счётчиков и т. д. и т. п., обо всём этом мы и поговорим далее…
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Сам себе экосистема: итоги. Как работают мои самопальные клиенты ВК, YouTube, Telegram на смартфонах 13-летней давности

Время на прочтение6 мин
Количество просмотров7.8K
image

Рубрика «сам себе экосистема» уже успела стать постоянной в моем блоге. Для тех, кто читает меня в первый раз, расскажу: одним из основных направлений блога всегда был моддинг и попытка использования устройств прошлых лет в современных реалиях. Именно поэтому я пишу клиенты нужных мне сервисов с нуля, дабы иметь возможность пользоваться такими замечательными смартфонами, как Xperia Pro, Xperia Play, Desire Z и конечно же Motorola Droid, а в статьях я делюсь с вами не только причинами своей мотивации, но и рассказываю, как разрабатываются приложения для 10+ летних смартфонов с нуля и с минимальным набором зависимостей и детали реализации тех или иных фишек. В сегодняшнем материале мы подведем с вами промежуточные итоги и узнаем, справляются ли смартфоны 14 летней давности с современными сервисами?
Читать дальше →
Всего голосов 37: ↑37 и ↓0+49
Комментарии35

На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров18K
image

Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 93: ↑91 и ↓2+115
Комментарии86

OLIMEX ESP32-EVB: программируем непрограммируемое

Время на прочтение17 мин
Количество просмотров4.5K


Продолжаем изучение платы OLIMEX ESP32-EVB и сегодня мы поговорим о её программировании. Напомню, что на небольшой квадрат текстолита размером 75х75 мм компания OLIMEX умудрилась поместить микроконтроллер ESP32, Ethernet физику LAN8710A, microSD картридер, IR приёмник и передатчик, CAN трансивер, 2 реле, разъёмы расширения, подсистему зарядки и обслуживания аккумулятора и прочие элементы — все эти компоненты плотно «посажены» на нестандартные GPIO и имеют свои особенности работы

Далее мы попробуем со всем этим разобраться — в результате вы сможете легко и просто использовать ESP32-EVB в своих проектах, а заодно повысите свою квалификацию в программировании и понимание работы контроллеров на ESP32.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии30

KC868-AIO: дас ист Продукт (Kincony переходит на новый уровень)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.2K


Я уже привык получать заказанные контроллеры Kincony в совершенно непотребном виде — они просто обёрнуты в пупырку (не антистатическую ни разу) и, если заказаны несколько контроллеров, то они даже не имеют индивидуальной упаковки и просто «натыканы» в коробку.

У меня, как старого электронщика, сердце кровью обливается когда я достаю очередную «борду» Kincony размером со скейтборд из километровой и стреляющей статикой пупырки — неужели трудно упаковать (недешёвый) контроллер хотя бы в антистатический пакет?

Но тут пришли заказанные мной контроллеры KC868-AIO и KC868-A16S которые меня просто поразили: металлические корпуса, приличный вес, отличная упаковка, инструкции в комплекте — создаётся ощущение, что держишь в руках коробки от чего-то вроде брендовых маршрутизаторов.

Однозначно, для Kincony это новый уровень и подобные изделия не стыдно назвать Продуктом (с большой буквы).
Читать дальше →
Всего голосов 18: ↑16 и ↓2+21
Комментарии43

DMX голова: трепанация черепа и замена мозга (превращение в 3D платформу)

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров4.3K


Некоторое время назад мне попалась на глаза китайская DMX голова для сценического света, которая произвела на меня неизгладимое впечатление — «да это же готовая платформа для 3D позиционирования!» — воскликнул я и немедленно заказал её. У меня мгновенно возник план: выкинуть стоковую плату управления, поставить свои драйверы для моторов, прикрутить что-нибудь вроде ES32/ESP8266, написать прошивку и дополнить всё это дело собственным API для интеграции мою IoT экосистему.

А заодно прокачаться в теме управления шаговыми моторами, 3D позиционировании и вычислении координат и открыть для себя захватывающие перспективы создания проектов на этой платформе, ну и получить ни с чем не сравнимое удовольствие от того самого DIY.

Итак, поехали…
Читать дальше →
Всего голосов 20: ↑19 и ↓1+29
Комментарии14

84 года Дональду Кнуту

Время на прочтение4 мин
Количество просмотров8.5K


На его книгах обучилось не одно поколение программистов, в том числе, и в нашей стране. Созданная им в 70-х годах прошлого века система набора текста TeX до сих пор активно используется по всему миру для верстки высококачественных документов, таких как исследовательские работы, технические руководства и учебники. Его называют пионером в области компьютерных технологий, особенно в сфере языков программирования, а также «отцом анализа алгоритмов». Речь идет о почетном профессоре Стэнфордского университета Дональде Эрвине Кнуте, известном ученом, математике и авторе популярной технической литературы.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+69
Комментарии24

Применение чистой архитектуры в Go

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров12K


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

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

Большинство этих инструментов – это частности, и выбор большинства из них (кроме языка программирования) можно на некоторое время отложить, пока проект не окрепнет. Поэтому на ранних этапах разработки проекта стоит уделить внимание не тому, при помощи каких инструментов пойдёт реализация. Лучше смоделировать предметную область проекта, а к вышеупомянутым инструментам подходить так, как следует — то есть, как к частностям. Разумеется, чтобы проект был реализован, с такими деталями тоже нужно определиться, но они могут оставаться в некоторой отдельной части кода, не относящейся к предметной области — там, где их будет легко менять, удалять или заменять по нашему усмотрению.

Для решения именно таких проблем с сильной связностью кода многоопытные инженеры создали ряд архитектурных паттернов. Таковы, в частности, чистая архитектура Роберта Мартина («дядюшки Боба»), гексагональная архитектура Алистера Кокбёрна и явная архитектура Герберто Грацы.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+31
Комментарии5

И вновь KolibriOS! И вновь ассемблер!.

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.8K

В прошлой статье, я решил потестировать ассемблер на данной ОС. Но я ни когда не ищу лёгких путей и потому решил окунуться в мир KolibriOS и программировать используя только данную ОС. Всё что я смог выяснить, это то что давно когда-то что-то делали и на данный момент, увы, многое забросили...

Но далеко не всё так плохо как кажется! В KolibriOS есть готовый редактор кода с подсветкой CEdit, и он поддерживает подсветку для нескольких языков программирования. Но я не уверен что он умеет компилировать под все эти языки. Но как минимум текст набрать можно. Fasm поддерживается полностью и собирать/запускать/отлаживать приложения можно "используя" данный редактор (не совсем, редактор запускает отдельно компилятор и так же запускает отдельно отладчик), что и позволяет полноценно разрабатывать программы.

Я бы хотел сразу предупредить, практически ни какого обучения в статье не будет. Всё рассчитано на то, что вы уже хотя бы немного знаете ассемблер x86 и уже создавали простые программы под данную архитектуру (под Windows, Dos, Linux, а так может и MacOS).

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии7
1
23 ...