Pull to refresh
-12
0
Send message

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

Level of difficultyMedium
Reading time16 min
Views16K


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

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

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

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

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

Level of difficultyEasy
Reading time37 min
Views23K

image


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


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


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


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


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

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

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

Читать дальше →
Total votes 51: ↑46 and ↓5+41
Comments45

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

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


Читать дальше →
Total votes 11: ↑10 and ↓1+11
Comments5

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

Reading time9 min
Views9.5K

Содержание

Часть #1 (scanning)

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

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

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

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments2

Сокеты в ОС Linux

Reading time5 min
Views86K

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

Читать далее
Total votes 27: ↑24 and ↓3+29
Comments15

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

Reading time16 min
Views20K

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

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

Читать далее
Total votes 17: ↑17 and ↓0+17
Comments0

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

Reading time16 min
Views14K

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

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments15

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

Reading time22 min
Views31K

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

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

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

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments19

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

Reading time13 min
Views17K

Часть #1 (scanning)

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

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

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments1

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

Reading time4 min
Views26K
Привет, Хабр.

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


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

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

Reading time6 min
Views42K


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

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

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

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

Reading time14 min
Views93K

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

Читать далее
Total votes 66: ↑66 and ↓0+66
Comments77

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

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

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments4

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

Reading time31 min
Views16K

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


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


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



Конъюнктура


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


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

Ну и что?
Total votes 21: ↑21 and ↓0+21
Comments17

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

Reading time19 min
Views18K

image

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


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


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


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


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


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

Читать дальше →
Total votes 25: ↑23 and ↓2+24
Comments31

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

Reading time10 min
Views28K
image

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

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

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

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

Reading time9 min
Views12K

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


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

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



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


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


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

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

Information

Rating
4,670-th
Registered
Activity