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

У меня дома сложилась интересная ситуация. Телевизор в спальне подключен к компьютеру расположенному в другой комнате, и для того что бы жена могла посмотреть очередную серию сериала (хотя у меня есть андроидная приставка, которая стоит рядом с телевизором, она предпочитает смотреть с компа), приходится приложить достаточно много усилий. В виду присутствия детей, беспроводные мыши и клавиатуры у нас не приживаются. Я давно с интересом присматривался к возможности Arduino Leonardo прикидываться мышкой и клавиатурой, и когда эта плата пришла ко мне, реализовал данную возможность в программе FLProg версии 2.2. В паре с возможностями проекта RevoteXY получилась очень интересная штука. Для начала видео работы получившегося устройства.

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

Пару месяцев назад я купил не сильно новый мотоцикл KTM 250EXC, открутил ручку газа в горку, моту пульнул в небо, а сам сел на задницу и что-то там сломал в спине. В результате, на мотоцикл не сесть два месяца как минимум. К чему я это? Да. У немного подуставшего мопеда оказалась неисправная приборная панель и я собрался, пока лежу дома, сделать самодельную новую свою.

image

Быстро собрал макет, циферки бегают, часики ходят, одометры запоминаются в FRAM — красота, но… понадобились кнопочки для управления этой красотой.

Сегодня с расскажу про кнопочки, потом про датчик зажигания, а уже потом про саму приборку, Ладно?

Рисовать на китайском экране 16х2 через i2c просто, датчики скорости и оборотов мотора сели на внешние прерывания, температура читается с аналогового порта, инфа хранится в FRAM, ну и часики тоже китайские воткнуты. Всё это крутится асинхронно примерно как SmartDelay, про который писал недавно здесь.
Читать полностью »

Разобравшись с таймером, попробуем использовать его для чего, то кроме генерации временных интервалов. Чаще всего при помощи таймера генерируется ШИМ сигнал. Что это такое можно почитать на просторах Сети, например во всеведающий Википедии.
Основная прелесть ШИМ в том, что он позволяет при помощи ключей работающих в импульсном режиме (наиболее эффективном относительно потерь энергии) изменять действующее значение напряжение приложенного у той или иной нагрузке. Для ШИМ сигнала основными параметрами является общая длительность импульса и длительность его активного состояния (обычно высокого уровня сигнала).

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

image

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

FLProg + Nextion HMI Enhanced - 1

Компания ITEAD выпустила новую линейку Enhanced своих панелей Nextion HMI. Представители компании предоставили мне экземпляр этой линейки для интеграции новых возможностей панели в программу FLProg. В версии 2.2 это было реализовано. В данном уроке мы рассмотрим новые возможности панели, и для примера создадим программируемый таймер на пять каналов.
Читать полностью »

Первое, с чем сталкивается осваивающий Arduino новичок, это неприятное свойство функции delay() — блокирование выполнения программы. Множество примеров в интернете используют эту функцию, но практическое применение как-то намекает, что лучше без неё обойтись.

Как и положено начинающему, я изобрёл велосипед сделал свою реализацию неблокирующей задержки. Задача стояла так:

  • Обеспечить псевдомногозадачность, чтобы разные события происходили в своё время, со своими интервалами и не блокировали друг-друга.
  • Было удобно этим пользоваться.
  • Можно было оформить как библиотеку и легко включать в другие проекты без копипастов.

Подсмотрев, что большинство ардуинских библиотек сделаны с применением ООП, я тоже решил не выделываться и написал класс SmartDelay, который можно получить с гитхаба как zip для добавления в Arduino IDE или сделать git clone в ~/Arduino/libraries/

В результате получилось вот такое.
Читать полностью »

Настоящие программисты — это облака, big data, high load… А у нас — практически DIY. 2 установки — уже тиражирование, 100 штук — производство… Но зато атомные ледоколы, маневровые локомотивы, трактора, шлюзы, мосты, опускающиеся вниз от лишнего асфальта, беспилотники размером в дом, 50 человек персонала на цех длиной больше двух километров… и надежность, надежность, надежность… И пяток гендиректоров в костюмах прямо на поле при демонстрации системы на тракторе…

image
Обычное окончание отладки — убираем антенны с путеправильной машины

Итак… пришла просьба от коллег — написать ТКП (технико-коммерческое предложение) на хитрый GPS-трекер. И комментарии, что большие и настоящие делать отказались.
Читать полностью »

В этой статье я публикую в свободный доступ мой тестер и измеритель 8шт часовых аккумуляторов-таблеток форм-фактора CR2032. Надеюсь, он пригодится тем, кто делает портативную электронику и различный IoT. В статье я опишу схему моего тестера и расскажу как он работает. Приведу результаты измерения аккумуляторов LIR2032. И проверю восемь CR2032 от разных производителей. Также поделюсь богатым опытом: какие аккумуляторы лучше не брать, а какие — хорошие. Бонусом распишу опасные моменты: и как самому не пострадать и не сжечь дом, как это любит делать Креосан.

Про мой LIR2032 и CR2032 тестер, сами батарейки и накопленный опыт - 1Читать полностью »

В статье описывается подход к программированию многоядерных сигнальных процессоров на основе OpenMP. Рассматриваются директивы OpenMP, разбирается их смысл и варианты использования. Делается акцент на цифровых сигнальных процессорах. Примеры применения директив OpenMP выбраны приближенными к задачам цифровой обработки сигналов. Реализация проводится на процессоре TMS320C6678 фирмы Texas Instruments, включающем 8 DSP-ядер. В части I статьи рассматриваются основные директивы OpenMP. Во II части статьи планируется дополнить список директив, а также рассмотреть вопросы внутренней организации работы OpenMP и вопросы оптимизации программного обеспечения.

Данная статья отражает лекционно-практический материал, предлагаемый слушателям в рамках курсов повышения квалификации по программе «Многоядерные процессоры цифровой обработки сигналов C66x фирмы Texas Instruments», проводимых ежегодно в Рязанском радиотехническом университете. Статья планировалась к публикации в одном из научно-технических журналов, но в силу специфики рассматриваемых вопросов было принято решение о накоплении материала для учебного пособия по многоядерным DSP-процессорам. А пока данный материал будет копиться, он вполне может полежать на страницах Интернета в свободном доступе. Отзывы и пожелания приветствуются.
Читать полностью »

Сегодня у нас самая предновогодняя серия про ПЛИС и отладочную плату Френки. Предыдущие серии 1, 2.

Отладочная плата ПЛИС — Франкенштейн. Звуки и музыка - 1Мы уже передавали тоновые сигналы по радио с помощью нашей платы Франкенштейн. Теперь попробуем воспроизводить звуки и музыку.

Для этого подключим к ПЛИС обычный динамик. К Френки подключен генератор на 25.175 МГц. Если поделить эту частоту до диапазона слышимых частот и подать на вывод ПЛИС, то мы можем услышать звук. Меня частоту мы можем получить разные звуки.

Тестировать качество звучания будет самый лучший слухач в доме — Маша. Диапазон частот в 60 КГц — это вам не шутки! )))

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

Моя коллекция старых компьютеров пополняется не очень быстро, поэтому я делаю старый компьютер своими руками.

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

Тёплый ламповый щелкающий звук тактового генератора:

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


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