Поиск:  
  
  






  ***

25.07.2005 - Самодельные датчики для электромотора Pittman GM8712


РобоКлуб/Технологии робототехники/Датчики/25.07.2005 - Самодельные датчики для электромотора Pittman GM8712



Самодельные датчики для электромотора Pittman GM8712
Перевод еще одной статьи Дэвида Андерсона, посвященной тому, как собрать датчики измерения скорости вращения для небольших моторов и опубликованной на сайте Dallas Personal Robotics Group.



Электромотор Pittman GM8712-31 19.1 V.DC.


Недавно среди электротехнических мелочей появились небольшие электромоторы постоянного тока, которые подходят для небольших роботов весом 5-10 фунтов (2-5 кг). Эти электромоторы производит компания Pittman, номер модели GM8712. Два магазина мелочей BGMicro Tanners в Далласе закупили несколько сотен экземпляров и продавали их по 10,95$ за штуку. Моторы быстро раскупили члены Dallas Personal Robotics Group, хотя, как я думаю, немного еще осталось. Как оказалось, Apogee продает те же самые моторы по $15. Проверьте сами на http://www.apogeeinc.com/mfg.html. Как сообщил Эрик Йунд (Eric Yundt) из DPRG, Automatic solutions продает эти электромоторы (новая модель?) аж по $73,9 за штуку.


Небольшие электромоторы постоянного тока - это, без сомнения, просто подарок судьбы, который нельзя упускать. Очень трудно найти подходящую комбинацию напряжения и тока работы мотора, передаточного числа, размера, разрешения датчика положения, уровня шума и, разумеется, цены. Эти модели Pittman-а идеально подходят для наших целей, но им не хватает датчика измерения скорости вращения. В этой статье описывается простой способ самому сделать датчик поворота для этих удобных моторчиков. Конструкция родилась благодаря многочисленным письмам в почтовый ящик как Dallas Personal Robotics Group (DPRG) так и Seattle Robotics Society (SRS) и в этом описании часто цитируются некоторые письма.


Огромная благодарность всем внесшим свой вклад в это небольшое улучшение.


I. Моторы


Эрик обеспечил нас кратким техническим описанием моторов, а также их чертежами в CAD вместе с размерами как самого мотора (DWG, DXF), так и его основания (DWG, DXF).


Вот это описание:

Это техническое описание электромотора 19.1V GM8712 с редуктором с понижающим отношением 60,5:1.


Характеристики редуктора:



  • Эффективность редуктора 66%
  • Скорость холостого хода 128 об/мин.

Характеристики мотора:



  • Крутящий момент в непрерывном режиме работы: до 1,3 унции∙дюйм (93,6 г∙см)
  • Пиковый крутящий момент (при останове) 5,1 унции∙дюйм (367,2 г∙см)
  • Скорость холостого хода 7729 об/мин.

Характеристики обмотки:



  • Моментный коэффициент 3,06 унции∙дюйм/Ампер (220,3 г∙см/А)
  • Сопротивление 10,8 Ом
  • Ток холостого хода 0,14 A
  • Пиковый ток (при останове) 1,76 A

Этими данными Эрик воспользовался чтобы посчитать крутящий момент после редуктора:



  • Крутящий момент в непрерывном режиме работы 1,3 унции∙дюйм∙60,5:1∙66% = 51,9 унции∙дюйм (93,6 г∙см∙60,5:1∙0,66 = 3,73 кг∙см)
  • Пиковый крутящий момент (при останове) 5,1 унции∙дюйм∙60,5:1∙66% = 203,6 унции∙дюйм (367,2г∙см∙60,5:1∙0,66 = 14,6 кг∙см)

Как сказал Алан Бредон (Alan Bredon), компания Pitmann дает следующие данные крутящих моментов для электромоторов двух основных размеров: для большого – 500 унций∙дюйм (36 кг∙см) и для меньшего 200 унций∙дюйм (14,4 кг∙см). Последние данные хорошо соответствуют тем значениям, которые получил Эрик. Эти моторы неплохо работают при напряжении 12В: скорость вращения 70 об/мин и ток при останове 1А. Величины тока достаточно низкие, чтобы можно было использовать обычную управляющую плату Н-моста, например L293, которая используется в Handy Board, контроллерах EyeRobot и MicroCorp, на плате M.I.T. 6.270 и других аналогичных платах управления роботами размерами от малой до средней.




Разобранный мотор и редуктор мотора Pittman GM8712


Я взял два мотора модели Pittman GM8712 в убежище Майкла Гамильтона (Michael Hamilton) на берегу озера. Майкл – конструктор самолетов и создатель уникальных моделей Traxxus (игрушечные машины). Мы разобрали один из электромоторов и вдоволь поиграли с ним. "Первоклассная вещь" – похвалил прибор Майкл.


