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

 
1 63 64 65 66 67 88
RU shadowjack #11.02.2012 17:09  @Non-conformist#11.02.2012 17:01
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Пока вот что получилось:
Хм, странно... Сохраняешь Xan-овской программой? Может, она табуляцию на <09> заменяет при сохранении?
Замени тогда оба вхождения Serial.print("\t") на Serial.print(" ") - в эксель-то запихнешь и так без проблем, выберешь разделитель пробел.
 5.0.15.0.1
RU shadowjack #11.02.2012 17:14  @shadowjack#11.02.2012 17:09
+
-
edit
 

shadowjack

втянувшийся
shadowjack> Замени тогда оба вхождения Serial.print("\t") на Serial.print(" ") - в эксель-то запихнешь и так без проблем, выберешь разделитель пробел.
Вот, сделал сам - и еще добавил вывод времени в миллисекундах (первая колонка).
Прикреплённые файлы:
 
 5.0.15.0.1
UA Non-conformist #11.02.2012 17:34  @shadowjack#11.02.2012 17:09
+
-
edit
 

Non-conformist

аксакал

Сохранял ксановым монитором. Заменил. Результат такой же, как и с тем файлом, который ты правил вручную. Я так понимаю, что всё получилось!
Прикреплённые файлы:
 
Skype: a_schabanow  
UA Non-conformist #11.02.2012 17:41  @Non-conformist#11.02.2012 17:34
+
-
edit
 

Non-conformist

аксакал

Работает третья версия!
Прикреплённые файлы:
123.png (скачать) [7,6 кБ]
 
 
Skype: a_schabanow  
RU shadowjack #11.02.2012 17:48  @Non-conformist#11.02.2012 17:41
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Работает третья версия!
Ты лучше строй график зависимости второй колонки от первой, третьей от первой и т.д., чтобы по оси Х был не номер отсчета, а реальное время.
Да, акселерометр-то восьмибитный, так что не будет младшего байта - он единственный 8)
 5.0.15.0.1
KZ Xan #11.02.2012 18:04  @Non-conformist#11.02.2012 17:01
+
-
edit
 

Xan

координатор

Non-conformist> Пока вот что получилось:

Попробуй строчки

y_val = Wire.read();
y_val = y_val << 8;

заменить на

y_val = Wire.read() + 128;

Должно стать плавным.
 9.09.0
+
-
edit
 

Xan

координатор

Non-conformist>> Пока вот что получилось:
shadowjack> Хм, странно... Сохраняешь Xan-овской программой? Может, она табуляцию на заменяет при сохранении?

Ай, блин!

Это я все непечатные пытался отобразить, чтоб их видно было.
 9.09.0
+
-
edit
 

shadowjack

втянувшийся
Xan> Попробуй строчки
Нет, там дополнение до единицы. Если диапазон не менять, то проще всего так:
x_val = (char)Wire.read();

Или просто типы у ?_val поменять с byte на char.
Тогда считывание будет просто
x_val = Wire.read();
Правда, тогда придется при выводе преобразовывать их к int.
Но это все не принципиально.
 5.0.15.0.1

Xan

координатор

Non-conformist>>> Пока вот что получилось:
shadowjack>> Хм, странно... Сохраняешь Xan-овской программой? Может, она табуляцию на заменяет при сохранении?
Xan> Ай, блин!

Теперь табулятор будет табулятором:

http://dl.dropbox.com/u/6706516/Comport.rar

Надеюсь. Исправил, но не проверял.
 9.09.0
+
-
edit
 

Xan

координатор

Xan>> Попробуй строчки
shadowjack> Нет, там дополнение до единицы. Если диапазон не менять, то проще всего так:

У меня впечатление, что там печатаются беззнаковые целые.
А надо со знаком и всё станет гладко.
Или сместить.
 9.09.0
+
-
edit
 

shadowjack

