Как стать автором
Обновить
-11
0.1

Пользователь

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

Разбираемся с Bluetooth Low Energy на примере превращения USB-клавиатуры в беспроводную

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров17K


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

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

Не имея навыков пайки, вы сможете создать полезное Bluetooth-устройство, а ваше понимание Bluetooth и Linux уже не будет прежним, если вы, конечно, не являетесь экспертом в этих областях.

Данная статья ставит целью на примере разработки собственной Bluetooth-клавиатуры помочь разобраться в базовых понятиях Bluetooth, так как чтение скучных спецификаций и статей с введением в технологию даёт мало пользы.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+72
Комментарии76

Эльфы и пингвины: что такое ELF и как он работает в Linux?

Уровень сложностиПростой
Время на прочтение37 мин
Количество просмотров24K

image


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


Что такое ELF? Чем он отличается от PE в Windows? И многие другие ответы на ваши вопросы.


Перед тем как погрузиться в технические детали, будет нелишним объяснить, почему понимание формата ELF полезно. Это позволяет изучить внутреннюю работу операционной системы. Когда что-то пошло не так, эти знания помогут лучше понять, что именно случилось, и по какой причине. Также возможность изучения ELF-файлов может быть ценна для поиска дыр в безопасности и обнаружения подозрительных файлов. И наконец, для лучшего понимания процесса разработки. Даже если вы программируете на высокоуровневом языке типа Go или Rust, вы всё равно будет лучше знать, что происходит за сценой.


Итак, зачем изучать ELF?


  • Для общего понимания работы операционной системы
  • Для разработки ПО
  • Цифровая криминалистика и реагирование на инциденты (DFIR)
  • Исследование вредоносных программ (анализ бинарных файлов)
Читать дальше →
Всего голосов 47: ↑41 и ↓6+45
Комментарии22

Прокрастинация

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров32K

Данная статья написана по материалам лекций психолога в МФТИ. Эти лекции показались мне очень полезными, поэтому я решил поделиться своим конспектом.

Читать далее
Всего голосов 30: ↑29 и ↓1+38
Комментарии34

Книги для системного администратора. Моя книжная полка

Время на прочтение6 мин
Количество просмотров482K
Книги.
Я считаю, что важнейшим инструментом получения скилов системного администрирования являются именно они — книги.
Нет специальных факультетов, обучающих «админству» — каждый постигает это самостоятельно. Путем проб, ошибок и боли, потере важных данных различных злоключений.
В начале пути сложно определиться, что же нужно прочесть — ведь массив информации столь огромен!
В данном посте я хочу собрать наиболее важные и значимые труды для системных администраторов.
Уклон будет на *nix админство, но, надеюсь тема окажется небезынтересной и для Windows коллег и в комметариях они заполнят мои пробелы.
Пост субьективен и отражает лишь мой собственный опыт — я раскажу о книгах, которые помогли моему становлению.

Читать дальше →
Всего голосов 51: ↑46 и ↓5+41
Комментарии45

Фундаментальная теория тестирования

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


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

Android Bluetooth Low Energy (BLE) – готовим правильно, часть #4 (bonding)

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

Содержание

Часть #1 (scanning)

Часть #2 (connecting/disconnecting)

Часть #3 (read/write)

Часть #4 (bonding), вы здесь

В предыдущей статье мы разобрались с операциями чтения/записи, включения/выключения нотификаций и организации очереди команд. В этой статье мы поговорим о сопряжении устройств (Прим. переводчика – далее я буду использовать термин «bonding»).

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Сокеты в ОС Linux

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

В данной статье будет рассмотрено понятие сокета в операционной системе Linux: основные структуры данных, как они работают и можно ли управлять состоянием сокета с помощью приложения. В качестве практики будут рассмотрены инструменты netcat и socat.

Читать далее
Всего голосов 27: ↑24 и ↓3+29
Комментарии15

Bluetooth Low Energy: подробный гайд для начинающих. Bluetooth Mesh

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

Внедрение стандарта BLE в 2010 году привело к быстрому росту вариантов использования устройств интернета вещей, таких как сенсоры, носимые устройства, портативные медицинские инструменты и прочие. В то же время, большим недостатком BLE, существующим с момента его внедрения, была невозможность организации ячеистых сетей, когда множество устройств могут посылать друг другу сообщения и ретранслировать их при необходимости на другие устройства в сети. Ситуация изменилась в июле 2017 года, когда Bluetooth SIG выпустила стандарт Bluetooth Mesh.

В этой главе мы рассмотрим наиболее важные основные понятия, чтобы облегчить начало вашего пути в изучении Bluetooth Mesh.

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

Bluetooth Low Energy: подробный гайд для начинающих. Bluetooth 5 и безопасность

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

Это четвертая часть перевода книги Мохаммада Афане “Intro to Bluetooth Low Energy”. Сегодня мы рассмотрим возможности, появившиеся в новой версии стандарта а также различные методы обеспечения безопасности соединения и пользовательских данных в BLE. Мы узнаем, за счет чего стало возможно четырехкратное увеличение дальности связи, двухкратное ускорение, и почему их нельзя получить одновременно.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии15

Bluetooth Low Energy: подробный гайд для начинающих. Соединения и сервисы

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

Это третья часть перевода книги Мохаммада Афане “Intro to Bluetooth Low Energy”. Сегодня мы подробнее рассмотрим процесс подключения устройств и поговорим о сервисах.

Предыдущие части:
Про архитектуру BLE
Про типы устройств, адвертайзинг и сканирование

Благодаря сервисам происходит обмен как стандартными данными (уровень заряда батареи через Battery Service, текущее время устройства через Current Time Service и т.д.), так и кастомными, при помощи сервисов, созданных разработчиком устройства для удовлетворения специфических нужд. Например, для Atmotube Pro мы сделали два сервиса, в которые сгруппировали несколько характеристик для синхронизации истории, передачи данных о концентрации пыли и летучих органических соединений. 

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии19

Android Bluetooth Low Energy (BLE) – готовим правильно, часть #3 (read/write)

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

Часть #1 (scanning)

Часть #2 (connecting/disconnecting)

Часть #3 (read/write), вы здесь

В предыдущей статье мы подробно поговорили о подключении/отключении BLE устройств. Эта статья о чтении и записи характеристик, а также о включении-выключении уведомлений.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Android Bluetooth Low Energy (BLE) — готовим правильно, часть #2 (connecting/disconnecting)

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

Подключение, отключение и обнаружение BLE сервисов.

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

Как принять сигналы немецкого ВМФ с помощью звуковой карты, или изучаем радиосигналы сверхнизких частот

Время на прочтение4 мин
Количество просмотров27K
Привет, Хабр.

Тема приема и анализа сверхдлинных волн весьма интересна, но на Хабре она упоминается весьма редко. Попробуем восполнить пробел, и посмотрим как это работает.


Передатчик VLF в Японии (с) en.wikipedia.org/wiki/Very_low_frequency
Читать дальше →
Всего голосов 44: ↑43 и ↓1+65
Комментарии72

Linux в режиме реального времени

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


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

При этом разные события имеют различные временные требования. Например, требование к задержке для антиблокировочной тормозной системы может составлять от 3-5 миллисекунд. То есть с момента, когда колесо впервые обнаруживает, что оно скользит, у системы, управляющей антиблокировочными тормозами, есть от 3-5 миллисекунд, чтобы отреагировать и исправить ситуацию.

Возможности ядра в реальном времени существует уже более десяти лет в экосистеме программ с открытым исходным кодом. Столько же времени доступна поддержка Red Hat Enterprise Linux (RHEL) для ядра реального времени. Тем не менее многие системные администраторы неверно истолковывают его основные концепции и фактическое рабочее поведение. В этой статье я опишу некоторые из его основных функций, отличия от стандартного ядра и шаги по установке.
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии81

Это просто бомба-2. Li-Ion — как не взлететь

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

За последний десяток лет литий-ионные аккумуляторы из дорогостоящей экзотики перешли в разряд самых распространенных источников автономного питания. Неудивительно, что они стали популярными и в руках самодельщиков, в том числе и начинающих. Иногда от технических решений в их творениях волосы становятся дыбом – ведь особенностью аккумуляторов данного типа является их повышенная опасность, в первую очередь – пожарная. Мой рассказ о том, как правильно «готовить» эту «рыбу фугу», чтобы никто не сгорел и не взорвался.

Читать далее
Всего голосов 66: ↑66 и ↓0+66
Комментарии77

SamsPcbCalc, часть 2: Сколько тепла может рассеять печатная плата?

Время на прочтение4 мин
Количество просмотров10K
С совершенствованием элементной базы всё меньше энергии уходит в тепловую: снижается сопротивление транзисторов в открытом состоянии, растут частоты импульсных преобразователей напряжения. Но от задачи теплоотвода в рамках текущей полупроводниковой парадигмы никуда не деться, тот же рост производительности при увеличении степени интеграции уже приводит к пределу плотности тепловыделения. Для микросхем с мощностью тепловых потерь более 1 Вт тепловая задача важна не меньше, чем электрическая. Нужно ли отводить тепло на корпус? Или использовать радиатор для микросхемы? Для ответа на эти вопросы не всегда требуется моделирование тепловой задачи с помощью КЭМ. В этой статье рассматриваем достаточно гибкую модель, которая позволяет быстро получить предварительную оценку теплового сопротивления «плата-среда» с хорошей точностью.

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

Издатель/подписчик для распределённых отказоустойчивых бортовых систем реального времени в 1500 строк кода

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

Сап, котятки.


Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Computing And Networking (несложные бортовые сети и коммуникации уровня приложения).


В этой публикации объясняется текущее положение дел и тренды в области сложных бортовых систем, существующие и грядущие проблемы, как мы их решаем и каких успехов добились. Во второй части наши коллеги из Университета Иннополис подробно осветят практическую сторону внедрения UAVCAN на примере конкретных проектов.



Конъюнктура


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


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

Ну и что?
Всего голосов 21: ↑21 и ↓0+21
Комментарии17

Переключение контекста и простой вытесняющий планировщик для CortexM

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

image

С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидать в Cube или собрать на Ардуино, но задача курсового не в этом. Основная задача — самостоятельно, с нуля разобраться с модулями микроконтроллера, продумать архитектуру ПО и, собственно, закодировать все на С++, начиная от регистров и заканчивая задачами РТОС. Кому интересно, здесь пример отчета по такому курсовому


Так вот, появилась небольшая проблема, а именно, бесплатный IAR позволяет делать ПО размером не более 30 кБайт. А это уже впритык к размеру курсового в неоптимизированном виде. Анализ кода студентов выявил, что примерно 1/4 часть их приложения занимает FreeRtos — около 6 кБайт, хотя для того, чтобы сделать вытесняющую переключалку и управлялку задачами хватило бы, наверное… да байт 500 причем вместе с 3 задачами (светодиодными моргунчиками).


Эта статья будет посвящена тому, как можно реализовать Очень Простой Планировщик(он же SST), описанный в статье аж 2006 года и сейчас поддерживаемый Quantum Leaps в продукте Qp framework.


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


Я попробую показать как можно реализовать такой планировщик самому. Чтобы не сильно перегружать статью, рассмотрю переключение контекста на CortexM0 у которого нет аппаратного модуля с плавающей точкой.


Все кто заинтересовался и хочет понять как можно переключать контекст, добро пожаловать под кат.

Читать дальше →
Всего голосов 25: ↑23 и ↓2+24
Комментарии31

BLE под микроскопом (ATTы GATTы...)

Время на прочтение10 мин
Количество просмотров29K
image

BLE под микроскопом (ATTы GATTы...)

Часть 1, обзорная

Уже прошло довольно большое время, с тех пор, когда вышла первая спецификация на Bluetooth 4.0. И, хотя тема BLE очень интересна, она до сих пор отталкивает многих разработчиков, из-за своей сложности. В своих предыдущих статьях я рассматривал в основном самый нижний уровень Link Layer и Physical Layer. Это позволяло не обращаться к таким сложным и запутанным понятиям как протокол атрибутов(ATT) и общий профиль атрибутов (GATT). Однако деваться некуда, не понимая их, невозможно разрабатывать совместимые устройства. Сегодня я хотел бы поделиться с вами этими знаниями. В своей статье я буду опираться на учебник для начинающих с сайта Nordic-а. Итак, давайте приступим.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии20

Нечеткая логика в красивых картинках. Поверхности отклика для разных функций принадлежности

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

Продолжаем изучать нечеткую логику вместе с книгой Гостева В.И. «Нечеткие регуляторы в системах автоматического управления».


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

Пытаясь разобраться с этой задачей, я решил посмотреть, как функции принадлежности и их параметры влияют на работу регуляторов. И не смог пройти мимо такого красивого объекта из мира нечетких регуляторов, как поверхность отклика, – 3D-график зависимости выхода нечеткого регулятора от двух входов в регулятор.



Как оказалось, это затягивающее занятие (построение поверхности отклика) доставляет не просто эстетическое удовольствие, а еще раз доказывает на практике известное философское утверждение «красота спасет мир».


Поэтому разбор очередной задачи из книги Гостева В.И. у меня распался на две части:


  1. Анализ влияния параметров функции принадлежности для фазификации входных переменных на работу регулятора на базе нечеткой логики.
  2. Непосредственное решение задачи.

Далее, под катом, первая часть.
Внимание! Для тех, кто впервые касается темы нечеткого регулирования, рекомендую начать вот с этой статьи: Простой регулятор на базе нечеткой логики. Создание и настройка
Читать дальше →
Всего голосов 6: ↑5 и ↓1+8
Комментарии2
1
23 ...

Информация

В рейтинге
3 739-й
Зарегистрирован
Активность