Pull to refresh
1
0
Евгений @segrus

User

Send message

Как я логгер собирал на SD card Shield V2.0

Reading time3 min
Views57K
Привет, Хабр!

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

Подробности
Total votes 27: ↑24 and ↓3+21
Comments6

Малая автоматизация, или как два байта переслать

Reading time4 min
Views27K

Немного обо мне


Я занимаюсь промышленной автоматикой. Буквально от головы до задницы, т.е. от полевого уровня (датчики/исполнительные механизмы) до верхнего (программирование ПЛК/разработка SCADA). Так получилось, что больше всего я занимался наладкой, но последний год — преимущественно разработкой. Кроме того, для меня программные и аппаратные средства делятся на Siemens и всё остальное.

О проекте


Суть проекта заключается в обновлении систем автоматики на довольно большом количестве насосных станций (водонапорных и канализационных). Кроме собственно обновления, была поставлена задача собирать и передавать текущие значения ряда параметров в общую диспетчерскую для централизованного архивирования и наблюдения. Территориально всё это хозяйство находится в Нижней Галилее, в Израиле.
На момент начала работ средства автоматики на разных станциях представляли собой весьма разнообразный зоопарк: от контроллеров ET-200S CPU на более свежих станциях до релейной логики на более старых. На текущий момент на разных станциях работают контроллеры Siemens, Twido (Schneider), Koyo, GE Fanuc.
Получилось так, что формально этот проект реализует Schneider Electric, наша компания является субподрядчиком. Это определило выбор SCADA для диспетчерской (Vijeo Citect) и контроллеров для станций, где требуется их замена.

Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments25

Промышленное программирование, или Пара слов об АСУ ТП

Reading time9 min
Views228K


Есть такая профессия — производство автоматизировать. Аббревиатура АСУ ТП означает «автоматизированная система управления технологическим процессом» — это система, состоящая из персонала и совокупности оборудования с программным обеспечением, использующихся для автоматизации функций этого самого персонала по управлению промышленными объектами: электростанциями, котельными, насосными, водоочистными сооружениями, пищевыми, химическими, металлургическими заводами, нефтегазовыми объектами и т.д. и т.п.

Фактически, каждый человек, живущий не в лесу и пользующийся благами цивилизации, использует результаты труда предприятий, на которых функционируют АСУ ТП.

Иногда на эту тему проскакивают статьи и на хабре. Обычно они не пользуются особой популярностью, но всё же я хочу написать несколько обзорных статей об АСУ ТП в надежде рассказать хабравчанам что-то интересное (а возможно, кому-то даже полезное) и привлечь на хабр больше своих коллег.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments112

Создание многопользовательского интерфейса с поддержкой сенсорного управления для Windows

Reading time5 min
Views6.4K

Моноблоки впервые появились в середине 1990-х годов и с тех пор широко используются в различных сферах. К сожалению, в настоящий момент интерфейс прикладного программирования (API) Windows не располагает достаточными средствами для создания приложений для двух или более пользователей, использующих одновременно один моноблок. Однако это не значит, что разработчики не могут использовать свои собственные. При разработке интерфейса самое главное сделать так, чтобы приложением было легко пользоваться и чтобы оно правильно воспринимало команды ввода.
Ниже мы рассмотрим, какие средства API Windows можно использовать для разработки приложений с сенсорным управлением, а также продемонстрируем, как с их помощью создать простую многопользовательскую игру.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments7

Настраиваем Eclipse PyDev под отладку Python 3.x с честным юникодом и кириллицей

Reading time7 min
Views93K
Однажды, холодным зимним вечером, я внезапно вспомнил, что не поделился простым секретом, как добиться простого питоновского счастья за пределами ASCII резервации в такой замечательно-бесплатной IDE как Eclipse с плагином PyDev. Причём счастья с отладкой и честным юникодом, что означает следующее: если вы назвали свою переменную кириллицей, вы сможете посмотреть у неё значение, поставив breakpoint, написать пару строк текста по-русски и у вас ничего не отвалится.
Да-да, уважаемый читатель, Eclipse PyDev не очень-то дружит с символами за пределами 0x7F и отладка очень любит отваливаться всякий раз при попытке прочитать значение кириллической переменной. Да какое там, простое наведение мышкой на юникодовый символ приводит к фатальным последствиям при отладке кода написанного на Python 3.x (UTF-8). Если же настройки вашей файловой системы отличаются от UTF-8, поздравляю, вы не сможете даже запустить ваш скрипт. Я имею в виду именно то, что например под Windows ваш замечательный скрипт с единственным словом по-русски просто выведет из строя PyDev.
Возможно я перестарался, сгущая краски, не пугайтесь, починить это в состоянии мы сами, просто прочитав эту небольшую инструкцию. В награду мы получим бесплатное средство разработки, довольно удобное, фантастически гибкое в настройках и усовершенствовании, вплоть до разработки на нескольких языках, со встроенным инструментом версионирования.
Под катом инструкция и неприличных размеров картинки.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments17

Из аналога в цифру, или IP-камера своими руками

Reading time3 min
Views164K
Начну историю с того, что была у меня аналоговая купольная камера из поднебесной. Она была куплена по распродаже, стоила в районе 20 баксов, поработала пару недель и тихо скончалась. Нет, она не умерла совсем, а только видео с нее стало очень темным и непригодным для записи. Поэтому камера была заброшена в дальний угол до лучших времен.

Недавно, блуждая по всем известному сайту Aliexpress, наткнулся на модуль для IP-камеры, который предлагался как набор «сделай сам», в магазине продавца были еще разные запчасти для камер. По размеру модуль подходил на место аналогового (38х38), было решено заказать его и попробовать собрать IP-камеру из вышедшей из строя аналоговой. Модуль обошелся в смешные 11 долларов, доехал до меня очень быстро, за пару недель.
Что было дальше
Total votes 36: ↑34 and ↓2+32
Comments13

STM32 + linux

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

Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments21

STM32 и USB-HID — это просто

Reading time14 min
Views373K
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?

Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.

У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее

Заставим ее работать
Total votes 103: ↑101 and ↓2+99
Comments105

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

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

image

Содержание:


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


Погрузиться
Total votes 42: ↑38 and ↓4+34
Comments16

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

Reading time21 min
Views164K
Данная статья является продолжением цикла по программированию микроконтроллеров на базе ядра Cortex-M.
Первую статью можно прочитать здесь:
Начинаем изучать Cortex-M на примере STM32
Задачей статей является подробное описание особенностей, возникающих при программировании МК. Материал не предназначен для желающих за 10 минут запустить пример мигания светодиодом. Я постараюсь подробно описать то, что часто скрывают от новичков, чтобы их не напугать.

Мне очень хочется, чтобы программисты использующие стандартные библиотеки, шаблоны, примеры и т.д. понимали как все это работает. А при отсутствии этих самых библиотек и примеров могли самостоятельно решить свою задачу.

Основной акцент сделан на изучение документации на ядро Cortex-M и документации на конкретный контроллер.
На этот раз речь пойдет про прерывания, а так же будут затронуты некоторые вопросы архитектуры памяти и структуры прошивки МК.
Продолжение под катом
Total votes 29: ↑28 and ↓1+27
Comments33

STM32: Clock Security System

Reading time4 min
Views20K
image
Доброго времени суток!
В данной статье речь пойдет о системе самодиагностики микроконтроллера STM32, в частности — STM32F100RB, который входит в отладочный комплект STM32-Discovery. Но так как микроконтроллеры STM32 во многом схожи, и отличаются в основном своей периферией — написанное будет верно и для других контроллеров (возможно с небольшими изменениями). Статья расчитана на людей, уже немного знакомых с STM32, но постараюсь рассказывать по возможности подробнее.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments0

STM32 и LCD через I2C

Reading time4 min
Views133K

Для использования в дальнейшем понадобилось связать, используя I2C микроконтроллер STM32 с экраном 2004. Не найдя аналогичного решения в сети, публикую здесь. Данный рецепт подойдёт также для экранов 1602. Далее под катом. (Осторожно, картинки).
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments22

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

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

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

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

Ёмкостный датчик касаний без внешней обвязки на STM32 Discovery

Reading time3 min
Views36K

В начале этого года достойный гражданин Ariman написал статью о том, как прикрутить к микроконтроллеру ёмкостный сенсор прикосновения. Эта идея показалась мне довольно перспективной, некоторым приборам сенсорные клавиши подошли бы куда лучше механических. В этой статье я расскажу о своей реализации этой полезной технологии на основе отладочной платы STM32 Discovery.
Читать дальше →
Total votes 52: ↑50 and ↓2+48
Comments20

Делаем настольное устройство для изготовления печатных плат в один клик

Reading time5 min
Views277K
В очередной раз отмывая раковину от рыжих пятен хлорного железа, после травления платы, я подумал, что пришло время автоматизировать этот процесс. Так я начал делать устройство для изготовления плат, которое уже сейчас можно использовать для создания простейшей электроники.

image

Ниже я расскажу о том, как делал этот девайс.
Читать дальше →
Total votes 161: ↑161 and ↓0+161
Comments164

Домофонный мультиключ и всё про имитацию «таблеток»

Reading time9 min
Views518K
Да, это жутко избитая тема. Универсальный домофонный ключ «таблетку» делал наверное каждый второй, кто начинал изучать микроконтроллеры. В Интернете очень много и статей на эту тему, и готовых решений. Однако, интерес к этому угасать не перестаёт даже с массовым переходом на RFID. Это не удивительно, ведь многим хочется собрать такое устройство, которое выполняет не только весьма интересную задачу, но ещё и всегда с собой. К тому же оно не такое уж сложное в изготовлении.

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



Внимание! Этот ключ не позволяет нелегально проникать куда-либо. Это устройство лишь для того, чтобы носить один ключ вместо нескольких.
Хотя ничто не мешает вам записать в него универсальные коды открытия домофонов.

Читать дальше →
Total votes 206: ↑204 and ↓2+202
Comments113

Моя реализация «умного дома»

Reading time7 min
Views277K
Полтора года назад я писал статью о разработке своей собственной шины «CLUNET» для соединения устройств в «умном доме». Многие просят рассказать о том, что же у меня получилось в итоге, что я сейчас и попытаюсь сделать.

Попытался начертить схему моей комнаты со всеми устройствами объединёнными в сеть, картинка кликабельна:



Вся идея держится на трёх китах:

  • Децентрализация — вся система функционирует без какого-либо главного модуля;
  • Простота — минимум компонентов и лёгкость подключения;
  • Дешевизна — себестоимость устройства легко уложить в 100 рублей.

Читать дальше →
Total votes 212: ↑207 and ↓5+202
Comments95

Собираем лазерный проектор из доступных деталей

Reading time7 min
Views87K
UPD: Добавлены файлы платы с ЦАП на GitHub

Изначально я планировал сделать Лазерную арфу, но пока получился промежуточный результат — устройство, которое можно использовать как лазерный проектор — рисовать лазером различные фигуры, записанные в файлах формата ILDA. Я в курсе, что многие, кто берется за сборку лазерного проектора, в качестве устройства, управляющего гальванометрами (так и не понял как лучше перевести на русский сочетание “galvo scanner"), используют дешевые слегка модифицированные звуковые платы для компьютера. Я пошел иным путем, так как в конечном счете мне нужно будет полностью автономное устройство, которое может работать без компьютера.



Посмотрим из чего состоит мой лазерный проектор. Стоимость всех деталей составила около 8000 руб, из которых больше половины — это 70mW лазерный модуль.
  1. Гальванометры и драйверы к ним для отклонения луча лазера по осям X/Y
  2. 532нм 70mW лазерный модуль с питанием от 5В Dragon Lasers SGLM70
  3. Texas Instruments Stellaris Launchpad
  4. Самодельная плата с ЦАП AD7249BRZ
  5. Блок питания

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments10

Полнофункциональный драйвер SDHC карты памяти для Stm32f4 (часть 1)

Reading time14 min
Views101K

Для чего эта статья?


Все эмбеддеры, рано или поздно, сталкиваются с проблемой нехватки ПЗУ микроконтроллера для своих проектов. Ну банально, Вам нужно разработать систему управления простеньким ЧПУ станком, где управляющая программа хранится на самом девайсе или систему сбора данных, скажем, от датчиков какого-нибудь эксперимента – очевидно, что микроконтроллер изначально не предназначался для хранения таких массивов информации.
Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments18

Программирование и JTAG-отладка микроконтроллера Atmega16 на языке C в среде IAR, часть 1

Reading time17 min
Views104K


Введение


По моему мнению, чтобы быстро научится программировать практически любой микроконтроллер, существующий в мире, нужно освоить язык C и пользоваться JTAG-отладкой, конечно, помимо изучения технической документации. Поясню свою мысль. Компиляторы языка C существуют практически для всех существующих микроконтроллеров. Поэтому язык С давно зарекомендовал себя, как кроссплатформенный ассемблер. Его знание освобождает от необходимости изучения ассемблерных команд для каждого нового семейства микроконтроллеров. JTAG-отладка, в свою очередь, обеспечивает не только возможность внутрисхемного поиска ошибок, но и помогает изучать микроконтроллер изнутри. Я думаю, что для всех очевиден тот факт, что при просто программировании без отладки даже простых микроконтроллеров мы подходим к изучению системы, как к черному ящику с входами и выходами. Такой подход, особенно на начальном этапе, затрудняет обучение. C другой стороны JTAG-отлдака позволяет забраться во внутрь, посмотреть как выполняется программа по шагам, посмотреть, что происходит в памяти и регистрах, запустить волнение до точек останова, выполнять дизассемблированный вариант программы. Эта возможность позволяет значительно ускорить обучение.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments30

Information

Rating
Does not participate
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity