Регистратор акселерометра

Alexuz
Offline
Зарегистрирован: 05.04.2022

Доброго времени! 

Задача относительна тривиальна, нужно написать скетч под esp/arduino/. Вся "схемотехника" на картинке. 

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

ESP32 улавливает импульс и "снимает" через RX/TX показания акселерометра, в момент фотографирования. Эти показания записываем через RX/TX на Openlog в формате "время; показания по всем осям" в файл dd-mm-yyyy.txt

Предложения по цене жду в личку или на почту - alexkrisne@gmail.com

Заранее благодарен!

 

 

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Я сапог не подойдет ? Все дело в волшебном башмаке ! Что это такое, где описание протокола по которому этот тапок-башмак отправляет показания ?  Карочи, тут нужно разговаривать не жаргонизмами, а русским , понятным всем, языком.

sadman41
Offline
Зарегистрирован: 19.10.2016

Башмак - это разъём, на который вспышка устанавливается поверх боди. Срабатывает по простому замыканию, если память мне не изменяет.

Что за акселерометр?

Alexuz
Offline
Зарегистрирован: 05.04.2022

Спасибо за ответ! Всё так и есть, никакого жаргона. Горячий башмак. Замыкание там или прерывание, не могу сказать. Знаю, что салазки - земля, а на центральном контакте, триггере, вроде бы до 24В подается (или прерывается) при срабатывании затвора фотоаппарата. 

_Igor_
Offline
Зарегистрирован: 10.01.2022

Акселерометр сам не может генерировать своё положение и тем более передать куда-то. Т.е. "рядом" должен быть процессор (ардуино). А раз так - проще "акселерометр" сделать сразу с Qwiic OpenLog - он с I2C

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

То есть, сапог не посылает положение фотоаппарата, он только посылает импульс, говоря ардуине, что сфоткал, а ардуина по этому сигналу определяет положение фотоаппарата по закреплённому на нём акселерометру? 

И напряжение сапог не посылает, он просто замыкает центральный контакт на землю. Типа кнопки. 

Alexuz
Offline
Зарегистрирован: 05.04.2022

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

Alexuz
Offline
Зарегистрирован: 05.04.2022

Бармалей, все верно. 

_Igor_
Offline
Зарегистрирован: 10.01.2022

В схеме не очень понятно - это все на башмаке? И зачем ESP32? OpenLog и сам справится. И электричество откуда планируется?

Alexuz
Offline
Зарегистрирован: 05.04.2022

_Igor_ пишет:

В схеме не очень понятно - это все на башмаке? И зачем ESP32? OpenLog и сам справится. И электричество откуда планируется?

Электричество от батареи/повербанка. ESP32 или ардуино, не принципиально. Главное - компактность. Все это будет в корпусе, но не на башмаке - он занят другой приблудой. Возможно, под фотоаппаратом. 

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

Alexuz
Offline
Зарегистрирован: 05.04.2022

_Igor_ пишет:

OpenLog и сам справится.

Как вы будете фильтровать событие (срабатывание затвора) без ардуино?

Чисто OpenLog  будет регистрировать всё подряд...

sadman41
Offline
Зарегистрирован: 19.10.2016

Акселерометр как зовут?

Alexuz
Offline
Зарегистрирован: 05.04.2022

sadman41 пишет:
Акселерометр как зовут?

MPU6050

sadman41
Offline
Зарегистрирован: 19.10.2016

В нём есть UART?

Alexuz
Offline
Зарегистрирован: 05.04.2022

sadman41 пишет:
В нём есть UART?

Да

rst
Offline
Зарегистрирован: 25.06.2018

Alexuz пишет:
Да
В MPU-6050 отродясь не было UART. Не несите чушь, хотя-бы откройте мануал на него:

Всё общение с MPU-6050 идёт через I2C или SPI.

Alexuz
Offline
Зарегистрирован: 05.04.2022

Не совсем компетентен в этом. Поэтому как бы обращаюсь к специалистам.

Разве Rx/Tx - это не UART? 

Alexuz
Offline
Зарегистрирован: 05.04.2022

Вот фото поближе. 

Alexuz
Offline
Зарегистрирован: 05.04.2022