втянувшийся
Xan>>> Попробуй строчки
shadowjack>> Нет, там дополнение до единицы. Если диапазон не менять, то проще всего так:
Xan> У меня впечатление, что там печатаются беззнаковые целые.
Xan> А надо со знаком и всё станет гладко.
Xan> Или сместить.
Да, там печатались знаковые целые как беззнаковые. Представление отрицательных чисел в большинстве современных архитектур - дополнение до 1. Если интересно, то вот код на перле, которым я привет первый файл в нормальный вид:

#! /usr/bin/perl -w
use strict;
sub fix{
my $a = int(shift);
if($a & 0b10000000){
$a = -((~$a & 0x00ff) + 1);
}
return $a;
}
my $i=0;
while(my $l = <STDIN>){
chomp $l;
my ($x, $y, $z) = split(':', $l);
$x = fix($x);
$y = fix($y);
$z = fix($z);
print "$x\t$y\t$z\n";
$i += 1;
}
 5.0.15.0.1
+
-
edit
 

shadowjack

втянувшийся
Теперь же все работает как надо. Ступеньки - это переворот на разные грани платы.
Non-conformist, можешь сделать файлик с плавным вращением вокруг разных осей?
 5.0.15.0.1
+
-
edit
 

Ckona

опытный
★☆
shadowjack> работает как надо.

Приму-ка я за успех !
 
UA Non-conformist #11.02.2012 19:17  @shadowjack#11.02.2012 18:24
+
-
edit
 

Non-conformist

аксакал

shadowjack> Non-conformist, можешь сделать файлик с плавным вращением вокруг разных осей?
В понедельник. Вращение 8,3 об/мин вокруг трёх осей поочерёдно, в обе стороны (реверсивный электромотор со встроенным редуктором).

Именно акселерометра? Или гироскопа? Гироскоп я уже катал на этом моторе, файлы и диаграммы выше по тексту.

***
А почему так скачут Х и Y:

8243 0 256 -14080
8345 256 256 -14336
8449 0 256 -14080
8552 0 256 -14336
8654 0 256 -14080
8758 256 256 -14080
8860 256 256 -14080
8964 256 256 -14080
9067 0 256 -14080
9169 256 256 -14080
9273 0 256 -14080
9375 256 256 -14080
9479 0 256 -14080
9581 0 256 -14080
9684 256 256 -14080
9788 256 256 -14336
9890 0 256 -14080
9994 256 256 -14336
10096 256 256 -14080
10200 256 512 -13824
10303 256 256 -14336
10406 256 256 -14336
10509 256 256 -14848
10612 0 256 -14336
10716 256 256 -14336
10818 256 0 -14336
10921 0 0 -14080
11025 256 256 -14080
11127 256 0 -14336
11231 0 0 -14336
11333 0 0 -14080

То ноль, то 256 ? И Z тоже на 256 скачет?
Skype: a_schabanow  
UA Non-conformist #11.02.2012 19:24  @shadowjack#11.02.2012 17:48
+
-
edit
 

Non-conformist

аксакал

shadowjack> Ты лучше строй график зависимости второй колонки от первой, третьей от первой и т.д., чтобы по оси Х был не номер отсчета, а реальное время.
Построил.
Прикреплённые файлы:
 
Skype: a_schabanow  
UA Non-conformist #12.02.2012 10:38  @Non-conformist#11.02.2012 19:24
+
-
edit
 

Non-conformist

аксакал

Да, и ПАМЯТЬ ведь надо подключить-проверить! Опять про память забыли...

зы: Мне всё-таки кажется, что дискретное скакание от нуля до двухсот пятидесяти шести - это не железо, а какой-то софтовый глюк: во-первых число "говорящее", во-вторых сразу по трём осям и одинаково, а в-третьих у гироса такого нет. У гироса именно хаотический шум, совсем небольшой в числовом выражении.
Skype: a_schabanow  
RU shadowjack #12.02.2012 15:04  @Non-conformist#12.02.2012 10:38
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Да, и ПАМЯТЬ ведь надо подключить-проверить! Опять про память забыли...
Non-conformist> зы: Мне всё-таки кажется, что дискретное скакание от нуля до двухсот пятидесяти шести - это не железо
Там все числа кратны 256 (считай, что умножены на 256). Я это делал как заготовку под младший байт. Это особо ни на что не влияет, но если тебя смущает - я привел все в норму. Проверь пожалуйста.
По памяти: какой чип? Примеры в инете не смотрел?
Прикреплённые файлы:
 
 5.0.15.0.1
UA Non-conformist #12.02.2012 15:33  @shadowjack#12.02.2012 15:04
+
-
edit
 

Non-conformist

аксакал

AT24C1024BN2GB2 (пятивольтовая).
Вот ссылки на ДШ и апноуты по теме:




***
Работает четвёртая версия, всё отлично!
Skype: a_schabanow  
RU shadowjack #12.02.2012 15:40  @Non-conformist#12.02.2012 15:33
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> AT24C1024BN2GB2 (пятивольтовая).
О, под нее есть библиотека и пример:

 5.0.15.0.1
UA Non-conformist #12.02.2012 15:41  @Non-conformist#12.02.2012 15:33
+
-
edit
 

Non-conformist

аксакал

Интересно девки пляшут...

Акселерометр работает как чистый датчик положения. Теперь это вообще чётко видно, когда кратность 256 убралась... Можно спокойно выставить любое число по любой из трёх осей, подбирая пространственное положение платы относительно горизонта. Для ракеты-то не пойдёт, там ускорения поступательного движения мешать будут, а вот для перевёрнутого маятника?
Skype: a_schabanow  
UA Non-conformist #12.02.2012 15:51  @Non-conformist#12.02.2012 15:41
+
-
edit
 

Non-conformist

аксакал

Non-conformist> Акселерометр работает как чистый датчик положения.
А именно - ось Z работает как угломер, если чип стоит ребром к поверхности стола. Кладёшь плашмя - угломерами становятся X и Y.

Углы замерить затрудняюсь, но если плата лежит плашмя - по X и Y нули (плюс-минус копейки пляшут). Приподнимаешь длинное ребро платы над плоскостью стола на 10 мм - "Y" кажет "10" (примерно), приподнимаешь противоположное длинное ребро - "Y" кажет минус 10. Та же картина наблюдается и с короткими рёбрами.
Skype: a_schabanow  
RU shadowjack #12.02.2012 15:57  @Non-conformist#12.02.2012 15:51
+
-
edit
 

shadowjack

втянувшийся
Non-conformist>> Акселерометр работает как чистый датчик положения.
Только в статике. В динамике будут и непосредственно ускорения мешать. Угол лучше замерять с помощью датчика Холла (в маятнике).
 5.0.15.0.1
UA Non-conformist #12.02.2012 16:02  @Non-conformist#12.02.2012 15:51
+
-
edit
 

Non-conformist

аксакал

shadowjack> Только в статике.
Да, это понятно, но всё равно интересно!

Сейчас проверил - линейные ускорения тоже чувствует чётко, причём и разгон и торможение (знак меняется). Контора пишет - не обдуришь!
Skype: a_schabanow  
UA Non-conformist #12.02.2012 16:05  @shadowjack#12.02.2012 15:04
+
-
edit
 

Non-conformist

аксакал

Насчёт памяти (пример и библиотека) - к самостоятельной работе с ними не готов. Прошу комментариев!
Skype: a_schabanow  
RU shadowjack #12.02.2012 16:19  @Non-conformist#12.02.2012 16:05
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Насчёт памяти (пример и библиотека) - к самостоятельной работе с ними не готов. Прошу комментариев!
Скачиваешь по этой ссылке Downloads - arduino-at24c1024 - AT24C1024 EEPROM library for the Arduino - Google Project Hosting файл E24C1024_r7.zip
Распаковываешь его в папку, где у тебя ардуино установлен/hardware/libraries
Перезапускаешь ардуино.
Делаешь новый скетч, вставляешь в него код из example. Запускаешь.
 5.0.15.0.1
1 63 64 65 66 67 88

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