Что может объединять микроконтроллер и кофе?

Что общего у Stellaris Launchpad и кофе? Я тоже не знал ответа, а потом заглянул а потом спрятал его под кат.)

Краткая предыстория. Во-первых, я люблю кофе! Будний день, обычно, начинается у меня в 6:00. Холодный душ бодрит, но после прибытия на работу все равно спать хочется. Для повышения тонуса и целеустремленности нужно принять допинг — кофе.) Да и вообще, вкус этого напитка мне нравиться, поэтому пью его достаточно часто. А какой же кофе без сахара!? Раньше я его добавлял много и ложками, но вкусы изменились, и теперь предпочитаю рафинад в количестве — один большой кубик, либо два маленьких на приведенную ниже кружку:

Но времени катастрофически ни на что не хватает, да и рука бойца колоть устала размешивать сахар в кофе… Это был знак — надо было что-то менять.

А теперь вторая часть предыстории.
На днях приехала ко мне отладочная плата на базе ARM микроконтроллера — Stellaris LaunchPad. Софт для разработки я установил, в примерах приложений порылся, и захотелось написать что-то свое, и чтобы обязательно полезное… ну хотя бы псевдополезное.) Так как в любительской робототехнике постоянно приходится иметь дело с сервомашинками и PWM-сигналами, управляющими ими, то было решено, научиться генерировать PWM на выводах  Stellaris. В ящике стола как раз хранились следующие предметы:

Две исправные сервомашинки, одна монсторских размеров — futaba и вторая стандартная hitech. Тут нужно сделать одно отступление, и рассказать об особенностях используемого  LaunchPad’a. На странице 8 мануала на платформу приведены характеристики по питанию:

  1. Входное напряжение питания: 4.75–5.25 VDC на выбор от двух ;источников
    • „ Либо от разъема USB Micro-B отладчика (воткнутого вторым концом в  PC)
    • „ Либо от USB Micro-B устройства (боковой разъем, аналогично от PC)
  2. Выходное напряжение и ток (для питания других устройств): 
    • „3.3 VDC (300 mA max)
    • „5.0 VDC (зависит от использования выхода на 3.3 VDC, меняется в пределах 23 mA — 323 mA)

Видно, что напрямую запитать ничего кроме «датчиков», а тем более жрущие до 1,5А сервомоторы не получится. Благо у меня есть авиамодельный power box для таких случаев. И аккумулятор, размером с кирпич:

А дальше — двухсторонняя клейкая лента, немного времени и сообразительности… И основной конструктив построен. Он прост как палка, пришлось просверлить только пару отверстий. Механическая перемешивающая рука, установлена и закреплена:

Теперь необходимо подключить исполнительные механизмы к stellaris. Тут тоже ничего сложного, благо на платформе присутствуют разъемы для gpio типа папа — сверху, и типа мама — снизу. Возможностей коннекта в два раза больше, чем в arduino, например!) Объединил землю power box’а и платформы, и к выходам PB6 и PB7 подключил сервомашинки.

Теперь немного о таймерах и PWM в LM4F120H5QR, тем более, что в отличие от AVR семейства микроконтроллеров у ARM Cortex M4 их достаточно много — 17, 16-ти и 32-х разрядных. Я использовал, как уже говорил ранее, выводы PB6 и PB7 для подключения машинок и генерации PWM. За эти выводы отвечает 16-ти битный timer0, его и сконфигурировал… Уже привычные регистры, соответствующие биты, практически как и в AVR. В конце поста приведу текстовый файл с программным кодом, а сейчас нужно упомянуть об одной не очевидной особенности. Почему-то вывод 0 порта F, на котором висит правая кнопка, по-умолчанию залочен, и просто настроить его недостаточно для корректной работы кнопки. Поэтому разлочиваем приведенным ниже кодом.

// Установка выводов кнопок как входы
GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, BUTTON_1|BUTTON_2);
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY_DD;
HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= 0x01;
HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = 0;

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

Запись опубликована в рубрике ARM. Добавьте в закладки постоянную ссылку.

         
Подписаться на новые статьи блога:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*


− три = 4

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">