Pull to refresh
10
0
Василий @vassav

User

Send message

Заметка про сохранение структур во flash памяти на STM32

Level of difficultyEasy
Reading time5 min
Views6.5K

При разработке проекта для микроконтроллера часто возникает необходимость сохранения данных во Flash-память перед выключением устройства. Глобальные структуры содержат информацию о настройках различной периферии, данные с внешних датчиков и прочее. В этом посте я хочу показать простенький механизм записи структуры во FLASH память микроконтроллера STM32, которым я сам часто пользуюсь в своих проектах.

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments18

Разворачиваем и заворачиваем в docker проект ASP.NET core на Ubuntu в связке с PostgreSQL

Level of difficultyEasy
Reading time5 min
Views9.8K

На просторах интернета заметил, что довольно мало статьей про ASP.NET под Linux. К сожалению, новички вроде меня копаются часами в поисках нужной информации, поэтому в этой статье мы вместе развернём минимальное приложение ASP.NET core под Linux в среде Ubuntu и в связке с PostgreSQL и с котиками на сервере nginx, а также упакуем всё в docker контейнеры. В ходе этой статьи мы разберём некоторые консольные команды для ежедневного пользования.

Приступить к чтению
Total votes 10: ↑7 and ↓3+4
Comments20

Топ полезных SQL-запросов для PostgreSQL

Reading time7 min
Views81K

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

Читать далее
Total votes 83: ↑81 and ↓2+79
Comments15

ЧПУ, Arduino Uno и CoreXZ: как я собрал плоттер-головоломку

Reading time5 min
Views15K

Умелец собирает плоттер с ЧПУ из труб и показывает читателям, как он работает. А мы делимся этим материалом к старту курса по Data Science: проекты в науке о данных можно собирать подобным образом. Подробности о плоттере читайте под катом.

Читать далее
Total votes 10: ↑9 and ↓1+8
Comments7

Исследование протокола системы контроля давления воздуха в шинах автомобиля (TPMS)

Reading time14 min
Views28K
Система дистанционного контроля давления воздуха в шинах автомобиля (англ. аббревиатура TPMS — Tyre Pressure Monitoring System) предназначена для оперативного информирования пользователя о снижении давления в шинах и о критической температуре шин.

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

Исследовать протокол работы системы TPMS меня побудила идея установить такую систему на детскую коляску для оперативного слежения за давлением в шинах.

image
Рис.1. Внешний вид системы TPMS
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments20

Маленькие хитрости для STM32

Reading time4 min
Views12K

В процессе работы у каждого программиста иногда встречаются неожиданные проблемы, которые возникли как будто на ровном месте. Практически по Черномырдину «никогда такого не было, и вот опять!». После этого начинаешь искать решение в интернете или закапываешься в чтение мануалов и документации, чтобы разобраться в пустячном, на первый взгляд вопросе.

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

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

  1. Буферизированный вывод отладочной информации в последовательный порт
  2. Автоматическое включение защиты от чтения и модификации прошивки
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments49

Победа над nRF24L01: на три шага ближе

Reading time8 min
Views79K

Многие испытывают трудности при соединении по эфиру радиомодулей nRF24L01. Об этом свидетельствует тема на форуме Амперки, открытая в конце 2014г. За пять с небольшим лет в теме накопилось более 120(!) страниц. Это при том, что автор темы не просто обозначил проблему, а поделился своим трехнедельным опытом победного для него боя. Кроме того, он тут же — в первом сообщении создал навигатор по страницам темы, где приводит ссылки на решения проблемы другими.



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



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



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



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



Для общего представления — картинка с прототипом:





Итак ...



Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments18

Пайка в домашних условиях: запись стрима

Reading time2 min
Views13K
Недавно мы провели двухчасовой стрим «пайки в домашних условиях»: разработчик аппаратной части Яндекс.Станции Геннадий «Крэйл» Круглов продемонстрировал, как он паяет в домашней лаборатории. Гена показал устройства в лаборатории и сам процесс пайки, а в перерывах ответил на десятки вопросов от зрителей. Вот запись стрима:


Гена разрабатывает электронику с 2002 года. За это время он поучаствовал более чем в двухстах железных проектах и начал преподавать в МГТУ им. Баумана. Сейчас он читает там два курса: «Цифровая обработка сигналов» и «Микропроцессоры и цифровые устройства». В Яндексе Гена с 2015-го.

Немного деталей и следующая серия
Total votes 37: ↑36 and ↓1+35
Comments13

Пайка компонентов 0201. Слабонервных просьба удалиться от экранов

Reading time4 min
Views99K
Доброго времени суток, Хабр!



Хочу поделиться опытом пайки плат. Также затрону тему установки совсем маленьких компонентов с типоразмером 0201.
Читать дальше →
Total votes 109: ↑107 and ↓2+105
Comments210

Все, что вы хотели знать об обратном маятнике

Reading time5 min
Views36K
Статья служит шпаргалкой для тех, кто хочет сделать свой обратный маятник. Здесь описаны проблемы, из-за которых я все переделывал несколько раз, приведен краткий обзор теории, необходимый для понимания, как стабилизировать систему.
Total votes 70: ↑70 and ↓0+70
Comments23

Что нам стоит CDN построить?

Reading time8 min
Views8K
Привет Хабр! В этой статье мы будем строить свой CDN. Почему не воспользоваться готовыми решениями? Потому что сайт автора полностью статический, сделанный на Jekyll, с большими картинками, которые нужно отдавать максимально быстро. Сервер не должен быть кэширующим, он должен хранить сайт целиком, поддерживать HTTP/2 и Brotli, а на всех серверах должен быть установлен один и тот же сертификат.

Ещё мы сделаем это всё на IIS, работающим под Windows Server 2019 Core.

Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments7

Мобильный телефон BuratinoPhone

Reading time2 min
Views56K


Цель проекта — изучение основ разработки под Arduino, отработка технологий изготовления печатной платы, пайки элементов, изготовления корпуса в домашних условиях. Тем, кто захочет повторить или воспользоватся решениями для своих проектов, исходники можно скачать здесь Github.
Total votes 202: ↑199 and ↓3+196
Comments192

Осваиваем компьютерное зрение — 8 основных шагов

Reading time3 min
Views99K
Привет, читатель.

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

image

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

Total votes 40: ↑35 and ↓5+30
Comments10

Сети кабельного телевидения для самых маленьких. Часть 1: Общая архитектура сети КТВ

Reading time4 min
Views66K


Как бы просвещённое сообщество не ругало телевидение за негативное влияние на сознание, тем не менее, телевизионный сигнал присутствует практически во всех жилых (и во многих нежилых) помещениях. В больших городах это почти всегда телевидение кабельное, даже если все вокруг по привычке называют его «антенна». И если система приёма эфирного телевидения вполне очевидна (хотя тоже может отличаться от привычной рогатой антенны на подоконнике, об этом я обязательно расскажу в дальнейшем), то система кабельного телевидения может показаться неожиданно непростой в своей работе и архитектуре. Об этом представляю серию статей. Я хочу познакомить интересующихся с принципами работы сетей КТВ, а так же их эксплуатации и диагностики.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments23

Зацените: сделал стол

Reading time6 min
Views145K


TL;DR В статье описывается мой опыт постройки стола c нуля из фанеры. От проектирования до сборки.

Я очень долго страдал от плохих столов. Все они неудобные, плохого качества, маленькие и, самое главное, ШАТКИЕ. Более-менее приличные столы стоили тысячи долларов. В итоге я решил изготовить стол самостоятельно.

Основные требования к столу:

  • Устойчивость! Предметы на столе не должны трястись, если резко положить руки на стол или оттолкнуться от него. Мой стол весит ~120кг. С его края можно делать сальтухи, при этом на другом конце паять SMD компоненты.
  • Ширина и глубина столешницы. Столы шириной 60 см — это унижение. Мне нужно иметь запас по глубине, чтобы можно было отодвинуть ноутбук вперед, и при этом получить достаточное рабочее пространство.
  • Вместительность. Мне нужны полки, чтобы разместить там оборудование: паяльники, лабораторный блок питания, осциллограф, аудио усилитель и т.д. При этом полки должны быть так же устойчивы, как и стол.
  • Цена. Я не готов выложить за стол несколько тысяч долларов. Мой стол обошелся в ~$300 с учётом покупки всего инструмента для сборки и покраски.
Total votes 261: ↑250 and ↓11+239
Comments559

Как мы улучшали TFS

Reading time6 min
Views4.5K

Ранее, когда у нас не было своего корпоративного блога, я писал о том, как мы используем Microsoft TFS (Visual Studio Team Servives on Premises) для управления жизненным циклом разработки ПО и для автоматизации тестирования. В частности мы собрали большой набор автотестов по разным системам в один пакет, который запускаем каждый день. Подробнее об этом я рассказывал на конференции DevOpsDaysMoscow ( презентация, видео выступления )

Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments0

Создание умного дома и разработка своего протокола

Reading time5 min
Views180K
Сразу скажу, что пост ориентирован скорее на обычных людей, чем на тех, кто в теме, и является скорее отчётом того, чем я занимался в последние дни.

Я тут решил забить на всю работу и заняться чем-то для души. Снова взялся за паяльник. Решил автоматизировать дома всё и вся. На старой-то квартире у меня был умный дом или что-то типа того — мог свет в комнате включать через Интернет и всё такое.

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

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

На борту микроконтроллера есть всякие I²C, да UART, но они явно не удовлетворяют условиям. В итоге было решено разработать свой велосипед протокол.



Читать дальше →
Total votes 77: ↑69 and ↓8+61
Comments99

Выбор технологии 3D печати для производства небольшого количества корпусов

Reading time4 min
Views57K

Эта история должна помочь разработчикам “хардверных” продуктов, сэкономить их время при выборе технологий 3D печати и уберечь от ошибок.

Данная публикация — продолжение статьи о процессе производства пилотной партии LaMetric, а именно о том, как создавался корпус прибора. Нижеизложенный опыт основывается на несколько пройденных итераций производства, во время которых мы опробовали и объединили различные технологии.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments26

Реверс-инжиниринг одной строчки JavaScript

Reading time10 min
Views47K
Несколько месяцев назад я получил от друга такое письмо:



Тема: Можешь объяснить мне эту одну строчку кода?

Текст: Считай меня тупым, но… я не понимаю её и буду благодарен, если растолкуешь подробно. Это трассировщик лучей в 128 символах. Мне кажется, он восхитительный.

<pre id=p><script>n=setInterval("for(n+=7,i=k,P='p.\\n';i-=1/k;P+=P[i%2?(i%2*j-j+n/k^j)&1:2])j=k/i;p.innerHTML=P",k=64)</script>



Эта строчка JavaScript отрисует анимацию, которая показана на изображении под катом. В браузере она запускается здесь. Скрипт написан автором www.p01.org, где вы можете найти эту и много других классных демок.
Total votes 136: ↑134 and ↓2+132
Comments33

Очередные умные часы своими руками

Reading time18 min
Views89K


Вдохновившись некоторое время назад статьей «Умные часы своими руками за 1500р.», я тоже решил попробовать сделать подобный девайс.


Эта статья не позиционируется как руководство к действию или инструкция, скорее как указание на ключевые моменты, с которыми мне пришлось столкнуться. Быть может, кому-то она послужит источником вдохновения и полезной информации.


Подбор компонентов, разводка платы, пайка в суровых условиях, 3D-печатный корпус и JavaScript на часах — под катом. Welcome!

Total votes 145: ↑144 and ↓1+143
Comments214
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity