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

 
1 64 65 66 67 68 88
UA Non-conformist #12.02.2012 16:42  @shadowjack#12.02.2012 16:19
+
-
edit
 

Non-conformist

аксакал

shadowjack> Делаешь новый скетч, вставляешь в него код из example. Запускаешь.
Вот это непонятно, прошу поподробнее. Как сделать новый скетч? Открыть пустое окно в смысле? Если да, то из какого example вставлять в него код? Из скачанной библиотеки?

Вставил, но он не компилится, кажет ошибку "No such file or directory". Наверное, что-то не туда распаковал. Библиотека E24C1024 сейчас лежит в libraries. В качестве кода для компиляции беру файл EEPROM1024.pde который лежит в папке examples, которая лежит в папке E24C1024, которая лежит в папке libraries.
Skype: a_schabanow  
RU shadowjack #12.02.2012 16:48  @Non-conformist#12.02.2012 16:42
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Вставил, но он не компилится, кажет ошибку "No such file or directory".
Нужно WProgram.h заменить на Arduino.h (в файлах библиотеки тоже, если там есть упоминание WProgram.h).
Это изменение произошло недавно, в версии Arduino 1.0
 5.0.15.0.1
UA Non-conformist #12.02.2012 17:19  @shadowjack#12.02.2012 16:48
+
-
edit
 

Non-conformist

аксакал

Сделал. При попытке компиляции выдаёт ошибку "WConstants.h: No such file or directory".
Skype: a_schabanow  
RU shadowjack #12.02.2012 17:24  @Non-conformist#12.02.2012 17:19
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Сделал. При попытке компиляции выдаёт ошибку "WConstants.h: No such file or directory".
WConstants.h тоже заменяй на Arduino.h
 5.0.15.0.1
UA Non-conformist #12.02.2012 17:27  @Non-conformist#12.02.2012 17:19
+
-
edit
 

Non-conformist

аксакал

Не могу найти в тексте проги это "WConstants.h". Такого там нет, брал на поиск. Откуда компилятор берёт этот заголовок, если его вообще нет в тексте?

Может поможет полный текст ошибки: ...\libraries\E24C1024/E24C1024.h:47:24: error: WConstants.h: No such file or directory
Skype: a_schabanow  
RU shadowjack #12.02.2012 17:29  @Non-conformist#12.02.2012 17:27
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Может поможет полный текст ошибки: ...\libraries\E24C1024/E24C1024.h:47:24: error: WConstants.h: No such file or directory
Не в тексте проги, а в файле E24C1024.h и есть упоминание. Поменяй там. И да, текст ошибок лучше сразу полностью.
 5.0.15.0.1
UA Non-conformist #12.02.2012 17:31  @Non-conformist#12.02.2012 17:27
+
-
edit
 

Non-conformist

аксакал

Попробовал дописать WConstants.h в список библиотек, соблюдая пунктуацию по образу и подобию других заголовков. Выдаёт ту же ошибку.
Skype: a_schabanow  
UA Non-conformist #12.02.2012 17:39  @Non-conformist#12.02.2012 17:31
+
-
edit
 

Non-conformist

аксакал

Сделал. Выдало старые ошибки по read и write. Исправил. Скомпилил, залил, сохранил исправленный скетч.

Что теперь оно должно делать? Как убедиться в том, что память работает как положено?
Skype: a_schabanow  
RU shadowjack #12.02.2012 17:48  @Non-conformist#12.02.2012 17:39
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Сделал. Выдало старые ошибки по read и write. Исправил. Скомпилил, залил, сохранил исправленный скетч.
Non-conformist> Что теперь оно должно делать? Как убедиться в том, что память работает как положено?
Смотри в мониторе, чего оно выводит. Это тест скорости записи и чтения.
 5.0.15.0.1
UA Non-conformist #12.02.2012 18:01  @shadowjack#12.02.2012 17:48
+
-
edit
 

Non-conformist

аксакал

Во встроенном Мониторе написано:
Write By Byte Test
Writing data ......
И медленно добавляются точки (одна точка примерно за десять секунд). Это надолго?
Skype: a_schabanow  
RU shadowjack #12.02.2012 18:20  @Non-conformist#12.02.2012 18:01
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> И медленно добавляются точки (одна точка примерно за десять секунд). Это надолго?
Если я правильно посчитал, всего 26 точек будет.
 5.0.15.0.1
UA Non-conformist #12.02.2012 18:36  @shadowjack#12.02.2012 18:20
+
-
edit
 

Non-conformist

аксакал

Прошёл тест, всё ОК.

Writing data DONE
Total time (sec) 722
Write operations per second 181

Reading data DONE
Total time (sec) 83
Read operations per second 1579
Total errors 0

Это нормальные скорости?

***
А как теперь научиться складывать данные с датчиков в память, а потом их оттуда читать?
Skype: a_schabanow  
RU shadowjack #12.02.2012 18:46  @Non-conformist#12.02.2012 18:36
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Прошёл тест, всё ОК.
Non-conformist> Writing data DONE
Non-conformist> Total time (sec) 722
Non-conformist> Write operations per second 181
Non-conformist> Reading data DONE
Non-conformist> Total time (sec) 83
Non-conformist> Read operations per second 1579
Non-conformist> Total errors 0
Non-conformist> Это нормальные скорости?
Скорости совсем не радуют (в основном - скорость записи). Нужно определиться, что мы будем писать и с какой частотой. Пока что получается 181 байт/сек. Возможно, пакетами писать быстрее получится.
Non-conformist> А как теперь научиться складывать данные с датчиков в память, а потом их оттуда читать?
В начале программы пишешь #include <E24C1024.h>
EEPROM1024.write(адрес, значение) - записать байт
EEPROM1024.read(адрес) - считать.

Какой датчик пишем на пробу - акселерометр?
 5.0.15.0.1
+
-
edit
 

GOGI

координатор
★★★★
shadowjack> Скорости совсем не радуют (в основном - скорость записи). Нужно определиться, что мы будем писать и с какой частотой. Пока что получается 181 байт/сек. Возможно, пакетами писать быстрее получится.
А вы чего, побайтно пишете? Конечно же надо страницами, учитывая что памяти дофига, то можно по 256 байт писать, у ней же 3 мс время записи, без разницы, пишем байт или всю страницу. Ну и ресурс при постраничной записи расходуется в 256 раз медленнее. А с учетом, что на 5 Вольт память, ЕМНИП до мегагерца гонится, скорость получается весьма приличной.
1  10.010.0
UA Non-conformist #12.02.2012 19:32  @shadowjack#12.02.2012 18:46
+
-
edit
 

Non-conformist

аксакал

> В начале программы пишешь #include <E24C1024.h>
Это понятно.

> EEPROM1024.write(адрес, значение) - записать байт
Непонятно где конкретно эта строчка должна стоять (в тексте программы), и что означают слова в круглых скобках. То, что "писать" - это по-английски "write" - это я понимаю...
Skype: a_schabanow  
UA Non-conformist #12.02.2012 20:02  @shadowjack#12.02.2012 18:46
+
-
edit
 

Non-conformist

аксакал

shadowjack> Какой датчик пишем на пробу - акселерометр?
Да уж лучше сразу гироскоп, наверное. Акселерометр - штука вспомогательная, чисто для расширения сознания. Его можно оставить на потом.

По частоте записи. Думаю, что в данном случае записывать нужно с частотой, не сильно превышающей частоту срабатывания клапанов. Типа - пшикнули_записали_пшикнули_записали. Таким образом, каждая запись будет регистрировать последствия предыдущего пшика. Имхо чаще ни к чему. Третью ось гироскопа можно вообще не писать, она не стабилизируется. Акселерометр писать раз двадцать в секунду, наверное. Или у ГОГИ спросить, с какой частотой высотомер у него пишет. Стандарт поддержать.

Два байта гироскопа, три байта акселерометра, пусть на тридцать герц - итого ~ 150 Б/сек... Вроде как всё вполне нормально получается? Плюс резервы, о которых говорит ГОГИ...
Skype: a_schabanow  
UA Non-conformist #12.02.2012 20:20  @Non-conformist#12.02.2012 20:02
+
-
edit
 

Non-conformist

аксакал

shadowjack>
Так что, катать завтра акселерометр на моей карусели? Или ты всё-таки имел в виду гироскоп?
Skype: a_schabanow  
+
-
edit
 

shadowjack

втянувшийся
GOGI> А вы чего, побайтно пишете?
Ага, побайтно. Так в библиотеке реализовано, и нам нужно было по-быстрому проверить, работает ли память. Я еще даташит не читал - прочитаю, допишу библиотеку (реализую постраничную запись).
GOGI> А с учетом, что на 5 Вольт память, ЕМНИП до мегагерца гонится, скорость получается весьма приличной.
Ну у нас контроллер только до 400 кГц может, но все равно достаточно быстро.
 5.0.15.0.1
RU shadowjack #12.02.2012 20:35  @Non-conformist#12.02.2012 20:20
+
-
edit
 

shadowjack

втянувшийся
Non-conformist> Так что, катать завтра акселерометр на моей карусели? Или ты всё-таки имел в виду гироскоп?
Если ты уверен, что все работает как надо - то не нужно. Только для очистки совести.
 5.0.15.0.1
RU GOGI #12.02.2012 20:45  @Non-conformist#12.02.2012 20:02
+
-
edit
 

GOGI

координатор
★★★★
Non-conformist>Или у ГОГИ спросить, с какой частотой высотомер у него пишет. Стандарт поддержать.
Неправильное рассуждение. Писать надо с наибольшей доступной частотой, тем более что тут она не такая и большая.
1  10.010.0
UA Non-conformist #12.02.2012 20:56  @shadowjack#12.02.2012 20:35
+
-
edit
 

Non-conformist

аксакал

shadowjack> Если ты уверен, что все работает как надо - то не нужно. Только для очистки совести.
Тогда уж интереса ради, а не очистки для!

Если ось вращения карусели будет горизонтальна (вращение в вертикальной плоскости), то вроде как получается, что график зависимости "Х" от "Y" будет иметь вид окружности? Типа фигуры Лиссажу, две синусоиды по двум осям? Это нельзя пропустить!


GOGI> Писать надо с наибольшей доступной частотой ...
Ну что же - разумно...
Skype: a_schabanow  
UA Non-conformist #12.02.2012 20:59  @Non-conformist#12.02.2012 20:56
+
-
edit
 

Non-conformist

аксакал

Non-conformist> Ну что же - разумно...
Но если не привязывать циклы записи к срабатываниям клапанов, то надо писать и срабатывания клапанов, чтобы строить графики не по времени, а по этим самым срабатываниям.
Skype: a_schabanow  
RU GOGI #12.02.2012 21:41  @Non-conformist#12.02.2012 20:59
+
-
edit
 

GOGI

координатор
★★★★
Non-conformist> Но если не привязывать циклы записи к срабатываниям клапанов, то надо писать и срабатывания клапанов, чтобы строить графики не по времени, а по этим самым срабатываниям.
А смысл? У компьютера те же входные данные, что и у МК, он и сам может просчитать, когда клапаны срабатывают, достаточно знать алгоритм, заложенный в МК. Писать необходимо только входные сигналы.
1  10.010.0

GOGI

координатор
★★★★
Смотрю я на эти Ардуиновские библиотеки, конкретно, библиотеку AT24C1024. Это ж вам больше переписывать, чем использовать готовое. Блочной записи нет, чтения нет, нифига нет. А уж задержку записи держать внутри функции - вообще преступление. И какая там однако неприятная библиотека Wire. Уж лучше б использовать апноут Атмеловский (AVR315 если не глючит память). Одна функция для всей работы с любыми I2C устройствами.
Так что переходите лучше на чистый Си, а то будет как у меня в свое время с Bascom - жалеть о потраченном в свое время времени.
1  10.010.0
AD Реклама Google — средство выживания форумов :)
+
-
edit
 

shadowjack

втянувшийся
GOGI> чтения нет, нифига нет.
Ну как же нет? Есть, конечно. Зато работает. Меняем поризводительность на скорость разработки. Библиотеку допилим.
GOGI> А уж задержку записи держать внутри функции - вообще преступление.
Зато воспользоваться библиотекой - элементарно. Ардуино рассчитана же на неопытных пользователей.
GOGI> И какая там однако неприятная библиотека Wire.
А чем она неприятная?
GOGI> Так что переходите лучше на чистый Си
Так это и есть почти чистый C (C++ на самом деле). Никто не мешает напрямую работать с регистрами, скажем (только переносимостью придется пожертвовать).
 5.0.15.0.1
1 64 65 66 67 68 88

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