Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Даталоггер для акселерометра
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Метрология, датчики, измерительная техника
Herz
Нужно быстро собрать портативное устройство для записи сигналов с акселерометра. Такой даталоггер как здесь, только для своего акселерометра.
В идеале - подключаемое по SPI к МК устройство с картой памяти. И чтобы запись велась в легко воспроизводимом на ПК формате. Есть что-то похожее, миниатюрное?
Я с записью на карту самостоятельно не сталкивался и времени осваивать нет.
Посоветуйте решение, пожалуйста.
Эдди
Самый элементарный вариант - взять raspberry PI и логгировать при ее помощи. Никакой низкоуровневой мутотени, "из коробки" есть сеть — можно просто подмонтировать внешний ресурс (ftp, ftps etc) и сразу туда писать данные.
Den64
Цитата(Herz @ Nov 8 2016, 11:22) *
...
В идеале - подключаемое по SPI к МК устройство с картой памяти. ...

CD карта подключается элементарно по SPI, без каких либо устройств.
rx3apf
А вариант с USB-флешкой не будет удобнее ? Если да, то VNC1, VNC2.
Александр1
Цитата(Herz @ Nov 8 2016, 11:22) *
Нужно быстро собрать портативное устройство для записи сигналов с акселерометра. Я с записью на карту самостоятельно не сталкивался и времени осваивать нет.

А если сигнал от акселерометра преобразовать МК в удобный для восприятия вид и через UART передать на ПК, а там через терминальную программу все это смотреть. И возможность записи уже имеется. Вопрос в том, есть ли возможность "дотянуть" ПК до акселерометра?

Цитата(Den64 @ Nov 8 2016, 11:44) *
CD карта подключается элементарно по SPI, без каких либо устройств.

А как акселерометр будет писать данные на CD-карту по SPI "без каких либо устройств"? Акселерометр только выдает данные на SPI, и не собирается никуда ничего писать. Я так понял задачу ТС. А с картой нужно как-то и кому то"общаться".
blackfin
Цитата(Herz @ Nov 8 2016, 11:22) *
В идеале - подключаемое по SPI к МК устройство с картой памяти. И чтобы запись велась в легко воспроизводимом на ПК формате. Есть что-то похожее, миниатюрное?

FatFs?
HardEgor
Цитата(Herz @ Nov 8 2016, 15:22) *
Нужно быстро собрать портативное устройство для записи сигналов с акселерометра

Уточните портативность - для кого-то это платка 5х5мм чтобы засунуть в устройство, а для кого-то платка размером с ладонь чтобы подключить к устройству.
Den64
Цитата(Александр1 @ Nov 8 2016, 14:16) *
А как акселерометр будет писать данные на CD-карту по SPI "без каких либо устройств"? Акселерометр только выдает данные на SPI, и не собирается никуда ничего писать. Я так понял задачу ТС.

А я понял так
Цитата(Herz @ Nov 8 2016, 11:22) *
...подключаемое по SPI к МК устройство с картой памяти...
Устройство с картой памяти подключаемое к МК(микроконтроллеру), а не к акселерометру.
Herz
Уточняю. Устройство должно быть меньше сигаретной пачки, работать день от батарейки. Совсем как то, по ссылке. Если бы там стоял нужный нам акселерометр - подошло бы идеально.
Будет падать в воду и погружаться на несколько метров. Герметизация - не моя задача, но - никакой связи с внешним миром. В конце дня будет поднятие со дна и снятие данных с флэшки на компьютер.

Цитата(blackfin @ Nov 8 2016, 13:47) *

Вот-вот-вот. biggrin.gif Именно этого хотелось бы избежать. То есть, у меня есть акселерометр, подключенный к PIC. Я могу передать принятые от него данные по SPI/UART и даже параллельно байтом куда-нибудь внутри коробки, но изучать FAT и прочие прелести работы с SD-card нет ни времени, ни желания. Может, когда-нибудь потом...
Den64
Цитата(Herz @ Nov 8 2016, 17:48) *
Вот-вот-вот. biggrin.gif Именно этого хотелось бы избежать. То есть, у меня есть акселерометр, подключенный к PIC. Я могу передать принятые от него данные по SPI/UART и даже параллельно байтом куда-нибудь внутри коробки, но изучать FAT и прочие прелести работы с SD-card нет ни времени, ни желания.

Там по ссылке об фат особо изучать не нужно. Там готовая библиотека, довольно удобно.
То есть данные должны быть записаны на флешку без файловой системы? Если так то тогда нужно либо писать приложение для PC с прямым доступом к данным флешки минуя файловую систему. Либо искать программы которые умеют это, такие программы уверен есть.
Ещё идея считывать флешку без файловой системы используя программатор. По разъёму типа ISP (интерфейс почти SPI).
Ещё как вариант писать в флешку в корпусе DIP-8 (или so-8 c адаптером)
Эдди
Цитата(Den64 @ Nov 8 2016, 17:58) *
Если так то тогда нужно либо писать приложение для PC с прямым доступом к данным флешки минуя файловую систему. Либо искать программы которые умеют это, такие программы уверен есть.

Не надо усложнять! Содержимое флешки элементарно копируется при помощи dd. Если настроить права через udev, то можно и по F3 в midnight commander'е смотреть содержимое флехи! Единственное, что понадобится для упрощения — в первые 8 байт флехи записать размер данных, чтобы не мучиться, копируя весь образ вместо небольшого файла.
skripach
Цитата(Herz @ Nov 8 2016, 17:48) *
у меня есть акселерометр, подключенный к PIC. Я могу передать принятые от него данные по SPI/UART и даже параллельно байтом куда-нибудь внутри коробки, но изучать FAT и прочие прелести работы с SD-card нет ни времени, ни желания. Может, когда-нибудь потом...

Вот и прицепите SD карту к своеиму пику по SPI, c FAT разбираться не нужно совсем, всё уже сделано, задача на полчаса. Можно писать данные в .csv файл не напрягаясь, потом в эксельке график построить.
Herz
Цитата(Den64 @ Nov 8 2016, 16:58) *
То есть данные должны быть записаны на флешку без файловой системы?

Наоборот. Я же написал, что нужно, чтобы "чтобы запись велась в легко воспроизводимом на ПК формате". То есть, хотя бы в текстовом, с разделителями.
Я не умею писать флешки, совсем. Ни с файловой системой, ни без.
Хочу, чтобы это за меня делала какая-то железяка. А я ей только подавал по SPI числа.

Цитата(skripach @ Nov 8 2016, 17:41) *
Вот и прицепите SD карту к своеиму пику по SPI, c FAT разбираться не нужно совсем, всё уже сделано, задача на полчаса. Можно писать данные в .csv файл не напрягаясь, потом в эксельке график построить.

Что и как сделано, не укажете конкретно? "Прицепить" - не проблема, а дальше? Как создавать, писать, модифицировать файл? Дайте ссылочку, если не трудно, на то, что имеете в виду.
blackfin
Цитата(Herz @ Nov 8 2016, 18:58) *
Наоборот. Я же написал, что нужно, чтобы "чтобы запись велась в легко воспроизводимом на ПК формате". То есть, хотя бы в текстовом, с разделителями.
Я не умею писать флешки, совсем. Ни с файловой системой, ни без.
Хочу, чтобы это за меня делала какая-то железяка. А я ей только подавал по SPI числа.

Тогда можно поставить две N25Q00AA13GSF40G.
Двух гигабит, насколько я понимаю, для записи в течении дня должно хватить..
AlexandrY
Цитата(Herz @ Nov 8 2016, 16:48) *
Уточняю. Устройство должно быть меньше сигаретной пачки, работать день от батарейки.


Есть такой дивайс -


Он сразу с аккумулятором 4.2 В. Встроена зарядка от USB. Есть управление по Bluetooth.
С вас название акселерометра и я пришлю вам этот дивайс с припаянным акселерометром и записью на микро SD.

Всего стоить будет 300 Евро.
skripach
Цитата(Herz @ Nov 8 2016, 19:00) *
Что и как сделано, не укажете конкретно? "Прицепить" - не проблема, а дальше? Как создавать, писать, модифицировать файл? Дайте ссылочку, если не трудно, на то, что имеете в виду.

Здесь берём библиотеку, там же есть примеры.
Вам нужно реализовать найти/адаптировать низкоуровневые функции для чтения/записи на карту:
Цитата
disk_status - Get device status
disk_initialize - Initialize device
disk_read - Read sector(s)
disk_write - Write sector(s)
disk_ioctl - Control device dependent functions
get_fattime - Get current time


А дальше всё просто:

Код
FATFS FatFs;   /* Work area (file system object) for logical drive */

int main (void)
{
    FIL fil;       /* File object */
    char line[82]; /* Line buffer */
    FRESULT fr;    /* FatFs return code */


    /* Register work area to the default drive */
    f_mount(&FatFs, "", 0);

    /* Open a text file */
    fr = f_open(&fil, "message.txt", FA_READ);
    if (fr) return (int)fr;

    /* Read all lines and display it */
    while (f_gets(line, sizeof line, &fil))
        printf(line);

    /* Close the file */
    f_close(&fil);

    return 0;
}


Также есть функция f_puts rolleyes.gif
Herz
Цитата(blackfin @ Nov 8 2016, 18:02) *
Двух гигабит, насколько я понимаю, для записи в течении дня должно хватить..

Тоже вариант, конечно, спасибо. Но с карточкой было бы удобнее. И с точки зрения объёма, и с точки зрения переноса информации на ПК.
А почему именно две?
Цитата(AlexandrY @ Nov 8 2016, 18:03) *
Есть такой дивайс -

Спасибо, конечно. Но боюсь не справиться с Вашим дивайсом при необходимости настроек и смены режимов акселерометра. На PIC-е мне это легко.
Цитата(skripach @ Nov 8 2016, 18:25) *
Здесь берём библиотеку, там же есть примеры.
Вам нужно реализовать найти/адаптировать низкоуровневые функции для чтения/записи на карту:
А дальше всё просто:

Э-хе-хе... Возможно, оно и несложно, и я когда-нибудь обязательно воспользуюсь советом и потренируюсь. Но сейчас мне надо быстро и надёжно.
blackfin
Цитата(Herz @ Nov 8 2016, 22:03) *
Тоже вариант, конечно, спасибо. Но с карточкой было бы удобнее. И с точки зрения объёма, и с точки зрения переноса информации на ПК.
А почему именно две?

Потому, что телепаты.. biggrin.gif

Считая, что датчик трех-осевой, 16-ти битный, с частотой семплирования 1 кГц, находим:

3*16*1000*3600*12 = 2,073,600,000 бит за 12 часов записи.
Herz
Снимаю шляпу... biggrin.gif
skripach
Цитата(Herz @ Nov 8 2016, 22:03) *
Э-хе-хе... Возможно, оно и несложно, и я когда-нибудь обязательно воспользуюсь советом и потренируюсь. Но сейчас мне надо быстро и надёжно.

Да куда уж быстрей, всего-то надо настроить SPI и разъём припаять. Дольше будете мануалы изучать на искомую железку.
jorikdima
Я в целом понял многократное нежелание разбираться в фатфс, но присоединюсь, что как раз таки этот путь может быть самый быстрый и простой.
Про распберри пи из первых постов тоже подумал бы кстати.
ViKo
Самый быстрый и простой - это SPI flash память на плате и USART в PIC для передачи в комп.
Эдди
А я бы не мучился с идиотской устаревшей vfat. Либо писать напрямую (вся флешка == файл) — все равно ведь по сути файл будет одним-единственным, либо завести нормальную ФС (скажем, ext2), а не эту долбаную fat23…
Еще один вариант — набросать на коленке элементарнейшую одноуровневую ФС (без поддиректорий). Создать под нее модуль ядра не так уж и сложно. В итоге и компьютер будет ее видеть как флешку с ФС, и МК сможет организовывать на ней хранение данных в виде отдельных файлов.
AlexandrY
Цитата(Herz @ Nov 8 2016, 21:03) *
Спасибо, конечно. Но боюсь не справиться с Вашим дивайсом при необходимости настроек и смены режимов акселерометра. На PIC-е мне это легко.


Да вы совершенно правы.

Файловая система, FAT или там еще что это даже не половина дела.
Вся сложность в реализации гибкости применения.

Здесь могу предложить несколько вариантов.
Конфигурирование настроек какие пожелаете с помощью конфигурационого текстового файла на той же микро SD карте.
Конфигурировние в терминале типа TeraTerm по USB.
Конфигурирование через программу FreeMaster. Она же обеспечивает чтение и прорисовку сигналов в реальном времени как осциллограф.

Естественно все в исходниках и с исчерпывающей документацией.

Реализация всех трех вариантов в цене учтена.

Правда мое предложение действует сегодня до обеда по GMT+2. biggrin.gif
Ruslan1
Ну вы блин даете.
файловые системы, распберри, легко-тяжело.
Дайте человеку ссылку на любой китайский USB логгер для аналогового входа с мозгами, неужели таких нет готовых?
или какой-нибудь готовый кит, который в качестве логгера может работать
Когда свой такой логгер лет 10 назад делал - так чего только не находил... А сейчас прогресс вперед ушел (наверное).
Onkel
ардуина любая потянет.
skripach
Цитата(Ruslan1 @ Nov 9 2016, 13:35) *
Дайте человеку ссылку

Так почему бы вам и не дать эту самую ссылку? santa2.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2018 Invision Power Services, Inc.