Pull to refresh
2
0
Виталий @ProstoUser

Программист

Send message

Начинаем изучать Cortex-M на примере STM32

Reading time15 min
Views372K
Данная статья является первой в планируемом цикле статей по изучению программирования микроконтроллеров. Изучая различные материалы я отметил, что практически все они начинаются с того, что новичку предлагается скачать (или использовать идущую со средой разработки) библиотеку для работы с периферийными устройствами и использовать ее для написания своей первой программы (обычно мигание светодиодом).

Меня это сильно удивило. Если верить данным статьям, для программирования не обязательно даже читать документацию к программируемому контроллеру. Меня же учили премудростям «железного программирования» совершенно иначе.

В этой статье, путь от фразы «Да, я хочу попробовать!» до радостного подмигивания светодиода, будет значительно длиннее чем у других авторов. Я постараюсь раскрыть аспекты программирования микроконтроллеров, которые прячутся за использованием библиотечных функций и готовых примеров.
Если вы намерены серьезно изучать программирование микроконтроллеров данная статья для вас. Возможно, она может заинтересовать и тех, кто вдоволь наигрался с Arduino и хочет получить в свои руки все аппаратные возможности железа.
Если вас не пугает написанное выше - прошу под кат
Total votes 38: ↑31 and ↓7+24
Comments39

Делаем управление «Умным домом» через интернет за пару минут

Reading time10 min
Views154K
Доброго дня. У многих из нас, в том числе и у меня, давно возникла идея создания своего «Умного дома». Но она откладывалась в виду большой сложности реализации как с аппаратной стороны так и со стороны программного обеспечения, что требовало от её создателя быть «гуру» во многих областях.

image

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

Заинтригованы? Прошу под кат.
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments31

Ectognathus, робот-хексапод на микро-сервах своими руками, часть вторая

Reading time14 min
Views57K
Добрый день, уважаемые хабровчане. Это вторая часть статьи про разработку робота-хексапода. Первую часть вы можете найти тут.
В этой статье я расскажу непосредственно про производство самого робота, переход от моделей в SolidWorks к реальному устройству.
Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments79

Программа курса «Java Core»

Reading time3 min
Views175K
Я занимаюсь онлайн обучением Java (вот курсы программирования) и публикую часть учебных материалов в рамках переработки курса Java Core. Видеозаписи лекций в аудитории Вы можете увидеть на youtube-канале, возможно, видео канала лучше систематизировано в этой статье.
Хотел бы вынести на обсуждение новую программу курса Java Core.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Программа курса


Курс состоит из 45 лекций разбитых на 9 модулей по темам
  1. Модуль: Основы
    • Лекция #1.1: целочисленные типы, типы с плавающей точкой, bit operations
    • Лекция #1.2: массивы, java.lang.String, format
    • Лекция #1.3: for/switch/while, boolean logic(|, ||, &, &&, !, ^)
    • Лекция #1.4: порядок выполнения операторов, построение internal DSL
  2. Модуль: Процедурное программирование
    • Лекция #2.1: Циклы, итеративные алгоритмы
    • Лекция #2.2: Рекурсия I, основы
    • Лекция #2.3: Рекурсия II, проектирование рекурсивных алгоритмов
    • Лекция #2.4: Динамические структуры данных
    • Лекция #2.5: Память в Java: stack, heap, PermGen/Metaspace
  3. Модуль: Исключения
    • Лекция #3.1: try-catch-finally
    • Лекция #3.2: checked/unchecked
    • Лекция #3.3: Internals and handling
    • Лекция #3.4: Java 7: try-with-resources
    • Лекция #3.5: Most popular exceptions in JDK

Читать дальше →
Total votes 27: ↑16 and ↓11+5
Comments22

Музыкальная игрушка на STM32 из подручных средств

Reading time16 min
Views61K

Добрый день, уважаемые хабровчане.
Как-то вечером мне стало скучно и я решил собрать небольшое электронное устройство из валяющихся дома компонентов, чисто для развлечения, безо всякой практической цели. Повторить его может любой желающий, не потребуется даже печатной платы — устройство собрано из минимума электронных компонентов «навесу», приклено при помощи эпоксидки к какой-то ненужной плате, исключительно как к элементу конструкции, спаяно при помощи проволочек и залито той же самой эпоксидкой для надежности.
Итак, делаем электронную флейту!
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments45

Панель управления умным домом. iPhone в стене

Reading time6 min
Views55K


Автоматизировать свой дом я начал года 2 назад, в основном используя беспроводную технологию Z-Wave, но и ради фана собрал несколько устройств самостоятельно на микроконтролле ATtiny2313 и Raspberry Pi. Когда я принял решение, что буду делать умный дом, я поставил три задачи, которые умный дом должен был решать, первая — экономия электроэнергии, вторая — обеспечение комфорта, третья — отображение информации о сотоянии дома в реальном времени.

На данный момент удалось реализовать следующее:

Но третья задача по отображению информации была решена не полностью. На кухне и в комнате у меня стоят метеостанции показывающие температуру и влажность, чтобы посмотреть где горит свет, нужно открывать приложение на iPad, чтобы узнать пробки, нужно открывать другое приложение. Всей этой информацией я пользуюсь каждый день, и логично было бы получать её из одного места, поэтому я решил сделать информационную панели установленную стационарно в удобном месте.
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments55

Автономный квадрокоптер с нуля: PID и грабли

Reading time12 min
Views85K
Большинство проектов, использующих коптеры, опираются на ручное дистанционное управление, полностью автономных систем пока нет. Но для индустриального использования это необходимо; человеческий фактор — причина большинства аварий. Ниже рассказ пойдёт про то, как мы делали свою систему стабилизации с помощью ПИД, позволяющую свести к минимуму участие человека в процессе работы дрона.

Один из тестовых полётов нашего коптера
Читать дальше →
Total votes 52: ↑52 and ↓0+52
Comments54

Квадрокоптер на базе AeroQuad Open Source project

Reading time3 min
Views73K
image

Добрый день!
Хотелось бы немного рассказать о проекте AeroQuad Open Source и о своем опыте сборки квадрокоптера.

Проект AeroQuad поддерживает:
1. В перспективе возможность подключения gps, полета по путевым точкам, которые можно загрузить через AeroQuad Configurator.
2. Стабилизация камеры. Для компенсации движений квадрокоптера можно использовать 3 сервопривода.
3. On-Screen-Display. Наложение графики на видеопоток.
4. Помимо подключения гироскопа акселерометра и магнитометра есть возможность подключения других датчиков, таких как ультразвуковой дальномер и барометр.

Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments18

Отладка кода Ардуино в кристалле

Reading time6 min
Views48K
Многие из тех, кто делает проекты чуть сложнее «Hello, World!» для микроконтроллеров рано или поздно сталкиваются с проблемой отладки кода. В таких ситуациях, как правило, отладочная информация представляет собой вывод в консоль, либо определенное количество «мыргов» каким-либо светодиодом. Тем, кто отлаживался с помощью printf, prinln и иже с ними, нет нужды объяснять, что даже понять в какие места поставить дебажный вывод — иногда проблема, интерпретировать же результат и понять где ошибка еще сложнее.
Относительно недавно я наткнулся на софтину, которая позволяет отлаживать код Arduino прямо в кристалле способом, который очень похож на обычную отладку кода, к которому можно подключить более-менее развитый отладчик. Кому интересно, милости прошу под кат.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments13

Git и Visual Studio: как правильно приготовить

Reading time3 min
Views159K
Некоторое время назад мы анонсировали поддержку Git в Visual Studio и TFS. Для того, чтобы научиться правильно готовить все это, я сам прошел весь путь и хочу рассказать вам о нем. Ниже — о том, как использовать Git в VS.
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments50

C++11 и 64-битные ошибки

Reading time11 min
Views35K
CryEngine 3 SDK and PVS-Studio
Мы решили сделать небольшую паузу в тематике статического анализа кода. Ведь блог C++ читают и те, кто пока еще не использует эту технологию. А между тем в мире C++ происходят явления, которые оказывают влияния на такую «устоявщуюся» тему, как 64-битный мир. Речь идет о том как стандарт C++11 влияет и помогает (если есть чем) в разработке корректных 64-битных программ. Сегодняшняя статья как раз об этом.
Читать дальше →
Total votes 83: ↑66 and ↓17+49
Comments21

Радиоуправляемый выключатель своими руками. Часть 4 — Центр управления

Reading time7 min
Views55K
Собственно, выключатель спроектирован, произведен, протестирован, запрограммирован, установлен и вполне себе самостоятельно работает.

Теперь хотелось бы воспользоваться им «на полную катушку».

Пока не хватает следующих возможностей по удаленному управлению:
  • Изменять временные характеристики работы выключателя.
  • Узнать текущее его состояние.
  • Управлять его состоянием.

В этой статье исправим это положение вещей.
Total votes 17: ↑15 and ↓2+13
Comments17

Термостатирование в доме

Reading time13 min
Views98K
В предыдущей статье «Погодная станция с Ethernet и планшетом в качестве устройства отображения» я рассказывал о том, как я организовал сбор, складирование, обработку и вывод метеоданных в своем доме и за его пределами. Там же было упомянуто, что принципы, заложенные в основу системы, позволяют строить нечто более широкое, чем просто сбор погодных данных, и была анонсирована статья про термостатирование. Пришло время выполнять обещание и рассказать про это самое термостатирование.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments34

Блок дистанционный сервисный многофункциональный БДС-М

