Рубрика «программирование микроконтроллеров» - 68

При обслуживании приборов учета Меркурий-230 ART, установленных на удаленных
трансформаторных подстанциях, часто возникает необходимость оперативной проверки работоспособности счетчиков.

Как правило, в местах, где счетчики работают в составе АСКУЭ и соединены в группы по витой
паре RS 485 и подключены к шлюзу Меркурий 228, происходит пропадание связи в момент
установления связи со стороны сервера.
Читать полностью »

Такты для разработчиков - 1

Если у вас есть опыт создания ПО и вы хотите познакомиться с проектированием цифровых логических схем (digital design), то одна из первых вещей, которые вам нужно понять, — это концепция тактов. Она раздражает многих программных инженеров, начинающих HDL-проектирование. Без использования тактов они могут превратить HDL в язык программирования с $display, if и циклами for, как в любом другом языке. Но при этом такты, которые новички игнорируют, — зачастую один из основополагающих элементов при проектировании любых цифровых логических схем.

Ярче всего эта проблема проявляется именно при рассмотрении первых схем, созданных начинающими HDL-разработчиками. Я недавно общался с некоторыми из них. Новички опубликовали свои вопросы на форумах, которые я читаю. Когда я проанализировал то, что они делают, от увиденного волосы встали дыбом.

Читать полностью »

Однажды я решил порадовать себя и купил часы citizen. Кроме всего прочего, в этих часах заявлена возможность синхронизировать часы по радиоканалу. В момент заказа я не сильно представлял, что это такое, думал, что оно как-то само всё сделает как надо. Но оказалось, что синхронизация по радио в России практически не работает. Я решил исправить ситуацию. Первое, что я нашёл была статья посвященная усилению сигнала. Предлагалось намотать большую катушку с конденсатором, положить на окно, выходящее на запад и ждать. [1]. Также в этой статье упоминался протокол dcf77, по которому часы синхронизируют время, и я понял, что он не очень сложный. Хотя на этот момент в электронике я был полный ноль, но мне представлялось, что с цифровой частью я справлюсь, а с остальным я как-то разберусь. И я решил стартовать проект по разработке устройства синхронизации часов по протоколу dcf77.

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

image

Читать полностью »

Отбросьте всё невозможное, то, что останется, и будет ответом, каким бы невероятным он ни оказался.

Есть на одном зарубежном ресурсе по электронике раздел «Записки Шерлока Омса», где рассматриваются загадочные случаи из инженерной практики (не только по электронной части, но, как правило, по ней). Решил завести нечто подобное, вот очередная история инженерного расследования.
Читать полностью »

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

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

Далее, задачи могут конфликтовать друг с другом за те или иные ресурсы (в частности, за оборудование). При рассмотрении типов многозадачности, мы уже рассматривали типовые случаи конфликтов за порт SPI (частично решаемое переходом на кооперативную многозадачность, но на неё перейти можно не всегда).

И самый страшный случай — зависимость задач. Часто результат работы одной задачи используется в другой. Из очевидных примеров, можно упомянуть следующие: бесполезно пересчитывать данные для выхода PID регулятора температуры, пока не получено и не усреднено достаточно данных с термодатчика, нет смысла менять воздействие на скорость двигателя, пока не получены сведения о текущем периоде его вращения, незачем обрабатывать строку символов с терминала, пока не получено терминирующего символа (признака конца строки). А кроме очевидных, есть масса неочевидных случаев зависимостей и порождаемых ими гонок. Иногда у начинающего разработчика больше времени уходит именно на борьбу с гонками, чем непосредственно на реализацию алгоритмов работы программы.

Во всех этих случаях, на помощь разработчику приходят синхронизирующие объекты. Давайте в текущей публикации рассмотрим, какие синхронизирующие объекты и функции имеются в ОСРВ МАКС.Читать полностью »

Время — самый ценный ресурс который у нас есть. Чтобы использовать его максимально продуктивно, существуют всякого рода техники тайм-менеджмента. Если говорить о тайм-менеджменте в масштабах рабочего дня, то одна из самых популярных техник называется Pomodoro. Но эта статья не про GTD, а про код (и немного про железо ^^).

Так вот, для техники Pomodoro есть инструмент Tomighty и у него открытый исходный код на C#, что побуждает к модификации этого самого кода с целью добавления новых возможностей и интеграции со всякими штуками.

Сегодня мы будем интегрировать клиент Tomighty с устройстовм "Большая Красная Кнопка". Нам для этого понадобится:

  • Большая Красная Кнопка (со светодиодом). У меня оказалась не очень большая, но очень красная.
  • ESP8266 — один из наиболее оптимальных микроконтроллеров по соотношению удобство/цена. Это даже не микроконтроллер вовсе, но как микроконтроллер он абсолютно прекрасен!
  • MicroPython. Я не знаю языка удобнее чем Python, а вы? Разве что Ruby, но его вроде бы не портировали на ESP8266.
  • Протокол MQTT для связи между компом и девайсом.
  • Visual Studio.
  • Опционально, расширение CodeRush for Roslyn. Оно сильно упрощает работу с как со своим так и с незнакомым кодом.

Тайм-менеджмент для кинестетиков - 1

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

Welcome!

Читать полностью »

image

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

И вот появилась новая версия прибора.
Читать полностью »

Тут должна быть КДПВ, но на нее не хватило бюджета.

Замотивировавшись ответом от Tarson на мой комментарий к статье https://geektimes.ru/post/292801/ решил написать про основы программирования ESP8266 на C под FreeRTOS. Подробности под катом.
Читать полностью »

Готова очередная публикация обзора особенностей ОСРВ МАКС. В предыдущей статье мы разбирались с теорией, а сегодня наступило время практики.

Часть 1. Общие сведения
Часть 2. Ядро ОСРВ МАКС
Часть 3. Структура простейшей программы
Часть 4. Полезная теория
Часть 5. Первое приложение (настоящая статья)
Часть 6. Средства синхронизации потоков
Часть 7. Средства обмена данными между задачами
Часть 8. Работа с прерываниями

При начале работы с контроллерами, принято мигать светодиодами. Я нарушу эту традицию.

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

Итак, пока нет генератора проектов, берём проект по-умолчанию для своей макетной платы и своего любимого компилятора (я взял Читать полностью »

Всем привет. Любому автопилоту, очевидно, нужно не только принимать решения по управлению, но и заставлять автомобиль этим решениям подчиняться. Сегодня увидим, как весьма доступными средствами доработать обычный автомобиль полностью электронным рулевым управлением (steer-by-wire). Оказывается, сам авто для разработки не очень и нужен, а большинство функционала можно с комфортом отлаживать дома или в офисе. В главных ролях всем известные компоненты из хобби-магазинов электроники.

Электроника в сборе

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js