У меня дома сложилась интересная ситуация. Телевизор в спальне подключен к компьютеру расположенному в другой комнате, и для того что бы жена могла посмотреть очередную серию сериала (хотя у меня есть андроидная приставка, которая стоит рядом с телевизором, она предпочитает смотреть с компа), приходится приложить достаточно много усилий. В виду присутствия детей, беспроводные мыши и клавиатуры у нас не приживаются. Я давно с интересом присматривался к возможности Arduino Leonardo прикидываться мышкой и клавиатурой, и когда эта плата пришла ко мне, реализовал данную возможность в программе FLProg версии 2.2. В паре с возможностями проекта RevoteXY получилась очень интересная штука. Для начала видео работы получившегося устройства.
Рубрика «программирование микроконтроллеров» - 79
FLProg + RemoteXY = Беспроводная клавиатура для компьютера на Вашем телефоне
2017-01-11 в 10:00, admin, рубрики: arduino, flprog, Блог компании FLProg, Железо, Интернет вещей, клавиатура, мышь, Настольные компьютеры, программирование микроконтроллеровОбработка нажатий кнопок для Arduino. Скрестить ООП и МКА. Часть 1
2017-01-10 в 18:21, admin, рубрики: abstract class, arduino, c++, class, polling, ооп, программирование микроконтроллеровПару месяцев назад я купил не сильно новый мотоцикл KTM 250EXC, открутил ручку газа в горку, моту пульнул в небо, а сам сел на задницу и что-то там сломал в спине. В результате, на мотоцикл не сесть два месяца как минимум. К чему я это? Да. У немного подуставшего мопеда оказалась неисправная приборная панель и я собрался, пока лежу дома, сделать самодельную новую свою.
Быстро собрал макет, циферки бегают, часики ходят, одометры запоминаются в FRAM — красота, но… понадобились кнопочки для управления этой красотой.
Сегодня с расскажу про кнопочки, потом про датчик зажигания, а уже потом про саму приборку, Ладно?
Рисовать на китайском экране 16х2 через i2c просто, датчики скорости и оборотов мотора сели на внешние прерывания, температура читается с аналогового порта, инфа хранится в FRAM, ну и часики тоже китайские воткнуты. Всё это крутится асинхронно примерно как SmartDelay, про который писал недавно здесь.
Читать полностью »
Первые шаги с STM32 и компилятором mikroC для ARM архитектуры — Часть 2, продолжение
2017-01-10 в 16:06, admin, рубрики: microC, stm32, Генерация синусоиды STM32, программирование микроконтроллеров, Таймер STM32Разобравшись с таймером, попробуем использовать его для чего, то кроме генерации временных интервалов. Чаще всего при помощи таймера генерируется ШИМ сигнал. Что это такое можно почитать на просторах Сети, например во всеведающий Википедии.
Основная прелесть ШИМ в том, что он позволяет при помощи ключей работающих в импульсном режиме (наиболее эффективном относительно потерь энергии) изменять действующее значение напряжение приложенного у той или иной нагрузке. Для ШИМ сигнала основными параметрами является общая длительность импульса и длительность его активного состояния (обычно высокого уровня сигнала).
Действующее значение напряжения имеет зависимость от длительности активного состояния импульса. Наш МК умеет генерировать ШИМ при помощи аппаратных функций таймера, не занимая драгоценное время ядра процессора.
FLProg + Nextion HMI Enhanced
2017-01-10 в 3:49, admin, рубрики: arduino, diy или сделай сам, flprog, nextion hmi, Блог компании FLProg, Интернет вещей, Программирование, программирование микроконтроллеров
Компания ITEAD выпустила новую линейку Enhanced своих панелей Nextion HMI. Представители компании предоставили мне экземпляр этой линейки для интеграции новых возможностей панели в программу FLProg. В версии 2.2 это было реализовано. В данном уроке мы рассмотрим новые возможности панели, и для примера создадим программируемый таймер на пять каналов.
Читать полностью »
Замена delay() для неблокирующих задержек в Arduino IDE
2017-01-09 в 16:44, admin, рубрики: arduino, Arduino IDE, delay, Замена, программирование микроконтроллеровПервое, с чем сталкивается осваивающий Arduino новичок, это неприятное свойство функции delay() — блокирование выполнения программы. Множество примеров в интернете используют эту функцию, но практическое применение как-то намекает, что лучше без неё обойтись.
Как и положено начинающему, я изобрёл велосипед сделал свою реализацию неблокирующей задержки. Задача стояла так:
- Обеспечить псевдомногозадачность, чтобы разные события происходили в своё время, со своими интервалами и не блокировали друг-друга.
- Было удобно этим пользоваться.
- Можно было оформить как библиотеку и легко включать в другие проекты без копипастов.
Подсмотрев, что большинство ардуинских библиотек сделаны с применением ООП, я тоже решил не выделываться и написал класс SmartDelay, который можно получить с гитхаба как zip для добавления в Arduino IDE или сделать git clone в ~/Arduino/libraries/
В результате получилось вот такое.
Читать полностью »
Как проектируют ненастоящие программисты
2017-01-02 в 5:27, admin, рубрики: GNSS, gps, Геоинформационные сервисы, Глобальные системы позиционирования, глонасс, ненормальное программирование, Программирование, программирование микроконтроллеровНастоящие программисты — это облака, big data, high load… А у нас — практически DIY. 2 установки — уже тиражирование, 100 штук — производство… Но зато атомные ледоколы, маневровые локомотивы, трактора, шлюзы, мосты, опускающиеся вниз от лишнего асфальта, беспилотники размером в дом, 50 человек персонала на цех длиной больше двух километров… и надежность, надежность, надежность… И пяток гендиректоров в костюмах прямо на поле при демонстрации системы на тракторе…
Обычное окончание отладки — убираем антенны с путеправильной машины
Итак… пришла просьба от коллег — написать ТКП (технико-коммерческое предложение) на хитрый GPS-трекер. И комментарии, что большие и настоящие делать отказались.
Читать полностью »
Про мой LIR2032 и CR2032 тестер, сами батарейки и накопленный опыт
2016-12-30 в 6:31, admin, рубрики: CR2032, LIR2032, stm32, stm32f100, stm32f100rb, емкость аккумулятора, программирование микроконтроллеров, Промышленное программирование, результаты тестов, схемотехника, тестирование батареек, метки: CR2032, LIR2032, тестирование батареекВ этой статье я публикую в свободный доступ мой тестер и измеритель 8шт часовых аккумуляторов-таблеток форм-фактора CR2032. Надеюсь, он пригодится тем, кто делает портативную электронику и различный IoT. В статье я опишу схему моего тестера и расскажу как он работает. Приведу результаты измерения аккумуляторов LIR2032. И проверю восемь CR2032 от разных производителей. Также поделюсь богатым опытом: какие аккумуляторы лучше не брать, а какие — хорошие. Бонусом распишу опасные моменты: и как самому не пострадать и не сжечь дом, как это любит делать Креосан.
Программирование многоядерных DSP-процессоров TMS320C66x с использованием OpenMP
2016-12-29 в 13:25, admin, рубрики: dsp, openmp, TMS320C66x, многоядерные DSP, многоядерные процессоры, параллельное программирование, программирование микроконтроллеров, сигнальные процессоры, цифровые сигнальные процессорыВ статье описывается подход к программированию многоядерных сигнальных процессоров на основе OpenMP. Рассматриваются директивы OpenMP, разбирается их смысл и варианты использования. Делается акцент на цифровых сигнальных процессорах. Примеры применения директив OpenMP выбраны приближенными к задачам цифровой обработки сигналов. Реализация проводится на процессоре TMS320C6678 фирмы Texas Instruments, включающем 8 DSP-ядер. В части I статьи рассматриваются основные директивы OpenMP. Во II части статьи планируется дополнить список директив, а также рассмотреть вопросы внутренней организации работы OpenMP и вопросы оптимизации программного обеспечения.
Данная статья отражает лекционно-практический материал, предлагаемый слушателям в рамках курсов повышения квалификации по программе «Многоядерные процессоры цифровой обработки сигналов C66x фирмы Texas Instruments», проводимых ежегодно в Рязанском радиотехническом университете. Статья планировалась к публикации в одном из научно-технических журналов, но в силу специфики рассматриваемых вопросов было принято решение о накоплении материала для учебного пособия по многоядерным DSP-процессорам. А пока данный материал будет копиться, он вполне может полежать на страницах Интернета в свободном доступе. Отзывы и пожелания приветствуются.
Читать полностью »
Отладочная плата ПЛИС — Франкенштейн. Звуки и музыка
2016-12-28 в 7:24, admin, рубрики: Altera, fpga, Verilog, ПЛИС, Программирование, программирование микроконтроллеров, сигнализация, сиренаСегодня у нас самая предновогодняя серия про ПЛИС и отладочную плату Френки. Предыдущие серии 1, 2.
Мы уже передавали тоновые сигналы по радио с помощью нашей платы Франкенштейн. Теперь попробуем воспроизводить звуки и музыку.
Для этого подключим к ПЛИС обычный динамик. К Френки подключен генератор на 25.175 МГц. Если поделить эту частоту до диапазона слышимых частот и подать на вывод ПЛИС, то мы можем услышать звук. Меня частоту мы можем получить разные звуки.
Тестировать качество звучания будет самый лучший слухач в доме — Маша. Диапазон частот в 60 КГц — это вам не шутки! )))
A fistful of relays. Часть 3 — декодер команд и управляющий автомат
2016-12-28 в 6:02, admin, рубрики: ненормальное программирование, программирование микроконтроллеров, реле, системное программирование, странные компьютерыМоя коллекция старых компьютеров пополняется не очень быстро, поэтому я делаю старый компьютер своими руками.
Он работает полностью на электромагнитных реле и будет состоять из четырех блоков.
На сегодняшний день я закончил уже три из них: АЛУ, регистровый файл и управляющий модуль, который декодирует инструкции раздает остальным блокам указания что делать.
Тёплый ламповый щелкающий звук тактового генератора: