Датчик ускорения своими руками

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

С помощью этого измерителя вы сможете узнать, сколько «G» вы сможете выжать на своем авто. Измеритель в действии:

Целью данного проекта является сборка устройства, которое смогло бы измерить перегрузки, которые вы испытываете в своем автомобиле. К тому же оно должно удобно устанавливаться у лобового стекла автомобиля. Устройство имеет трехсимвольный 7-сегментный светодиодный дисплей, отображающий перегрузки в режиме реального времени с точностью до десятых. Список необходимых деталей:

  • Стабилизатор напряжения LM7805 5 В

  • Микроконтроллер PIC 18F452 Является «мозгом» всего устройства

  • Акселерометр ADXL320 Основной сенсор — измеряет ускорение и выдает аналоговое значение эквивалентное ускорению.

  • 7-сегментный светодиодный индикатор Необходим для отображения текущего значения перегрузки. Управляется микроконтроллером. Требуется 3 шт.

  • Кварцевый резонатор 20 МГц Может быть заменен на кварцы частотой в 4 МГц и 8 МГц без каких-либо последствий.

  • Элемент питания типоразмера «Крона» 9 В
  • Пластиковый корпус для проекта
  • Все необходимое оборудование для пайки
  • Макетная плата
  • SPST переключатель

Теперь перейдем к схеме. Схему можно разделить на три главные части : схема сенсора, в которой сенсор подключается к аналого-цифровому преобразователю микроконтроллера; схема питания, включающая в себя переключатель, стабилизатор напряжения и элемент питания; схема подключения 7-сегментных индикаторов к микроконтроллеру.

Характеристики каждой части схемы:

  • Схема питания Схему питания представляет собой соединенный с стабилизатором 9 В элемент, что гарантирует стабильной напряжение в 5 В и конденсатор емкость в 10 мкФ между землей и плюсом питания.
  • Схема сенсора Подключается сенсор крайне просто — соединяем аналоговый вывод микроконтроллера AN с выводом Y-axis сенсора. Остальные выводы сенсора не используются, естественно за исключением Vcc и Gnd.
  • 7-сегментные светодиодные индикаторы Возможно, соединение индикатора с микроконтроллером может показаться несколько хаотичным. Причина такого соединения крайне проста — вначале писалась программа для микроконтроллера, а лишь потом разводилась схема. Попробую описать теорию работы акселерометра вкратце — акселерометр измеряет ускорение, учитывая гравитационную силу земли, поэтому его также можно использовать для измерения наклона (см. видео).

Теперь перейдем от теории к практике, а именно пошаговой инструкции:

Шаг 1 — Достаем все необходимые детали.

Шаг 2 — Подготавливаем корпус.

Шаг 3 — Отмечаем расположение выводов индикаторов на бумаге.

Шаг 4 — Просверливаем отверстия для выводов индикаторов.

Шаг 5 — Приклеиваем индикаторы к корпусу.

Шаг 6 — Просверливаем отверстие для выключателя и закрепляем его с помощью эпоксидной смолы.

Шаг 7-8 — Вырезаем нужную «фигуру» из макетной платы и помещаем ее в корпус. Устанавливаем элемент питания (это объясняет L-образную форму макетной платы).

Шаг 9 — Собираем все вместе.

Шаг 10 — Подключаем индикаторы к микроконтроллеру.

Шаг 11 — Так все должно выглядеть на данном шаге.

Шаг 12 — Просверливаем отверстия для акселерометра.

Шаг 13 — Приклеиваем акселерометр к корпусу.

Шаг 14 — Соединяем акселерометр с микроконтроллером.

Шаг 15 — «Наводим лоск» с помощью изоляционной ленты.

Шаг 16 — Прикрепляем присоски к корпусу.

Что же касается программного обеспечения, тут все намного проще.

Исходный код предоставлен ниже:

while(1) <
update_char_display(char_disp); //Update 7-Segs
Delay1KTCYx(250); //Delay A Little While
Delay10TCYx(5); //Redundant Delay For A/D
ConvertADC(); //Do A/D Conversion
while( BusyADC() );
current_result = ReadADC();
temp = current_result — past_result;

