Гироскоп для TX/TXT

Обсуждаем модели и конструкции, построенные своими руками
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Гироскоп для TX/TXT

Сообщение vladmed »

Добрый день!
Ребенку понадобился гироскоп (акселерометр), я как биолог очень мало понимаю в этих вопросах, но приходится осваивать новые области...

Как я понял имеется шина I2C, к которой можно подключить такой датчик. Нашел вот этот http://www.chipdip.ru/product/l3g4200d-board/, вроде он уже готов для I2C, подойдет ли?
Допустим, я найду нужные контакты и соединю их, что еще потребуется сделать, чтобы датчиком можно было пользоваться в Robopro, так же, как и стандартными?
Еще не хотелось бы повредить контроллер, какие опасности могут меня поджидать?

Заранее спасибо!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Привет!

Подробные инструкции по подключению I2C устройств к контроллерам TX/TXT были в нескольких выпусках журнала FT-PEDIA (на немецком). Первая статья из серии "IІC mit dem TX" находится в выпуске 2012-3. Скачать можно на сайте журанала - http://ftcommunity.de/ftcomm.php?file=ftpedia

У меня есть опыт подключения устройств к TX через интерфейс I2C. Напишу подробнее немного позже когда появится свободное время.
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Кстати, вот нашлась тема по TX+I2C на нашем форуме - http://pacpac.ru/forum/viewtopic.php?f=10&t=121.
С уважением, Григорий
GitHub FB ВК
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Спасибо, тему я видел, но там нет конкретной информации, а статья все-таки рассчитана на людей, которые уже "в теме".
В любом случае, это не срочно, плата даже еще не куплена.
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Судя по описанию с сайта чипидип, на плате, которую вы планируете использовать, установлен чип - 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

Назначение контактов на устройствах показано на картинках ниже.
l3g4200-01.png
l3g4200-01.png (12.36 КБ) 26991 просмотр
Рис. 1 - Назначение контактов разъема на плате L3G4200D
l3g4200-02.png
l3g4200-02.png (28.99 КБ) 26991 просмотр
Рис. 2 - Назначение контактов разъема EXT контроллера TXT

Получение данных из L3G4200D в проекте ROBO Pro:

Чтобы получить полезную информацию из датчика L3G4200D надо написать программу, которая будет обращаться к этой микросхеме через интерфейс I2C и считывать интересующие данные. Для работы с интерфейсом I2C, встроенным в контроллер TXT, в ROBO Pro есть специальные программные элементы:
l3g4200-03.png
l3g4200-03.png (11 КБ) 26991 просмотр
Рис. 3 - Записать данные в устройство на шине I2C
l3g4200-04.png
l3g4200-04.png (14.8 КБ) 26991 просмотр
Рис. 4 - Прочитать данные из устройства на шине I2C

Эти элементы находятся в группе "Отправить/принять".

Для разработки программы надо внимательно изучить раздел "5.1.1 I2C operation" в документации на L3G4200D. Там подробно описано как происходит чтение данных из устройства. В качестве основы можно взять готовую подпрограмму "I2CGyro-GetXYZ" из встроенной в ROBO Pro библиотеки:
l3g4200-05.png
l3g4200-05.png (6.34 КБ) 26991 просмотр
Рис. 5 - Подпрограмма I2CGyro-GetXYZ

Буду рад ответить на вопросы.
С уважением, Григорий
GitHub FB ВК
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Григорий, большое спасибо, отличная инструкция!
Я уже близок к тому, чтобы перейти к практической реализации, но неожиданная проблема возникла именно с питанием. Вы не в курсе, импульсный регулятор, типа http://www.chipdip.ru/product/scv0031-3.3v-0.6a/, может помешать работе датчика? Обязательно ли надо использовать линейный?
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Судя по схеме ИП, на выходе стоит конденсатор. Этого должно быть достаточно для сглаживания пульсаций. Должно работать.
С уважением, Григорий
GitHub FB ВК
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Привет!

Как там гироскоп? Что-нибудь получилось?
С уважением, Григорий
GitHub FB ВК
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Добрый день!

Ситуация пока следующая: те гироскопы кончились, мы выбрали вот такой: http://amperkot.ru/products/trehosevoy_ ... 39251.html и к нему блок питания http://amperkot.ru/products/lineynyiy_d ... 22243.html.

Подключили к Arduino и с помощью I2C сканера определили его адрес на шине. Определили (вроде) как вывести его из спящего режима. Дальше стало понятно, что я ввязался в дело, в котором совершенно ничего не смыслю... Была вынужденная пауза, но недавно я вернулся к изучению datasheet, по принципу "кто кого победит"...

Пока есть только вот это:
Снимок.PNG
Снимок.PNG (2.7 КБ) 26851 просмотр
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Григорий, здравствуйте и с Новым годом!

За время праздников немного продвинулись, хотя наверняка все сделано неправильно, и я "тыкаюсь как слепой котенок". Мы собрали удобный стенд, научились включать гироскоп и акселерометр и получать сырые данные (фотки прилагаются). Дальше сложнее. Во-первых, не очень понятно, какие именно данные мы получаем и как это связано с диапазоном гироскопа. Для эксперимента я выбрал диапазон 500 гр/сек и, если не ошибаюсь, полученные значения надо делить на 65,6 (согласно приложенной таблице). По крайней мере значения перестали скакать и показывают что-то более менее осмысленное... Во-вторых, а как собственно получить значение угла поворота при повороте датчика? Сейчас он показывает изменение значений при перемещении, при остановке значения возвращаются на ноль. Ребенку надо видеть углы, например, при повороте робота на 45гр хочется увидеть это значение. Для этого надо написать отдельную программу обработки?
Стенд
Стенд
IMG_2105a.JPG (210.72 КБ) 26544 просмотра
Выбор диапазона
Выбор диапазона
Снимок1.PNG (50.6 КБ) 26544 просмотра
Программа
Программа
Снимок.PNG (20.26 КБ) 26544 просмотра
Ответить