• Программируемый микроконтроллер STM32 — с места в карьер

    Ниже описан мой первый опыт общения с программируемым микроконтроллером в лице STM32VLDiscovery, результатом которого явилась машинка из LEGO, управляемая с телефона, и ещё кое-что. Я постарался изложить свой путь в виде пошагового руководства к действию, но, предупреждаю сразу, не руководства «как делать правильно». Первые два раздела являются предисловием и не относятся непосредственно к данному микроконтроллеру.

    image

    Содержание:


    1. Первый контакт с микроэлектроникой.
    2. Строительство машинки на непрограммируемых логических элементах.
    3. Начало работы с STM32. Среда разработки. Подключение микроконтроллера к машинке.
    4. Определяем угол поворота передних колёс — обратная связь через АЦП.
    5. Использование ЦАП для воспроизведения звуков.


    Погрузиться
  • Защищённая флешка за 350 рублей своими руками

    • Tutorial
    Всем доброго времени суток. Как-то раз у меня появилась идея купить флешку, с которой не будет страшно лезть ни в огонь ни в воду, ни стираться с ней в стиральной машинке. Нашёл в интернете штуки и за тысячу рублей и за две. Денег мало, жаба задушила, пришлось что-то выдумывать.

    Сразу скажу, что из инструментов у меня только паяльная станция, хотя по-хорошему хватит и обыкновенного советского паяльника. И ёще, под катом много фоток!
    Читать дальше →
  • STM32 + linux

      Для разработки системы управления одной железякой после длительных поисков мною был выбран ARM-микроконтроллер семейства STM32 — STM32F103 (в «стоножечном» исполнении). А в качестве макетки для разработки и отладки — STM32P103 (там ножек хоть и меньше, но ядро то же самое). «Истории успеха» я понемногу выкладывал в своей ЖЖшке, но вот решил собрать все воедино и рассказать о том, каково же оно — программировать микроконтроллеры в линуксе. Сам проект лежит на sourceforge.

      Читать дальше →
    • Трясем стариной: перехват потока данных между i386 и контроллером ATA средствами STM32

        Добрый день, уважаемые хабровчане. В сегодняшней статье мы предадимся ностальгии, поработаем со старым добрым железом, и постараемся прикрутить к нему не менее доброе новое. А заодно вспомним, как работает шина ISA и как вообще происходит общение х86-процессора с периферией.
        Читать дальше →
      • Однажды вы читали о ключевом слове volatile…

        • Tutorial
        В C и C++ есть ключевое слово volatile, которое указывает компилятору, что значение в соответствующей области памяти может быть изменено в произвольный момент и потому нельзя оптимизировать доступ к этой области. Обычно описание ключевого слова сразу приводит пример с данными, которые могут быть в любой момент изменены из другой нити, аппаратным обеспечением или операционной системой. Прочитав описание примера, большинство читателей глубоко зевает, решает, что в этой жизни им такое не понадобится, и переходит к следующему разделу.

        Сегодня рассмотрим менее экзотический сценарий использования ключевого слова volatile.

        Читать дальше →
      • Опыт и знания – основа любой оценки

        Прочитал статью «Почему программисты ошибаются в оценке сроков?», которая вызвала у меня некоторое возмущение. К сожалению, не могу оставить комментарий, поэтому решил написать статью в песочницу.

        Вообще-то, вопрос «Почему … ошибаются в оценке сроков?» применим к любой производственной деятельности. И вместо многоточия можно указать кого угодно (программисты, сантехники, плотники, слесари, кондитеры и т.д.).
        Читать дальше →
      • Цветной микрокомпьютер Maximite на базе PIC32

          На сегодняшний момент проект Maximite является моим любимым в области рукодельных микрокомпьютеров. Собрав его оригинальный черно-белый вариант, я после запустил на нем RetroBSD, затем даже свой эмулятор Радио-86РК. Что подкупает в проекте, так это законченность. Конструктивно Maximite простой, PIC32 делает почти всю работу. Но Maximite — это не просто идея в виде схемы. Для Maximite разработана плата, корпус и, собственно, прошивка — MMBasic, продвинутый диалект Бейсика, дающий доступ ко всей периферии, а она у Maximite внушительна. В небольшом интервью автор и разработчик Maximite, Джеф Грэхем, рассказал, почему ему фактически пришлось довести проект для столь законченного вида.

          Недавно автор выпустил новую, цветную версию, и данный обзор посвящен именно ей.
          Читать дальше →
        • Mozilla запускает Codebender — среду разработки для программинга микроконтроллеров

            Цель проекта Codebender — создать удобную облачную платформу для программирования микроконтроллеров. За последние несколько лет создание устройств на основе микроконтроллеров стало гораздо более доступным и популярным делом. Сейчас не проблема найти подходящий контроллер со всем необходимым железом — вокруг Arduino уже сформировалась внушительная экосистема. А вот с софтом пока дела обстоят хуже. Обычно для написания, отладки и прошивки встроенных программ используются нативные приложения, которые работают не на всех платформах и часто имеют совершенно не дружественный интерфейс. Codebender — это работающий в браузере редактор кода c возможностью проверки его корректности и прошивкой устройств через USB или Ethernet.
            Читать дальше →
          • Стирая границы

              Перевод статьи: Blurring of the lines by Dmitry Fadeyev (Usabilitypost.com).

              Якоб Нильсен опубликовал осуждающий юзабилити-отчет Windows 8. Ключевые проблемы выделены ниже:

              • создание когнитивных издержек из-за необходимости управления двумя различными рабочими пространствами: стартовый экран Metro и старый традиционный рабочий стол;
              • отсутствие многооконности в Metro-приложениях;
              • трудности поиска отличий между кнопками и метками в плоском Metro UI;
              • низкая информационная плотность в приложениях Metro;
              • сложности различий между плашками приложений, которые показывают слишком много контента нежели идентифицируют само приложение;
              • сложные, способствующие ошибкам жесты.

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