Гироскоп для TX/TXT
Гироскоп для TX/TXT
Добрый день!
Ребенку понадобился гироскоп (акселерометр), я как биолог очень мало понимаю в этих вопросах, но приходится осваивать новые области...
Как я понял имеется шина I2C, к которой можно подключить такой датчик. Нашел вот этот http://www.chipdip.ru/product/l3g4200d-board/, вроде он уже готов для I2C, подойдет ли?
Допустим, я найду нужные контакты и соединю их, что еще потребуется сделать, чтобы датчиком можно было пользоваться в Robopro, так же, как и стандартными?
Еще не хотелось бы повредить контроллер, какие опасности могут меня поджидать?
Заранее спасибо!
Ребенку понадобился гироскоп (акселерометр), я как биолог очень мало понимаю в этих вопросах, но приходится осваивать новые области...
Как я понял имеется шина I2C, к которой можно подключить такой датчик. Нашел вот этот http://www.chipdip.ru/product/l3g4200d-board/, вроде он уже готов для I2C, подойдет ли?
Допустим, я найду нужные контакты и соединю их, что еще потребуется сделать, чтобы датчиком можно было пользоваться в Robopro, так же, как и стандартными?
Еще не хотелось бы повредить контроллер, какие опасности могут меня поджидать?
Заранее спасибо!
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Гироскоп для TX/TXT
Привет!
Подробные инструкции по подключению I2C устройств к контроллерам TX/TXT были в нескольких выпусках журнала FT-PEDIA (на немецком). Первая статья из серии "IІC mit dem TX" находится в выпуске 2012-3. Скачать можно на сайте журанала - http://ftcommunity.de/ftcomm.php?file=ftpedia
У меня есть опыт подключения устройств к TX через интерфейс I2C. Напишу подробнее немного позже когда появится свободное время.
Подробные инструкции по подключению I2C устройств к контроллерам TX/TXT были в нескольких выпусках журнала FT-PEDIA (на немецком). Первая статья из серии "IІC mit dem TX" находится в выпуске 2012-3. Скачать можно на сайте журанала - http://ftcommunity.de/ftcomm.php?file=ftpedia
У меня есть опыт подключения устройств к TX через интерфейс I2C. Напишу подробнее немного позже когда появится свободное время.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Гироскоп для TX/TXT
Кстати, вот нашлась тема по TX+I2C на нашем форуме - http://pacpac.ru/forum/viewtopic.php?f=10&t=121.
Re: Гироскоп для TX/TXT
Спасибо, тему я видел, но там нет конкретной информации, а статья все-таки рассчитана на людей, которые уже "в теме".
В любом случае, это не срочно, плата даже еще не куплена.
В любом случае, это не срочно, плата даже еще не куплена.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Гироскоп для TX/TXT
Судя по описанию с сайта чипидип, на плате, которую вы планируете использовать, установлен чип - L3G4200D. Это - цифровой датчик угловых скоростей с интерфейсом типа I2C.
Важный момент - напряжение питания микросхемы L3G4200D - 3.3 В! Это означает, что при подаче более высокого напряжения микросхема может выйти из строя.
Подключение к TXT:
Интерфейс I2C контроллера TXT работает с уровнями 3.3 В поэтому вам не потребуется дополнительный преобразователь уровня. Чип L3G4200D можно напрямую подключать к TXT. Единственное, что нам надо найти, - это источник тока c напряжением 3.3. Он понадобится для питания L3G4200D.
Для подключения датчика к контроллеру надо соединить между собой следующие контакты:
SDA: L3G4200 контакт 7 c TXT контакт 5
SCL: L3G4200 контакт 5 c TXT контакт 6
GND: L3G4200 контакт 11 c TXT контакт 1
Назначение контактов на устройствах показано на картинках ниже.
Рис. 1 - Назначение контактов разъема на плате L3G4200D
Рис. 2 - Назначение контактов разъема EXT контроллера TXT
Получение данных из L3G4200D в проекте ROBO Pro:
Чтобы получить полезную информацию из датчика L3G4200D надо написать программу, которая будет обращаться к этой микросхеме через интерфейс I2C и считывать интересующие данные. Для работы с интерфейсом I2C, встроенным в контроллер TXT, в ROBO Pro есть специальные программные элементы:
Рис. 3 - Записать данные в устройство на шине I2C
Рис. 4 - Прочитать данные из устройства на шине I2C
Эти элементы находятся в группе "Отправить/принять".
Для разработки программы надо внимательно изучить раздел "5.1.1 I2C operation" в документации на L3G4200D. Там подробно описано как происходит чтение данных из устройства. В качестве основы можно взять готовую подпрограмму "I2CGyro-GetXYZ" из встроенной в ROBO Pro библиотеки:
Рис. 5 - Подпрограмма I2CGyro-GetXYZ
Буду рад ответить на вопросы.
Важный момент - напряжение питания микросхемы L3G4200D - 3.3 В! Это означает, что при подаче более высокого напряжения микросхема может выйти из строя.
Подключение к TXT:
Интерфейс I2C контроллера TXT работает с уровнями 3.3 В поэтому вам не потребуется дополнительный преобразователь уровня. Чип L3G4200D можно напрямую подключать к TXT. Единственное, что нам надо найти, - это источник тока c напряжением 3.3. Он понадобится для питания L3G4200D.
Для подключения датчика к контроллеру надо соединить между собой следующие контакты:
SDA: L3G4200 контакт 7 c TXT контакт 5
SCL: L3G4200 контакт 5 c TXT контакт 6
GND: L3G4200 контакт 11 c TXT контакт 1
Назначение контактов на устройствах показано на картинках ниже.
Рис. 1 - Назначение контактов разъема на плате L3G4200D
Рис. 2 - Назначение контактов разъема EXT контроллера TXT
Получение данных из L3G4200D в проекте ROBO Pro:
Чтобы получить полезную информацию из датчика L3G4200D надо написать программу, которая будет обращаться к этой микросхеме через интерфейс I2C и считывать интересующие данные. Для работы с интерфейсом I2C, встроенным в контроллер TXT, в ROBO Pro есть специальные программные элементы:
Рис. 3 - Записать данные в устройство на шине I2C
Рис. 4 - Прочитать данные из устройства на шине I2C
Эти элементы находятся в группе "Отправить/принять".
Для разработки программы надо внимательно изучить раздел "5.1.1 I2C operation" в документации на L3G4200D. Там подробно описано как происходит чтение данных из устройства. В качестве основы можно взять готовую подпрограмму "I2CGyro-GetXYZ" из встроенной в ROBO Pro библиотеки:
Рис. 5 - Подпрограмма I2CGyro-GetXYZ
Буду рад ответить на вопросы.
Re: Гироскоп для TX/TXT
Григорий, большое спасибо, отличная инструкция!
Я уже близок к тому, чтобы перейти к практической реализации, но неожиданная проблема возникла именно с питанием. Вы не в курсе, импульсный регулятор, типа http://www.chipdip.ru/product/scv0031-3.3v-0.6a/, может помешать работе датчика? Обязательно ли надо использовать линейный?
Я уже близок к тому, чтобы перейти к практической реализации, но неожиданная проблема возникла именно с питанием. Вы не в курсе, импульсный регулятор, типа http://www.chipdip.ru/product/scv0031-3.3v-0.6a/, может помешать работе датчика? Обязательно ли надо использовать линейный?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Гироскоп для TX/TXT
Судя по схеме ИП, на выходе стоит конденсатор. Этого должно быть достаточно для сглаживания пульсаций. Должно работать.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Гироскоп для TX/TXT
Привет!
Как там гироскоп? Что-нибудь получилось?
Как там гироскоп? Что-нибудь получилось?
Re: Гироскоп для TX/TXT
Добрый день!
Ситуация пока следующая: те гироскопы кончились, мы выбрали вот такой: http://amperkot.ru/products/trehosevoy_ ... 39251.html и к нему блок питания http://amperkot.ru/products/lineynyiy_d ... 22243.html.
Подключили к Arduino и с помощью I2C сканера определили его адрес на шине. Определили (вроде) как вывести его из спящего режима. Дальше стало понятно, что я ввязался в дело, в котором совершенно ничего не смыслю... Была вынужденная пауза, но недавно я вернулся к изучению datasheet, по принципу "кто кого победит"...
Пока есть только вот это:
Ситуация пока следующая: те гироскопы кончились, мы выбрали вот такой: http://amperkot.ru/products/trehosevoy_ ... 39251.html и к нему блок питания http://amperkot.ru/products/lineynyiy_d ... 22243.html.
Подключили к Arduino и с помощью I2C сканера определили его адрес на шине. Определили (вроде) как вывести его из спящего режима. Дальше стало понятно, что я ввязался в дело, в котором совершенно ничего не смыслю... Была вынужденная пауза, но недавно я вернулся к изучению datasheet, по принципу "кто кого победит"...
Пока есть только вот это:
Re: Гироскоп для TX/TXT
Григорий, здравствуйте и с Новым годом!
За время праздников немного продвинулись, хотя наверняка все сделано неправильно, и я "тыкаюсь как слепой котенок". Мы собрали удобный стенд, научились включать гироскоп и акселерометр и получать сырые данные (фотки прилагаются). Дальше сложнее. Во-первых, не очень понятно, какие именно данные мы получаем и как это связано с диапазоном гироскопа. Для эксперимента я выбрал диапазон 500 гр/сек и, если не ошибаюсь, полученные значения надо делить на 65,6 (согласно приложенной таблице). По крайней мере значения перестали скакать и показывают что-то более менее осмысленное... Во-вторых, а как собственно получить значение угла поворота при повороте датчика? Сейчас он показывает изменение значений при перемещении, при остановке значения возвращаются на ноль. Ребенку надо видеть углы, например, при повороте робота на 45гр хочется увидеть это значение. Для этого надо написать отдельную программу обработки?
За время праздников немного продвинулись, хотя наверняка все сделано неправильно, и я "тыкаюсь как слепой котенок". Мы собрали удобный стенд, научились включать гироскоп и акселерометр и получать сырые данные (фотки прилагаются). Дальше сложнее. Во-первых, не очень понятно, какие именно данные мы получаем и как это связано с диапазоном гироскопа. Для эксперимента я выбрал диапазон 500 гр/сек и, если не ошибаюсь, полученные значения надо делить на 65,6 (согласно приложенной таблице). По крайней мере значения перестали скакать и показывают что-то более менее осмысленное... Во-вторых, а как собственно получить значение угла поворота при повороте датчика? Сейчас он показывает изменение значений при перемещении, при остановке значения возвращаются на ноль. Ребенку надо видеть углы, например, при повороте робота на 45гр хочется увидеть это значение. Для этого надо написать отдельную программу обработки?