Реле Tianbo - ресурс 10 млн переключений

Подключение акселерометра к PIC микроконтроллеру

Журнал РАДИОЛОЦМАН, июнь 2012

Igor Lovrić

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

Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

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

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

Для измерения ускорения используется микросхема 3-осевого акселерометра ADXL330 компании Analog Devices. ADXL330 – это компактный, малопотребляющий, датчик ускорения со встроенными схемами обработки сигнала и выходом по напряжению. В рабочем диапазоне ±2g акселерометр способен измерять статическое ускорение (гравитацию) и таким образом определять угол наклона, а также измерять динамическое ускорение, являющееся проявлением движения, ударов и вибрации. Энергопотребление акселерометра чрезвычайно мало, менее 200 мкА (типовое значение) при напряжении питания 2 В. Поставляется этот прибор в 16-выводном пластиковом корпусе CSP размером 4×4 мм.

 Подключение акселерометра к PIC микроконтроллеру

Подключение акселерометра к PIC микроконтроллеру

Рисунок 1. Компания mikroElektronika предлагает готовый модуль 3-осевого акселерометра и примеры различных приложений.

В конструкции используется уже готовый модуль трехосевого акселерометра, выпускаемый компанией mikroElektronika (Рисунок 1). Модуль имеет компактные размеры и, помимо самой микросхемы акселерометра, содержит установленный операционный усилитель, использующийся в качестве буфера, а также все необходимые внешние компоненты обвязки (Рисунок 2). Напряжение питания модуля +5 В, соответственно выходные аналоговые сигналы по трем осям лежат в диапазоне 0…5 В. Кроме того, компания предлагает описание нескольких примеров приложений, использующих 3-осевой акселерометр, с исходными кодами, что значительно упрощает разработку программного кода.

Принципиальная схема модуля 3-осевого акселерометра

Рисунок 2. Принципиальная схема модуля 3-осевого акселерометра.

Схема подключения модуля акселерометра и микросхемы MAX232 к микроконтроллеру показана на Рисунке 3.

Принципиальная схема измерителя ускорения с использованием акселерометра ADXL330

Рисунок 3. Принципиальная схема измерителя ускорения с использованием акселерометра ADXL330.

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

Звуковой излучатель и светодиод предназначены для индикации подключения устройства к ПК.

Микроконтроллер тактируется от керамического резонатора 4 МГц, однако пользователи могут использовать свой источник синхронизации. Для обмена устройства с ПК по последовательному интерфейсу, помимо сигнальных линий RXD, TXD и GND, дополнительно используются линии CTS и RTS для определения программой подключения/отключения устройства. (Разумеется, это можно сделать программным путем и без использования дополнительных сигналов последовательного порта).

Теперь несколько слов о прошивке микроконтроллера. Программа написана с использованием компилятора mikroC для PIC микроконтроллеров. В ней используется готовый пример программы для обмена с акселерометром. Автор внес некоторые изменения и дополнения в программу, связанные с использованием сигналов RTS и CTS, генерацией звуковых сигналов и записью конфигурации в EEPROM. Коммуникационный протокол очень прост – пересылаются только старший и младший байты целого числа, являющегося результатом преобразования аналоговых данных акселерометра. Для преобразования аналоговых данных используются три канала встроенного в микроконтроллер АЦП.

Программа для ПК написана в среде Delphi 7 и предназначена для визуального представления полученных данных. Окно программы разделено на несколько областей (Рисунок 4): два графических окна для отображения графиков, простой калькулятор и три дисплея, отображающих получаемые данные в реальном времени. В самом большом графическом окне отображаются данные по трем осям акселерометра, в маленьком окне отображаются последние 100 значений по трем осям. Программа имеет обширный набор функций и настроек. Полученные данные можно сохранять в файл, экспортировать в файлы CSV или txt, при этом доступен выбор единиц измерения (ускорение в G, ускорение в м/с2 или сила в Ньютонах). Также в программе реализован алгоритм фильтрации данных по всем осям одновременно или по каждой в отдельности, имеется возможность установки закладок на графике.

Подключение акселерометра к PIC микроконтроллеру

Рисунок 4. Вид окна программы для сбора данных от акселерометра.

В верхней части окна расположены кнопки меню и настроек программы (Рисунок 5). Слева направо: New file (Новый файл), Save file (Сохранить файл), Open file (Открыть файл) – это стандартные функции любой программы. Далее кнопка Export (Экспорт), предназначенная для экспортирования данных в форматы csv или txt. Формат необходимо выбрать в настройках программы перед выполнением экспорта. Также при экспортировании, как было указано выше, пользователь может выбрать единицы измерения.

Подключение акселерометра к PIC микроконтроллеру

Рисунок 5. Закладка настроек программы и аппаратной конфигурации.

