Вибрации могут оказывать негативные физические воздействия на измерительную систему, если их источник находится в непосредственной близости от системы обработки, передачи и записи данных. Также на характеристики измерительной системы может влиять интерфейс связи, который используется для передачи данных между датчиком и основной платой.
Схема измерительной системы, описанная в статье [1] позволяет получать данные непосредственно из датчика (рис. 1).
К достоинствам данной схемы можно отнести относительную простоту – всего в процессе приема-передачи данных используется только два компонента(ADXL-345, Arduino MEGA 2560).
При этом, данная схема обладает следующим недостатком: интерфейс I2C, разрабатываемый компанией PHILIPS как внутриприборный, может быть подвержен серьезным помехам при увеличении длины линии. Это связанно с ограничением по общей емкости линии I2C, которая не должна превышать максимально допустимую емкость шины в 400 пФ [2].
Для решения этой проблемы можно добавить в схему устройство-посредника[3], которое будет принимать данные от акселерометра по короткой линии I2C и передавать полученные данные по более длинной линии помехозащищенного интерфейса на основную плату.
В качестве помехозащищенного интерфейса был выбран RS-232[4], который позволяет передавать данные на необходимое нам расстояния без серьезных помех.
Рис. 1. Схема работы измерительной системы с непосредственной передачей данных из датчика в основную плату
Рис. 2. Схема работы измерительной системы с использованием устройства – посредника
Рис. 3. Алгоритмы работы измерительной системы. Слева – при непосредственной передаче, справа – с устройством-посредником
Под эти задачи подходит плата Digispark Attiny85, обладающая поддержкой протокола I2C, а также достаточным количеством выводов, чтобы одновременно подключать несколько интерфейсов [5]. И при этом плата обладает небольшими размерами, что позволяет ей находиться с акселерометром в одном корпусе (рис. 2).
Измерительная система, собранная в данном варианте при включении питания ведет себя следующим образом. Основная плата Arduino MEGA 2560 , отправляет запрос на плату Digispark Attiny85, а та в свою очередь запускает инициализацию датчика ADXL-345, который начинает считывать значения ускорений по трем осям X, Y и Z[6] и посылать эти данные на плату Digispark Attiny85 по интерфейсу I2C. Приняв данные, посредник начинает передавать их по интерфейсу RS-232 в основную плату Arduino MEGA 2560.
Таким образом, они могут быть либо cохранены на флэш-карту, либо переданы непосредственно на компьютер, где будут тут же обрабатываться. Если измерения проходят в полевых условиях, когда нет возможности оперативно обработать данные, то имеет смысл записать данные на съемный носитель. Это можно сделать с помощью модуля MH-SD.
Рис. 4. Окончательная схема устройства