Как стать автором
Обновить
2
0
Сергей Паньков @trapwalker

Backend, python

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

Хакаем CAN шину авто для голосового управления

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


Современный автомобиль это не только средство передвижения, но и продвинутый гаджет с мультимедийными функциями и электронной системой управления агрегатами и кучей датчиков. Многие автопроизводители предлагают функции ассистентов движения, помощников при парковке, мониторинга и управления авто с телефона. Это возможно благодаря использованию в авто CAN шины к которой подключены все системы: двигатель, тормозная система, руль, мультимедиа, климат и др.

Мой автомобиль Skoda Octavia 2011 г. в. не предлагает возможностей управления с телефона, поэтому я решил исправить этот недостаток, а заодно и добавить функцию голосового управления. В качестве шлюза между CAN шиной и телефоном я использую Raspberry Pi с шилдом CAN BUS и WiFi роутер TP-Link. Протокол общения агрегатов авто закрытый, и на все мои письма предоставить документацию протокола Volkswagen отвечал отказом. Поэтому единственный способ узнать, как общаются устройства в авто и научиться ими управлять является реверс-инжиниринг протокола CAN шины VW.

Я действовал поэтапно:

  1. Разработка CAN шилда для Raspberry Pi
  2. Установка ПО для работы с CAN шиной
  3. Подключение к CAN шине авто
  4. Разработка сниффера и изучение протокола CAN шины
  5. Разработка приложения для телефона
  6. Голосовое управление с помощью Homekit и Siri

В конце видео голосового управления стеклоподъемником.
Читать дальше →
Всего голосов 81: ↑81 и ↓0+81
Комментарии110

Как определить местоположение по сетям сотовой связи (Cell ID)

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

Карта Участники OpenStreetMap
 
Существует множество способов определения местоположения, такие как спутниковая навигация (GPS), местоположение по беспроводным сетям WiFi и по сетям сотовой связи.
 
В данном посте мы попытались проверить, насколько хорошо работает технология определения местоположения по вышкам сотовой связи в городе Минске (при условии использования только открытых баз данных координат передатчиков GSM).
 
Принцип действия заключается в том, что сотовый телефон (или модуль сотовой связи) знает, каким приемопередатчиком базовой станции он обслуживается и имея базу данных координат передатчиков базовой станции можно приблизительно определить своё местоположение.
Читать дальше →
Всего голосов 90: ↑88 и ↓2+86
Комментарии37

Выходим в Интернет с помощью модуля на SIM800L

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

Привет всем неравнодушным! Сегодня предлагаю поговорить о миниатюрных GSM-модемах на базе чипа SIM800L. Области применения таких модулей весьма обширны: охрана дачи или дома, сигнализация в машине и многое другое, где требуется удаленная связь, а возможности подключиться к Wi-Fi нет. В том числе они прекрасно подходят для проектов IoT, потому что с их помощью можно не только отправлять сообщения или управлять телефонными звонками, но и подключаться к Интернету.

В данной статье рассмотрим:

- подключение модулей к переходнику USB-TTL для проверки и отладки;

- подключение модулей к платам Arduino для выхода в Интернет в условиях, когда нет доступа к Wi-Fi;

- код, который позволяет подключиться к объекту на платформе Rightech IoT Cloud, публиковать данные и получать команды.

Хочу узнать больше >>>
Всего голосов 26: ↑24 и ↓2+22
Комментарии29

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

Время на прочтение5 мин
Количество просмотров34K
Только ленивый не слышал про умные дома — про них трубят на всех углах уже порядка десяти лет, в мире существуют сотни производителей гаджетов и оборудования и похоже, что интернет вещей станет главным трендом ближайшего десятилетия. На днях я решил разобраться, какие бывают умные дома, сколько они стоят и как можно самостоятельно собрать такую систему в моей киевской двухкомнатной квартире.
Читать дальше →
Всего голосов 17: ↑11 и ↓6+5
Комментарии10

Apache Airflow: делаем ETL проще

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

Привет, я Дмитрий Логвиненко — Data Engineer отдела аналитики группы компаний «Везёт».


Я расскажу вам о замечательном инструменте для разработки ETL-процессов — Apache Airflow. Но Airflow настолько универсален и многогранен, что вам стоит присмотреться к нему даже если вы не занимаетесь потоками данных, а имеете потребность периодически запускать какие-либо процессы и следить за их выполнением.


И да, я буду не только рассказывать, но и показывать: в программе много кода, скриншотов и рекомендаций.



Что обычно видишь, когда гуглишь слово Airflow / Wikimedia Commons

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

Почему Вы должны попробовать FastAPI?

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

image Лого взято из Github репозитория FastAPI


FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


FastAPI построен на базе Starlette и Pydantic.
StarletteASGI микро-фреймворк для написания веб-приложений.
Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

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

Введение в ASGI: становление асинхронной веб-экосистемы Python

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Introduction to ASGI: Emergence of an Async Python Web Ecosystem" автора Florimond Manca.



"Черепахи рядом с водоемом", Ricard Baraham на unsplash.com


Python не замыкается только на Data Science, веб-разработка на Python вернулась с новым асинхронным витком в развитии языка!


Сейчас происходит много важных событий в экосистеме веб-разработки на Python. Одним из основных драйверов этих изменений является ASGI — Asynchronous Standard Gateway Interface.


Я уже несколько раз упоминал ASGI в моем блоге, в частности, когда анонсировал Bocadillo (асинхронный open-source веб-фреймворк на Python — прим.пер.) и tartiflette-starlette (библиотека для построения GraphQL API поверх HTTP через ASGI — прим.пер.), но я никогда не писал подробное введение о нем. Теперь я это сделаю.


Эта статья нацелена на людей, интересующихся последними трендами в веб-разработке на Python. Я хочу пригласить вас на экскурсию, из которой вы узнаете, что такое ASGI, и что он означает для современной веб-разработки в мире Python.


Прежде чем мы начнем, я хотел бы рассказать, что недавно создал awesome-asgi — отличный список для отслеживания постоянно расширяющейся экосистемы ASGI.

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

Overpass API: следующий уровень владения OpenStreetMap

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

В своих различных геосервисах мы используем данные OpenStreetMap (OSM). Данные в OSM заносятся, в основном, через специальные программы-редакторы, про самые популярные из которых мы писали тут и тут. На программном уровне редакторы общаются с главным сервером через OSM API. Этот API работает как на чтение, так и на запись и предоставляет лишь минимально необходимые возможности. Через него выборку можно ограничить только прямоугольником, но не произвольной полигональной областью, также нет ни фильтрации данных, ни способов их преобразования перед отправкой клиенту. Но что делать, если тебе нужно выбрать данные из OSM, отсеив много лишнего, желательно сразу показать результаты на карте, и при этом ты ни разу не программист? Тут-то на помощь и приходит Overpass API — мощный инструмент запросов к данным OSM, и Overpass Turbo — веб-приложение, предоставляющее графический интерфейс к Overpass API и дополнительные удобства при работе с запросами.

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

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 1. Знакомство

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

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

Meshtastic — это проект, который позволяет построить свою частную радиосеть с очень большим временем автономной работы, используя недорогие радио модули LoRa и экономичные микроконтроллеры серии ESP32.

Радиомодем связаны с вашим смартфоном по сети Bluetooth. Для некоторых сценариев использования смартфон вообще не требуется.

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

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

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

Спаси себя сам и вокруг спасутся многие
Всего голосов 56: ↑56 и ↓0+56
Комментарии111

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 2. Радиомодемы фирменные

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

В предыдущей статье мы познакомились с проектом Meshtastic. Узнали, что можно построить собственный радиочат на основе Mesh-сети, обычного смартфона и радиомодема. Следующие логичные вопросы, которыми начали задаваться люди: И что дальше? Как эту сеть построить? Что прикупить?

Во второй части будет описано несколько фирменных заготовок для Meshtastic-модема с Aliexpress, их отличия и особенности применения. Если по какой-либо причине готовые изделия вас не интересуют, то есть возможность радиомодем собрать самому. Это совсем не сложно и под силу даже самому молодому и начинающему радиолюбителю. Интересно? Добро пожаловать под кат во вторую часть.

Купить или не купить? Если купить, то что?
Всего голосов 19: ↑19 и ↓0+19
Комментарии23

Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета. Часть 3. Радиомодемы самодельные

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

В первой части темы мы познакомились с проектом Meshtastic. Узнали, что можно построить собственный радиочат на основе Mesh-сети, обычного смартфона и радиомодема.

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

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

Собрать свой радиомодем совсем не сложно и под силу даже самому молодому и начинающему радиолюбителю. Интересно? Добро пожаловать под кат в третью часть.

Купить готовое? Отстаньте от меня – я сам!
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

Meshtastic — оперативно-тактический радиочат без сотовой связи и интернета. Часть 4. Прошивка модема, выход в сеть

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

Если вы добрались до 4-ой статьи, то, вероятно:

Вы уже знаете, что есть такая Meshtastic-радиосеть, описанная в первой части.

Ознакомились во второй части с фирменными решениями с Aliexpress по построению радиосети.

Или же, решились строить радиомодем самостоятельно, ознакомившись с материалами из третьей части.

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

Прошивайтесь, подключайтесь, общайтесь!
Всего голосов 15: ↑15 и ↓0+15
Комментарии26

Как работает ControlNet. Контролируемая генерация изображений

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

Нейронные сети прошли долгий путь от генерации странных ЧБ-изображений до фантастических фотореалистичных сцен, которые не поддаются воображению. С помощью всего лишь короткой текстовой подсказки диффузионные нейросети могут создавать потрясающие изображения, неотличимые от обычных. Однако, какими бы впечатляющими ни были эти модели, в них отсутствует важнейший элемент — пользовательский контроль. Представьте, что вы можете указать точную форму, положение и позу объекта на изображении, которое вы хотите создать. Что ж, теперь это возможно благодаря новаторской технологии под названием ControlNet!
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии8

Управление микроконтроллером через telegram-бот с обратной связью

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

Как управлять различными устройствами: свет, вентиляция, полив, а также получать нужные данные от микроконтроллера.

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

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии13

Квантовые компьютеры: материальная база

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

Квантовые компьютеры – идея еще 1980-х, а всерьез за ними бегают последние два десятка лет, ибо они могут решать недоступные для обычных вычислительных машин задачи. Некоторые алгоритмы факторизации (разложения числа на простые множители, привет криптографии), поиска или оптимизации работают на квантовых компьютерах принципиально лучше, чем на обычных. Более того, они куда эффективнее обычных машин в различных квантовохимических расчетах, интересных ученым для предсказания химических свойств соединений или физических свойств материалов. На опытных квантовых компьютерах уже удавалось проводить такие расчеты для простых, фактически модельных соединений и материалов. Я собираюсь немного рассказать про необходимые для квантовых компьютеров материалы и степень пригодности их к промышленному производству на данный момент.

Спойлер: россказни про «вот сейчас мы разработаем квантовые компьютеры, и нужда в микроэлектронном производстве отпадет» – неправда.

Читать далее
Всего голосов 22: ↑19 и ↓3+16
Комментарии2

Создание приложения для чата в реальном времени с помощью Angular и Appwrite

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

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

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

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

Этот восхитительный Юникод

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


Перед вами обновляемый список самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →
Всего голосов 64: ↑64 и ↓0+64
Комментарии56

Учим LLDB уточнять указатели на локальные переменные

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

Представим процесс отладки программы на С++: перед нами есть указатель на какую-то переменную, и мы хотим знать, на что он указывает. Два варианта: если переменная глобальная, то любой современный отладчик назовет ее имя, и мы будем довольны. А вот если переменная локальная, то никакой полезной информации мы не получим.

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

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

Хорошая пломба vs плохая пломба

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

Коффердам или изолирующий платок — одна из причин, почему современные пломбы служат лет так на 10 дольше

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

Особенно, если пломба свежая. Самостоятельно понять, что под ней идёт размеренная личная жизнь микроорганизмов, довольно сложно. Хорошая пломба мешает образованию кариеса и любому другому разрушению зуба.

Плохая пломба:
  1. Положенная на недочищенный кариес.
  2. Та, что выступает за границы зуба и мешает прочищать зуб и межзубное пространство. Там застревает пища и начинает гнить, портятся дёсна, образовывается кариес.
  3. Если в процессе установки на неё попала вода или микроорганизмы (материалы почти всех современных пломб этого не терпят). В итоге история та же: в микротрещины забивается пища, бактерии размножаются — привет, новый кариес.
  4. Та, которую поставили в слишком большую полость. Полимеризационная усадка, которую мы можем компенсировать в полостях небольших размеров, здесь приводит к краевым отрывам, либо создаёт предпосылки для отлома частей зуба.

Выступающую пломбу и мы, и пациенты можем увидеть. Остальные две — нет, пока пациент не придёт с болью. Всё остальное уже про эстетику, а не про безопасность.

Ниже я покажу конкретные случаи.
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии30

Actions: как в GitHub, но в GitLab

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

Привет! Меня зовут Артемий Окулов, я lead центра компетенций CI/CD в X5 Group.

То, чем мы с командой занимаемся, можно отнести к области под названием Developer Experience. В какой-то момент ИТ в компании достигает такой зрелости, что появляются tools team, enabling team и инициативы, направленные на повышение developer experience. Одной из таких инициатив мы и занимаемся. Если вкратце, мы хотим упростить старт новых продуктов в компании за счет предоставления шаблонов.

В X5 Group много web-сервисов, и с переходом на продуктовый подход виден рост количества команд, которые все чаще прибегают к их созданию. Конечно, каждая команда должна быть кросс-функциональной, чтобы успех реализации продукта зависел в большей степени от самой команды. Но часто мы сталкиваемся с тем, что найти инженера с ролью devops в команду — это задача нескольких месяцев. А терять столько времени на старте — непозволительная роскошь. Поэтому в компании ведутся работы по созданию “стартовых наборов”, решающих задачу минимум — быстрого старта разработки и создания dev-окружения силами самих разработчиков.

В поставку такого “стартового набора” входит и CI/CD pipeline. В этой статье, в частности, мы бы хотели поделиться подходом шаблонизации GitLab Pipelines, который мы стараемся продвигать у себя в компании, и рассказать про инструмент, который для этого разработали.

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

Информация

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