Вот фото поближе. 

rkit
Offline
Зарегистрирован: 23.11.2016

Это не просто акселерометр, а какой-то модуль с мозгами. Акселерометр сам по себе положение не считает. Может быть, это делает проц на плате. Но нужна документация на весь модуль. И еще акселерометр дрейфует.

Alexuz
Offline
Зарегистрирован: 05.04.2022

Речь о модуле, конечно. Не о чипе.

Там и документации особо нет, так как это готовое решение

Alexuz
Offline
Зарегистрирован: 05.04.2022

rkit
Offline
Зарегистрирован: 23.11.2016

То есть китайцы поставили стмку чтобы она интегрировала угловое ускорение и всё. Бесполезная хрень.

b707
Offline
Зарегистрирован: 26.05.2017

rkit пишет:

 китайцы поставили стмку чтобы она интегрировала угловое ускорение и всё. Бесполезная хрень.

ну почему же сразу бесполезная? Судя по пинам SCL SDA - I2C c акселерометра тоже выведен, так что не хочешь использовать СТМ - не используй. В то же время я вижу 4 пятака на задней стороне модуля - похоже это SWIM для прошивки СТМ8 - можно написать свою прошивку и получать с акселя все что захочешь

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

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

Ну и давайте я начну про цену, поскольку более менее понятна задача. От 25000 рублей, только прошивка. Может дешевле купить готовое ?

_Igor_
Offline
Зарегистрирован: 10.01.2022

Что то вы с конца начали. Кто может дать ссылку на фотоаппарат у которого есть ВЫХОД спуска. Выход синхро импульса для вспышки - ДА. Но в этом случае, если снимать без вспышки - импульса не будет... Дистанционно нажать спуск - это от механического тросика до программы для смартфона. Так что, если не ссылка, то хотя бы разумная необходимость импульса (именно спуска) на выходе аппарата?

rkit
Offline
Зарегистрирован: 23.11.2016

b707 пишет:

rkit пишет:

 китайцы поставили стмку чтобы она интегрировала угловое ускорение и всё. Бесполезная хрень.

ну почему же сразу бесполезная? Судя по пинам SCL SDA - I2C c акселерометра тоже выведен, так что не хочешь использовать СТМ - не используй. В то же время я вижу 4 пятака на задней стороне модуля - похоже это SWIM для прошивки СТМ8 - можно написать свою прошивку и получать с акселя все что захочешь

Всё это я могу сделать и обычным модулем акселерометра без проца который я не умею програмировать и у которого не выведены gpio. Это модуль - развод.

b707
Offline
Зарегистрирован: 26.05.2017

rkit пишет:

Это модуль - развод.

зависит от цены

sadman41
Offline
Зарегистрирован: 19.10.2016

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

b707
Offline
Зарегистрирован: 26.05.2017

sadman41 пишет:
Судя по картинке знаю, что это за модуль - реверсил его. Это не голый акселерометр. .

разве нельзя поключится напрямую к MPU6050 через SCL SDA   ? судя по описанию выше - можно...

Может быть придется снять питание с СТМки, чтоб не лезла...

sadman41
Offline
Зарегистрирован: 19.10.2016

b707 пишет:

sadman41 пишет:
Судя по картинке знаю, что это за модуль - реверсил его. Это не голый акселерометр. .

разве нельзя поключится напрямую к MPU6050 через SCL SDA   ? судя по описанию выше - можно...

Может быть придется снять питание с СТМки, чтоб не лезла...


Тогда нет смысла ориентироваться на модуль. I2C в нем - это интерфейс к STM-ке.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вобщем, Alexuz, писните на wrk.sadman@gmail.com - если это то, о чем думаю, то может и сговоримся.

rst
Offline
Зарегистрирован: 25.06.2018

sadman41 пишет:
Тогда нет смысла ориентироваться на модуль. I2C в нем - это интерфейс к STM-ке.
В MPU-6050 не только I2C. Там ещё вроде и SPI имеется (хотя я его тоже только через I2C использовал - так как свободен был только он). По SPI по-моему удобнее работать. Так как - чем выше частота опроса MPU-6050, тем более качественные данные о положении можно получить (после соответствующей мат.обработки конечно). А с I2C сильно не разгонишься. У него потолок насколько помню = ~2кГц опросов.

И STM8 - имхо слабоват для такой задачи. Особенно если мат.обработка в плавучке...

 

PS: Ещё у MPU-6050 есть внутренний DSP. Который сам умеет какую-то математику. Но как-то там его очень мудрёно нужно грузить прошивкой и запускать. Так, что даже в мануале это не описано. Вот если изловчиться и заарканить этот DSP, то наверное и STM8 на остальное хватит (из I2C в UART байты перекладывать).

Alexuz
Offline
Зарегистрирован: 05.04.2022

Меня интересуют значения углов по трем осям. 

Не понимаю, почему это бесполезно? 

Alexuz
Offline
Зарегистрирован: 05.04.2022

brokly пишет:

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

Ну и давайте я начну про цену, поскольку более менее понятна задача. От 25000 рублей, только прошивка. Может дешевле купить готовое ?

На самом деле выбор именно этого акселерометра не принципиален. Сейчас интересует черновой вариант. 

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

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

Alexuz
Offline
Зарегистрирован: 05.04.2022

Импульс будет. Есть адаптер, как раз для этой цели - работающий на замыкание. 

Alexuz
Offline
Зарегистрирован: 05.04.2022

rkit пишет:

b707 пишет:

rkit пишет:

 китайцы поставили стмку чтобы она интегрировала угловое ускорение и всё. Бесполезная хрень.

ну почему же сразу бесполезная? Судя по пинам SCL SDA - I2C c акселерометра тоже выведен, так что не хочешь использовать СТМ - не используй. В то же время я вижу 4 пятака на задней стороне модуля - похоже это SWIM для прошивки СТМ8 - можно написать свою прошивку и получать с акселя все что захочешь

Всё это я могу сделать и обычным модулем акселерометра без проца который я не умею програмировать и у которого не выведены gpio. Это модуль - развод.

Разве на выходе модуля не показания чипа акселерометра? Или это уже обработанный вариант? 

Какие тогда данные выходят с самого чипа MPU6050? 

Alexuz
Offline
Зарегистрирован: 05.04.2022

Всем спасибо за ответы и критику. Очень благодарен за ваше внимание. 

Alexuz
Offline
Зарегистрирован: 05.04.2022

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

rkit
Offline
Зарегистрирован: 23.11.2016

Alexuz пишет:

Меня интересуют значения углов по трем осям. 

Не понимаю, почему это бесполезно? 

А в начальном воросе было положение, а не значение углов.

Alexuz
Offline
Зарегистрирован: 05.04.2022

rkit пишет:

Alexuz пишет:

Меня интересуют значения углов по трем осям. 

Не понимаю, почему это бесполезно? 

А в начальном воросе было положение, а не значение углов.

Извиняюсь. Имел в виду положение по трем осям в пространстве. Вот.

 

rkit
Offline
Зарегистрирован: 23.11.2016

Ну вот положения эта бесполезная хрень не считает. А что считает - посчитать и так смехотворно просто.

Alexuz
Offline
Зарегистрирован: 05.04.2022

Попробую через TTL конвертер подключить к com и глянуть, что выдает. Мне достаточно данных времени и данных по осям - крен (Roll), тангаж (Pitch), рыскание (Yaw).

Если точность достаточная, то буду действовать далее - поиск и регистрация калибровочных значений с сохранением в фай .config

rst
Offline
Зарегистрирован: 25.06.2018

Alexuz пишет:
Какие тогда данные выходят с самого чипа MPU6050?
Выходят сырые данные акселерометра и гироскопа. Чтобы из них получить углы, нужно ещё посчитать. И посчитать не с одним срезом полученных данных, а с потоком. Из мгновенного среза данных акселерометра/гироскопа вы не получите ничего путнего. Я ж писал - чтобы получить что-то более/менее полезное, нужен поток этих срезов данных и обработка этого потока. Обрабатывающие фильтры (всякие Калманы) - они устаканиваются и начинают показывать что-то более-менее полезное только накачав в себя какое-то количество данных. Пережевав и усреднив их.

Кроме того: MPU-6050 очень чувствителен к помехам. И чтобы получить с него данные с минимальным шумом, надо правильно сделать плату. Ещё постараться надо. А присобачив неведомую китайскую хреновину, вы скорее всего получите хороший генератор случайных чисел. И будете долго кувыркаться, пытаясь вытянуть что-то полезное из этого шума.  ;)

Alexuz
Offline
Зарегистрирован: 05.04.2022

rst пишет:

Alexuz пишет:
Какие тогда данные выходят с самого чипа MPU6050?
Выходят сырые данные акселерометра и гироскопа. Чтобы из них получить углы, нужно ещё посчитать. И посчитать не с одним срезом полученных данных, а с потоком. Из мгновенного среза данных акселерометра/гироскопа вы не получите ничего путнего. Я ж писал - чтобы получить что-то более/менее полезное, нужен поток этих срезов данных и обработка этого потока. Обрабатывающие фильтры (всякие Калманы) - они устаканиваются и начинают показывать что-то более-менее полезное только накачав в себя какое-то количество данных. Пережевав и усреднив их.

Кроме того: MPU-6050 очень чувствителен к помехам. И чтобы получить с него данные с минимальным шумом, надо правильно сделать плату. Ещё постараться надо. А присобачив неведомую китайскую хреновину, вы скорее всего получите хороший генератор случайных чисел. И будете долго кувыркаться, пытаясь вытянуть что-то полезное из этого шума.  ;)

Это же легко можно будет проверить. 

Закрепляем модуль на  жесткую планку. Планку с модулем фиксируем на, к примеру, поверхности стола. Замеряем значения по осям. 

Далее продолжительное время выкручиваем с планкой пируэты по комнате, по дому. 

Возвращаем планку на исходное место поверхности стола и сверяем показания по осям. 

Если беда-беда, то, опустив голову, вспоминаем ваши предсказания. Мозгуем.

Если в пределах допуска, то ищу алгоритм уравнивания. 

rkit
Offline
Зарегистрирован: 23.11.2016

Alexuz пишет:

Мне достаточно данных времени и данных по осям - крен (Roll), тангаж (Pitch), рыскание (Yaw).

Так ПОЛОЖЕНИЕ или УГЛЫ, всё-таки?

 

Alexuz пишет:

Это же легко можно будет проверить. 

Ничего проверять не надо. Все IMU дрейфуют.

 

Alexuz пишет:

Возвращаем планку на исходное место поверхности стола и сверяем показания по осям. 

Так ПОЛОЖЕНИЕ или УГЛЫ? В самом деле, ты издеваешься, что ли? Ты через раз чередуешь что тебе надо.

rst
Offline
Зарегистрирован: 25.06.2018

rkit пишет:
Так ПОЛОЖЕНИЕ или УГЛЫ?
Угловое положение.  ;)

Alexuz
Offline
Зарегистрирован: 05.04.2022

Положение - это профессиональное. Уточню.

Дело в том, что наклон камеры по осям, это тоже положение, относительно этих осей.

Я не имею в виду положение на плоскости по координатам Х или У. И не географическое положение в широте долготе.

Речь всегда шла о крен (Roll), тангаж (Pitch), рыскание (Yaw).  

 

Alexuz
Offline
Зарегистрирован: 05.04.2022

))

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

_Igor_
Offline
Зарегистрирован: 10.01.2022

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

Raspberry pi zero wifi - да, дороже, НО

1. Две платы + 4 провода

2. "софт" - пять строк на bash (за пиво)

3. Как бонусы: реальное время (см "...в файл dd-mm-yyyy.txt...") + доступ по wifi к файлу без изъятия карты + доступ непосредственно к модулю акселерометра + ...

rst
Offline
Зарегистрирован: 25.06.2018

_Igor_ пишет:
Raspberry pi zero wifi - да, дороже, НО
...и при каждом включении, когда нужно сделать одну фотку, минутное ожидание загрузки линуха.

+ И батарейки будет хватать только на десяток фоток.

Вообще красота! ;)))

 

Чё уж тогда сразу не предлагаете полноценый ПК присобачить? Чё мелочиться то?