Search
Write a publication
Pull to refresh
24
0

Схемотехник/программист МК

Send message

Espruino: JavaScript в микроконтроллере

Reading time7 min
Views54K
image

«Зачем?», «Что за бред?», «Извращение!», «Фу-фу-фу» — вот некоторые из многих высказываний, которые мы услышали, когда выпустили плату Iskra JS на ядре Espruino.

Зачем


Когда правильный электронщик слышит, что что-то сделано на Arduino, температура его тела поднимается примерно на полградуса: «взяли годный микроконтроллер и вместо того, чтобы фигак-фигак и регистрами выжать из него все соки, опошлили всё на свете… нет слов, одна ненависть».

Но ведь можно пойти ещё дальше. Взять микроконтроллер Cortex M4, который в десятки раз богаче того, что стоит на той же Arduino Uno, запихнуть туда интерпретатор JavaScript и делать проекты на JavaScript!

Думаю, что на этом моменте те, кто не готов к такому надругательству над святыми микросхемами, уже лопнули. Я продолжу для остальных.

Читать дальше →

Логические выражения в C/C++. Как ошибаются профессионалы

Reading time5 min
Views49K
Логическое выражение в программировании — конструкция языка программирования, результатом вычисления которой является «истина» или «ложь». Во многих книгах по программированию, предназначенных для изучения языка «с нуля», приводятся возможные операции над логическими выражениями, с которыми сталкивался каждый начинающий разработчик. В этой статье я не буду рассказывать, что оператор 'И' приоритетнее оператора 'ИЛИ'. Я расскажу о распространённых ошибках в простых условных выражениях, состоящих всего из трёх операторов, и покажу, как можно проверить свой код с помощью построения таблиц истинности. Описанные ошибки делают разработчики таких известных проектов как FreeBSD, Microsoft ChakraCore, Mozilla Thunderbird, LibreOffice и многих других.
Читать дальше →

Все светодиодные лампы IKEA

Reading time3 min
Views83K
Светодиодные лампы IKEA многие заслуженно считают лучшим из того, что можно купить в России. Прежде всего, многие лампы IKEA Ledare имеют очень высокий (91.1-96.1) индекс цветопередачи (CRI) и нужно заметить, что фактически это единственные лампы с CRI>90, доступные в нашей стране. Многие лампы IKEA дешевле конкурентов при лучших параметрах. У IKEA больше половины ламп поддерживают регулировку яркости (диммирования).



Читать дальше →

О трансформаторе импульсном замолвите слово

Reading time10 min
Views32K
Несмотря не то, что не так давно проскакивали довольно неплохо написанные статьи о расчете трансформатора импульсного источника питания, я предложу вашему вниманию свою методику, и не просто голую методику, а максимально прозрачное описание принципов, в ней использующихся.

Картинок не будет, будет около 18 несложных формул и много текста. Всех желающих приобщиться прошу на борт.
Читать дальше →

Измерим гармонию — анализатор звукового спектра на STM32L4 Discovery

Reading time7 min
Views17K
В предыдущей публикации мы подключали дешевый китайский LCD экран к плате STM32L4 Discovery. Теперь мы попробуем реализовать на этой комбинации что-то выходящее за рамки традиционного моргания светодиодом, а именно анализатор звукового спектра, который использует имеющийся на плате микрофон. Заодно я расскажу, как пользоваться операционной системой FreeRTOS, и зачем она нужна, а также почему в нотной октаве 12 нот, и чем 53 ноты лучше, чем 12.



Читать дальше →

Замена аналоговой регулировки на цифровую в лабораторном блоке питания HY3005D

Reading time9 min
Views22K
     В статье пойдет речь о замене штатных потенциометров на механические энкодеры EC11 (накапливающие датчики угла поворота) в блоке питания Mastech HY3005D с использованием микроконтроллера PIC16F1829 и сдвигового регистра 74HC595 реализующей ЦАП на резисторной матрице R2R
Читать дальше →

Особенности использования и тестирования кода С++ на микроконтроллерах

Reading time11 min
Views25K
Так сложилось, что основным языком для работы с микроконтроллерами является C. Многие крупные проекты написаны именно на нем. Но жизнь не стоит на месте. Современные средства разработки уже давно позволяют использовать C++ при разработке ПО для встраиваемых систем. Однако такой подход до сих пор встречается достаточно редко. Не так давно я попробовал использовать С++ при работе над очередным проектом. Об этом опыте я и расскажу в данной статье.

Читать дальше →

STM32: SPI: LCD — Вы всё делаете не так [восклицательный знак]

Reading time8 min
Views90K
Надеюсь сообщество простит меня за такой заголовок, просто в последнее время все чаще и чаще сталкиваюсь с программами в которых к микроконтроллерам STM32 подключают различные дисплеи с интерфейсом SPI и очень часто передачу данных при этом делают не правильно.
Как следствие — либо код не работает совсем и тогда в него внедряют различные задержки, или пишут код таким образом что он гарантированно будет работать медленно (по сравнению с возможной скоростью). А кто то, не разобравшись просто копирует чужой «с костылями» код, и потом такие «произведения» ходят по интернету из примера в пример…
Блок SPI описанный в данной статье точно есть у контроллеров семейств: STM32F1, STM32F2, STM32F4. По другим смотрите Reference Manual.

Откуда растут такие проблемы и каким образом они решаются под катом.
Читать дальше →

Конец эры глобального CSS

Reading time6 min
Views62K
Все CSS-селекторы живут в глобальной области видимости.

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

Абсолютно каждый селектор потенциально может вступить в борьбу с другим селектором или стилизовать «посторонний» элемент. В этой «глобальной» борьбе селектор может даже полностью проиграть, в итоге не применив к странице ни одного из своих правил.

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

Так не должно быть. Пора оставить позади эру глобальных стилей. Наступило время закрытого CSS.
Читать дальше →

Миссия невыполнима: геолокация на Android без сжирания батарейки

Reading time10 min
Views80K
Пользователь: это невозможно, GPS съест батарейку
Джуниор: это возможно, используй Geofences
Сеньор: есть варианты и получше

image
На картинке сначала в одну, а потом в другую сторону одновременно с одним человеком «прогулялись» 6 одинаковых телефонов. Но какой разный результат!
Читать дальше →

STM32F4 USB RNDIS драйвер (управление устройством через Web-интерфейс)

Reading time12 min
Views53K
Доброе время суток, дорогие друзья!

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

Ранее в статье была анонсирована разработка RNDIS USB драйвера для контроллеров серии STM32F4. С тех пор библиотека постепенно развивалась и нынче доросла до первой release-версии. Библиотека под названием LRNDIS (LWIP + RNDIS) позволяет нам создавать на базе контроллера STM32F4 как устройства класса USB «модем», так и любые другие устройства с управлением через web-интерфейс. Пример управления платой stm32f4-discovery из web-браузера на Android-планшете представлен на видео:



На странице видеоролика представлена ссылка на исходные коды и HEX-файл прошивки для платы discovery, с которым вы сможете повторить данный эксперимент. В статье рассказано о том, как и когда технология доступа через WEB-интерфейс полезна, а также — как работает библиотека LRNDIS для контроллеров STM32F4. Также присутствует обучающий материал о работе USB и устройстве Ethernet-сетей.
Читать дальше →

MediaTek Labs приглашает на семинар по разработке Wi-Fi-гаджетов для умного дома на новейшей платформе MediaTek MT7688

Reading time1 min
Views4.6K
Умным дом — это место, где все скучные бытовые дела за вас делает электроника. Приходят в голову интересные идеи на эту тему? Добро пожаловать на бесплатный онлайн-семинар от MediaTek Labs!



Во время получасовой онлайн-встречи вы узнаете все-все-все про нашу новейшую плату MediaTek LinkIt Smart 7688 — Wi-Fi-платформу с открытыми исходниками, которая помогает создавать самые разные «сетевые» гаджеты.
Читать дальше →

Способы отладки ПО микроконтроллеров в электроприводе

Reading time14 min
Views53K
image

Как отлаживают программы микроконтроллеров? Берется JTAG, осциллограф – пара дней/недель и программа отлажена. Таким будет типичный ответ, и в большинстве случаев он будет правильным… Но не всегда. Микроконтроллеры решают очень разные задачи, и в этой статье мы рассмотрим, что делать, если нужно разработать громоздкое ПО низкоуровневого управления каким-либо силовым электрооборудованием, например, преобразователями частоты для электродвигателей, DC/DC преобразователями заряда АКБ для поезда, корректорами мощности, сервоприводами и т.п. Оборудованием, где протекают килоамперы и ШИМят киловольты, где на счету каждая коммутация IGBT ключей инвертора, где время реакции микроконтроллера на нештатную ситуацию измеряется в микросекундах, а само оборудование в герметичных корпусах устанавливается и эксплуатируется где-нибудь на заводах Якутии. Если вы хотите узнать, какие особенности это накладывает на способы отладки – добро пожаловать под кат.
Читать дальше →

PPM-to-USB адаптер на STM32F3Discovery, или Подключаем авиамодельный пульт к компьютеру как HID-джойстик с STM32Cube

Reading time22 min
Views42K


В этой статье я расскажу, как:
  • Создать проект в STM32CubeMX и настроить таймеры для захвата внешних сигналов.
  • Декодировать PPM-сигнал с авиамодельного пульта.
  • Сделать Human Interface Device на STM32 и написать свой HID Report Descriptor.
  • Полетать в симуляторе на гоночном квадрокоптере. :)
Читать дальше →

Разработка power bank для ноутбука. От макета к готовому изделию. Часть первая

Reading time10 min
Views53K
Сделать себе внешний аккумулятор для ноутбука я хотел уже давно, 3-4 года назад для работы в парке. Хоть и мечта рисовать схемы и трассировать платы в парке Горького или Битцевском лесу так и не реализовались (пока), но внешний аккумулятор (назовем его по-современному — PowerBank) я таки сделал. О том как это устройство проходило путь от макета до конечного изделия и почему я делал то, что уже есть на рынке, под катом.


Читать дальше →

Протокол WS2812B на STM32 без пустых циклов и прерываний. И как сделать правильную радугу

Reading time6 min
Views104K


На Хабре уже есть пара статей о работе с RGB светодиодами WS2112B, но почему-то они все используют довольно архаичный способ формирования битовой последовательности. Способ заключается в формировании точных интервалов времени с помощью пустых программных циклов. Возможно, это издержки использования Arduino, но мы, конечно, уже давно перешли на ARM Cortex-M4 в лице STM32 и можем себе позволить сделать красивее.
Читать дальше →

Советы начинающим программистам микроконтроллеров

Reading time10 min
Views223K
Очень давно хотелось поделиться своим опытом, с начинающими радиолюбителями, потому что об этом пишут очень мало и разрозненно. Мой опыт не хороший, не плохой, он такой какой есть. С некоторыми утверждениями вы в праве не согласиться и это нормально, ведь у каждого свое видение ситуации. Цель данного материала, обратить внимание читателя на некоторые вещи, что то взять на заметку и сформировать собственное мнение и видение ситуации, ни в коем случае нельзя воспринимать это как истину.
Читать дальше →

STM32F4: GNU AS: Программирование на ассемблере (Часть 1)

Reading time15 min
Views76K
Обсуждение статьи после прочтения или задать вопросы можно в VK: vk.com/topic-200545792_46641834

Так же теперь (2021 год) я написал небольшой редактор для программ на ассемблере, начинать читать можно с Редактор ассемблера для ARM микроконтроллеров для компилятора gnu as. Старт там же можно будет и создавать проект в более удобном формате нежели описано в этой и нескольких последующих статьях. При этом рекомендую все таки ознакомится со всеми статьями по этой тематике в моих публикациях, так как не везде я повторяю прошлые материалы.

Это моя первая статья для сообщества Хабрахабр и написать ее я решил про то что сейчас волнует меня самого: написание программ для микроконтроллеров STM32 (семейство АRМ) на языке ассемблера. Я использую отладочную плату на основе микроконтроллера STM32F407 (STM32F4 Discovery, Open407I-C), но статья будет не менее полезна и для программирования других микроконтроллеров STM32.
Читать дальше →

STM32F4: GNU AS: Мигаем светодиодом (Оживление) (Часть 2)

Reading time14 min
Views31K
Это вторая публикация на тему программирования микроконтроллеров STM32 на языке ассемблера, первая часть находится Здесь.

Если у вас возникли вопросы или пожелания, но вы не можете здесь писать то переходите в VK: vk.com/topic-200545792_46641967

Дополнительно, обращаю внимание что сейчас (2021 год) написан небольшой редактор для программирования на ассемблере, в котором так же был написан код аналогичной функциональности, но с использованием «плюшек и удобных подушек» редактора, посмотреть конкретно про написание мигалки в нем можно в статье Assembler Editor Plus: Использование модулей (возможно в процессе прочтения нужно будет пройти еще по нескольким ссылкам где будет описано про функциональность редактора в общем, и как выполняется создание проекта, компиляция, прошивка, отладка)

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

Читать дальше →

Нестандартный подход к стандартной разработке дополнения (Add-In’а) на C#

Reading time15 min
Views8.5K
С помощью Add-In'a можно реализовать дополнительную функциональность, серьезно облегчающую повседневное использование приложения. Типовой подход прост – изучаем API приложения для разработки дополнения и реализуем его в виде отдельной библиотеки. На выбор обычно предлагается несколько языков, С# скорее всего будет в данном списке из-за его распространенности и популярности для разработки приложений под Windows на платформе .Net.

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

Как правило в самой среде приложения все организовано как надо — нужные действия реализованы в виде дополнительных окон, расположение и размер которых пользователь как хочет, так и настраивает для себя. Можно предположить, что API должен содержать данную функциональность интеграции пользовательских окон в среду, но как ни странно, скорее всего такой функционал будет отсутствовать. Но, если очень нужно, это можно реализовать.
Читать дальше →

Information

Rating
9,034-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity