Как стать автором
Обновить
-15
0

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

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

Читаем нажатия ИК-пульта под Linux

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

На Али можно найти пульт, приёмник которого будет притворяться устройством ввода. Но я опишу способ приёма нажатий с разных пультов, и действия можно настроить на своё усмотрение.

Нажатия будем принимать с помощью YS-IRTM, это дешевая плата с ИК-приёмником и передатчиком, использует микроконтроллер на базе 8051, в котором прошивка для декодирования сигналов с пультов. Интерфейс подключения: UART 5V. Есть подробное описание в этом репозитории на GitHub.

Умеет принимать NEC протокол, который используется на большинстве дешевых пультов. Но есть недостаток, не принимает коды повторов, если клавиша удерживается. Существуют и другие ИК-протоколы, например у Sony есть свой, поэтому пульты Sony не поддерживаются.

Читать далее
Всего голосов 8: ↑8.5 и ↓-0.5+9
Комментарии15

Как передать информацию в ICMP-пакетах и не привлечь внимания санитаров

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

Источник: polymerh.

На Хабре достаточно статей про передачу данных через протокол ICMP. Чего говорить, шесть лет назад я сам писал про стеганографию в IP-пакетах и «пингах». Но кажется, самое время вернуться к этой теме и предложить неочевидные методы.

Если вам кажется, что тема передачи данных в ICMP уже исчерпана и я не смогу вас удивить, то предлагаю извлечь данные из дампа сетевого трафика до прочтения статьи. То, что будет дальше, может ввести в недоумение.
Читать дальше →
Всего голосов 93: ↑105.5 и ↓-12.5+118
Комментарии24

Обратный инжиниринг дешевой мини видеокамеры из семейства А9

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

В данной статье речь пойдет о Wi-Fi мини видеокамере из семейства А9 от китайских производителей. Цель исследования этих камер – расширить возможность их применения, которая ограничена использованием только стандартных приложений для мобильных устройств на базе Android или iOS.

По итогу представлен некоторый анализ дампа сетевого трафика между камерой и мобильным приложением, а на его основе предложен работающий код на Python.

Читать далее
Всего голосов 38: ↑47 и ↓-9+56
Комментарии33

Как заново реализовать тетрис

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


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

Вне всяких сомнений, я наработал массу опыта и знаний, выполняя все эти вещи самостоятельно. Поэтому, на мой взгляд, вполне целесообразно и далее так делать, то есть, попробовать выполнить какой-то проект, уже реализованный ранее. Всё это — именно с целью самообучения. На этот раз я взялся самостоятельно перепроектировать «Тетрис». Чтобы было ещё интереснее, я решил всё сделать на C.

На самом деле, это не первая моя игра на C – немного ранее я уже успел написать на С клон сапёра. В блоге также об этом не писал, но, может быть, напишу в будущем, так как проект получился очень интересным. Пожалуй, этот опыт пригодился мне в работе над «Тетрисом».
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии32

Трубка Гейслера — вакуумный насос. Распыление геттера разрядом

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

Известно свойство целого ряда металлов, в большей или меньшей степени распыляясь при нагревании в вакууме, связывать молекулы оставшихся газов. Явление широко применяется в электровакуумной технике. Как в виде встроенного одноразового элемента для доводки-откачки электровакуумных приборов (ЭВП), так и в виде отдельных высоковакуумных насосов различной производительности. Металлы в таком качестве называют геттерами, а насосы — геттерными. Поставим несложный эксперимент, демонстрирующий работу геттера, для чего изготовим специальную разрядную трубку.
Читать дальше →
Всего голосов 75: ↑88.5 и ↓-13.5+102
Комментарии50

Вызволяем увлажнитель из сетей Xiaomi

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

Вероятно, вы слышали о том, что сухость воздуха — одна из частых причин появления статического электричества. Вот и я решил обзавестись увлажнителем, когда заметил, что кошка бьется током почти при каждом прикосновении. И нет, ее зовут не Электро или Шторм Спирит. Знакомьтесь, Амидала (в честь персонажа вселенной «Звездных войн»).

Время шло, потребности в комфортном использовании техники росли, а вот ее функциональность и стабильность оставляли желать лучшего. После очередного сбоя серверов Xiaomi в октябре прошлого года в голове окончательно закралась мысль: почему дом — мой, а серверы — чужие? Так я познакомился с Home Assistant, MQTT, zigbee2mqtt и селфхостингом, о чем расскажу под катом!
Читать дальше →
Всего голосов 67: ↑67.5 и ↓-0.5+68
Комментарии46

Zigbee датчик присутствия на сенсоре LD-2410

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

Это уже вторая версия датчика присутствия на чипе LD-2410. Первая была максимально простая, прошивка была собрана на PTVO, все хорошо работало, но захотелось немного расширить функционал.

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

Расчет потерь в MOSFET транзисторах

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

Приветствую!

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

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

Септик и автономная канализация. Часть 1. Основы

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

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

Погрузиться в чтение
Всего голосов 28: ↑22 и ↓6+16
Комментарии40

Рисуем эффект «Таноса» на Android (и не только)

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

Привет! Вопрос мобильным разработчикам: часто ли вам приходится работать с необычным UI? Если вы ответили утвердительно, то я по-доброму вам завидую. В своей повседневной практике мне в основном приходится работать со стандартным набором компонентов и их базовой настройкой. Абсолютно ничего не имею против, но хочется чего-то «эдакого»: кастомных компонентов, написанных с нуля, необычных анимаций и эффектов. Часто подобные вещи вызывают много споров (как среди разработчиков, так и конечных пользователей) а-ля «А на кой оно вообще надо», но лично для меня это ни что иное, как творчество. Кто-то красиво рисует, кто-то красиво поёт, а кто-то пишет красивые уникальные приложения, которыми интересно и приятно пользоваться. И мы, пожалуй, не можем обвинять авторов за бессмысленность «украшательств», как по-хорошему не можем судить художника за его работу.

К чему я – спросите вы. Я отвечу: настраиваю на нужный лад :) В рамках этой статьи мы коснёмся полезной темы и создадим что-то бесполезное в практическом смысле, но несомненно интересное и достаточно уникальное.

Уже интересно
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

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

Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 119: ↑117 и ↓2+115
Комментарии86

Разобраться раз и навсегда: Task.WhenAll или Parallel.ForEachAsync в C#

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


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

Если быстро посмотреть на результаты, которые появляются в интернете при поиске советов по реализации подобных вещей, то можно увидеть, что есть как много похожих, так и различных предложений от различных программистов. В какой-то момент поиска вы, вероятно, столкнётесь с поиском идеей использования Task.WhenAll или Parallel.ForEachAsync.

При чтении некоторых из этих материалов будет видно много различных противоречивых ответов как на StackOverflow, так и по всему интернету. Сегодня я собираюсь сравнить эти два метода с помощью определённых бенчмарков, которые стравят их друг против друга, чтобы, наконец, выяснить применимость каждого из двух методов.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии18

Передача данных по радиоканалу

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

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

Важно! Здесь не будет информации о юридических особенностях использования радиосвязи, а также о частотах, мощности передачи, позывных и т. п. Применение радиосвязи имеет ограничения и регулируется Федеральным законом N 126-ФЗ «О связи».

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

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

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


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

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

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

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

Экономика загородного дома. Как утеплить дом и не разориться?

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

Экономичное отопление. Как утеплить дом и не разориться?

Каждый городской житель мечтает о загородном доме.

Тишина, свежий воздух!

И тут же вы едете смотреть участок земли в превосходном живописном и экологичном месте.

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

И тут внезапно выясняется, что газа нет!

Что это означает?

Это означает, что у вас в наличии 15 кВт подключенного электричества на все хозяйственные нужды, включая отопление.

15кВт — много это или мало?

Ответ как обычно прячется в самом вопросе, а именно: Смотря для чего?

Ниже приведён проект реального одноэтажного дома. (см.рис.1–2)

Читать далее
Всего голосов 104: ↑82 и ↓22+60
Комментарии408

А закрыл ли я замок двери? Home assistant + Aqara и немного витухи

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


Зачем всё это?


Привет дорогой читатель! Проверь, а закрыл ли ты входную дверь? Сходи, проверь ;). Дёрни ручку! Вдруг открыта? Если у Вас бывают навязчивые мысли о том, что Вы забыли закрыть дверь, то поздравляю у Вас ОКР Вам надо лечиться Вам будет полезен мой опыт доработки замка входной двери. Кроме шуток, данная доработка актуальна если: с Вами живут малолетние или великовозрастные дети, перегруженная(ый) работой программист(ка), которых невозможно постоянно контролировать; ситуация усугубляется если в Вашем подъезде иногда проходят митинги собутыльников со всего двора, которые очень будут рады унести что-нибудь из Вашей квартиры и хорошо если это пакеты с мусором.

Решение этой головной боли можно поручить умному дому. Читал, что аналогичную задачу реализовали даже с определением степени закрытости замка — учитывая глубину входа ригеля в ответную часть замка дверной коробки, но это всё сложно и требует специализированных знаний по схемотехнике, да и зачем эти трудности? KISS & YAGNI никто не отменял даже в таком деле!
Я решаю задачу самым простым и доступным мне способом из подручных материалов.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+42
Комментарии81

Dictionary и SortedDictionary

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

Всем привет. Сегодня я планирую рассказать в общих чертах о Dictionary и SortedDictionary в .NET - как они устроены и в чем различие между ними.

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

Как работает протокол X11 на самом нижнем уровне

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

X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.


Но мало кто знает как он работает на самом деле. Потому что с годами он оброс слоями и слоями библиотек, которые стремятся скрыть саму сущность протокола.


А протокол в своей сути прекрасен. Он лаконичен и почти совершенен.


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


А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.


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


Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.

Читать дальше →
Всего голосов 201: ↑199 и ↓2+197
Комментарии182

Zigbee датчик температуры для бассейна

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров10K
Приветствую всех читателей Habr! В эти новогодние каникулы хочу поделиться с вами своим летним открытым проектом zigbee датчика температуры для бассейна. Идея разработать такой датчик появилась довольно спонтанно, летом 2023 года после установки бассейна на даче, появилось желание мониторить температуру воды. К тому времени у меня было разработано несколько проектов zigbee датчиков с дисплеями и датчиков температуры с выносными сенсорами. Датчики температуры можно было привязывать к датчикам с дисплеями и выводить температуру, присланную с этих внешних датчиков. Датчик температуры я закреплял на стенке бассейна, а сенсор на проводе опускался в воду. Но как оказалось это не очень то и удобно. Как только пришел к такому выводу то сразу решил что мне нужен плавающий zigbee датчик температуры.


Читать дальше →
Всего голосов 56: ↑54 и ↓2+52
Комментарии42
1
23 ...

Информация

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