Search
Write a publication
Pull to refresh
5
0.2
Юрай Нескажу @juray

Технарь широкого профиля

Send message

Протокол MQTT и открытый проект клиента MQTT на Delphi

Reading time7 min
Views44K

Протокол MQTT применяется для обмена сообщениями в интернете вещей. Интересен прежде всего тем, что поддерживается крупнейшими провайдерами облачных сервисов, такими как IBM, Microsoft, Amazon.
Можно бесплатно получить аккаунт в этих сервисах, настроить там службу приема MQTT сообщений и наблюдать через эти сервисы за жизнью своих устройств, например, в умном доме. Также через эти сервисы устройства могут общаться между собой.

Демонстрация подключения клиента к службе MQTT облака IBM Bluemix прилагается.

Читать дальше →

Почему стоит использовать менеджер паролей

Reading time3 min
Views12K
Менеджер паролей — хороший способ повысить уровень безопасности своей работы, сохранив все коды доступа в одном надежном месте. Без такого инструмента сложно удержаться от соблазна пользоваться во всех сервисах одними и теми же паролями (или их вариациями), что серьезно повышает вероятность успешного взлома. К слову, об «успехе»: по статистике, в мире каждые 39 секунд происходит одна кибератака.

Главное свойство менеджера паролей — сочетание удобства и высокой степени безопасности.


Читать дальше →

Достучаться до небес, или FSM на шаблонах

Reading time13 min
Views17K

Здравствуйте! Меня зовут Александр, я работаю инженером-программистом микроконтроллеров.

Пишу на С/С++, причем предпочитаю плюсы, ибо верую в их эволюционную неизбежность в embedded.

Мир встроенного ПО, язык С++ динамично развиваются, поэтому разработчикам важно не отставать и поддерживать свои скиллы и наработки актуальными моменту.

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

Некоторое время назад я посмотрел мощный доклад Сергея Федорова про построение конечного автомата с таблицей переходов на шаблонах.

Читать далее

Интернет вещей по-русски. Канальный уровень OpenUNB. Общие положения и адресация устройств

Reading time6 min
Views2.6K

Канальный уровень OpenUNB сильно отличается от всего, что мы видели. Так получилось из-за заложенной в OpenUNB возможности только односторонней передачи: от оконечного устройства к сети. Тем не менее, разработчики вложили много усилий в создание протокола канального уровня, чтобы устройства и сеть OpenUNB не потеряли простоту, энергоэффективность и безопасность. Давайте посмотрим, что у них получилось.

Читать дальше →

Локализация своих скриптов на BASH

Reading time7 min
Views5.9K

Создание меню на BASH — задача сама по себе не сложная: "case тебе в руки и echo в спину". Решая её в очередной раз, мне захотелось добавить возможность отображать текст на других языках. Осталось решить, как сделать сам процесс локализации меню более удобным. Если оно большое, то решение "в лоб" превратит его в громоздкую копипасту. Здесь я хотел бы поделиться тем, как решил эту проблему для себя. Надеюсь, для кого то это будет небезынтересным.



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


Примечание:

Я вполне понимаю и принимаю, что существуют и другие языки программирования. Как когда-то кто-то сказал здесь на Хабре — если при написании скрипта на BASH возникает необходимость хоть в одной функции, то лучше взять нормальный язык. Я с этим согласен, но иногда, как говорится, хочется, потому что хочется.


Мне не хотелось бы разбивать скрипт на несколько частей и хранить локализацию в отдельных файлах. Скрипт тем и удобен, что его проще использовать одним файлом. Поэтому тексты будем хранить в массивах.


Реализация будет состоять из:


  • буквенного кода языка
  • массива слов
  • преобразователя косвенных ссылок для обращения к массиву
  • обращения к элементам массива
  • создания меню

Теперь рассмотрим подробнее

Читать дальше →

Ведение собственного бюджета в Excel: проще чем два файла перебрать

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

image
Читать дальше →

Киберспорт для детей как новая улица — и как средство социализации

Reading time13 min
Views30K


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

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

Дальше пошёл мягкий психодел. Родители же рассказывали как дети загружены, какое у них сумасшедшее расписание.

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

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