Reading time17 min
Views46K
На этой радостной ноте я завершаю рассказ о текущей конфигурации «Удобного дома». Последняя часть системы в моих секретных планах всегда проходила под шифром «медиаконтроллер». И, что закономерно, предназначалась для управления ТВ, медиаплеером и кондиционером со смартфона или вообще любого компьютера с интернетом и браузером. Функционал, как всегда, дополнялся и развивался на ходу — у меня, кажется, просто какая-то пагубная страсть к импровизациям.

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

Чтобы не было недопонимания: особой цели или необходимости в этом контроллере я не видел. Просто было интересно его сделать и заодно занять длинные зимние вечера чем-нибудь, кроме как задумчиво смотреть в окно, пить кофе и размышлять о вечном, обязательно под теплым клетчатым пледом.

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

Наверное, лучше обо всем по порядку.

Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments19

Управленческие инструменты: Набор мебельных ключей или как придумывать конструктивные аргументы

Reading time8 min
Views37K
Друзья, спасибо за такой большой интерес к нашему видео про троллинг, картины мира и прочие неконструктивные приемы коммуникаций (на текущий момент его посмотрели более 6,000 человек). Если вдуматься, то 24 мин. видео * 6,000 = 2,400 часов времени — надеемся, что это было для вас полезно.

Как и обещали, переходим обратно в конструктив: сегодня мы хотели бы разобрать тему, как подбирать конструктивные аргументы, которые меняют модели поведения людей. Если в реальной жизни возникали ситуации, когда было тяжело убедить другого человека в своей точке зрения, когда собеседник НЕ ПОНИМАЕТ очевидных вещей, то сегодня мы разберем простой алгоритм, как это до людей доносить. И, как водится, закрепим материал примерами из реальной жизни.

P.S. Поскольку хабраопрос в предыдущей статье показал, что текст лучше чем видео, в этот раз есть и видео, и текст.
Как подбирать аргументы для обсуждения
Total votes 36: ↑33 and ↓3+30
Comments17

STM32 — правильно используем встроенный flash

Reading time2 min
Views95K
Предисловие

Давно ни для кого не секрет, что STMicroelectronics производит замечательные 32-битные ARM микроконтроллеры STM32. В последнее время они набирают всё большую популярность, и на то есть веские причины, которые в рамках этой статьи я повторять не намерен. Кому интересно — раз, два и три.

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

Именно о таком моменте я и хочу рассказать. А именно — как правильно использовать возможность записи во встроенный flash нашего МК. Добро пожаловать под кат.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments36

Мощный лабораторный блок питания

Reading time5 min
Views225K
Не так давно приобрёл паяльную станцию. Давно занимаюсь любительской электроникой, и вот настал момент когда точно осознал что пора. До этого пользовался батиным самопальным блоком, совмещавшим лабораторный блок питания и блок питания низковольтного паяльника. И вот встала передо мной проблема: паяльную станцию я ставлю, а старый блок держать ради хилого и не точного блока питания 0-30в 3А или таки купить нечто современное, с защитой по току и цифровыми индикаторами? Поползав по ебею понял что максимум что мне светит это за 7-10 тыс купить Китайский блок с током максимум в 5А. Жаба сказала своё веское «ква», руки зачесались и…
Читать дальше →
Total votes 77: ↑71 and ↓6+65
Comments27

Погодная станция с Ethernet и планшетом в качестве устройства отображения

Reading time21 min
Views83K

Введение


Я – пользователь бытовых погодных станций со стажем, и в этом скрыта двойная катастрофа. Во-первых, я уже настолько привык к тому, что погода внутри и вне дома мне известна, что отсутствие этой информации вводит меня в состояние когнитивного диссонанса. Во-вторых, с погодными станциями мне хронически не везет. Две из них сломались и, как в таких случаях говорят про всяческие индикаторные приборы, стали «показывать погоду», только с точностью до наоборот, показывали они что угодно, только не погоду. Из Штатов привез с собой третью, которая прослужила мне верой и правдой целый год, и я начал было потихоньку расслабляться, но тут у случайно забежавших (и давших нам с женой возможность временно возложить на их плечи заботу о сыне и выбежать из дома) родителей случился приступ принужденной заботы, в свою очередь, вызвавший острое желание помыть окна. Результат тщательного натирания окон – не только сверкающие окна, но и прыгнувший вниз датчик погодной станции. Этаж второй, так что датчик разбился бы вряд ли, но, как известно, непосредственно под окнами каждой многоэтажки есть невидимая пространственно-временная сингулярность. Не знаю, можно ли этот феномен описать в рамках Стандартной Модели, но то, что в основе сингулярности лежит принцип «что упало, то пропало», сомнений нет. Так что датчик я не нашел.
Естественно, в полный рост встала нужда менять девайс, но мысль о том, что ни одна из «бывших» не продержалась у меня дома больше года, настораживала. И тогда в голову забрела идея «а не сделать ли самому?».
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments37

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity