Чёрный ящик на Arduino "SD card logger"

Несколько на наш взгляд интересных к повторению устройств, облегчающих управление авто

Нужно ли этот "SD card logger" добавить в "БК SECU-3T by alvikagal"

Да
24
96%
Нет
1
4%
 
Total votes: 25

Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Чёрный ящик на Arduino "SD card logger"

Post by Samtorr »

alvikagal wrote: Стоит ли в БК добавлять "SD card logger"
Для начала лучше сделать отдельное устройство,ибо не всем кому нужен даталоггер, нужен БК. А для того чтоб устройство было закончено, нужно чтоб оно понимало большинство релизов, а для этого надо либо сделать некий конфигуратор (вариантов несколько, от программы, до структуры пакета в еепром), либо открыть исходники. Разумеется запись каждый раз должна вестись в отдельный файл и не пропадать при отключении питания. А когда это все будет, тогда можно и в БК интегрировать. У Вас фат от Чена?
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by alvikagal »

Да, от Чена, только GCC ругается на последнюю версию. Много функций нужно дописывать.
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by alvikagal »

Пока разбираюсь как создавать файлы (лыжи так и не едут :lol: ), сделал пока запись следующим образом:
SD карта 1GB, скинул туда 10 файлов по 74MB и в эти файлы будут писаться логи по очереди макс. длительностью 1 час езды, затем открывается следующий и пишется в него.
Когда файлы закончились, переписывается 1 файл.
При каждом новом включении пишется в следующий файл.
Т.е. возможно записать 10 пусков и максимально 10 часов.
Если включить без карты, затем выключить и вставить карту, то сбрасывается счётчик на первый файл.

Пару дней покатаю, проверю, если будет работать как надо, то выложу в первый пост.
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
Samtorr
Posts: 342
Joined: 16 Jun 2015, 21:45
Your CAR: Golf II 1.3i
SECU version: DIY SECU-3T
Has thanked: 11 times
Been thanked: 114 times

Re: Чёрный ящик на Arduino "SD card logger"

Post by Samtorr »

Я сделал отдельный файл-счетчик, расположенный на той же карте (который создается если флешка пустая, или модифицируется) в котором хранится индекс последнего файла. При каждом включении он увеличивается на единицу и создается файл лога вида Log_NN.csv, где NN - это индекс хранимый в файле. Сам код работы с фат, если удалить все лишнее:

Code: Select all


char str_buff[STR_SIZE]={'\0'};
char str_name[NAME_SIZE]={'\0'};

FATFS FatFs;   /* FatFs work area needed for each volume */
FIL Fil;       /* File object needed for each open file */
FRESULT res;    

main()
{
UINT bw;
UINT br;
UINT cnt_log_name;

//инициализация
...
//FAT FS 
f_mount(&FatFs, "", 0);/* Give a work area to the default drive */

//Создаем и/или модифицируем файл-счетчик
    if (f_open(&Fil, "cnt.csv", FA_READ | FA_WRITE | FA_OPEN_ALWAYS) == FR_OK)
    {
        f_read(&Fil, str_name, 4, &bw);
        cnt_log_name=atoi(str_name);
        if(cnt_log_name>=0 && cnt_log_name<1000){cnt_log_name++;}
            else{cnt_log_name=0;}
        sprintf(str_name,"%u\r\n",cnt_log_name);
        Fil.fptr=0;
        f_write(&Fil, str_name, 4, &bw);
        f_close(&Fil);    
    }
    else
                {
                //что-то пошло не так ))
                 ...
                }
            
    for(;;)
    {
          
        //пишем строку в файл (по флагу)
        if(...) //условие записи (интеррвал, событие)
        {
            //получаем параметры
            ...
            //загоняем в str_buff текущее имя файла            
            sprintf(str_buff,"%s%u.csv","log_",cnt_log_name);                    
            
            //пытаемся записать в него
            if (f_open(&Fil, str_buff, FA_WRITE | FA_OPEN_ALWAYS) == FR_OK) 
            {    
                unsigned char str_buf_size=0;
                // Create a file 
                res=f_lseek(&Fil,Fil.fsize);
                
                if(res==FR_OK)
                {
                    //очищаем буфер
                    unsigned char i=0;
                                        
                    for(i=0;i<STR_SIZE;++i)str_buff[i]='\0';
                   //теперь пишем в str_buff данные                    
                    sprintf(str_buff,...);
                                        
                    //определяем размер буфера (реального)
                      i=0;            
                        for(i=0;i<STR_SIZE;++i)
                        {
                            if(str_buff[i]!='\0')str_buf_size++;
                        }
                                        
                    //пишем в файл только реально использованные символы
                    f_write(&Fil, str_buff, /*STR_SIZE*/str_buf_size, &bw);
                                            
                }
                f_close(&Fil);    // Close the file 

              if (bw == str_buf_size) 
              {        
                // все ок
                ...
              }
                else
                {
                 //что-то пошло не так ))
                 ...
                }
              
            }
            else
                {
                 //что-то пошло не так ))
                 ...
                }

        }
  
    }//end for
    }//end main

