Поиск:  
  
  






  ***

28.07.2005 - Экономичный комбинированный датчик: гироскоп плюс акселерометр


РобоКлуб/Технологии робототехники/Датчики/28.07.2005 - Экономичный комбинированный датчик: гироскоп плюс акселерометр



Экономичный комбинированный датчик: гироскоп плюс акселерометр
Перевод статьи Эрла Боллингера (Earl W. Bollinger), посвященная тому, как собрать недорогой и удобный датчик для балансирующего робота. Оригинал статьи был опубликован на сайте Dappas Personal Robotics Group.



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


Идея проекта


Если вы делаете балансирующий робот, то вам потребуется система его балансировки, которая состоит из гироскопа и модуля измерения ускорения. Было бы неплохо, если бы эта система была еще достаточно выгодной по соотношению цена-качество, и ее можно было бы просто подключить к микроконтроллеру. Уже было разработано несколько подходящих гироскопов, но они слишком дорогие, даже несмотря на удовлетворительное качество работы, а мне захотелось получить небольшое устройство с низким потреблением электроэнергии. Когда компания Analog Devices выпустила модели ADXRS150 и ADXRS300 со встроенным пьезо-гироскопом, я понял, что это – как раз то, что нужно. Сам гироскоп около 5 мм в поперечнике (0,3 дюйма). Ниже, на фотографии балансирующего робота, на центральной платформе виден вертикально расположенный комбинированный силовой блок гироскопа.




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


Чтобы полностью воспользоваться преимуществами, которые дает малый размер, на ту же плату я добавил микросхему модуля измерения напряжений от Analog devices. К тому же практически не используется подвижных деталей, которые могли бы усложнить конструкцию. Все основные элементы находятся в двух схемах. С помощью ADXRS150 и ADXL202 от компании Analog Devices можно собрать весь блок управления меньше чем за 100$. Так, на сайте компании Analog Devices продается отдельно гироскоп за 39,90$, а отдельно измеритель ускорения за 29,90$. По моим сведениям три миниплаты Express PCB стоят 62$, т.е. за одну придется заплатить чуть больше 20$ и остается около 20$ на все остальное, ведь силовой блок занимает небольшую часть всей платы, и вы можете расположить на плате нужные цепи для других приборов и вырезать их по мере надобности. Для этого я обычно пользуюсь лобзиком. Иногда можно найти образцы этих плат, или, по мере того, как их производство начнет выходить на поток, вы сможете достать их дешевле у производителей, или посредников.


Традиционные гироскопы


В конце концов, вы можете купить у некоторых распространителей хороший гироскоп компании Murata Piezo всего за 40$, но обычно они закупаются производителями и их трудно найти. Фирма Gyration продает микро гироскопы за 450$. Также можно найти специальный "учебный" набор за 35$, в который входит 3 гироскопа и нужные схемы.


Microstrain продает различные гироскопы начиная от 295$ и до примерно 1495$.


Старый добрый способ раздобыть гироскоп – это купить модель радиоуправляемого самолета и вытащить их оттуда. Такие гироскопы обходятся примерно от 70$ до нескольких сотен долларов в зависимости от разбираемой модели. Сами самолеты можно найти у компании Tower Hobbies, или в каком-либо магазине, который специализируется на радиоуправляемых машинах, например, Helicopter World. Иногда радиоуправляемые самолеты с гироскопами появляются у Servo City.


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


Последние гироскопы достаточно экономичны, но трудно наладить их взаимодействие с микропроцессором. Эти приборы предназначены для использования с сервомоторами моделей самолетов, которые работают с импульсами длиной 1-2 мс. Получается, что 1,5 мс – нейтральная длительность, 1 мс – крайняя длительность при наклоне гироскопа в одну сторону, 2 мс – в другую сторону. С помощью микроконтроллера вам понадобится передавать нейтральный сигнал длительностью 1,5 мс гироскопу, потом получать обратный сигнал и преобразовывать его во что-нибудь более удобоваримое. Следующая проблема – это то, что обычно нужно остановить микроконтроллер на 2 мс чтобы определить длительность импульса, перед тем, как с ним можно будет что-нибудь сделать. В зависимости от типа микроконтроллера вам может понадобиться отправить от микроконтроллера еще и 1,5 мс сигнал, что займет еще какое-то время. А те потраченные 2 мс могут оказаться необходимыми для других процессов. Если же взять один из гироскопов на микрочипе, который описан выше, то можно с помощью АЦП (аналого-цифровой преобразователь) преобразовать аналоговый сигнал напряжения в цифровые данные, причем гораздо быстрее. К тому же иногда можно сделать так, чтобы АЦП запоминал обработанные данные, и обращаться к ним в удобное время. Таким образом, время оцифровки данных сокращается до микросекунд вместо миллисекунд. Таким образом, увеличивается точность и одновременно уменьшается время обработки. Если у вас быстрый цифровой процессор обработки сигналов, то время снятия значения напряжения может сократиться до одной микросекунды.


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


Гироскопы ADXRS


Не вдаваясь глубоко в инженерные заморочки, кратко можно так описать работу гироскопов ADXRS150 или 300: в равновесном состоянии их сигнал – 2,5 В., если гироскоп наклоняется в ту, или другую сторону, то значение напряжения будет увеличиваться, или уменьшаться относительно исходного. Это тот аналоговый сигнал, который вам нужно подать на АЦП, а потом на микроконтроллер. Точность ADXRS150 – 12,5 мВ/градус при скоростях поворота не больше 150 градусов в секунду. При необходимости эту величину можно настраивать. Изменение напряжения пропорционально скорости изменения наклона: чем быстрее робот наклоняется, тем больше изменение напряжения. ADXRS300 – более производительный прибор, который работает со скоростями наклона до 300 градусов в секунду.


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




Выше: Гироскоп в равновесии




Выше: Гироскоп наклоняется вперед




Выше: гироскоп наклоняется назад


В этом коротком видео файле (MPEG) показана работа гироскопа в равновесии и при наклонах вперед и назад.


Если вы хотите узнать о этих приборах подробнее, на сайте компании Analog Devices можно найти и скачать полные технические характеристики приборов и подробные описания. Также там можно найти описание демонстрационной платы измерения ускорения. Надеюсь, Analog Devices ее скоро выпустит в производство.


Измерение ускорения: ADXL202


Акселерометр ADXL202 – замечательный прибор и сам по себе. Обычно его выходной сигнал представляет собой последовательность импульсов, скважность которых изменяется при наклоне прибора. К тому же изменения сохраняются до следующего наклона гироскопа. Таким образом получается очень удобная точка отсчета, которая позволяет определить, где верх, а где низ.


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


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


Печатная плата




За исключением монтирования схемы гироскопа, сделать плату достаточно просто и понятно. Но будьте очень осторожны с располагаемыми на поверхности конденсаторами, потому что они не маркированы и очень похожи. Я бы посоветовал сразу взять из упаковки нужные конденсаторы и за один раз их все припаять, чтобы потом не перепутать. Также нужно быть очень осторожным с двумя микросхемами, потому что они сложные и чувствительны к статическому электричеству. Когда я припаивал мелкие детали, я пользовался небольшим скальпелем X-Acto чтобы удержать их на месте. Иногда под какую-нибудь деталь попадает немного воздуха, который во время пайки расширяется и может выбросить деталь так, что ее будет трудно найти на рабочем столе, или на полу. Тогда приходится брать новую.


Контакты микросхемы гироскопа сделаны по технологии BGA (Bal grid array) и припаять ее очень трудно, причем сама микросхема размером 0,25 дюйма (0,64 см). 32 маленьких контакта диаметром 0,02 дюйма (0,05 см) и расстояние между ними 0,015 дюйма (0,04 см) меня, признаться, сначала немного озадачили. Может быть, есть еще какие-то способы сделать это, но я знаю три. Способ номер раз: использовать инфракрасную печь, специально предназначенную для пайки таких вещей на печатную плату. Способ номер два: использовать устройство поверхностного монтажа для перепайки таких плат с прогревом горячим воздухом. Нагреть элементы и спаять их. Способ номер три нагреть (электротостер) до примерно 300 градусов и положить внутрь печатную плату с гироскопом. Они приготовятся примерно через 2 минуты. (Этим способом я не пользовался.) В последнем способе печатная плата иногда прогревается до 300 градусов (так чтобы припой только начал плавиться). Уникальной особенностью пайки является то, что когда припой расплавится, он сам располагает контакты спаиваемых деталей благодаря поверхностному натяжению припоя.





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


Я предлагаю сначала сделать схему гироскопа и протестировать ее, а потом приступить к схеме акселерометра. Можно использовать отдельный регулятор напряжения 75L05 на печатной плате, но я решил, что он может стать источником радиопомех, передающихся обратно из схемы акселерометра на гироскоп, и не стал им пользоваться. Также я оставил место для дополнительных конденсаторов для фильтрации, если они вдруг мне понадобятся. Для уменьшения шума в цепи питания я воспользовался катушкой с индуктивностью 47мкГн, хотя можно ее убрать, или взять другую, как лучше подойдет именно для вашей схемы. Еще пару замкнутых контактных площадок я оставил для диодов, если вдруг мне захочется еще больше уменьшить шум в цепи.


Эти две части потребляют примерно 3 – 5 мА тока, и не сильно нагрузят вашу батарейку. Если вы питаете схему прямо от источника напряжением 4,8 В., то можно опустить регуляторы напряжения 78L05 и поставить переключатель, чтобы шунтировать их. Хотя в этом случае я бы посоветовал использовать диод для уменьшения радиочастотных помех.


Один из секретов успеха работы – использование раствора флюса, причем не любой, а обязательно некоррозийный. Часть флюса попадет под микросхему гироскопа, и в противном случае будет плохо. Я предпочитаю использовать флюс раствор паяльного флюса марки 10-4202 от GC Electronics. Жидкие пастообразные флюсы тоже подойдут. После того, как растворитель немного испарится, флюс становится замечательно густым и удерживает детали на месте. Также флюс заполняет пространство между контактами и предотвращает образование нежелательных перемычек из припоя между ними. И, разумеется, с ним паять гораздо лучше. После того, как вы спаяли плату остатки флюса можно удалить денатуратом. Можно еще аккуратно почистить старой зубной щеткой.





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


Сначала нужно прикрепить микросхему гироскопа. Это – самая сложная работа, и ее нужно сделать в первую очередь. Я привык пользоваться прибором для поверхностного монтажа с прогревом горячим воздухом. Немного флюса наносится на печатную плату, и ждем, пока он не загустеет. Потом аккуратно устанавливаем микросхему с помощью уголковых направляющих, которые нужно предварительно расположить на плате. Обратите внимание на маленькую стрелку на микросхеме: она должна быть направлена на угол, помеченный Rate out на плате. Правильно расположить микросхему гироскопа на плате очень сложно, контакты платы и микросхемы не видны, и это делается во многом "на удачу".


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


После того, как все остыло, возьмите цифровой мультиметр и проверьте отсутствие короткого замыкания между соседними, не соединенными контактами. Если все нормально, можно припаивать остальные детали. В противном случае вам придется с помощью того же самого прибора поверхностного монтажа снять микросхему гироскопа, заново нанести припой но кончики контактов, удалить лишний припой с платы и повторить все с самого начала. Когда будете наносить припой на контакты, он соберется на их кончиках в виде полусфер и так и застынет, процесс так и называется "re-balling". Он очень сложный – эти контакты чертовски маленькие.





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


Теперь доделать гироскоп не представляет труда. Заметим, что сзади на плате есть два конденсатора емкостью 47 нФ и 100 нФ. В описании Analog Devices написано, что они должны быть как можно ближе к контактам микросхемы, чтобы уменьшить радиочастотные шумы. Еще я туда же добавил танталовый конденсатор емкостью 2,2 мФ, не уверен, что он действительно нужен, но мне хотелось бы уменьшить шум насколько это возможно.


После того, как все припаяно предстоит еще одна непростая задача: включение питания. Но перед этим с помощью мультиметра еще раз убедитесь, что нигде нет короткого замыкания. Установите плату в нейтральное состояние и подайте напряжение. Мультиметр должен показать на контакте "Rate Out" (выходное значение скорости) напряжение примерно 2,5 В. Теперь осторожно возьмите плату в руки (вы же не хотите, чтобы какие-нибудь провода под напряжением что-нибудь замкнули?). Если теперь наклонять плату, то мультиметр должен отражать это, показывая изменение напряжения. Чем быстрее наклоняется плата, тем больше изменение напряжения, слабые покачивания вызывают еле заметные изменения.




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


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





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


Убедитесь, что нет короткого замыкания, и включите питание. Проверка немного сложнее: нужно на экарне осциллографа наблюдать последовательность импульсов с двух контактов вывода данных X и Y. Можно провести грубый тест: подать на вход мултиметра переменное напряжение и постараться его измерить. При наклонах прибора вперед и назад переменное напряжение должно слегка меняться, отражая изменения коэффициента заполнения последовательности импульсов. Можно также проверить работу прибора с помощью логического пробника, попытавшись увидеть выходную последовательность импульсов. С помощью осциллографа можно получить последовательность импульсов с коэффициентом заполнения примерно 50%. На фотографиях ниже видно изменение коэффициента заполнения и ширины импульса при разных наклонах прибора.





Сверху: равновесное положение акселерометра





Сверху: Акселерометр наклонен вперед.





Сверху: Акселерометр наклонен назад.


Осциллограф должен быть у каждого. Свой я давно приобрел в eBay примерно за 14$ плюс доставка. Пробник обошелся мне в 15$. Осциллограф дает возможность прямо увидеть сигнал и незаменим, когда нужно что-нибудь измерить в почти любой электронной цепи. Настройку и отладку также проще проводить с помощью осциллографа. Хотя с помощью достаточно экономичного логического пробника Radio Shack (Radio Shack Logic Probe) тоже удобно следить за логическими сигналами.


Заключение


