Как стать автором
Обновить
8
0
Aleksei Melnik @alexshnup

Управление в технических системах

Отправить сообщение

Ночная жизнь неба или в поисках Персеид — обработка

Время на прочтение3 мин
Количество просмотров5.3K
Недавно на Хабре была опубликована статья со съёмками ночного неба «Ночная жизнь неба или в поисках Персеид». Но самих метеоров авторы не смогли обнаружить из-за большого количества спутников, которые в данном случае являются ложными объектами. Я не смог пройти мимо, решил обработать видео, и посмотреть, есть ли на нём Персеиды или нет.
Всего голосов 39: ↑39 и ↓0+39
Комментарии14

Куда деваются программисты после 40

Время на прочтение16 мин
Количество просмотров167K


— Вам уже 45? Но у нас коллектив очень молодой. Вы уверены, что хотели бы у нас работать?
— Да, конечно! Я много наслышан о вашей компании. Это мечта всей моей жизни!
— Ну ладно. Вот вам простой вопросик. Что означает буква L в аббревиатуре SOLID?
— Liskov Substitution Principle.
Читать дальше →
Всего голосов 136: ↑105 и ↓31+74
Комментарии1044

Как слямзить Хабр по-быстрому

Время на прочтение3 мин
Количество просмотров42K

Это произошло в понедельник 13 февраля, мир больше не будет прежним. Открыта вакансия:



Для работы над нашими проектами мы ищем сильного front-end разработчика. Вам предстоит амбициозная задача: внедрить компонентный подход в разработку всех текущих и новых проектов компании.

Отлично, работаем дальше! Выполняю "тестовое задание".

Читать дальше →
Всего голосов 59: ↑34 и ↓25+9
Комментарии66

Детектирование движения в видеопотоке на FPGA

Время на прочтение13 мин
Количество просмотров25K

Предисловие


Меня давно интересовала тема обработки видео, вот только на отладочных платках 7-х и 9-х ARM-ов это получалось очень медленно и от этого становилось не интересно.

В настоящее время полным-полно мощного многоядерного железа и создано много библиотек для работы с видео, но мой выбор пал на ПЛИС.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии25

Умная кормушка: Machine Learning, Raspberry Pi, Telegram, немножко магии обучения + инструкция по сборке

Время на прочтение15 мин
Количество просмотров38K
Всё началось с того, что жена захотела повесить кормушку для птиц. Идея мне понравилась, но сразу захотелось оптимизировать. Световой день зимой короткий — сидеть днём и смотреть на кормушку времени нет. Значит нужно больше Computer Vision!



Идея была простой: прилетает птичка — вжуууух — она оказывается на телефоне. Осталось придумать как это сделать и реализовать.
В статье:
  • Запуск Caffe на Raspberry Pi B+ (давно хотел это сделать)
  • Построение системы сбора данных
  • Выбор нейронной сети, оптимизация архитектуры, обучение
  • Оборачивание, выбор и приделывание интерфейса

Все исходники открыты + описан полный порядок развёртывания получившейся конструкции.
Читать дальше →
Всего голосов 73: ↑72 и ↓1+71
Комментарии58

Как двухлетний репозиторий на GitHub стал трендовым за 48 часов

Время на прочтение8 мин
Количество просмотров41K


GitHub предоставил возможность миллионам разработчиков с легкостью публиковать свои проекты и тем самым привлекать пользователей и единомышленников. Часто перед разработчиками возникает проблема неэффективного использования ресурсов — они тратят сотни часов на создание проекта с целью продвинуть его на GitHub, а получают максимум две звезды.
Читать дальше →
Всего голосов 88: ↑74 и ↓14+60
Комментарии37

Управление светильниками по протоколу DALI с помощью Arduino

Время на прочтение4 мин
Количество просмотров64K

О протоколе DALI


DALI (Digital Addressable Lighting Interface) – протокол, предназначенный для управления осветительными приборами. Протокол был разработан австрийской компанией Tridonic и основан на манчестерском кодировании: каждый бит данных кодируется перепадом от низкого сигнала к высокому или наоборот.


