Стабилизация Активная - часть II

 
1 62 63 64 65 66 88
UA Ckona #11.02.2012 00:57  @Non-conformist#10.02.2012 19:50
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> Берёшь текст гироскоповской программы, и под каждой нужной гироскоповской строчкой пишешь такую же акселевскую...

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

Первородный материал для программирования АРДУИНа я почерпнул из этого пособия для деток:

скачать Arduino-Getting-Started-RU.pdf

Знакомство с Arduino - перевод книги Getting Started with Arduino

// fileshare.in.ua
 


, потом перешел на официальные описания команд. Ну и фортранов с бейсиками наелся в свое время.
Прикреплённые файлы:
 
 

Ckona

опытный
★☆
Non-conformist !
Какой угол зрения солнечного датчика тебя устроит в проекте КОБРА ?
У меня тут одна бздынька работать начала...
 
KZ Xan #11.02.2012 09:02  @Non-conformist#11.02.2012 00:00
+
-
edit
 

Xan

координатор

Non-conformist>

Вывод кода табулятора на Абдурине:

Serial.print(9, BYTE);
 9.09.0
UA Non-conformist #11.02.2012 11:30  @Ckona#11.02.2012 00:57
+
-
edit
 

Non-conformist

аксакал

Ckona> Уже прошли этот путь. Ссылки и код в прилагаемом файле Accel.
Ух ты... А откуда такой экзотический способ делиться ссылками?

> Пройдись по ссылкам.
Прошёлся.


Здесь скетч для LIS302DL. Не подходит. Компилится, грузится, передача идёт, но компорт кажет буквенную кашу на всю страницу вместо трёх столбцов числовых данных. Нужен именно LIS331DL. Или, если соображаешь - надо адаптировать этот код под 331-й, руководствуясь ДШ последнего.

Ckona> Из сравнения кода гиросовского и акселевского - похоже, гиросовский писал пацанчик, а акселевский - более опытный программист. Ничего общего.
Фортранов с бейсиками я в своё время не хавал, поэтому оценить такие тонкости просто не в состоянии. Я вообще ничего не знаю о языках программирования.

Ckona> Первородный материал для программирования АРДУИНа
Спасибо, посмотрю.
Skype: a_schabanow  
UA Non-conformist #11.02.2012 11:34  @Ckona#11.02.2012 01:04
+
-
edit
 

Non-conformist

аксакал

Ckona> Какой угол зрения солнечного датчика тебя устроит в проекте КОБРА ?
Меня устроит грамотный, покладистый, стабильный (никуда не слетающий) руководитель проекта. С большим количеством свободного времени. Это основная проблема. ))
Skype: a_schabanow  
UA Non-conformist #11.02.2012 11:35  @Xan#11.02.2012 09:02
+
-
edit
 

Non-conformist

аксакал

Xan> Вывод кода табулятора на Абдурине:
Спасибо, конечно, но это не та проблема, которая стОит твоих постов.
Skype: a_schabanow  
UA Ckona #11.02.2012 12:21  @Non-conformist#11.02.2012 11:34
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> покладистый руководитель
Улыбнуло. Руководитель, который "кладет".

По ситуации с акселерометром. Здесь нужно вникать, изучая каждый оператор по примерам кода.
Прогнозировать расход времени бесполезно - "копать здесь, пока не покажется клад".
Единственный быстрый путь - готовенькое решение от подготовленного специалиста.
Хуже того - если ShadowJack не найдет/выдаст готовенькое, ему придется точно так же "корпеть", пока аксель не заработает.
 
KZ Xan #11.02.2012 12:41  @Non-conformist#11.02.2012 11:35
+
-
edit
 

Xan

координатор

Non-conformist> Спасибо, конечно, но это не та проблема,

Не поверишь, но "погромистам" с многолетним стажем приходилось аналогичное объяснять. Когда у них стопорилась работа.
Лучше перебдеть, это не дорого! :)

Ну и картинка — она ОЧЕНЬ жизненная!!! :D
 9.09.0
UA Non-conformist #11.02.2012 13:07  @Ckona#11.02.2012 12:21
+
-
edit
 

Non-conformist

аксакал

Ckona> Хуже того - если ShadowJack не найдет/выдаст готовенькое, ему придется точно так же "корпеть", пока аксель не заработает.
Если ЕМУ придётся "корпеть", тогда я вообще ничего не понимаю. Задача-то типовая. В ДШ всё расписано, надо только чисто технически-механически знать, как ОФОРМИТЬ (не написать - ОФОРМИТЬ) требования производителя.