//If Only A Slight Change Don’t Update
if( temp > 2 || temp

Перевод: Ale)(ander, по заказу РадиоЛоцман

Источник

Устройство сигнала или индикатор ускорения

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

Читайте также:  Елочка поделка своими руками для садика

Устройство сигнала или индикатор ускорения.

Подробности работы устройства: наличие индикатора (можно использовать светодиоды или пищалки), который будет сигнализировать/загораться в момент ускоренного движения авто. При нажатии педали газа (регулятора объема горючего топлива) происходит открытие дроссельной заслонки и падение разрежения внутри впускного коллектора, что вызывает распрямление сильфона и замыкание контактов на микропереключателе.

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

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

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

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

Напаивают выпуклость высотой 3 мм на участок соприкосновения сильфона с кнопкой от переключателя, чтобы во время максимального ручного сжатия сильфона промежуток от кнопки до бугорка был 2 или 3 мм.

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

Используя манометр, можно измерить давление в коллекторе двигателя после прогрева, которое составляет 0.5 атмосфер, а резкое нажатие педали ускорения изменяет разрежение до 0.4 или 0.2 атмосфер, если же резко закрыть дроссельную заслонку разрежение уменьшается до значений 0.6 или 0.7 атмосфер.

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

Проверка:

1. При включении зажигания наблюдается единичное мигание индикатора, благодаря появлению ЭДС в стартере генератора при включении питания на катушке возбуждения.
2. При запуске двигателя происходит еще одно мигание индикатора, которое сразу исчезает. Возникает это из-за более быстрой работы генератора по сравнению с установкой разрежения внутри впускного коллектора.
3. Во время плавного ускорения при движении лампочка индикатора не светится.
4. Резкое ускорение заставляет лампочку индикатора светиться.


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

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

Источник

Заметка о калибровке датчиков положения в домашних условиях

Для некоторых датчиков ускорения требуется дополнительная калибровка нуля после монтажа на плату. Когда я увидел несколько исходников с калибровкой датчиков ускорения, где составляющая G учитывалась просто путём вычитания из оси Z величины = 9,8 м/с2 — появилась идея написать данную заметку.

Структура публикации

  • Проблема
  • Постановка задачи и способ решения
  • Как правильно получить точки?
  • Как вычислить центр шара?
  • Как ускорить поиск центра шара?
  • Как ещё ускорить поиск центра шара?
  • Об ошибках при замерах
  • Итог

Проблема

В чём проблема — МЕМС-датчики после монтажа в плату претерпевают незначительные деформации, которые влияют на:

  • положение нуля;
  • масштабирование измеряемых величин;
  • перпендикулярность осей к друг-другу.

И если масштабирование и перпендикулярность нарушаются не так заметно, то положение нуля сбивается ощутимо. Например, если перевести типичную величину смещения нуля для акселерометра датчика MPU9250 в м/с 2 , то это получается в районе 0,2 м/с 2 . Т. е. датчик неподвижен, но при этом показывает ускорение, а через 5 секунд мы получаем скорость в 1 м/с. С одной стороны, все данные датчиков всегда пропускают через какой-либо фильтр (например такой). Но с другой стороны зачем фильтру постоянно компенсировать это смещение? Ведь датчик будет показывать движение там, где его нет. Это снижает точность результата. А всего то нужно один раз найти величину смещения и потом во время работы датчика вычитать эту величину из его показаний.

Читайте также:  Делаете чудеса своими руками

Простейшее решение для поиска величины смещения нуля, которое сразу приходит в голову — это создать условия, при которых датчик точно должен показывать ноль. Значение, регистрируемое на датчике — это и есть величина смещения нуля! Так? Но нет — на акселерометр постоянно действует сила тяжести. Чтобы её избежать, понадобится невесомость (подбрасывание не подойдёт). На компас действует магнитное поле Земли, а на гироскоп её вращение. Так что, если у вас нет персонального звездолёта, то придётся что-то придумать.

Второе решение, которое сразу приходит в голову — это поставить датчик (а точнее его оси) в такое положение, при котором мы точно будем знать, что должен показывать датчик. Разница между тем, что датчик показывает и тем, что он должен показывать — и будет смещение нуля! Так? Например, мы знаем, что если акселерометр поставить в уровень с горизонтом, то по идее, вектор ускорения свободного падения будет направлен точно вдоль оси Z датчика. Величину вектора ускорения мы знаем.

Однако есть проблема. Заключается она в том, что мы не можем точно установить оси датчика в уровень с горизонтом. Дело в том, что поверхность на которую мы будем опираться не параллельна печатной плате. Та в свою очередь не параллельна площадке на которой расположен датчик. Сам датчик не ровно стоит на своей площадке и оси внутри датчика не параллельны корпусу датчика. Погрешность в установки оси относительно горизонта на 1 градус, даёт проекцию, сопоставимую по размерам с величиной самого смещения нуля, которое мы хотим найти. В случае магнитометра, мы вдобавок не знаем, куда направлен вектор магнитного поля. В теории — на север. Но на практике, само магнитное поле Земли неоднородно по напряжённости и направлению. Плюс ближайшие металлические предметы вносят свои коррективы.

Постановка задачи и способ решения

Задача звучит так: нужно определить вектор смещения нуля, используя показания датчика, который всегда будет регистрировать вектор смещения + постоянный вектор внешнего воздействия (ускорение свободного падения, вращение Земли, магнитное поле Земли), величину и направление которого мы не знаем (в случае с акселерометром величину мы знаем, но опять же масштаб датчика может быть не равен 1).

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

Как правильно получить точки?

Нужно датчик лепить не по всей поверхности глобуса, а на один меридиан. Допустим берём семь точек на меридиане (первая и последняя на северном и южном полюсе). В каждой точке меридиана прикладываем ваше устройство к глобусу и ещё крутим устройство вокруг своей оси с определённым шагом, например 30-35 градусов. Получается если вокруг своей оси поворачивать 12 раз, то в 7 точках всего получается 84 замера.

Прелесть метода в том, что всё можно сделать “на коленке”. Точность позиционирования особой роли не играет, просто нужно крутить по схеме, чтобы вектор внешнего воздействия на графике нарисовал шар. Правильный выглядит примерно так — см. рис (отметкой обозначен центр).

Как вычислить центр шара?

Это интересная задача и у неё несколько вариантов решения. Может показаться, что для поиска центра достаточно взять среднее арифметическое по координатам полученных точек. Однако это не так — точки могут быть расположены на шаре неравномерно (см. рис).

Читайте также:  Зарядный модуль своими руками

Уравнение шара выглядит так: (X — A) 2 + (Y — B) 2 + (Z — C) 2 = R 2 , где X, Y, Z — координаты точки, лежащей на шаре. A, B, C — это координаты центра на осях x, y и z соответственно. R — радиус шара. Можно построить систему уравнений и каким-то методом постараться попроще решить эту систему. А можно просто перебором найти центр (это типа метод последовательных приближений). Смысл метода прост: величина ошибки (X — A) 2 + (Y — B) 2 + (Z — C) 2 — R 2 должна стремиться к нулю. А значит сумма этих величин для всех точек сферы также должна стремиться к нулю. Зная это, мы можем подобрать такие значения A, B и C, для которых величина ошибки для всех точек будет минимальной. Зона перебора ограничивается габаритами шара (условный куб). То есть мы последовательно должны поставить центр шара во все точки куба и посчитать ошибку. Там где минимальная ошибка — там и центр.

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

Кстати, если точно знать радиус шара, то можно вычислить центр только по его «дольке». То есть по точкам, которые расположены только на кусочке поверхности шара. Но это не наш случай.

Как ускорить поиск центра шара?

Нужно искать центр не во всём кубе (габариты шара), а по линии, начало у которой произвольное, каждая следующая точка ближе к действительному центру и окончание — в центре. Предположим, что мы начинаем с точки (0; 0; 0)… Мы всегда движемся с постоянным шагом. Поэтому если представить набор кубиков 3х3х3, где каждая грань равна величине шага и также представить, что текущее положение — это средний кубик, то у нас есть 9 + 8 + 9 вариантов, куда поставить следующую точку. Мы просто должны находясь в каждой точке, посчитать в какой из соседних 26 точках ошибка будет меньше. Если окажется, что ошибка меньше в текущей точке, а не в одной из соседних, то значит она стоит в центре и перебор окончен.

Как ещё ускорить поиск центра шара?

Об ошибках при замерах

Во время замеров могут быть ситуации, когда по каким-то причинам результат замера может оказаться сильно дальше от поверхности шара. Или это может быть множество точек. Или вообще в результате замеров может получиться не шар, а “яйцо” или “дирижабль”. В этом случае, разумеется, нужно повторить все замеры, выявив возможные причины ошибок. Например, для магнитометра это может быть болт или гвоздь в столе и прямо над ним вы проводите замеры. И чем ниже по мередиану опускать датчик, тем сильнее металл будет влиять на результат. Поэтому нужно определить порог допустимой величины ошибки. Чтобы не переделывать замеры из-за нескольких явно ошибочных точек, можно применить фильтр. Принцип действия фильтра очень простой — вычислив первый раз центр, отсортируйте точки по уровню ошибки в каждой из них. Часть точек с наибольшей ошибкой можно просто выбросить (например 10%). Затем нужно повторить поиск центра.

У метода довольно хорошая точность. Метод позволяет обходиться простыми подручными средствами (мяч, банка и т. п.). Достаточно быстро работает. Простой код. Во многих датчиках есть специальные регистры, куда можно записать найденное значение, и датчик будет сам на лету его вычитать. Такие регистры обычно имеют префикс «TRIM», как в MPU9260, или «OFFSET», как в LSM303. А вот всем известный LIS302DL таких регистров не имеет.

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

Источник

Оцените статью