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

В процессе написания загрузчика STM8uLoader для микроконтроллеров STM8 возникла необходимость измерить глубину стека.

Зададимся вопросами:

  • Что будет если попытаться поместить в стек больше информации чем его глубина?
  • Что будет если попытаться извлечь из стека больше информации чем поместили?
  • Что будет если инициализировать указатель стека SP адресом выходящим за границы стека?

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

Добрый вечер, дамы и господа! Всем доброго здравия и хорошего настроения желаю! Сейчас я начну цикл из десятка статей, посвящённых разработке пивоварни «BEERBRAZZERS». Относиться к этому циклу серьёзно — не рекомендуется. Это всё по фану и, как говорится, чисто ради веселья. Первая статья будет посвящена управлению светом под музыку. Действительно, куда же в пивоварении без этого? Никуда. А раз так — то приступим.

BEERBRAZZERS

Собственно, о чём речь? Многие из Вас наверняка знают, что в штатах все фанатеют от украшательства на рождество своих угодий различными гирляндами, светильниками, диодными шнурами и прочей светотехнической продукцией. Там это носит, порой, характер специальной олимпиады — этакого мерения, у кого гирлянда длиннее… Особой фишечкой, конечно же, являются самые разнообразные световые эффекты: синхронное включение/выключение, плавное увеличение/уменьшение яркости, всяческие бегущие огни и так далее. Но особым шиком является синхронизация своего светового шоу под музыку.

Порой в такие вот украшательства вбухивается не одна тысяча долларов, а так как спрос рождает предложение, то на рынке пёстрым цветом цветут различные платы управления, специализированный софт и прочее. На русском языке информации по этой кухне крайне мало, а так как моя пивоварня ничем не хуже ранчо какого-то там реднека перед рождеством, то пришлось разбираться. Тысячи долларов выделять на такое непозволительно. А вот тысячу рублей — самое оно! Свои изыскания я предлагаю всем желающим к ознакомлению. Кому интересно — пойдёмте ко мне под кат…

Если кто не понял о чём речь, то можно глянуть вот такой видос, и всё станет понятно.

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

Это видео где Marc Raibert основатель Boston Dynamics рассказывает про роботов: BigDog, Spot, SpotMini, Atlas. На основании этого видео и других видео где выступал Marc, я опишу кратко технологии роботов и дальнейшие планы компании.
Читать полностью »

Предыстория

В начале этого учебного года (17-18) администрация нашего любимого лицея сказала нам: «В конце года каждый из вас должен защитить индивидуальный проект. У тех, кто не защитит проект, останется академ. задолженность и к гоcам (ГИА-9) они допущены не будут». Получается что-то вроде дипломной работы (в 9 классе, просто супер). Примерно с сентября по декабрь мы с моим другом Кириллом (kkirra) опрделялись, что за проект мы будем делать: хотелось что-то не очень сложное в исполнении, но вместе с тем что-то зрелищное и оригинальное. В конце концов мы определились: решили сделать модель человеческой руки, да еще такую, чтобы под управлением андроид устройства (именно в этом году мы с Кириллом случайно поступили в IT-школу Samsung на базе нашего лицея, поэтому хотели обязательно использовать в проекте полученные знания) она переводила введенный текст в язык жестов.
Читать полностью »

Не буду особо вдаваться в теорию, в сети много ресурсов где все очень подробно описано. Но когда дело доходит до практики понимаешь, что все намного сложнее. Используется микроконтроллер stm32l152c-discovery. В статье будет описан процесс запуска ШИМ двух таймеров в одно и то же время (полная синхронизация):

image

А так же запуск с отставанием (на фото отставание в пол периода):

image

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

Идентификаторы задач (Task Identifiers)


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

Вся правда об ОСРВ от Колина Уоллса. Статья #4. Задачи, переключение контекста и прерывания - 1

Разработчики ОСРВ используют разные подходы к идентификации задач, но можно выделить четыре общие стратегии:

  • Задача идентифицируется с помощью указателя (pointer) на свой «блок управления» (“control block”). Указатели всегда уникальны, а также удобны в использовании, поскольку доступ к блоку управления требуется при многих вызовах API. Это подразумевает, что все данные о задаче хранятся в оперативной памяти (RAM), что может быть неэффективно. Указатель обычно занимает около 32 бит памяти.
  • Задача может быть определена с помощью произвольного «порядкового числа» (index number). Это значение может пригодиться при предоставлении доступа к записям в определенных таблицах. Такой идентификатор может занимать восемь или меньше бит памяти, в зависимости от ограничений по количеству задач, которые поддерживаются ОСРВ.
  • Некоторые ОСРВ разрешают только одну задачу на каждый уровень приоритета и, следовательно, используют приоритет для уникальной идентификации задачи. Это означает, что приоритет задачи не может быть изменен. Этот подход является разновидностью предыдущего подхода.
  • Задачи могут иметь имена, которые являются символьными строками (character string). Это может быть полезно для отладки, но вряд ли будет эффективным средством уникальной идентификации задачи. ОСРВ, которые поддерживают именование задач, как правило, имеют дополнительный идентификатор (например, указатель), который используется вызовами API и т. д. Для большинства встраиваемых систем текстовые имена — это накладные расходы; хороший отладчик позволяет называть их локально на хосте.

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

Как использовать USB-камеру с ROS на Raspberry Pi или BeagleBone Blue — для потокового стрима видео на большой компьютер - 1

Эта инструкция о том как подключить USB-камеру к Raspberry Pi или BeagleBone Blue и использовать ее с ROS (Robot Operating System) — чтобы читать данные с камеры через ROS image_view и даже транслировать видео поток в веб-браузер!

В конце видео демонстрация на роботе EduMip.
Читать полностью »

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

Обратная разработка реле времени ВЛ-76-С - 1

Общий вид реле.
Читать полностью »

Последнее время среди аксессуаров для велосипедов получили широкое распространение так называемые цифровые велоспидометры (велокомпьютеры). Данные устройства способны измерять множество параметров, главные из которых скорость и расстояние. Принцип измерения скорости основывается на подсчёте периода оборота колеса, а расстояние вычисляется на основе измерения количества таких оборотов. Зачастую датчиком оборота колеса служит геркон в совокупности с магнитом на спице колеса. В зависимости от функциональности, цена таких устройств варьируется в больших пределах. Самый дешёвый велоспидометр можно приобрести примерно за 500 р.

У меня всегда было желание иметь подобное устройство. При этом я сформулировал ряд собственных требований, которым оно должно удовлетворять. Прежде всего, мне очень хотелось, чтобы по мере движения на дисплее пририсовывался график изменения скорости в зависимости от расстояния или времени, накопленный за небольшой период. А также, фиксировать (логировать) измерения на запоминающее устройство для дальнейшей передачи статистических данных на компьютер, их более детального просмотра. Дешёвые модели не полностью соответствуют моим требованиям, а за дорогие модели переплачивать не хочется.
Читать полностью »

Приветствую! В процессе обсуждения статьи товарища KSVl была озвучена необходимость небольшого пособия по проектированию печатных плат. Очень часто на хабре я вижу статьи в стиле «5 правил оформления кода» или «5 шагов к успешному проекту», то есть очень удобные собрания тезисов по определенной теме. К сожалению подобных статей по разработке электроники мало и это плохо…

Я обещал пользователю KSVl и некоторым другим читателям, статью с базовыми принципами проектирования печатных плат (ПП), так же приглашаю к ознакомлению всех любителей попаять за чашечкой кофе!

7 правил проектирования печатных плат - 1
Читать полностью »


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