"Корпеть" - это, я понимаю, когда про чип известно только то, что он акселерометр, к примеру. Известно где питание, земля и выход (непонятно какой). И всё. Ни регистров, ни временных диаграмм, ничего. Вот ЭТО - "корпеть" я понимаю...
Skype: a_schabanow  
UA Non-conformist #11.02.2012 13:25  @Non-conformist#11.02.2012 13:07
+
-
edit
 

Non-conformist

аксакал

Плавненько перейдём к частностям...

Вот такая строчка, например, (для LIS302DL):

Wire.send(0x21); // CTRL_REG2 (21h)

Сейчас пишут не .send, а .write - иначе компилятор ругается. Исправил.

Далее. Исходим из того, что 302 и 331 - изделия однотипные, с однотипной процедурой подготовки к работе. Я так понимаю, что (0x21) - это то состояние, в котором должен пребывать регистр CTRL_REG2 для того, чтобы акселерометр начал нормально работать. Т.е. нужно сравнить ДШ 302 и ДШ 331, и выяснить, какой регистр 331-го (имя его) соответствует регистру с именем CTRL_REG2. Выяснить, какое в него должно быть занесено шестнадцатеричное число. Переписать строчку, руководствуясь этими соображениями.

И так - до конца текста. Другого выхода я не вижу. Кроме как искать готовое. Но готового нет - инет ведь не бесконечен, и если бы что-то было в открытом доступе, то оно бы нашлось...
Skype: a_schabanow  
RU shadowjack #11.02.2012 13:28
+
-
edit
 

shadowjack

втянувшийся
Non-conformist, выложи твою текущую рабочую версию программы работы с гиро.
 5.0.15.0.1
RU shadowjack #11.02.2012 13:36
+
-
edit
 

shadowjack

втянувшийся
Во-первых, адрес. По даташиту:
#define i2cID 0b0011101 (если нога SD0 у нас притянута к лог. 1) или
#define i2cID 0b0011100 (иначе)

Скорость ком-порта вместо 57600 поставь такую же, как в проге с гиро, или поменяй в настройках монитора:
Serial.begin(57600);
 5.0.15.0.1
Это сообщение редактировалось 11.02.2012 в 13:43
RU shadowjack #11.02.2012 13:40
+
-
edit
 

shadowjack

втянувшийся
После этого должно заработать.
 5.0.15.0.1
UA Non-conformist #11.02.2012 13:55  @shadowjack#11.02.2012 13:40
+
-
edit
 

Non-conformist

аксакал

shadowjack>
Привет!

Вот программа слива данных гироскопа в компорт (ссылка приведена тобой):



Скорость поменяю. Насчёт адресов непонятно. Прошу выражаться яснее. Какую конкретно строчку надо изменить, как она должна выглядеть после редактирования? Я так понял, что редактируем код 302-го акселерометра?
Skype: a_schabanow  
RU shadowjack #11.02.2012 14:03  @Non-conformist#11.02.2012 13:55
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> bildr » L3G4200D Tripple Axis Gyroscope + Arduino
Я прошу именно твою версию - у тебя же формат вывода изменен, может чего еще.
Non-conformist> Скорость поменяю. Насчёт адресов непонятно. Прошу выражаться яснее. Какую конкретно строчку надо изменить, как она должна выглядеть после редактирования?
Вторая строчка исходного кода.
Было: #define i2cID 0x1D
стало: #define i2cID 0b0011101
(если SD0 у нас к земле, то стало: #define i2cID 0b0011100 )
Non-conformist>Я так понял, что редактируем код 302-го акселерометра?
Да
После того, как настроишь скорость, он начнет либо выдавать "no data", либо значения по осям x,y,z (только старшие байты) с частотой примерно 10 Гц.
 5.0.15.0.1
+
-
edit
 

Ckona

опытный
★☆
Non-conformist>>Я так понял, что редактируем код 302-го акселерометра?
shadowjack> Да

В текстовом файле (см. выше 00:57:57) одна из ссылок свидетельствует, что у парня заработал именно 331-й аксель.
 
UA Non-conformist #11.02.2012 15:51  @shadowjack#11.02.2012 14:03
+
-
edit
 

Non-conformist

аксакал

Заменил "send" на "write" и "receive" на "read" по всему тексту программы, в ответ на замечания компилятора.
Заменил вторую строчку на предложенную - у нас SAO/SDO притянуты к питанию и на гиросе и на акселе.
Изменил скорость на 9600.
Изменил формат вывода: убрал строчку вывода "status = 11111111" и строчку вывода "val =". Оставил только три колонки чисел, разделённых двумя двоеточиями.

Получил искомые колонки чисел в компорте. Файл прилагаю. На перемещения (перекладывания с боку на бок) датчик реагирует совершенно явным образом. Но картина не совсем благостная - много непонятного шума. Прошу комментариев.

shadowjack> ... (только старшие байты)
Почему только старшие байты? Как получить полноценные данные? Не из-за этого ли шум?

Текущие коды гироса и акселя прилагаю.
Прикреплённые файлы:
 
Skype: a_schabanow  
UA Non-conformist #11.02.2012 15:53  @Non-conformist#11.02.2012 15:51
+
-
edit
 

Non-conformist

аксакал

Текущая прошивка акселя.
Прикреплённые файлы:
 
Skype: a_schabanow  
RU shadowjack #11.02.2012 16:18  @Non-conformist#11.02.2012 15:51
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Получил искомые колонки чисел в компорте. Файл прилагаю. На перемещения (перекладывания с боку на бок) датчик реагирует совершенно явным образом. Но картина не совсем благостная - много непонятного шума. Прошу комментариев.
Это не шум, это неправильный вывод отрицательных чисел. Исправленый файл прилагаю (также заменил разделители на табуляцию). Поздравляю, акселерометр работает.
Non-conformist> Почему только старшие байты? Как получить полноценные данные? Не из-за этого ли шум?
Только старшие байты - потому что так было написано в исходной программе. Программист поленился, наверное. Сделаю считывание полного значиения.
Прикреплённые файлы:
 
 5.0.15.0.1
UA Non-conformist #11.02.2012 16:20  @Non-conformist#11.02.2012 15:51
+
-
edit
 

Non-conformist

аксакал

Non-conformist> На перемещения (перекладывания с боку на бок) датчик реагирует совершенно явным образом. Но картина не совсем благостная - много непонятного шума. Прошу комментариев.
А точнее - картина СОВСЕМ непонятная. Не в пример ситуации с гиросом, где всё однозначно и прозрачно.

Тут мало того что присутствует интенсивный шум от "максимума" до нуля, так я ещё саму физику процесса никак не уловлю... Датчик вроде как реагирует на положение в пространстве - именно на положение... "Выставить" любое значение осей, плавно изменяя положение платы относительно горизонта, нельзя. Однако можно, подбирая положение, выставить "ноль" на любой из трёх осей.

Эксперимент с ронянием платы (невесомость) - ожидаемых, да и вообще сколько-нибудь вразумительных результатов не дал: в "ноль" показания не обращались, и даже не собирались. Провалы в сторону нуля в показаниях видны ясно, но до нуля им очень далеко...

Ещё непонятный момент: что такое "56" и "200"? Двести пятьдесят шесть (или около того) - понимаю, это типа максимум шкалы. Ноль - тоже понятно. А вот эти промежуточные - каков ИХ физический смысл?
Skype: a_schabanow  
UA Non-conformist #11.02.2012 16:24  @shadowjack#11.02.2012 16:18
+
-
edit
 

Non-conformist

аксакал

shadowjack> Поздравляю, акселерометр работает.
Взаимно!

Так что, тогда в понедельничек распаиваем оставшиеся железки?

Тебе плату делать, как договаривались?
Skype: a_schabanow  
RU shadowjack #11.02.2012 16:28  @Non-conformist#11.02.2012 16:24
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Так что, тогда в понедельничек распаиваем оставшиеся железки?
Да.
Non-conformist> Тебе плату делать, как договаривались?
Давай после того, как все проверим.
 5.0.15.0.1
UA Non-conformist #11.02.2012 16:32  @shadowjack#11.02.2012 16:18
+
-
edit
 

Non-conformist

аксакал

shadowjack> Исправленый файл прилагаю (также заменил разделители на табуляцию). Поздравляю, акселерометр работает.
О, вот это я понимаю! Хо-хо!
Прикреплённые файлы:
123.png (скачать) [6,4 кБ]
 
 
Skype: a_schabanow  
RU shadowjack #11.02.2012 16:50  @Non-conformist#11.02.2012 16:32
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> О, вот это я понимаю! Хо-хо!
Попробуй новый скетч (у меня на этой машине среда ардуино не работает, так что правлю "вслепую").
Изменения:
Привел форматирование в порядок, изменил логику определения того, что считанные данные "валидные", разделители в выводе заменил на табуляцию, должен правильно обрабатываться знак (также диапазон значений должени увеличиться в 256 раз).
Скажи, работает ли как задумано.
Прикреплённые файлы:
 
 5.0.15.0.1
UA Non-conformist #11.02.2012 17:01  @shadowjack#11.02.2012 16:50
+
-
edit
 

Non-conformist

аксакал

Пока вот что получилось:
Прикреплённые файлы:
 
Skype: a_schabanow  
1 62 63 64 65 66 88

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru