|
|
 |
Ответов
|
Apr 5 2012, 04:20
|
Группа: Новичок
Сообщений: 3
Регистрация: 5-04-12
Пользователь №: 71 191

|
Добавлюсь и я в ваш огород))) C этим гироскопом ковырялся полдня, ито в основном из-за того что сейчас начался ковыряццо с xmega128a3 и его TWI. Гир отсюда http://www.ebay.com/itm/L3G4200D-Triple-Ax...a#ht_535wt_1396 - подключай питание и I2C/SPI и работай - так же мона найти и схемку модуля инициализацию и снятие показаний взял из MultiWii исходников - там кстати дофига гир, акселерометров, магнетометров, барометров + GPS в итоге получился такой код (извиняюсь он еще не причесан): Код USART_puts(eUSARTF0, "L3G4200D test\r\n");
USART_puts(eUSARTF0, "TWI_Baud ");outputHex(TWI_BAUDSETTING);USART_puts(eUSARTF0, "\r\n"); uint8_t l3g4200address=L3G4200D_ADDRESS1; // gyro can be assigned to 2 addresses, we check the two here USART_puts(eUSARTF0, "Trying address "); outputHex(l3g4200address); USART_puts(eUSARTF0, "...\r\n"); // Задаем адрес ячейки для чтения sendBuffer[0]=0x0F; // WHOAMI регистр TWI_MasterWriteRead(&twiMaster, l3g4200address, &sendBuffer[0], 1, 1); while (twiMaster.status != TWIM_STATUS_READY); // ждем if (twiMaster.readData[0x00]!=L3G4200D_WHOAMI) { USART_puts(eUSARTF0,"Not found...\r\n"); l3g4200address=L3G4200D_ADDRESS2; USART_puts(eUSARTF0,"Trying address "); outputHex(l3g4200address); USART_puts(eUSARTF0, "...\r\n"); sendBuffer[0]=0x0F; // WHOAMI регистр TWI_MasterWriteRead(&twiMaster, l3g4200address, &sendBuffer[0], 1, 1); while (twiMaster.status != TWIM_STATUS_READY); // ждем if (twiMaster.readData[0x00]!=L3G4200D_WHOAMI) { USART_puts(eUSARTF0,"Not found...\r\n"); USART_puts(eUSARTF0,"Please check I2C bus connection, pull ups on SDA/SCL, power to the gyro, decoupling capacitors etc...\r\n"); for(;;); } } USART_puts(eUSARTF0, "L3G4200D answered !\r\n"); USART_puts(eUSARTF0,"Configuring gyro for basic measurements, no filtering, 500sps...\r\n"); sendBuffer[0]=0x20;//Адрес старта sendBuffer[1]=0x8F;//значение TWI_MasterWriteRead(&twiMaster, L3G4200D_ADDRESS2, sendBuffer, 2, 0); while (twiMaster.status != TWIM_STATUS_READY); // ждем sendBuffer[0]=0x24;//Адрес старта sendBuffer[1]=0x02;//значение TWI_MasterWriteRead(&twiMaster, L3G4200D_ADDRESS2, sendBuffer, 2, 0); while (twiMaster.status != TWIM_STATUS_READY); // ждем //sendBuffer[0]=0x23;//Адрес старта //sendBuffer[1]=0x90;//значение //TWI_MasterWriteRead(&twiMaster, L3G4200D_ADDRESS2, sendBuffer, 2, 0); //while (twiMaster.status != TWIM_STATUS_READY); // ждем // Проверка что записали в регистры USART_puts(eUSARTF0,"Reading writed registr\r\n"); sendBuffer[0]=0x20; TWI_MasterWriteRead(&twiMaster, l3g4200address, &sendBuffer[0], 1, 1); while (twiMaster.status != TWIM_STATUS_READY); // ждем outputHex(twiMaster.readData[0x00]);USART_puts(eUSARTF0," "); //sendBuffer[0]=0x23; //TWI_MasterWriteRead(&twiMaster, l3g4200address, &sendBuffer[0], 1, 1); //while (twiMaster.status != TWIM_STATUS_READY); // ждем //outputHex(twiMaster.readData[0x00]);USART_puts(eUSARTF0," "); sendBuffer[0]=0x24; TWI_MasterWriteRead(&twiMaster, l3g4200address, &sendBuffer[0], 1, 1); while (twiMaster.status != TWIM_STATUS_READY); // ждем outputHex(twiMaster.readData[0x00]);USART_puts(eUSARTF0," "); USART_puts(eUSARTF0,"\r\n"); USART_puts(eUSARTF0,"Reading x,y,z data\r\n");
while (1) { // read 3 int16 which is 6 bytes. sendBuffer[0]=(0x80|0x28); // TWI_MasterWriteRead(&twiMaster, l3g4200address, sendBuffer, 1, 6); while (twiMaster.status != TWIM_STATUS_READY); // ждем gyroscope[0]=((twiMaster.readData[1]<<8) | twiMaster.readData[0])/20; gyroscope[1]=((twiMaster.readData[3]<<8) | twiMaster.readData[2])/20; gyroscope[2]=((twiMaster.readData[5]<<8) | twiMaster.readData[4])/20; USART_puts(eUSARTF0,"Angles x,y,z in °/s : "); float angle; int i=0; while(i<3) { angle=gyroscope[i]*0.0175f; dtostrf(angle,5,4, buffer); USART_puts(eUSARTF0,buffer); if (i!=2) USART_puts(eUSARTF0,", "); i++; } USART_puts(eUSARTF0," raw : ");
i=0; while(i<3) { itoa( gyroscope[i], buffer, 10); // output 16 bit signed value to decimal. USART_puts(eUSARTF0,buffer); if (i!=2) USART_puts(eUSARTF0,", "); i++; } USART_puts(eUSARTF0,"\r\n");
_delay_ms(250); // wait 100ms so user can read something _delay_ms(250); // wait 100ms so user can read something _delay_ms(250); // wait 100ms so user can read something _delay_ms(250); // wait 100ms so user can read something }
|
|
|
|
|
Apr 5 2012, 06:16
|
Участник

Группа: Участник
Сообщений: 71
Регистрация: 18-01-06
Пользователь №: 13 333

|
Всем спасибо за советы. Буду дальше экспериментировать. Получается действительно на моей стороне проблемы если у всех работает. Цитата(mataor @ Apr 5 2012, 07:20)  Добавлюсь и я в ваш огород))) C этим гироскопом ковырялся полдня, ито в основном из-за того что сейчас начался ковыряццо с xmega128a3 и его TWI. Код while (twiMaster.status != TWIM_STATUS_READY); // ждем Я не знаком с этим контролером, поясните, пожалуйста, что это за статус? Код gyroscope[2]=((twiMaster.readData[5]<<8) | twiMaster.readData[4])/20; И вот здесь не понятно зачем делить на 20? Цитата(Alex_1811 @ Apr 4 2012, 22:31)  Обрати особое внимание на питание. С питанием вроде ОК. Цитата(MrAlex @ Apr 4 2012, 22:28)  Может поучиться записи регистров с последующим чтением и сравнением? Может и остальные вопросы отпадут Это как бы намек что я конфигурацию не проверил после записи?
Сообщение отредактировал Andrew-S - Apr 5 2012, 06:29
|
|
|
|
Сообщений в этой теме
Alexander_84 Кто работал с L3G4200D? Apr 4 2011, 08:07 -=TRO=- С этим чипом ещё не работал, только жду заказа, но... Apr 22 2011, 16:12 Данилыч Цитата(Alexander_84 @ Apr 4 2011, 12:07) ... Apr 28 2011, 18:51 ren5 Цитата(Alexander_84 @ Apr 4 2011, 12:07) ... May 9 2011, 22:03 rzn62 Здравствуйте! Проблема с гироскопом следующая.... Jul 22 2011, 10:07 MrAlex Цитата(rzn62 @ Jul 22 2011, 14:07) Вопрос... Jul 25 2011, 12:14  klen таже беда, моя тема ниже чуток но никио не ответил... Jul 25 2011, 12:48   MrAlex Цитата(klen @ Jul 25 2011, 16:48) к уого ... Jul 25 2011, 13:30   rzn62 Цитата(klen @ Jul 25 2011, 16:48) если не... Jul 27 2011, 17:35    MrAlex Цитата(rzn62 @ Jul 27 2011, 21:35) Присое... Jul 28 2011, 05:37     rzn62 Цитата(MrAlex @ Jul 28 2011, 09:37) Неспо... Jul 28 2011, 18:15      MrAlex Цитата(rzn62 @ Jul 28 2011, 22:15) Мой ко... Jul 29 2011, 07:09       klen Цитата(MrAlex @ Jul 29 2011, 11:09) Значи... Aug 3 2011, 14:02        Alex_1811 Цитата(klen @ Aug 3 2011, 17:02) код в ст... Aug 25 2011, 17:58         MrAlex Цитата(Alex_1811 @ Aug 25 2011, 21:58) По... Aug 26 2011, 06:23 Bearpaw Привет всем! Пытаюсь запустить сей гироскоп по... Jan 2 2012, 19:49 delphi Привет всем. Описанная в первом посте проблема на ... Mar 13 2012, 17:19 delphi Это проблема протокола. Он неправильно читает сраз... Mar 16 2012, 14:02 Andrew-S Как раз сейчас вожусь с этим датчиком. Настройки н... Mar 23 2012, 14:24 Andrew-S Продолжаю исследования, пока безрезультатно. Попро... Apr 4 2012, 10:51 MrAlex Может поучиться записи регистров с последующим чте... Apr 4 2012, 19:28 Alex_1811 Обрати особое внимание на питание. Apr 4 2012, 19:31 mataor TWIM_STATUS_READY - не обращайте внимания.... это ... Apr 5 2012, 14:06 Andrew-S Цитата(mataor @ Apr 5 2012, 17:06) а так ... Apr 5 2012, 18:03 mataor никаких аномалий нет... в спокойном положении при ... Apr 6 2012, 15:05 Andrew-S Посмотрите, пожалуйста, какие у вас конденсаторы с... Apr 16 2012, 11:51 ren5 Цитата(Andrew-S @ Apr 16 2012, 15:51... Apr 16 2012, 14:28  Andrew-S Цитата(ren5 @ Apr 16 2012, 17:28) не знаю... Apr 17 2012, 05:37 Mityan Извините, пожалуйста, может ли кто-нибудь размести... Apr 20 2012, 09:26 Andrew-S Mityan, получил такой график. Покачал плату с датч... Apr 23 2012, 06:57 Mityan Цитата(Andrew-S @ Apr 23 2012, 09:57... May 4 2012, 05:57  Shopper Проблема, возникающая при повышении температуры L3... Aug 3 2012, 22:23   Ruslan1 Цитата(Shopper @ Aug 4 2012, 01:23) Пробл... Aug 4 2012, 07:59 Shopper Кто-нибудь пробовал нагревать гироскоп до температ... Apr 25 2012, 21:08 Andrew-S Цитата(Shopper @ Apr 26 2012, 00:08) Кто-... Apr 26 2012, 10:48  Shopper Цитата(Andrew-S @ Apr 26 2012, 14:48... Apr 26 2012, 13:49 Артур Товарищи, которые запустили, как коэффициент для н... Dec 14 2012, 15:51 Артур Вроде нашел. Уже не актуально. Dec 15 2012, 17:58 Acvarif Вроде я попал туда куда надо. Стоит задачка опреде... Feb 23 2015, 19:26  Xenia Цитата(Acvarif @ Feb 23 2015, 22:26) Пыта... Feb 23 2015, 21:17   Acvarif Цитата(Xenia @ Feb 24 2015, 01:17) Мне та... Feb 24 2015, 06:26    Xenia Цитата(Acvarif @ Feb 24 2015, 09:26) Дума... Feb 24 2015, 07:01     Acvarif Может оно и так. Дело в том, что частота излучения... Feb 24 2015, 07:40      Xenia Цитата(Acvarif @ Feb 24 2015, 10:40) Може... Feb 24 2015, 23:40       Acvarif Цитата(Xenia @ Feb 25 2015, 03:40) 200 мс... Feb 25 2015, 07:35        Xenia Цитата(Acvarif @ Feb 25 2015, 10:35) Спас... Feb 25 2015, 09:32 A. Fig Lee Не знаю насчет точности, но угол надо мерять с пом... Feb 24 2015, 14:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|