Далее следует кнопка подключения к устройству, и за ней кнопка выбора COM порта. При включении устройства пользователь услышит звуковой сигнал, предупреждающий, что устройство не подключено к ПК. Подключите устройство к компьютеру, выберете соответствующий COM порт и нажмите кнопку Connect (Подключиться). При удачном подключении устройство оповестит пользователя звуковым сигналом, в строке статуса программы появится надпись «Connected» и начнется автоматическая передача данных.

Другие кнопки:

  • Show Log (Показать журнал регистрации данных) – при нажатии на кнопку отобразится окно с «сырыми» данными, поступающими от акселерометра.
     
  • Auto Zoom (Автоматический масштаб) – автоматический выбор масштаба по оси Y.
     
  • Bookmark (Закладка, метка) – установка метки на графике данных. После установки метки, пользователь потом может посредством двойного клика по ней увеличить масштаб отображения. Скрыть метки можно, кликнув на маленький зеленый круг с левой стороны от оси Х.
     
  • Set Bookmark Labels (Назначить имя метке) – при нажатии на кнопку появится окно с метками, которым пользователь сможет присвоить имена.
     
  • Swap Charts (Переключить диаграмм) – переключение между графическими диаграммами.
     
  • Threshold (Порог фильтрации данных) – по окончанию сбора данных и при наличии большого уровня шума с помощью этой опции пользователь может отфильтровать данные. Фильтрация возможна по всем осям или по каждой в отдельности. Возможно также задать уровень ослабления шума. Следует заметить, что эту опцию невозможно отменить, т.е. перед ее применением необходимо сохранить исходные данные.
     
  • Move Zero Point (Смещение нулевой точки) – опция установки нулевой точки для всех трех осей. Это может потребоваться при желании наблюдать графики раздельно, для чего их можно смещать вверх или вниз. Кроме того, если устройство расположено на неровной поверхности, вы увидите, что один из графиков будет выше или ниже. Опция позволяет выравнивать графики. То же самое можно сделать с помощью кнопки Average (Среднее) – программа попытается установить нулевую точку автоматически.
     
  • Screen Shot (Захват экрана) – опция для захвата изображения графиков в буфер обмена.

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

И последняя немаловажная опция программы – калибровка. Это немного трудоемкий процесс, но проводится калибровка лишь один раз. При этом вам потребуется дополнительный инструмент – строительный уровень или любое другое приспособление, с помощью которого вы сможете установить устройство с акселерометром в положение 0° и 90°. Кнопка включения калибровки расположена самой последней на закладке настроек. Нажатие на кнопку вызывает окно с параметрами, которые необходимо будет корректировать.

Внимание!

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

Процедура калибровки:

  1. Включите устройство и подключите его к компьютеру.
     
  2. Расположите устройство так, чтобы оси X и Z были горизонтальны, а ось Y была направлена вертикально вниз. Наблюдая графики данных, подкорректируете значения параметров ZeroG X, ZeroG Z и OneG Y таким образом, чтобы графики X и Z были на линии 0G, а график Y – на линии 1G.
     
  3. Расположите устройство так, чтобы оси Y и Z были горизонтальны, а ось X была направлена вертикально вниз. Наблюдая графики данных, подкорректируете значения параметров ZeroG Y и OneG X таким образом, чтобы график Y был на линии 0G а график X – на линии 1G.
     
  4. Расположите устройство так, чтобы оси X и Y были горизонтальны, а ось Z была направлена вертикально вниз. Наблюдая графики данных, подкорректируете значения параметра OneG Z таким образом, чтобы график Z был на линии 1G.

Завершив эту процедуру, вы установили значения 0G и 1G для всех осей, что очень важно при подключении каждого нового акселерометра (устройства). Эти данные не сохраняются в энергонезависимой памяти микроконтроллера, они хранятся в INI-файле в папке с программой.

Загрузки

Принципиальная схема (Eagle), исходный код программы микроконтроллера, HEX-файл, приложение для компьютера – скачать
Руководство пользователя для модуля 3-осевого акселерометра (mikroElektronica, pdf) - скачать

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: G-Force Monitor

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Фрагменты обсуждения:Полный вариант обсуждения »
  • Хороший материал. Порадовала программа для ПК, жаль нет исходников. Немного не понял – можно ли изменить единицы вывода на радианы или градусы для измерения угла, т.е. проекции статич. ускорения. Ведь эта функция косвенно зашита в процедуру калибровки. И ещё нюанс – как учитывается гравитационное ускорение, если прибор меняет угол наклона в процессе измерений, ведь кнопкой смещения нулевой точки не скомпенсируешь изменение постоянной составляющей при длительных измерениях. ADXL330 не самый малошумящий прибор, и в связи с 10-битным АЦП PIC16 непонятно, почему всё-таки 7805 влияет на качество измерений, согласно признаниям автора. Возможно, питание самого модуля или буфер дают о себе знать. Хотя на усилитель грешить нельзя, для этой задачи он хорош. К тому же, на схеме нет емкостей по питанию. На своей страничке автор, развивая проект, полностью отрывается от железа и предлагает приложение для Android устройств с акселерометром на борту.