Всего голосов 21: ↑20 и ↓1+19
Комментарии25

«Полезняшки» или «Реестр Windows как платформа»

Время на прочтение10 мин
Количество просмотров48K
Хочу рассказать вам историю, как решение конкретных прикладных задач привело меня к использованию реестра Windows в качестве платформы для хранения и исполнения кода.
Читать дальше →
Всего голосов 92: ↑84 и ↓8+76
Комментарии35

Как создавать, собирать, устанавливать и использовать пакеты с программами и библиотеками для UNIX-подобных систем

Время на прочтение13 мин
Количество просмотров42K
Речь пойдёт о программах и библиотеках для UNIX-подобных систем, распространяемых в виде исходного кода (в том числе в виде тарболлов), написанных обычно на C и C++ (хотя этот же порядок работы может применяться к софту на любом языке). Многие вещи в этой статье написаны применительно конкретно к GNU/Linux, хотя многое из статьи может быть обобщено и на другие UNIX-подобные ОС.

Под словом «пакет» я понимаю в этой статье пакет с исходными текстами, причём не пакет конкретного дистрибутива GNU/Linux, а просто пакет, исходящий от оригинальных авторов софта (UPD от 2017-02-09: кроме тех случаев, где из контекста ясно, что слово «пакет» употреблено в другом смысле).

В этой статье я разберу следующие вопросы:

  • Вот скачал программу или библиотеку. Как её собрать и установить? Как воспользоваться библиотекой?
  • Что такое префикс (prefix) установки? В чём разница между сборкой и установкой? Куда обычно устанавливают программы?

Я разберу только совсем базовые вещи. Те, которые типичные участники сообщества свободного ПО, программирующие на C и C++ под UNIX-подобные системы, обычно уже знают. Как создавать тарболлы (на примере «голого» make) и как устанавливать чужие тарболлы. Advanced советы по созданию «хороших» пакетов я не дам. «Продвинутые» вещи читайте в документации систем сборки, в замечательной статье «Upstream guide» от Debian (в её конце есть ещё куча ссылок о создании «хороших» пакетов). Многое в этой статье можно было сделать по-другому, моя цель: дать хотя бы один способ, не пытаться объять необъятное.
Читать дальше →
Всего голосов 44: ↑39 и ↓5+34
Комментарии17

Электронные чернила для Wirenboard 5 или рисуем штрихкоды на Go

Время на прочтение7 мин
Количество просмотров7.2K
Привет, Хабр! В процессе разработки иногда приходится изобретать велосипеды инструменты для тестирования приложений и бывает что некоторые из них могут быть полезными например в домашней автоматизации. Вот случай из моего личного опыта. При разработке приложения для мобильных терминалов сбора данных, появилась необходимость тестирования лазерных сканеров, без печати штрихкодов на бумаге. К сожалению эти сканеры не умеют считывать с обычных экранов. Бумагу им подавай, но и электронная бумага им тоже очень понравилась.

image

Вспомнилась статья на Хабре Электронная книжка в качестве дисплея, решено было достать с полки старенький полуживой ридер Sony PRS-505 и дать ему вторую жизнь в роли экрана для контроллера автоматизации. Но слать картинки через флеш память плохая идея. Нужно было научиться работать напрямую с оперативной памятью электронной книги. Это увеличивает скорость отображения и надежность. Позвольте поделиться опытом рисования в Go на примере генератора штрихкодов и отображении на электронной книге через контроллер Wirenboar 5.
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии6

Электронная книжка в качестве дисплея

Время на прочтение10 мин
Количество просмотров68K
Нетрадиционное применение распространённых вещей — это то, что всегда нам интересно! Ведь так хочется порой похачить очередное устройство. Понять как оно работает и внести какие-то свои коррективы в его работу, добавив новых функций.


Выводим свои картинки

Я расскажу, как можно старенькую читалку Sony PRS-505 превратить в удобный дисплейчик. И также расскажу, как можно писать свои программы для этой книжечки

Погнали
Всего голосов 133: ↑129 и ↓4+125
Комментарии61

Резервное копирование виртуальных машин ESXi с помощью скриптов ghettoVCB

Время на прочтение11 мин
Количество просмотров90K
В этой статье я пошагово опишу настройку автоматического резервного копирования и пример восстановления виртуальных машин, работающих на платформе ESX(i) с помощью свободных скриптов ghettoVCB. Акцентироваться буду на версии ESXi 5.x, но эти же средства работают и на версиях 3.5-6.x, правда для ранних версий настройки несколько отличаются. Бэкап будет производиться на NFS сервер. Отчёт о работе будет направлен в почту. Во время бэкапа делается снимок (snapshot) виртуальной машины (в том числе и работающей), сохраняются VMDK диски машины и снимок удаляется.
Проект ghettoVCB отлично документирован, но в процессе внедрения появились нюансы, которые и вылились в эту инструкцию. Надеюсь, статья будет полезна начинающим администраторам.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии26

Как начать летать, хоть на чем-то, самостоятельно

Время на прочтение7 мин
Количество просмотров286K
Мое детство прошло среди людей которые все время на чем то летали. Строили, разрабатывали новое и тут же на нем летали. В 5 лет для меня стало открытием, что кто то в этом мире может не летать. К своим 26 годам я успел попробовать почти все на чем можно летать. Хочу поделиться своим опытом и рассказать о доступных возможностях.
Что бы начать летать у Вас есть такие варианты:

1. Парители (в этой статье)
  • Параплан
  • Дельтаплан
  • Планер

2. Моторный полет (вторая статья)
  • Легкий самолет
  • Мотодельтаплан
  • Паратрайк
  • Парамотор
  • Мотопланер



Начать летать самостоятельно
Всего голосов 281: ↑261 и ↓20+241
Комментарии270

Кто, когда и как собирается лететь на Марс

Время на прочтение9 мин
Количество просмотров196K
Сейчас так часто говорят про полеты к Марсу, что люди, подчас, путают несколько независимых проектов. Иногда приходится слышать, что Mars One — это проект NASA, а Inspiration Mars собирается добывать золото, которое нашел Curiosity. Все это, конечно, выдумки. Поэтому постараюсь разложить все марсианские мечтания по полочкам, чтобы была универсальная шпаргалка на все случаи жизни.
Заранее оговорюсь: данный обзор отражает текущую ситуацию. Я не исключаю будущую эволюцию и возможные объединения описываемых проектов или появление новых.



Итак, приступим в хронологическом порядке:
Читать дальше →
Всего голосов 166: ↑160 и ↓6+154
Комментарии374

RThrust — система автоматического тестирования БК моторов

Время на прочтение4 мин
Количество просмотров35K
Я довольно давно увлекаюсь мультикоптерами, и все это время я ищу способы заставить коптеры летать дольше.
Типичное время полета для недорогого коптера 7-15 минут. Удручающе мало. Мой текущий квадрокоптер летает 19 минут. И на выбор регуляторов и ВМГ для него я потратил немало времени, чаще всего делая предположения в условиях недостаточных данных.
Ключом к продолжительности полета является энергоэффективная винтомоторная группа. Что это значит? Комбинация мотора и воздушного винта должны максимально эффективно использовать энергию для создания тяги. То есть поднимать как можно больше веса, потребляя как можно меньше энергии. Измеряется эффективность винтомоторной группы в граммах на ватт. На форумах частенько встречаются различные приспособления, состоящие из весов и крепления для мотора плюс какой-нибудь ваттметр. Иногда обходятся чисто весами, чтобы выяснить какую вообще тягу создает ВМГ.
Однако, погрешность измерений обычно весьма высокая, начиная с того, что мы не можем точно определить одновременно и тягу, которая колеблется (мотор постоянно меняет обороты) и мощность, которая тоже плавает достаточно сильно. В итоге ошибка сравнима с разницей между моторами.
Меня такая ситуация не устраивает, учитывая, что моторы и пропеллеры различаются по стоимости до десятка раз, нужно понимать, стоит ли платить больше.
В итоге я построил испытательный стенд, на который крепится ВМГ и замеряются ее параметры:
RThrustLogo-Тяга с точностью до 1г
-Напряжение аккумулятора с точностью до 0.01В
-Ток с точностью до 0.1А-0.2А примерно (зависит от тока)

Не знал в какой блог разместить информацию, поэтому пока поместил сюда.
Еще картинки, куча подробностей и видео работы стенда
Всего голосов 62: ↑58 и ↓4+54
Комментарии66

Автоматический бекап при подключении внешнего HDD в Ubuntu

Время на прочтение3 мин
Количество просмотров17K
Последнее время стали популярны посты на тему бекапа. Продолжу и я эстафету под девизом «Много бекапов хороших и разных».

Статья 1 и статья 2, натолкнувшие меня на эту идею.

Сам я давно пользуюсь rsnapshot для бекапа серверов, да и не только. Для тех, кто не в курсе, что оно такое — это базирующаяся на rsync утилита на Perl для создания резервных копий. Особенностью является ориентация на создание полных снапшотов файловой системы через заданный интервал времени, для экономии места на диске, не изменившиеся с момента первого бэкапа файлы линкуются как hard link.

Я работаю на Ubuntu 11.10 на ноутбуке и потому статья будет описывать метод бекапа этого самого ноутбука на внешний USB HDD, который не постоянно подключен, а подключается лишь периодически. В момент подключения и будет запускаться скрипт для бекапирования системы.

Итак, начнем.
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии12

Съёмка показаний счетчика на телефон с последующим распознаванием

Время на прочтение20 мин
Количество просмотров185K

Вступление


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

Возможно, так ведут себя не все котлы, но наш отключается даже при кратковременном перебое с подачей газа и не включается обратно, если подача восстановится. Если кто-то есть дома, то это не проблема, нажал кнопку и котел греет дальше, но если вдруг так сложилось, что мы решили всей семьей поехать в отпуск, а на дворе зима, хорошая такая, чтоб -20°C, то последствия могут быть плачевными.

Решение простое — оставить ключи родственникам/друзьям/соседям, чтобы они могли приехать и включить котел, случись какая-нибудь неприятность. Хорошо, если есть сосед, который будет каждый день заходить и проверять, всё ли в порядке. А если нет? Или он тоже решит уехать куда-нибудь на выходные?

Итак, я решил наладить выкладывание показаний счётчика куда-нибудь в Интернет, чтоб я мог находясь где-нибудь в дальней поездке периодически проверять, тратится ли газ, а если вдруг перестанет тратиться, то срочно звонить родственникам/друзьям/соседям (или кому там я оставил ключи), чтобы приехали и нажали кнопку.

Конечно, после простого выкладывания показаний в Интернет я решил не останавливаться на достигнутом и замутил ещё распознавание показаний и графическое представление, об этом читайте в части 2 данного топика.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии84

Психология роботов и умные компьютеры: как это работает и где этому научиться. Лекция Максима Мусина в Яндексе

Время на прочтение4 мин
Количество просмотров36K
Машины уже умеют находить лица на фотографиях, искать террористов в видеопотоке, переводить тексты и понимать звуковые команды. Нейронные сети, копирующие структуру мозга, являются элементарным кусочком любого сложного алгоритма. Из лекции вы узнаете, как всё это связано с уравнениями, неравенствами и производными, какие интересные открытия случились за последнее время, а также на чём стоит начать программировать сейчас, чтобы однажды стать экспертом в психологии роботов.





Если вспомнить фильм «Терминатор» и технологии, которыми по сюжету пользовались киборги, то можно будет выделить и нейронные сети, и возможность беспроводной связи с внешним источником интеллекта (Skynet), и компьютерное зрение, и распознавание звука, понимание различных языков. На момент выхода фильма на экраны все это было абсолютной фантастикой, технологиями далекого будущего. Но сегодня большая часть этих технологий реализована в том или ином виде. Попробуем разобраться, что же из всего перечисленного уже используется.
Конспект лекции
Всего голосов 79: ↑68 и ↓11+57
Комментарии44

Добавление и удаление на ходу SATA/SCSI устройств

Время на прочтение2 мин
Количество просмотров66K
Современный Linux (2.6+) может обнаруживать новоподключенные устройства (на шинах, которые поддерживают hotplug). Их можно, так же отключать, предварительно отмонтировав файловые системы и сделав sync. Среди hotplug шин не только USB, но и SATA, SCSI и SAS (в теории, это же применимо и к PATA, но там много глупых контроллеров, которые не умеют адекватно реагировать на исчезновение устройства).

Отключать их лучше не дёргая на ходу физическое устройство, а сказав ядру полностью забыть про про него (гарантируя тем самым, что никаких операций ввода-вывода с устройством производиться не будет, даже если вспохватившийся кеш). Кроме того, иногда нужно выполнять эмуляцию процедуры plug-unplug без физического дёргания питания/шины данных (что не очень хорошо для железа). Самая типичная ситуация — это отладка скриптов udev.

Удаление устройства


echo 1 >/sys/block/sdX/device/delete

(x — буква устройства, sda, sdb, etc).

Эта команда удаляет указанное устройство. Заметим, это низкоуровневая команда, которая не проверяет кеш и статус примонтированности, так что лучше сначала сказать umount & sync.

К сожалению, я не знаю метода совместить выключение шпинделя диска с его удалением с точки зрения ядра. Шпиндель можно отключить командой scsi-spin, однако, при попытке удалить устройство, оно будет раскручено заново и удалено. А у удалённого устройства уже нельзя ничего останавливать (нет устройства). Так что эта часть проблемы пока не решена.

Добавление устройства


Мы не можем «добавить» устройство, мы можем отдать контроллеру команду «перечитать» список устройств, подключенных к тому или иному порту. Если там найдётся что-то интересное, ядру дадут знать.

echo "- - -" >/sys/class/scsi_host/hostX/scan

X — номер шины, совпадает с номером SATA порта на материнской плате. Если не знаете, можете смело делать для всех хостов по очереди, ничего, кроме небольшого лага в дисковых операциях, незаметного для софта и файловой системы, это не даст.

Обратите внимание, host'ы нумеруются с 0, а не с 1. (а в dmesg ata устройства нумеруются с 1).

Так же осуществляется и сканирование USB-SATA переходников (usb-боксов и внешних винчестеров — они просто фигурируют как ещё один scsi_host).

Если мы говорим про SCSI, то вместо "- — -" можно указать точный номер устройства/шины/LUN'а сканируемого устройства (например, «200 1 2»). SATA, в силу архитектурных особенностей (один target для одного initiator) принимает туда только «0 0 0».

Ещё об удалении… Если вы не знаете буквы устройства, но знаете его физическое место подключения, то удалять можно «прямым текстом», записью «1» в "/sys/bus/scsi/devices/targetX:0:0/X:0:0:0/delete".
Всего голосов 64: ↑54 и ↓10+44
Комментарии48

Радиотелескоп

Время на прочтение3 мин
Количество просмотров80K
Мы привыкли видеть мир в оптическом диапазоне и слышать в звуковом. Всем известно, что летучая мышь видит в темноте благодаря ультразвуковому локатору. Существует множество приборов, расширяющих человеческие возможности восприятия – к этому относится вся измерительная аппаратура. Она отображает всевозможные физические процессы в графическом или звуковом виде, доступном человеку.


Читать дальше →
Всего голосов 169: ↑165 и ↓4+161
Комментарии101

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность