All streams
Search
Write a publication
Pull to refresh
40
0
Максим Ганенко @barabanus

User

Send message
Недавно смотрел «Культурную одиссею» с Баумейстером и Соловьевым на ютубе. Они утверждают, что по археологическим данным за последние двадцать лет (со ссылками на источники) люди в пещерах не жили, а отправлялись туда как в священные места для исправления ритуалов. В связи с этим утверждение «сначала в пещерах были палочки/насечки, чтобы научиться считать и освоить базовую арифметику» выглядит спорным. На какие источники вы опираетесь?
Я бы на вашем месте, на самом деле, забил бы улучшать этот проект, но намотал на ус, чтобы в следующий раз сделать лучше.

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

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

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

Касательно того, что вы используете для оценки тряски минимум и максимум — звучит как-то не очень надежно. У акселерометров даже в покое существует высокочастотный шум. Вы считываете значения каждые 2 мс — но это только один из режимов, взятый произвольно. Значения можно считывать и чаще, и реже, причем если чаще, то минимумы и максимумы просто потонут в возникающем шуме самого датчика. Я допускаю, что эмпирически можно подобрать режим (например, те же каждые 2 мс, но считываемые потоком), в котором максимумы и минимумы позволят оценить тряску, но я бы лучше взял за меру тряски что-то более надежное, например — энергию сигнала. Уверен, что разница между хорошим асфальтом и плохим будет заметная, но вы при этом находитесь в области изученной прикладной инженерии.
Правильно ли я понимаю, что каждые 2 мс вы считываете данные в массив, а когда массив заполняется, то вы передаете минимальные/максимальные значения из этой последовательности и очищаете массив?

Небольшой оффтоп: для чтения потока данных лучше использовать соответствующий режим ADXL 345 непрерывного чтения, там же надо выставить сглаживающий фильтр, соответствующий скорости чтения, чтобы не столкнуться с проблемой альясинга. Например, если на входе будет идти быстрая синусоида, а у вас не стоит входной сглаживающий фильтр, то вы можете принять быструю синусоиду за более медленную синусоиду, как на этой картинке:
image
Для передачи по LoRa (будь то дата или синхросигналы) вам как-то надо коннектить передатчик, поэтому андроид не подойдет. Я бы вообще взял для этой задачи M5Stack и набросал слои нужных шилдов (типа GPS, аккумулятора и т.д.), там же и измерял дату, сохранял на SD-карту и, возможно, обрабатывал сигнал. Это такое маленькое, компактное и недорогое устройство на ESP-32. Пропала бы необходимость в синхронизации. На телефон можно было бы отображать текущее состояние датчика по WiFi.

Далее, по поводу GPS. У вас есть три источника определения местоположения: GPS (абсолютное позиционирование, но очень неточно), скорость (через интегрирование) и акселерометр (через двойное интегрирование). Эти три источника показаний можно объединить через фильтр Калмана, который при грамотной настройке даст точность местоположения выше, чем каждый из источников, взятых по-отдельности.

По поводу передачи пиков — вы передаете не измеренный сигнал, а искаженный, причем нетрадиционным образом. В связи с этой «нетрадиционностью» я пока не понимаю, какую теорию можно было бы подогнать, чтобы понять, насколько переданный сигнал искажен. Если бы вы подгоняли под ваш сигнал кубический сплайн, то вы бы тоже передавали искаженный сигнал, но в этом случае на вашей стороне было бы понимание насколько этот сигнал искажен.
Как вы измерили эти спасенные 2000 человек? Просто за прошлый год в ДТП погибло на 2000 человек меньше, чем в предыдущий, и вы присвоили эту разницу себе?… или у вас есть статистика по конкретным местам, в которых вы добились изменений и теперь в этих конкретных местах количество жертв ДТП за год уменьшилось на 2000 человек?
Отличный проект! Но у меня как инженера много вопросов к реализации. Такие проекты, как говорят, «easy to start, hard to master».

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

Во-вторых, использовать GPS для позиционирования мало — вы могли бы прикрутить фильтр Калмана и интегрировать информацию из трех источников (GPS, скорость, акселерометр).

В-третьих, меня смущает странная обработка сигнала — передача пиков. Теорема Котельникова при правильной настройке акселерометра (частота дискретизации + сглаживающий фильтр) гарантирует, что сохраненный в отсчетах сигнал будет соответствовать измеренному. Ну хорошо, вы хотите сжать сигнал — для этого можно зафитить сигнал на кубический сплайн (= применить аналитическую формулу в замкнутой форме) и сохранять только коэффициенты сплайна, а заодно зафиксировать ошибку сжатия. Насколько же ваш переданный «в пиках» сигнал соответствует измеренному — это большой вопрос, надо подумать на досуге.
С удовольствием, но в свое время ) Мало того, что я отец семейства, так мы еще затеяли ремонт. Кроме того, мне-то все понятно, поэтому мотивация не очень большая. С другой стороны, если я этим займусь, то это будет стоить поста на Хабре, а значит подходить надо капитально.
И что с того? Некоторые вон до сих пор в церковь ходят.
Мне вот интересно, вы правильно говорите про научность и критерии Поппера, ваши аргументы рациональны, и вдруг у вас появляется высказывание лично вашей веры в то, что в церковь ходить не надо.

Наука не говорит, что в церковь ходить не надо. Наука не занимается описанием или отрицанием трансцендентного. Наука вообще не способна найти опору нравственной оценки и объяснить, что это делать надо, а это не надо.

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

Мы ведь спорим о том, что возможно ли получить постоянный ток при переменном напряжении. Так вот, в физической Вселенной ответ: можем.
Заметьте, что на вашей схеме при подключении катушки есть периоды, когда напряжение ушло в минус, а ток все еще в плюсе. Теперь представьте параллельное подключение энного количества фильтров (сопротивление + реактивный элемент, например — катушка индуктивности) таким образом, что каждая из веток имеет свой сдвиг по фазе напряжения относительно тока. Далее в каждой ветке мы добавляем нелинейный элемент — выпрямитель — чтобы не позволить току в ветке идти в противоположную сторону. Поскольку соединение параллельное, то ток, идущий в электросеть, будет представлять собой сумму синусоид половинок, сколь угодно бесконечно приближающейся к постоянному току (за счет добавления большего количества параллельных веток), вплоть до погрешности прибора измерения и теплового шума. И это, заметьте, только на пассивных элементах.

Иными словами, на пассивных элементах можно создать параллельные подключения линейных фильтров таким образом, чтобы потребление тока из электросети представляло собой паровозик из положительных периодов синусоид тока, расположенных через равные промежутки.
Правильно ли я понимаю, что вы отрицаете, что при измерении тока и напряжения с вилки (при подключении к национальной потребительской электросети) невозможно сделать запаздывание фазы тока по отношению к напряжению? Или вы отрицаете, что можно сделать переменное сопротивление для обеспечения постоянного тока во время положительного периода синусоиды напряжения? Или вы отрицаете, что при параллельном соединении схем их ток суммируется? Этих трех фактов достаточно, чтобы построить схему с переменным напряжением и постоянным током.
Если вы подключите к розетке катушку индуктивности, то вы уже будете наблюдать сдвиг фазы на полпериода. Не надо никакой инерции носителей заряда, энергия будет запасаться в одном периоде и освобождаться с запазданием, никакой черной магии.

А теперь представьте, что у вас есть устройство, которое меняет свое сопротивление в соответствии с входной синусоидой так, чтобы генерить на входе в это устройство постоянный ток. Проблема «отрицательного сопротивления» решается тем, что у устройства есть две параллельные ветки, одна генерит постоянный ток, когда синусоида входного напряжения положительна, а другая — когда синусоида отрицательна за счет запасенной энергии, являясь источником тока для входной сети.
Сдвигом фазы на пол периода? В таком случае энергия будет запасаться и отдавать в сеть. Реактивное сопротивление.
Можно сделать схему, при которой напряжение будет переменным, а ток — постоянным (плюс-минус погрешность). Даже переход через ноль не помеха если мы тянем ток через несколько параллельных схем с разным сдвигом фазы между напряжением и током.
Вообще-то вектор можно программно растеризовать, если нативный фреймворк не поддерживает вектор. А то опа! — фреймворк не поддерживает вектор — поэтому мы будем пихать иконки под 99% разрешений (и все равно найдется 1% разрешений, в которых это не будет работать). «Как тебе такое, Илон Маск?» (с)
Кстати, я с удивлением узнал от коллеги, что когда у него появился «Поиск», то он пошел в библиотеку (городка Конотоп!) и нашел там полную документацию на русском.
Ок, но приборы все-таки шумят и всегда можно заложить некоторую неопределенность, связанную с внешними неучтенными/неизвестными факторами.
Шум измерений. На выходе точность получается выше, чем у каждого из измерений, взятых по отдельности. Это очень хороший инструмент инженера и его не так сложно освоить, как кажется, когда смотришь в теорию.

Почитать можно здесь How a Kalman filter works in pictures

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity