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

Картинка для привлечения внимания

Здравствуйте, уважаемые читатели!

В этой статье я опишу способ безопасного использования ножки RESET на плате Ардуино для собственных нужд.

Собственно, на поиски решения данного вопроса меня сподвиг некоторый недостаток ножек в разрабатываемой мной системе (которую я надеюсь описать на Хабре, как закончу реализацию) на основе Arduino Pro Mini.
Итак, задача ясна, а требования таковы:

  • Возможность загружать скетчи обычными для Ардуины способами
  • Возможность использовать в своей программе ножку RESET как digital I/O pin

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

FLProg – альтернативная среда программирования Arduino. Описание проекта
В предыдущем посте я рассказал о предыстории появления проекта FLProg. Сейчас я хочу поподробнее рассказать о проекте и его состоянии на сегодняшний день.
Основной целью проекта является включение в круг пользователей плат Arduino людей незнакомых с программированием. Это возможно благодаря опыту промышленного программирования, который накапливался годами производителями промышленных контроллеров.
Проект состоит из двух частей. Первая часть это десктоп приложение FLProg представляющее собой графическую среду программирования плат Arduino. Во вторых, это сайт FLProg.ru, с помощью которого члены сообщества пользователей программы могут пообщаться между собой, узнать последние новости проекта, скачать последнюю версию программы, ну и найти необходимую информацию по работе с приложением.
Читать полностью »

Доброго времени суток, уважаемые читатели!
Началась эта история так. Во время работы на объекте, разместившимся в здании бывшего завода (кажется, металлоконструкций) с длинным названием (и, конечно же, имени очередного великого лидера партии) я увидел в куче хлама, предназначавшейся на выброс, одну вещь. Каковая вещь ударила по мне страшным приступом ностальгии, ибо точно такая же висела в холле СКБ (с не менее длинным и многосложным названием, чем вышеупомянутый завод), где работала когда-то моя мама, и где прошло немало времени из моего детства. Встречайте — часы «Электроника 7-06».

Восстанавливаем старые часы «Электроника 7»
Конечно же, я не мог устоять от соблазна восстановить (а может быть, и доработать?) их. Кому интересен процесс, а равно и конечный результат — прошу под кат (осторожно, некоторое количество схем и фото!).

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

Добрый день.
Хочу представить Вам очередной проект на ниве программирования распространенных плат Arduino.
Сначала немного истории. С самого момента появления контроллеров развитие принципов работы с ними идет по пути роста абстракции. Первый этап представлял программирование непосредственно в машинных кодах. Программирование было сложным, долгим и требовало очень специфичного склада ума. Поэтому программистов было очень мало.

Альтернативная среда программирования для Arduino — FLProg

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

Альтернативная среда программирования для Arduino — FLProg

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

Альтернативная среда программирования для Arduino — FLProg

Проект FLProg предлагает новый уровень абстракции с довольно смелым заявлением — «Что бы программировать микроконтроллеры, да и компьютеры не обязательно знать языки программирования».
Заявление может показаться слишком смелым, но это возможно и уже доказано в смежной с компьютерами области. Это область программирования промышленных систем автоматизированного управления. Практически с самого начала производители промышленных контроллеров пошли по этому пути. Сейчас стандартом для сред программирования у основных производителей являются языки FBD и LAD. Собственно говоря, как таковыми языками они не являются. Это скорее графические среды для рисования принципиальных иди логических схем.

Альтернативная среда программирования для Arduino — FLProgАльтернативная среда программирования для Arduino — FLProg

Такой подход оказался очень удобным для легкого вхождения в разработку систем АСУ инженеров электриков и электронщиков. Разрабатывая проекты установок, они могли легко привязать работу этих установок к алгоритмам работы контроллера. В обслуживании этих установок на объекте так же лучше когда существующий обслуживающий персонал может легко проверить работу системы АСУ, найти проблему. И при этом нет необходимости вызывать по каждому пустяку программиста из «Центра». И это подход себя оправдал. На сегодняшний день почти все системы промышленной автоматики созданы с помощью таких средств разработки.

Альтернативная среда программирования для Arduino — FLProg

Такая среда разработки есть у Siemens, ABB, Schneider, да и практически у всех производителей. Но существует и проблема. Все они привязаны к своим контроллерам. А цены на эти контроллеры очень тяжело назвать демократичными.

Альтернативная среда программирования для Arduino — FLProg

И вот появились платы Arduino. Дешёвые, с большим набором периферии и шилдов расширений. С интерфейсами совместимыми с дисплеями, датчиками, и другими устройствами. С возможностью прямого подключения к компьютеру, подключению к сети Ehernet и WiFI.

Альтернативная среда программирования для Arduino — FLProg

Эти платы идеально подходят для самодельщиков и кулибиных, на которых наша страна всегда была, есть и будет богата. Но, как всегда есть но. Программируются эти платы на языке C. Для большинства этих умнейших людей, с очень прямыми руками, растущими из положенного места, это китайская азбука. Они могут придумать нарисовать, собрать отладить и запустить сложнейшие схемы, но IF, FOR, Case, Void и т.п. это не для них. Конечно, можно почитать инструкции в интернете, поиграться какое — то время, помигать светодиодом с помощью примера. Но для более серьезного применения необходимо детальное изучение языка. А зачем им это? Они не собираются быть профессиональными программистами. У них другой путь. Они что то придумали. Да это проще и красивее собрать с помощью микроконтроллера, но становится для этого программистом, потратив месяцы на изучение языка? Нет, конечно. Собирают по старинке, попроще конечно, но в своей области.

Альтернативная среда программирования для Arduino — FLProg

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

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

Шел мелкий и противный дождь. Настроение было гнусным.
Он лежал на обочине и тихо ржавел. Рядом на столбе сверкал огнями молодой собрат.
Я остановился и положил его в багажник.
Я уже не один.
И он не один.
Читать полностью »

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

Собственно через регулярные выражения я к ним и пришёл.
Читать полностью »

К этому проектированию меня подтолкнула доступность на каком-то этапе обучения к отладочной плате EP2C20F484C7 фирмы «Altera» (семейство «Cyclone-II»).

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

Целью данной работы является получение кода, сгенерированного бэк-эндом компилятора LLVM MSP430

Введение

CLANG — это просто фронт-энд компилятора С для LLVM. LLVM — это фреймворк для разработки фронт-эндов, бэк-эндов компиляторов для разных целевых платформ. Этот фреймворк облегчает анализ путем приведения всех фронт-эндов к промежуточному представлению (IR). Все бэк-энды оперируют с этим общим представлением.

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

Текущая поддержка MSP430 весьма ограничена. Я надеюсь, что смогу помочь кому-нибудь, упорно фейс-палмя, чтобы сохранить их лицо.

Поехали

Текущая поддержка данной платформы предельно ограничена. Надеюсь, я смогу восполнить этот пробел. Ниже приведена упрощенная диаграмма того, как должна происходить сборка:
Читать полностью »

image

Привет. Недавно пересматривал один из моих любимых фильмов, а именно «Трасса 60» с Эми Смарт в главной роли. Там у главного героя была такая вещица, под названием «шар судьбы», который отвечал ему на разные вопросы. Ну и после просмотра у меня появилась мысль, а почему бы не сделать что-то подобное на микроконтроллере, тем более недавно разблокировал 4 штуки, ATtiny13 которые, когда-то заблокировал по незнанию, что такое фьюзы и с чем его едят.

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

В конце обязательно добавлю не только схему, файлы для Proteus 7, исходники но и фьюзы, hex-файл, чтобы каждый, кто умеет пользоваться программатором, мог повторить данное устройство.
Читать полностью »

image
В начале октября, на конференции ARM TechCon 2014, компания ARM анонсировала новое поколение mbed v3.0. Разработки ведуться над новым программным обеспечением — mbed OS и mbed Device Server.

mbed Device Server будет способен обрабатывать IoT (Internet of Things) данные в облаке через стандартный REST API, аналогично веб серверу.
mbed OS будет выполнять роль полноценной операционной системы для Cortex-M микроконтроллеров, включающей в себя: С++ фреймфорк, менеджмент защиты (TLS/DTLS), менеджмент энергопотребления, подключение к беспроводным сетям (Bluetooth Smart, 2G, 3G, LTE, CDMA и Wi-Fi).

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


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