При записи строки, каждый раз текущий файл открывается и закрывается - только так можно гарантировать что при отключении питания там останутся все ранее сделанные записи. Но это несколько уменьшает предельную частоту записи в файл. Зато работает четко и без сбоев.
Подробнее можете глянуть в моем проекте
LVS
Posts: 443
Joined: 30 Apr 2013, 23:41
Your CAR: ВАЗ-21074
SECU version: DIY SECU-3
Location: Россия г. Тихорецк п. Братский.
Has thanked: 12 times
Been thanked: 68 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by LVS »

alvikagal надумал и я собрать такое устройство. Вопрос по питанию CD карты, питается она от 3v3 питание берётся от USB 5v ставил стабилизатор или на стабилитроне сделал. Я намечаю стабилизатор поставить. Приведу рисунок разъёмов CD карты, такой подходит. Слот у меня на 10 выводов правда первые два контакты которые замыкаются при вставке CD. И какие фузы выставляются на мегу.
Attachments
CD=cart.jpg
ВАЗ-21074 SECU-3_ раздача СТАТИКА 2chiq. Коммутатор на МК PIC12F675 под прошивку 2chiq. БК под SECU-3. Карбюратор ОЗОН. САУВЗ.
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by alvikagal »

Фьюзы я оставлял по умолчанию, которые были в ардуино про мини. Вечером выложу.
Питание понижал стабилизатором 3,3В.
Контакты подключать только те, что на схеме.
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
LVS
Posts: 443
Joined: 30 Apr 2013, 23:41
Your CAR: ВАЗ-21074
SECU version: DIY SECU-3
Location: Россия г. Тихорецк п. Братский.
Has thanked: 12 times
Been thanked: 68 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by LVS »

На картинке правильно отображены, буду руководствоваться по этому изображению. А фузы буду ждать.
ВАЗ-21074 SECU-3_ раздача СТАТИКА 2chiq. Коммутатор на МК PIC12F675 под прошивку 2chiq. БК под SECU-3. Карбюратор ОЗОН. САУВЗ.
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

Re: Чёрный ящик на Arduino

Post by alvikagal »

Это распиновка микроСД, а нужно SD карты.
Верхняя картинка SPI, подключать по ней переходник, а в него вставлять микроСД.
Image

Фьюзы:
Фьюзы Arduino Nano v.3.jpg
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
LVS
Posts: 443
Joined: 30 Apr 2013, 23:41
Your CAR: ВАЗ-21074
SECU version: DIY SECU-3
Location: Россия г. Тихорецк п. Братский.
Has thanked: 12 times
Been thanked: 68 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by LVS »

За фузы спасибо. Да я микро сразу хочу поставить. У меня есть карт-ридер сломанный там есть слот для микро, если ставить слот для переходника он начинает выходить за габариты корпуса карт-ридера. Твой рисунок переходника что-то не показывается перезагрузи.
Attachments
Работа с SD картой.rar
(123.78 KiB) Downloaded 208 times
ВАЗ-21074 SECU-3_ раздача СТАТИКА 2chiq. Коммутатор на МК PIC12F675 под прошивку 2chiq. БК под SECU-3. Карбюратор ОЗОН. САУВЗ.
LVS
Posts: 443
Joined: 30 Apr 2013, 23:41
Your CAR: ВАЗ-21074
SECU version: DIY SECU-3
Location: Россия г. Тихорецк п. Братский.
Has thanked: 12 times
Been thanked: 68 times
Contact:

Re: Чёрный ящик на Arduino "SD card logger"

Post by LVS »

Нарисовал плату в ЛАЙ для SD card Logger/ Всё-таки хочу сразу использовать микро SD без переходников. Просьба посмотреть правильно я соединил слот карты с МК. После USB стоят 2 перемычки на это не обращайте внимания просто на помню где на моём шнурке подходит Rxd потом поставлю какую нужно.
Attachments
SD_Plata.rar
(114.53 KiB) Downloaded 205 times
ВАЗ-21074 SECU-3_ раздача СТАТИКА 2chiq. Коммутатор на МК PIC12F675 под прошивку 2chiq. БК под SECU-3. Карбюратор ОЗОН. САУВЗ.
Post Reply

Return to “Полезные устройства для автомобиля”