У этого мотора 7 полюсов, благодаря чему создается высокий крутящий момент при низких оборотах и очень низкий уровень шума работы, что, несомненно, является большим плюсом для самодельных роботов. Как видно на верхнем правом рисунке, на каждом из семи полюсов намотано огромное количество очень тонкой проволоки (12 Ом по нашим измерениям). Также каждая из обмоток спиралевидная. Как сказал Майкл, благодаря этому достигается гладкость движения из-за перекрытия обмоток.


Редуктор мотора четырехступенчатый. Мы посчитали число зубцов шестеренок: как оказалось, три последних стадии редукции осуществляются прямозубыми цилиндрическими зубчатыми передачами с передаточным отношением 3,2:1, с числом зубцов у ведущей шестеренки 10, а у ведомой – 32. Размер зубцов на первой ступени редукции очень маленький, и мы не смогли их посчитать. Однако передаточное отношение должно быть примерно 1,8:1 чтобы итоговая редукция получилось 60:1. Все шестеренки высококачественные, металлические, со стальными осями с бронзовыми втулками.


По мнению Майкла, нам не следовало располагать колеса прямо на выходной оси из-за малого диаметра задней оси и втулки, как видно на левом нижнем рисунке (выше). Как я уже говорил, мотор предназначен для 5 – 10 фунтового (2 – 5 кг) робота. Майкл предположил, что при желании можно выдавить бронзовую втулку и заменить ее на шарикоподшипник.


Дэвид Питерсон (David Peterson) покопался на сайте Pittman и подтвердил, что эта идея не нова. Цитаты с сайта:


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


"Мы предлагаем модели с шариковыми подшипниками на выходе вместо втулочных. Это значительно расширит диапазон возможных нагрузок. Точная величина, как и прежде, зависит от множества факторов, и в большой степени субъективна. Для нашей стандартной модели такого типа с шарикоподшипником мы порекомендуем радиальную нагрузку не больше 8 фунтов (3,6 кг), а аксиальную не больше 2 фунтов (0,9 кг).


II. Самодельные датчики


У нас уже есть опыт создания самодельных датчиков из бумажных кругов с делениями, напечатанными на лазерном принтере и считываемых ИК излучателем-детектором Hamamatsu P5587. Последние два моих робота использовали эту схему, при этом бумажные круги датчика были просто приклеены суперклеем к оси мотора. Они очень легкие и не требуют точной балансировки, необходимой в других случаях для предотвращения вибрации на высоких оборотах. Суперклей гораздо более прочный чем бумага и обеспечивает надежную основу для крепления.


A. Датчик


Элементы Hamamatsu оказались очень надежными и простыми в использовании. Раньше мы их заказывали прямо в Hamamatsu, но их можно купить и в магазинах Zargos Robotics и Acroname, на чьих Интернет сайтах приведена упрощенная схема:




Электрическая схема Hamamatsu, предоставленная Acroname

http://www.acroname.com/robotics/parts/R64-P5587.html


B. Установка


Мой робот SR04, сделан похожим образом. На его моторах датчик Hamamatsu расположен на кусочке печатной платы, прикрепленной к алюминиевой трубке на алюминиевом же держателе, который удерживается винтом на корпусе мотора. Эта конструкция хорошо работает уже четыре года и мое начальное намерение использовать бумажный диск полностью реализовано. У этой конструкции есть недостатки: она не светонепроницаема и бумажный диск можно повредить при создании робота.




Расположение датчика у робота SR04.




Левый кодирующий диск и датчик на роботе SR04.


Поэтому для Pittman GM8712 мы решили сделать следующие улучшения конструкции:



  1. Просто регулируемое крепление для настройки расстояния между диском и датчиком.
  2. Оболочка для защиты датчика и бумажного диска как от механических воздействий, так и от света.
  3. Попробовать сделать квадратурный датчик.
  4. Более простой способ крепления.

Во время обсуждения конструкции Джефф Бирт сделал потрясающее открытие: обычный пластиковый контейнер из-под фотопленки отлично подходит к задней стороне Pitmann-овских моторов; надо только сделать небольшой вырез для питающих проводов. Сам контейнер можно закрепить на месте кусочком пластикового жгута-связки для проводов. Если расположить плату Hamamatsu на задней стенке коробки, то расстояние от нее до диска с делениями можно просто регулировать, надевая коробку глубже, или меньше.



C. Составляющие части датчика


Для питания этих моторов я собираюсь использовать 12 никель-металл-гидридных элементов, напряжение у которых, при полной зарядке около 15 В. Вернемся к техническим характеристикам мотора: скорость его вращения, по описанию, 128 об/мин при напряжении 19,1 В, по нашим измерениям получается 70 об/мин при напряжении 12 В. Если отклик линейный, то получается примерно 6 об/мин/В. Получается: 15 В∙6 об/мин/В = 90 об/мин. Передаточное отношение редуктора примерно 60:1, поэтому скорость мотора при напряжении питания 15В. будет 90 об/мин∙60 = 5400 об/мин., или, другими словами 5400об/мин / 60с/мин = 90 об/с.


В последней модели моего робота цикл чтение-датчик-запись-результат работал с частотой 10Гц, т.е. 100мс. Получается, что время для оцифровки сигналов датчика составляет 100 мс. В модели автономной платформы я увеличил частоту до 20 Гц, при этом длина окна для оцифровки уменьшилась до 50 мс. Для новой мобильной платформы я бы хотел увеличить частоту до 30-40 Гц, или даже до 50Гц. с соответствующим уменьшением окна оцифровки. Частота работы в 50 Гц. означает, что если робот измеряет скорость мотора по числу отсчетов делений за предыдущий интервал оцифровки, то на этот подсчет есть всего 20 миллисекунд.


Это число нужно знать, чтобы определить необходимое число отсчетов для гладкого управления скоростью мотора, что, в свою очередь зависит от конкретного метода управления мотором. У робота SRO4 на максимальной скорости вращения в секунду доходит до 1000 отсчетов. При частоте работы цикла считывания 20Гц получается 1000отсчетов/20Гц = 50 отсчетов за цикл на максимальной скорости. "Медленная" скорость вращения мотора обычно считается в 10 раз меньше максимальной, что для 50 отсчетов за цикл на максимальной скорости дает 50/10 = 5 отсчетов за цикл при "медленной" скорости вращения. Для используемого метода управления 5 0тсчетов за цикл – это почти на пределе для гладкого управления скоростью вращения.


Для достижения такой же глубины детализации и разрешения на новой платформе с частотой оцифровки 50 Гц потребуется 50 отсчетов/цикл∙50 циклов/с = 2500 отсчетов за секунду при максимальной скорости вращения. 2500 отсчетов за секунду / 90 оборотов за секунду = 27,78 ~ 28 отсчетов за один оборот.


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


D. Изготовление дисков


Мы напечатали диски датчика с помощью простого postscript кода, который, как мне хочется верить, развился из сообщения на форум SRS. Я не знаю, кто был его автором. В качестве материала для печати дисков мы остановились на матовой фотобумаге. Она достаточно толстая, и достаточно хорошо держится сама, без дополнительного крепления. Также она не поглощает воду, и, поэтому, не коробится.




%! Код Postscript для печати дисков для датчика

%
/inch {72 mul} def % #точек на дюйм (не изменяйте меня)
/size 0.5 inch def % радиус колец датчика
/segments 16 def % число сегментов (черных и белых)
/angle 360 segments div def

/wedge
{ /radius exch def
/angle_s exch def
/angle_e exch def
newpath 0 0 moveto
0 0 radius angle_s angle_e arc
closepath
} def

gsave
1.0 inch 1.0 inch translate
0 1 segments {
360 segments div rotate
angle 0 size wedge
2 mod 0 eq {1} {0} ifelse
setgray fill
} for
grestore

showpage

III. Конструкция:


Для создания датчика вам понадобятся бумажные диски с делениями, пара излучатель-приемник от Hamamatsu, пластиковый контейнер из-под фотопленки и резиновая стяжка. Диски приклеиваются суперклеем к заднему концу вала мотора. Приемник с излучателем располагаются на печатной плате вместе с парой других элементов. Эта плата приклеивается ко дну контейнера, а провода выходят чере отверстие в боковой стенке. Канцелярским ножом мы сделали оба выреза в контейнере (второй для проводов мотора).



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


IV. Тестирование


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


Потом мы сдули пыль с платы управления роботом M.I.T. 6.270, и написали простой код для считывания показаний датчика, использующий прерывание TIC3 процессора HC11 и распечатывающий накопленные отсчеты на экране ЖК дисплея каждую секунду.





Самодельный датчик, присоединенный к входу синхронизации порта сравнения 68HC11 на плате управления роботом M.I.T. 6.270, аналогично "Handy Board"


Схема тестовой установки приведена выше. Для питания мотора используется настольный источник постоянного тока, оставшийся за пределами рисунка. Как видно на дисплее, датчик показывает 731 отсчет за секунду при скорости мотора 2193 оборота в минуту, итоговая скорость вращения вала 36 оборотов в минуту. Вот сводная таблица наших измерений.


Мотор Pittman GM8712 с 20-сегментным датчиком. Измерения на холостом ходу.



































Напряжение (В) Ток (А) Отсчетов за сек. Скорость вращения мотора, об/мин Скорость вращения вала передаточной коробки, об/мин
19.11.426417941132
15.01.420506156102
12.51.31658498082
10.01.213023906 65
7.51.15 9362908 46
5.01.0 5701710 28
4.01.0 4341302 21
3.00.9 288 864 14
2.00.8 156 468 7
1.50.75 84 252 4
1.20.75 37 111 1
1.10.75 0 0 0

V. Квадратурный датчик:


Данные этих датчиков очень просто считывать с помощью инфракрасной пары излучатель приемник Hamamatsu P5587, которые можно купить, как обсуждалось выше, в Acroname и Zargos. Один прибор позволяет посчитать число тактов и определить скорость вращения. Вот и все, что было у робота SR04. Для определения и скорости и направления потребуется уже 2 датчика, что я и собираюсь сделать в новой модели.


В этом случае квадратурный датчик достаточно прост. Два датчика Hamamatsu располагаются таким образом, чтобы когда один был направлен на границу между сегментами второй находился бы напротив середины сегмента. У процессора HC11 и его аналогов есть встроенное устройство обнаружения краев и генерирования прерываний. Модель 68332 может сделать то же самое на устройстве с каналами "TPU".


После плодотворной переписки по электронной почте мы определили, что при правильном угле поворота датчиков друг относительно друга получаются квадратурные сигналы при НЕЧЕТНОМ числе белых, или черных сегментов. Мы воспользовались парой кусков платы с размером немного меньше для контейнера из-под фотопленки, т.е. около 1,15 дюйма (2,92 см).


Потом, по отверстиям на плате, мы подобрали правильное расположение сенсоров друг относительно друга. Радиальное расположение сенсоров относительно мотора и диска с делениями фиксируется благодаря тому, что диск платы по размеру точно соответствует дну контейнера и достаточно плотно там держится, да еще и приклеен, или прикручен к нему. Для проверки мы напечатали диски с 22, 14 и 10 (поровну черных и белых) сегментами. При использовании двух последних дисков было наиболее просто настраивать два расфазированных сигнала.




Согласованные датчики, расположенные под углом 90 градусов, контейнер из-под фотопленки и диск "нечетного" типа.


С использованием двухканального осциллографа мы настроили и откалибровали два сигнала так же, как и в одноканальной схеме. Программное обеспечение также ненамного усложняется. Каждый раз, когда канале А генерируется прерывание, сигнал из канала Б обрабатывается. Если сигнал возрастающий (переход от черного к белому), то датчик канала Б расположен напротив черного, или белого сегмента, что однозначно определяется направлением вращения. Если сигнал убывает, то все наоборот. Таким образом, можно определить и скорость и направление вращения мотора.


Киптон Моравец (Kipton Moravec) предложил более простую конструкцию для использования в датчиках направления вращения. По его словам, подходящий вариант можно найти на сайте Xilinx, и он был реализован на практике в роботе Xilinx SW. Его описание можно прочитать по адресу: http://www.xilinx.com/xapp/xapp012.pdf.


Роберт Синглтон (Robert Singleton) предложил простую схему квадратурного датчика на основе двух сенсоров, расположенных на одной линии и со сдвигом на 90 градусов самих делений на диске. С некоторыми примерами этого диска а также с другими примерами, как монохромными, так и с оттенками серого, можно ознакомиться по адресу: http://www.linuxlegend.com/~slugmusk/encpix/.




Шаблон дисков Роберта для квадратурного датчика


Киптон вызвался сделать простую печатную плату, которую можно будет использовать как для обычной схемы, так и для квадратурной для одного, или двух датчиков Hamamatsu по размеру контейнера от фотопленки. Роберт работает с Hewlett-Packard HEDR-8000. По его описанию, это восьми контактный плоский (расположение типа S08) прибор со всей оптикой и электроникой для считывания отраженного сигнала с точностью 75, или 150 точек на дюйм с возможностью вывода квадратурного сигнала.


Заинтересовавшиеся могут посетить раздел "Управление движением (Motion Control)" на web-странице Hewlett-Packard,. Дэн Криген тоже заинтересовался этой идеей и сделал свой датчик для электромотора и опубликовал результаты своей работы по адресу: http://academic1.bellevue.edu/robots/tanner/.


Раньше мы делали свои зубчатые передачи и датчики вращения для самодельных роботов. В домашних условиях зубчатую передачу изготовить достаточно сложно, а имеющиеся в продаже у Berg, или SmallParts слишком дороги. Гораздо проще найти мотор с подходящими электрическими и механическими характеристиками и добавить датчик. На сегодняшний день это наиболее выгодная конструкция с точки зрения простоты и надежности. Еще раз благодарим всех членов DPRG и участников форума SRS за сделанный вклад в виде предоставленных данных и затраченных усилий. Благодаря вам эта работа может продолжаться.










gale

Dallas Personal Robotics Group