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

 
1 75 76 77 78 79 88
UA Non-conformist #20.03.2012 23:12  @Ckona#20.03.2012 22:50
+
-
edit
 

Non-conformist

аксакал

А вообще не знаю. Не настолько я уверен в своём музыкальном слухе, чтобы однозначно утверждать - один или четыре килогерца. Если надо, то могу завтра измерить. Хотя помнится мне, что в ДШ на эту пищалку в графе "частота" был дан диапазон, причём вроде как не узкий... Впрочем, ДШ ты можешь посмотреть самостоятельно - маркировка этой пищалки хорошо ищется Гуглем. Я её не помню, а остальные пищалки на работе.

Да, и верблюжье молоко - это серьёзно...
Skype: a_schabanow  
UA Non-conformist #21.03.2012 22:59  @Non-conformist#20.03.2012 23:12
+
-
edit
 

Non-conformist

аксакал

Из трёх купленных мной пищалок две оставшиеся пищат на 3,7 кГц плюс/минус копейки.
Skype: a_schabanow  
UA Ckona #22.03.2012 01:05  @Non-conformist#21.03.2012 22:59
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> пищат на 3,7 кГц плюс/минус копейки.
Ага, таки 4 кГц (диски изначально клЁпают на 1 или 4). Ну значит, в программе миллисекундами не обойтись.
 
UA Non-conformist #22.03.2012 01:39  @Ckona#22.03.2012 01:05
+
-
edit
 

Non-conformist

аксакал

Какими миллисекундами? В пищалке встроенный генератор с возбуждением на резонансной частоте пластины. Постоянку +14 В подаёшь и всё.
Skype: a_schabanow  
UA Ckona #22.03.2012 11:27  @Non-conformist#22.03.2012 01:39
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> В пищалке встроенный генератор
Тю ! Я до сих пор всегда просто с пьезокерамикой дело имел. Надо же...
 
+
-
edit
 

shadowjack

втянувшийся
Ckona, попробуй пожалуйста последнюю выложенную версию.
 11.011.0
+
-
edit
 

Ckona

опытный
★☆
shadowjack> Ckona, попробуй пожалуйста последнюю выложенную версию.
В субботу 24 марта.
 8.08.0

Ckona

опытный
★☆
Ckona> В субботу
Программа нормально работает.
Идет быстро-быстро поток цифр.
С такой скоростью программа Ксаныча уже не переваривает.
В файл записывается какая-то галиматья из символов.

Снять данные удалось, останавливая прокрутку в окне SerialMonitor и копируя.
Я поворачивал Ардоскоп на 90 градусов по оси Х таким образом, что сначала вертикальной была ось Z, а потом ось У.

Данные в файле (три угловых и три линейных ускорения на одну строку) подтверждают, что так и было -
угловое ускорение по оси Х, линейное сначала по Z, потом по Y, все это синхронно.

Также "зафиксировал" изменение знака ускорения по оси Z при переворачивании ардоскопа.
Прикреплённые файлы:
 
 

Xan

координатор

Ckona> С такой скоростью программа Ксаныча уже не переваривает.

Фигасе!
Там какая скорость?
 9.09.0

Ckona

опытный
★☆
Ckona>> С такой скоростью программа Ксаныча уже не переваривает.
Xan> Фигасе!
Xan> Там какая скорость?

Я установил 115200 в твоей программе.
Не исключаю, что где-то что-то я сам некорректно сделал.

Но чувствуется, что скорость потока данных намного выше.
Например, "штатный" SerialMonitor сначала "раздупляется" (какие-то значки),
потом "одумывается" (пишет, что он есть сериал монитор и щас будет работать),
затем уже нормальный поток цифр.

А может, виноват 6-метровый USB кабель ?
Во всяком случае, нет никаких оснований для претензий !

Если я правильно понимаю, поток данных может отображаться ИЛИ в SerialMonitor, ИЛИ фиксироваться программой COMPORT.
Может быть, проблемы вследствие того, что я их поочередно включаю/выключаю, а т.н."процесс" в компьютере продолжается (не выгружено из памяти ?).
Еще раз - никаких оснований для замечаний нет.
 

Xan

координатор

Ckona> Я установил 115200 в твоей программе.

Контроль чётности есть?

Внизу окна какие-нибудь ошибки пишет?

У меня (с другой прогой) бывало, что скорости драйвера не хватало, были ошибки overflow.
Особенно это проявлялось, когда берёшь какое-нибудь (любое) окно "за шкирку" и начинаешь им по экрану елозить. Проц нагружается и неуспевает.

В этой проге такая ситуация не побеждена ещё, не нужно было.
Ну, надо, наверное, сделать.
 9.09.0

Xan

координатор

Ckona>

Вставил в свою прогу более "продвинутую" работу с компортом:
http://dl.dropbox.com/u/6706516/Comport.rar
И микроскопические изменения в инструкции.
 9.09.0

Ckona

опытный
★☆
Xan> Вставил в свою прогу более "продвинутую" работу с компортом:

Спасибо ! Завтра планирую продолжить.
Потому что прояснилась последовательность работы Ардоскопа на борту.
 

Ckona

опытный
★☆
Ckona> Потому что прояснилась последовательность работы Ардоскопа на борту.

Зимой изделие "Пеликан", как все нормальные ракеты, хранилось в подземном бункере (замаскированное картошкой).
Вчера оно было извлечено.
Предполагается следующее функционирование вертикальной стабилизации.

Изделие находится на стартовой позиции, заправленное и заряженое.

1. Прием внешней команды готовности.
2. Разовое измерение начальной ориентации оси ракеты и определение угла отклонения от гировертикали.
3. Однократная сигнализация готовности контроллера системы вертикальной стабилизации.
4. Определение момента запуска по осевому ускорению.
5. Непрерывное измерение угловых ускорений и выработка корректирующих импульсов, а также звуковая сигнализация.
6. По возможности - траекторные измерения и их фиксация на борту.
7. По таймеру - прекращение выдачи корректирующих импульсов и прекращение траекторной регистрации.

Таким образом, "дрейф нуля" может внести погрешность лишь от момента разгона по стартовой направляющей до завершения корректируемого участка, фактически это 4 секунды.
 
UA Non-conformist #26.03.2012 13:05  @Ckona#26.03.2012 10:54
+
-
edit
 

Non-conformist

аксакал

Ckona> 2. Разовое измерение начальной ориентации оси ракеты и определение угла отклонения от гировертикали.
Куда смотрит ракета в момент включения питания гироскопа - там ей и "гировертикаль".

Ckona> 7. По таймеру - прекращение выдачи корректирующих импульсов и прекращение траекторной регистрации.
А зачем прекращать траекторную регистрацию? Её после приземления надо прекращать, этот момент должен легко детектироваться.

Ckona> ... "дрейф нуля" ...
Он ничтожен не то что на четырёх секундах, но имхо и на сорока.
Skype: a_schabanow  
UA Ckona #26.03.2012 13:38  @Non-conformist#26.03.2012 13:05
+
-
edit
 

Ckona

опытный
★☆
Non-conformist> Куда смотрит ракета в момент включения питания гироскопа - там ей и "гировертикаль".
Вот этого как раз и не хочется.
Слово "гировертикаль" - это моя грубая терминологическая ошибка, не подумал.
Речь идет о гравитационной вертикали - есть нужный термин для этого, не могу вспомнить.
Затея в том, чтобы стартуя с некоторым наклоном (допустим, 15 градусов), ракета самостоятельно поворачивала на вертикаль.
Твоими усилиями Ардоскоп оказался обеспечен трехосным акселерометром ! - перед стартом надо померять Ах, Ау, Az и вычислить перекос стартовой направляющей.

Ckona> По таймеру - прекращение выдачи корректирующих импульсов и прекращение траекторной регистрации.
Это два разных момента времени. Конечно, траекторную регистрацию надо прекращать заведомо после завершения полета, но тут надо знать емкость памяти. А пшикалками незачем щелкать сразу после израсходования давления в баллонах.
 
UA Non-conformist #26.03.2012 15:08  @Ckona#26.03.2012 13:38
+
-
edit
 

Non-conformist

аксакал

Ckona> ... перед стартом надо померять Ах, Ау, Az и вычислить перекос стартовой направляющей.
В случае балансирующих роботов, в вычислении гравитационной вертикали задействованы одновременно гироскоп и акселерометр, и нормально отлаженный робот торчит на одном месте (гравитационно-вертикально то есть) сколь угодно долго, пока питание есть. Поэтому я и спрашивал, почему у тебя такая странная конструкция перевёрнутого маятника.

>... емкость памяти.
Там 2 ГБ памяти. Нужно посчитать, насколько её хватит писать шесть каналов на актуальной скорости. Выше по тексту это уже прикидывалось, сейчас можно уточнить. По-моему минут на пятнадцать записи должно хватить.
Skype: a_schabanow  

Xan

координатор

Ckona>

Засклерозил счётчик принятых байтов подключить. Новый эгзешник положил.
На скорости 115200 не проверял, сейчас в работе другая железка, а на 38400 никаких глюков не видно.
 9.09.0

Ckona

опытный
★☆
Xan> На скорости 115200 не проверял,
Ксаныч !
Работает !
Соорудил "типастенд" с шарниром, присобачил к нему ардоскоп в коробочке и "сижу тащусь".
Щас буду графики строить. Сильно мешает кабель - трение в шарнире мизерное, он в центре тяжести, кабель это все на упор выводит.
 

Ckona

опытный
★☆
Ckona> Работает !

Вот, пожалуй, наглядный и информативный график.
"Весовой макет" - это полутораметровый стержень, подвешенный почти за центр тяжести и облепленный в некоторых местах пластилином с противовесами (гайки, отвертки и проч.)
Возле шарнира - Ардоскоп, начальный угол отклонения 15-20 градусов.

Хорошо видны высокочастотные колебания плохого крепления Ардоскопа и вибрации длинного стержня.

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

Ckona

опытный
★☆
Ckona> "типастенд"

Как же легко запутаться !

Отклонение маятника в направлении оси Х является поворотом вдоль оси Y, но изменяет составляющую ускорения по оси Х.

(это я обрабатываю данные, надо еще кофе жахнуть)
 

Ckona

опытный
★☆
Ckona> обрабатываю данные

Информирую участников проекта о продвижении по решению задачи "определение стартовой невертикальности направляющей".

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

Маятник снабжен стержнем длиной 1 метр, перекос стержня измерялся линейками по расстоянию от шарнира до вертикального отвеса с верхнего конца стержня.
После соответствующих измерений и расчетов сравнивались два угла: 1) измеренный линейками с помощью отвеса 2)измеренный Ардоскопом по составляющим ускорения.

Было проведено три серии измерений.
На "отчетной" картинке одноименные углы показаны одним цветом.

Выводы:
1) теория уже не "темный лес",
2) Ардоскоп на подвеске "первого тыка" позволяет "измерять вертикаль" с точностью 4-5 градусов,
3) потенциально точность можно улучшить в 3-5 раз за счет доработки подвески или программными поправками.
Прикреплённые файлы:
 
 

Ckona

опытный
★☆
ShadowJack:

Чем отличается "конструкция"
d->accel_x
от переменной
accel_x
?

В цикле loop надо провести обработку измеренных значений ускорения.
В твоей последней версии софта 6 измеренных отсчетов сгруппированы в тип значения struct.
Допустим, мне нужно "выковырнуть" из struct три из них и обработать:
W = SQRT (Wx**2+Wy**2+Wz**2).

Так в качестве Wx (Wy, Wz) надо писать d->accel_x или просто accel_x ?

Из операции Serial.Print следует, что вроде как d->accel_x, но для уверенности - спрашиваю...


Поковырявшись, подозреваю, что надо сначала как-то "расшить групповуху" struct на 6 чисел:
error: base operand of '->' has non-pointer type 'imu_data'
 
Это сообщение редактировалось 02.04.2012 в 01:16
+
-
edit
 

shadowjack

втянувшийся
Ckona> Чем отличается "конструкция" d->accel_x
Ckona> от переменной accel_x?
Ну стрелочка - это обрашение к полю структуры по указателю. Т.е. в данном случае d - это не структура, а указатель на структуру. Т.е. такая запись означает "взять поле accel_x структуры, на которую указывает d".
Ckona> Так в качестве Wx (Wy, Wz) надо писать d->accel_x или просто accel_x ?
В данном случае нужно писать d.accel_x, т.к. в данном случае d - это структура, а не указатель. Пусть тебя не смущают одинаковые названия (d) в loop и других функциях, это разные переменные (у них разные области видимости).
Ckona> error: base operand of '->' has non-pointer type 'imu_data'
Именно потому, что я написал выше. Здесь вместо -> нужно писать точку (.)
Про указатели советую почитать на просторах интернета, типа такого: Книга по С - Указатели
 11.011.0
+
-
edit
 

Ckona

опытный
★☆
shadowjack> В данном случае нужно писать d.accel_x

Ага. Понял.

Это профессиональный эквивалент обезьянолюбительского:
void destruct(struct imu_data *d) {
Wx=d->accel_x;
Wy=d->accel_y;
Wz=d->accel_z;
}

Убедился, что значение ускорения, вычисленое по трем составляющим, составляет 56 или 57 НЕЗАВИСИМО от ориентации Ардоскопа.

Следующий шаг - подключить к Ардоскопу внешний мощный источник тока и обеспечить загорание лампочки, а также пищание - как оказалось, в пищалке встроенный генератор, достаточно только включить.

Еще такой вопрос - по акселерометру.
Чувствительность его устанавливается каким-то разрядом, программно.
Я не сильно искал, но пока не нашел, где и как в твоем коде устанавливается этот разряд (чувствительность) ?
В принципе, оно и не сильно надо, "летный" диапазон должен быть 8G - вопрос из любопытства.
 
1 75 76 77 78 79 88

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