Рубрика «arduino»

fiber — легковесные процессы для Arduino - 1

А давайте притащим мир большого программирования в Arduino!

Любая программа, а тем более программа близкая к аппаратуре (а какие еще на arduino бывают?) при рассмотрении представляет собой множество параллельно работающих ветвей.

При этом в реальной жизни обработка большинства вещей в реальном времени не требуется. Достаточно иметь нечто похожее на реальное время.

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

А вот если мы программируем скажем регулятор ШИМ (не рассматриваем аппаратные способы), то тут нам возможно потребуется считать каждый такт процессора, чтобы обеспечить приемлемую точность регулирования.

Если рассмотреть структуру произвольного сложного программно-аппаратного проекта в том числе на Arduino, то увидим, что задач требующих "реального" (с жесткими требованиями) реалтайма — меньшинство, а большинству задач достаточно условного реалтайма.

Программирование реального реалтайма — это как правило прерывания и аппаратные хитрости. В этой статье поговорим о программировании реалтайма условного.

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

Введение

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

Поэтому в данной заметке мы разберемся в структуре и настройках проекта.
Читать полностью »

Введение

Платформа Arduino популярна, независимо от того, ругают её или хвалят. Её создателям удалось снизить порог вхождения до уровня несколько кликов мышью + пара строк кода и вуаля — вот вам моргающий светодиодик. И вообще, для быстрого прототипирования поделок на AVR, Arduino вещь крайне удобная. Единственное что им не удалось это IDE, которую и IDE-то назвать сложно. Среди функций IDE она обеспечивает только одну — автоматизацию создания и сборки проекта.

Для пользователей Windows существует альтернатива: MS Visual Studio Community + плагин vMicro который позволяет писать скетчи, но уже со всеми вкусностями, предоставляемыми IDE. Плагин без проблем качается в самой студии через меню «Инструменты» и в триале работает сколько угодно. Платная версия в теории поддерживает пошаговую отладку, но меня, как владельца лицензионной копии vMicro они не очень-то и впечатлили.

Для пользователей Linux всё как всегда: хотим хорошую IDE — выбираем «жертву» и пытаемся прикрутить к ней нужный функционал. Существуют решения на базе Eclipse, но я не люблю эклипс, о чём уже однажды писал. Я мирюсь с ним как с неизбежным злом, когда под рукой нет вообще ничего подходящего. Из всех бесплатных IDE я больше всего уважаю мощный и замечательный Qt Creator, в котором я и моя команда работаем уже больше года. Поэтому и рассказывать буду о том, как превратить его в среду разработки для Arduino

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

19 ноября приглашаем на пятый DIY Meetup - 1

Всем привет! DIY-сообщество Mail.Ru Group — разработчики, которые в свободное от работы время мастерят всякие крутые, неожиданные вещи (умный дом и умные часы, обнимишка, тепловизор на FLIR Lepton своими руками, электровелосипед и многое другое, всё это вы можете найти в нашем блоге на Гиктаймс) — периодически собираются, чтобы рассказать о своих разработках желающим и обменяться опытом с друзьями по разуму.

В воскресенье, 19 ноября, приглашаем всех желающих на пятый открытый DIY Meetup Mail.Ru Group в Москве: скорее регистрируйтесь! По итогам голосования мы сформировали программу митапа, смотрите её под катом.
Читать полностью »

Для строчных дисплеев Winstar очень соблазнительно сократить число управляющих соединений, которых даже при четырехпроводном включении получается не меньше шести (R/W можно не подключать, см. вот эту публикацию автора). Говорят (в том числе и сами винстары, см. оф. сайт), что контроллер WS0010 может управляться по SPI (а некоторые даже и по I2C!), но инструкций в документации на эту тему упорно не помещают, и как с этим управляться — непонятно. К тому же SPI помогает не сильно — вместо шести соединений получаем четыре и опять же наглухо привязанные к дисплею, потому что еще для каких-то целей SPI в любительской практике употребляют нечасто. Потому самое удобное решение в плане сокращения числа соединений для стандартных плат Arduino — использовать так называемый расширитель (экспандер) портов на основе шины I2C под названием PCF8574. Это позволяет сократить число необходимых соединений до двух (не считая питания), причем на основе выводов стандартного порта TWI, что не мешает подключать к нему же различные датчики, часы и т.п.
Читать полностью »

Мысль скрестить электронику и украшения — она очень сильно старая. Поэтому когда мы ее вспомнили, то поиски дали большое количество работ на этот счет. Правда, зачастую, под электронными украшениями подразумевались украшения из электроники — облаченные в эпоксидку кусочки платы, элементы, кулоны-микросхемы. Мы же хотели сделать светодиодные украшения. Не такие, как в китайских игрушках, которые продают на каждом углу, потому как в них все достаточно неинтересно — есть несколько программ мигания, переключаемых по кнопке, а что-то посложнее и поинтереснее. Например, бегущие огни, реагирующие на окружающее освещение, горящие ярче в темноте и тускнеющие на свету. Или мерцающие в такт окружающей музыке. Или меняющие цвет в зависимости от температуры вокруг. Или показывающие сердечный ритм носителя. Иными словами, нам хотелось какой-то активной реакции. Сразу скажу — получилось примерно так:

Как мы разрабатывали платформу для электронных украшений - 1
Читать полностью »

Доброе время суток, уважаемым Хабравчанам.

Сегодня я решился вынести на суд общественности проект, работу над которым вел на протяжении последней пары лет: «LightHub». То, что получилось в итоге, можно назвать, пожалуй, самым дешевым решением для создания Умного дома, которое, тем не менее, умеет:

  • Управлять освещением и силовыми устройствами(Как реле так и диммеры DMX-512 и Modbus RTU)
  • Управлять теплыми полами (в качестве термодатчиков используются полтора десятка дешевых DS18B20, разведенных по квартире)
  • Управлять задвижками вентиляции/кондиционера через преобразователи ШИМ->0..10В
  • Управлять самодельной системой приточной вентиляции. (об этом, если повезет, в следующей статье)
  • Многое такого, о чем я изначально не задумывался, просто в силу того, что контроллер получился абсолютно открытым, гибко конфигурируемым, и прекрасно дополняющим Опенсорсные решения Openhab+Mosquitto+NodeRed

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

На выход — например, такие вот релейные модули, DMX, Modbus переферия.

Контроллеры конфигурируются при помощи JSON файлов, которые при старте контроллера загружаются по http (далее, конфиг можно сохранить в NVRAM через Serial CLI). Ну и, конечно, все это управляется системой Openhab 2, через штатное мобильное приложение.
Задачи «малой автоматизации» решены как при помощи штатных openhab rules (прямо скажем, не очень удобных), так и при помощи NodeRed. (По поводу NodeRed вот статья, которая прекрасно описывает пример автоматизации.)

Исходники, вместе с примерами конфигов, выложены на GIThub, описание понемногу выкладываю на сайте проекта. Соответственно, более полная история под катом.
Читать полностью »

Протокол MQTT, на текущее время, завоевал свою популярность и стал стандартом де факто в проектах, направленных на создание решений для Интернета вещей (IoT). Конечно, Интернет вещей – это определенная абстракция или, правильнее, концепция построения распределенных сетей устройств или машин. При этом, частные задачи взаимодействия машин Machine-to-Machine (M2M), уже сегодня эффективно решаются, включая и уровень подключения этих систем к Интернет, как для создания промышленных систем автоматики, так, например, и для построения систем «умного дома». Очевидно, что для критически важных систем требуется наличие локального арбитра или брокера и устройств, позволяющих отработать решение ситуации не зависимо от качества Интернет-подключения, а также в случае полного разрыва связи.

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

Платформа ARM и брокер MQTT, как современная основа решений для Интернета вещей - 1
ClusterHAT review: Raspberry Pi cluster computer kit. Photo: MagPi magazine
Читать полностью »

С момента предыдущей публикации прошло уже очень много времени, пора уже и рассказать об успехах :) Всё это время я посвятил практическому изучению электроники (цифровой и аналоговой), сделал с десяток печатных плат (метод ЛУТ оказался неплох!), просмотрел сотни схем от разных электронных микроскопов различной давности изготовления. И даже собрал парочку проектов на Arduino, чтобы на чём-то по-практиковаться.

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

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

Всю систему разделил на следующие независимые модули:

  • Захват изображения и интерфейс с ПК.
  • Блок питания для точных элементов, и блок питания для силовых элементов (реле, клапана и пр.)
  • Управление магнитными линзами, статическое. Конденсор, фокусировка, смещение луча вначале, стигматор — всё это задаётся независимо от сканирования.
  • Управление отклонением луча. Непосредственно отвечает за перемещение луча по образцу. Увеличение задаётся именно здесь.
  • Управление вакуумной системой
  • Управление высоким напряжением и накалом катода
  • Источник высокого напряжения -1кВ для ФЭУ в детекторе вторичных электронов (SED)
  • Источник высокого напряжения +12кВ для коллектора SED (без него детектор будет работать в режиме регистрации упругоотражённых электронов — BSE)

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

Приручение дикой зверушки: добавляем поддержку Homekit в «умную розетку» Redmond SkyPlug RSP-100S - 1

Предыстория

Впервые про данную розетку я узнал из статьи Умная розетка Redmond SkyPlug RSP-100S Анализ конструкции и схемы электрической принципиальной. Выявление недостатков. Помню, что прочитав ее, в первую очередь заинтересовался схемой бестрансформаторного источника питания и тем, насколько компактно размещены элементы в корпусе розетки при том, что внутри полноценное реле, а не, скажем, симистор.

О каких-то попытках перепрограммировать Bluetooth-модуль и речи не было, тк программирование BLE устройств исторически было делом очень непростым. Вот пример: Разработка IoT устройств с использованием Bluetooth LE, явно не DIY уровень.

Однако, за прошедший год ситуация кардинальным образом изменилась…
Читать полностью »