Если акселерометр заработал нормально, то моя задача выполнена. Потом, в зависимости от типа микроконтроллера, с помощью внешнего, или внутреннего АЦП нужно преобразовать аналоговый сигнал гироскопа в цифровой для обработки. Обычно, чтобы узнать угол наклона системы определяется ширина импульса от акселерометра, а потом – коэффициент заполнения. Как это сделать – дело вкуса. Обратите внимание, что печатная плата должна стоять вертикально, а не лежать плоской стороной. В балансирующем роботе это придется учесть.


Я хочу сделать плату на основе микроконтроллера ATTiny26 компании Atmel. (Надо же как-то заполнить место, которое осталось на той печатной плате, которую я заказал в Express PCB.) у этого микроконтроллера 2 кБ памяти для программирования, 10 АЦП каналов и 2 для модуляции ширины импульса. У меня в планах сделать комбинированную плату гироскопа-акселерометра с ATTiny26 в качестве дополнительного процессора и, таким образом, получится отдельный блок балансировки, управляющий моторами робота. Основной микроконтроллер, или компьютер сможет просто подавать команды ATTiny26 куда двигаться: вперед, назад, повернуться, или остановиться и так далее.


Еще я хотел использовать New Micros ISOPOD DSP MCU из-за некоторых его немаловажных особенностей. Он настолько быстрый, что может заменить несколько микроконтроллеров, и все еще останется время и ресурсы для решения других задач. В этом случае отпадает надобность использовать дополнительные процессоры для решения побочных задач.


Может быть использовать крепежное гнездо?


После того, как эта статья была опубликована, один из читателей написал, что японская компания Enplas Tesco, Inc. производит крепежные гнезда, подходящие для установки гироскопа с BGA контактами. Эти гнезда предназначены для тестирования приборов с BGA контактами. Это модель номер OTB-32(144)-0.8-16 стоит в розницу 32$. Использование этого гнезда позволяет избежать трудностей, возникающих при пайке микросхемы гироскопа на печатную плату.


Сборочный чертеж крепежного гнезда (PDF)


За более подробной информацией обращайтесь к:


Джону Амбразини (John Ambrosini)

Enplas Tesco, Inc

603 635-7526 телефон

603 635-7738 факс


Принципиальная схема





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


Перечень деталей


Для модуля гироскопа



  • (3) керамические конденсаторы емкостью 22 нФ, рассчитанные на напряжение 25 или 50 В, размер - 805. (обратите внимание, что конденсаторы с подкачкой заряда должны быть рассчитаны на 25 В или выше)
  • (1) керамические конденсаторы емкостью 47 нФ, рассчитанные на напряжение 25 или 50 В, размер - 805
  • (2) керамические конденсаторы емкостью 100 нФ, рассчитанные на напряжение 25 или 50 В, размер - 805
  • (1) Электролитические конденсаторы емкостью 1,5 мкФ, рассчитанные на напряжение 25 или 50 В
  • (1) Электролитические конденсаторы емкостью 47 мкФ, рассчитанные на напряжение 16, 25 или 50 В
  • (1) танталовый конденсатор емкостью 2,2 мкФ, рассчитанные на напряжение 16, 25 или 50 В размера 1206(он не обязателен)
  • (2) катушка индуктивности 47 мкГн размера 1210 (индуктивность может изменяться до 47 мкГн или даже до 1 мГн).
  • (1) регулятор напряжения 78L05 из набора интегральной схемы TO92
  • (1) микросхема гироскопа модели ADXRS150, или ADXRS300

Для модуля акселерометра



  • (1) Микросхема акселерометра ADXL202 от Analog Devices (ADXL210 также будет работать, но для таких целей предел измерения в 10 g явно избыточен)
  • (2) керамические конденсаторы емкостью 47 нФ, рассчитанные на напряжение 25 или 50 В, размер - 805 (емкость может быть другой, смотри описание)
  • (1) керамические конденсаторы емкостью 47 мкФ, рассчитанные на напряжение 25 или 50 В, размер - 805
  • (1) резистор, 124кОм, точность 1%, размер - 805 (сопротивление может быть другим, смотри описание)
  • (1) Электролитические конденсаторы емкостью 1,5 мкФ, рассчитанные на напряжение 25 или 50 В
  • (1) Электролитические конденсаторы емкостью 47 мкФ, рассчитанные на напряжение 16, 25 или 50 В
  • (1) регулятор напряжения 78L05 из набора интегральной схемы TO92

Более подробно



Полезные ссылки



  • autopilot – проект UAV. Хороший исходный код фильтра Калмана, лицензия GPL.
  • nBot– Двухколесный балансирующий робот.
  • Gyrobot – Еще один двухколесный балансирующий робот.

Copyright © 2003 Dallas Person Robotics Group


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










gale

Dallas Personal Robotics Group