А пока давайте чуточку похоливарим!
Читать дальше →

Разработка универсального счетчика импульсов

Reading time6 min
Views7.7K

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

Читать далее

Connected speech: как научиться говорить на английском связно

Reading time6 min
Views26K

Когда человек, изучающий английский как иностранный, впервые попадает в круг носителей языка, у него случается лингвистический шок. 

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

В США или Британии не говорят как дикторы на BBC, с паузами и четкой артикуляцией слов — и к этому нужно быть готовым. А чтобы говорить как носитель, нужно самому тренировать связную речь. Об этом сегодня и поговорим.

Читать далее

Бинарный поиск в микроконтроллере

Reading time5 min
Views5.3K

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

Читать далее

Управление LCD и OLED дисплеями на AVR-ассемблере

Reading time27 min
Views18K
Сразу предупреждаю, что не собираюсь разводить холивары насчет преимуществ AVR-ассемблера перед С/Arduino, или даже перед BASCOM-AVR и MikroPascal for AVR — каждый инструмент уместен в своей области. У ассемблерного подхода в ряде случаев имеются свои преимущества — в основном это небольшие проекты, а также системы, в которых требуется точный расчет времени. Немаловажное достоинство этого подхода — простота необходимого инструментария. Но один из крупнейших недостатков в сравнении с языками высокого уровня — отсутствие готовых библиотек хотя бы для базовых задач. Для того же Arduino они имеются на все случаи жизни, но, к сожалению, совмещать их с ассемблером оказывается сложно и потому нецелесообразно — проще уж все и сделать с помощью самого Arduino. Поэтому некоторое время назад я задался целью создать более-менее законченную экосистему для проектов на основе AVR-контроллеров с программированием на чистом ассемблере.

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

ESP32-C3: первое знакомство. Заменим ESP8266?

Level of difficultyMedium
Reading time5 min
Views92K

В ноябре 2020 года Espressif анонсировала новую SoC под названием ESP32-C3. Они разослали несколько инженерных прототипов для тестирования и первого ознакомления.

Так довелось, что мне попался один из них на руки и я успел немного поиграться с ним. Надеюсь, мой краткий опыт будет интересен сообществу, так как тут есть на что посмотреть и ESP32-C3 имеет хороший шанс получить свою нишу в мире встраиваемых систем, так и в области DIY. Меня как раз больше интересует подход со стороны DIY, поэтому статья будет больше с этим уклоном.

Открыть коробку

DIY наушники. Как, а главное, зачем

Reading time14 min
Views56K

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

Читать далее

Локализация своих скриптов на BASH, часть 2

Reading time10 min
Views4K

Это продолжение статьи Локализация своих скриптов на BASH. В ней мы используя массивы и косвенные ссылки, научились добавлять в свои скрипты дополнительные языки и переключаться между ними.

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

Читать далее

Публикация Go приложения в GitHub

Reading time7 min
Views9.8K

Пост представляет собой небольшой контрольный список (checklist) при публикации Go приложения на Github'е.

TLDR:

- Makefile как входная точка для выполнения основных действий

- Линтеры и тесты как инструменты повышающие качество кода

- Dockerfile как способ распространения приложения

- Github Actions как возможность автоматической сборки и выкладки приложения при новых изменениях

- Goreleaser как инструмент для публикации релизов и пакетов

Результатом должно быть опубликованное приложение с настроенными инструментами которые позволяют легко сопровождать приложение в процессе его существования. В качестве реализации я буду рассматривать примеры на основе утилиты pgcenter.

Вперед!

Превращаем старый Amazon Kindle в платформу разработки с e-ink

Reading time8 min
Views25K


Мне всегда хотелось заполучить экран на электронных чернилах для своих будущих проектов. Я купил небольшой экранчик с платой расширения Raspberry Pi, однако потом понял, что можно просто воспользоваться старой «читалкой» Amazon Kindle.

Когда-то давно я уже экспериментировал с Kindle: портировал на него интерпретатор Infocom и приложение для чтения манги. Мне удалось заставить ПО Amazon загружать их как Kindlet и отображать их интегрированными в «читалку». Однако сейчас мне нужна была просто дешёвая и удобная платформа разработки под Linux с eink.

Дешёвый Kindle с Ebay (и причина его дешевизны)


Итак, я отправился на ebay! Нашёл там множество очень дешёвых лотов, помеченных как «Заблокирован Amazon». Я решил, что не стоит их брать, потому что, теоретически, они могут быть краденными. В конечном итоге я выбрал Kindle 4 без сенсорного экрана за 7 фунтов.

Спустя несколько дней он приехал. Тогда я и понял, почему он был таким дешёвым: на экране постоянно отображался некий демо-режим, из которого невозможно выйти:
Читать дальше →

Сообщество Hardware Ecosystem для проектов в электронике + митап по беспилотникам 10.10.2020

Reading time3 min
Views1.1K

Два года назад основатель нашей компании — Роман Пахолков — создал открытое сообщество для всех, что работает в hardware, развивает свои проекты и готов делиться опытом. Всё начиналось с небольшой LinkedIn-группы, а потом переросло серию подкастов и митапов с инженерами и руководителями компаний, которые успешно вышли на рынок электроники со своими продуктами. 

В этой статье мы объясним, чем Hardware Ecosystem полезна для участников. А если захотите познакомиться с этим сообществом поближе, это можно сделать на ближайшей неделе — утром в субботу, 10 октября. В этот день в Минске состоится митап, посвященный беспилотным технологиям и примерам их внедрения на земле и ввоздухе. Так что если вы не равнодушны к хардверу, дронам и автономным автомобилям, присоединяйтесь онлайн или приходите лично.

Читать далее

EBlink — GDB сервер для ARM Cortex-M микроконтроллеров

Reading time3 min
Views9.5K

В сети не много информации о появившемся несколько лет назад GDB сервере EBlink. Этим постом постараюсь исправить ситуацию.


EBlink поддерживает большинство моделей микроконтроллеров STM32 (серии F0, F1, F2, F3, F4, F7, H7, L0, L1, L4, G0 и G4), а также EFR32.


Он интересен тем что поддерживает скрипты на Си-подобном языке Squirrel которые участвуют в процессе прошивки и отладки микроконтроллеров. Это позволяет отредактировав скрипты добавить новые микроконтроллеры или изменить работу с существующими не вмешиваясь в исходный код EBlink. Могу предположить таким образом возможно добавить микроконтроллеры с ядром ARM Cormex-M других производителей, например компании Миландр но это не было проверено.

Читать дальше →

Расстановка точек над датчиками газа серии MQ – глубокое понимание даташита и настройка

Reading time10 min
Views22K

После покупки копеечного датчика утечки газа появилось желание разобрать все по полочкам и узнать, что происходит внутри. Информации и статей по датчикам очень много, но большинство ограничено распиновкой стандартного китайского модуля, иногда принципов работы. Про относительно точное определение абсолютных значений информации нет. Забегая наперед скажу, что мы попробуем выжать все из даташита, включая: точные функции определения «попугаев», температурно-влажностной коррекции, некоторых возможностей селекции.
Читать дальше →

Что делать, если поймал HardFault?

Reading time6 min
Views39K
Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться.

Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он никак не обрабатывается, а просто остаётся висеть в бесконечном цикле обработчика, предусмотренном в startup файле производителя. В то же время программист пытается интуитивно найти причину отказа. На мой взгляд это не самый оптимальный путь решения проблемы.

В данной статье я хочу описать методику анализа тяжелых отказов популярных микроконтроллеров с ядром Cortex M3/M4. Хотя, пожалуй, «методика» — слишком громкое слово. Скорее, я просто разберу на примере то, как я анализирую возникновение тяжелых отказов, и покажу, что можно сделать в подобной ситуации. Я буду использовать программное обеспечение от IAR и отладочную плату STM32F4DISCOVERY, так как эти инструменты есть у многих начинающих программистов. Однако это совершенно не принципиально, данный пример можно адаптировать под любой процессор семейства и любую среду разработки.


Читать дальше →

Information

Rating
4,422-nd
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity