Чтение данных с SD карты

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Чтение данных с SD карты

Сообщение Sancho »

[ref]Дончанин[/ref], Ок, значится у Вас должно получится на этапе создания файла создать байтовый массив.
Или перегнать данные из одного в другой.

Отправлено спустя 4 минуты 4 секунды:
Тестить будем?
Байты.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Я думаю Вы смотрите более глубже и правильнее. Но моего опыта пока не хватает даже рассмотреть это теоретически. Со строками мне все понятно и даже уже получилось, а с байтами для меня темный лес. Пока учу матчасть.... Попросил товарища написать скетч чтения с SD карты, а потом попытаемся создать блок для flprog. Если получится и без тормозов, то все ок. А если нет, то будем вникать в байты.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Чтение данных с SD карты

Сообщение Sancho »

[ref]Дончанин[/ref], Написать даже по Вашей задаче - не проблема, главное - сколько символов на один кадр, судя по последнему скрину, 14.
Обработка каждого значения, для одного выхода, слишком затратна в плане ресурсов по сравнению с подготовкой изначально байт в софте и передачей их сразу в сдвиговые регистры при больших размерах исходных данных.
Читайте личку.

Отправлено спустя 31 секунду:
Готовьте железо для теста!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Завтра буду закупаться.
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Ну, в общем все получилось. Блок есть. Имеет 2 входа: Имя файла и время задержки. Выход один - строка. Читает изумительно даже длинный файл с длинными строками, в конце строки должен быть разделитель \n. На регистрах еще не пробовал (за не имением таковых), но это следующий этап. Программу с регистрами подкорректировал, теперь без переменных сразу в регистр. Но это, конечно не то, что предлагал Александр, время на сравнение данных и выборку подстрок будет тратиться, но.... когда соберу железо - посмотрим.
Все равно всем спасибо.

Отправлено спустя 44 минуты 26 секунд:
Чуток ошибся
У вас нет необходимых прав для просмотра вложений в этом сообщении.
com
Капитан
Сообщения: 832
Зарегистрирован: 31 май 2018, 22:12
Откуда: Санкт-Петербург
Имя: Ринат

Чтение данных с SD карты

Сообщение com »

[ref]Дончанин[/ref], Не могли бы Вы добавить блок полноценное описание, пин куда подключать, и т д
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Чтение данных с SD карты

Сообщение rw6cm »

com писал(а): 21 фев 2020, 14:26 пин куда подключать, и т д
Не чего там смотреть, выход на блоке весит в воздухе :shok:
Код внутри блока завязан напрямую в UART,
Они видят в терминале 0 1 и думают что все будет работать ))
Win10-64, FLProg (portable)
com
Капитан
Сообщения: 832
Зарегистрирован: 31 май 2018, 22:12
Откуда: Санкт-Петербург
Имя: Ринат

Чтение данных с SD карты

Сообщение com »

[ref=#ff8000]rw6cm[/ref], Что, модуль SD прям вот так просто без подсоединения рядом с контроллером лежит ? :D
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Чтение данных с SD карты

Сообщение Sancho »

[ref]Дончанин[/ref], О Вашем варианте. Зачем сравнивать с 0 и 1, зачем триггер - как я понимаю, если не 1, значит 0.
Зачем извлекать подстроку, если можно получить char(byte) и его сравнивать с 48 или 49?
И главное - или я ослеп, но никак не пойму, где в коде блока DS_read выходной переменной Str_exit присваивается значение, хоть какое? Может уже пора завязывать с компом...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Чтение данных с SD карты

Сообщение rw6cm »

com писал(а): 21 фев 2020, 15:27 Что, модуль SD прям вот так просто без подсоединения рядом с контроллером лежит ?
Это был бы перебор )))
сд подключен по схеме встроенного блока, CS пин4
чтобы видеть в терминале содержимое файла надо на плату добавить блок UART,
без разницы прием/передача, зайти в него и выбрать сериал 0, и все!
подключать его не надо,заливаем и смотрим нолики из файла
(не долго ~15сек, дальше буфер переполнится и флешка отвалится)
Win10-64, FLProg (portable)
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Пардон. Все правильно. В данном блоке данные выводятся в сом-порт. Это для отладки. Вот блок, где выводится в переменную String_exit. Подключается так:
cs-D4
sck-D13
mosi-D11
miso-D12

Отправлено спустя 3 минуты 14 секунд:
rw6cm писал(а): 21 фев 2020, 16:07 подключать его не надо,заливаем и смотрим нолики из файла
(не долго ~15сек, дальше буфер переполнится и флешка отвалится)
Ничего не отваливается. После каждой строки буфер обнуляется.
Работал файл с 400 строками, по 14 символов каждой. Во времени видна четкая задержка в 0.2 сек.
Могу прислать видео
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Чтение данных с SD карты

Сообщение rw6cm »

Дончанин писал(а): 21 фев 2020, 16:13 Работал файл с 400 строками
Для начала уберите 595-ю, поставьте, на триггеры 3 св диода,
напишите 4 строчки по 3 кодировки, и поморгайте светиками согласно этого кода.
Тогда можно о чем то говорить.
Win10-64, FLProg (portable)
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Чтение данных с SD карты

Сообщение Sancho »

rw6cm писал(а): 21 фев 2020, 18:58
Дончанин писал(а): 21 фев 2020, 16:13 Работал файл с 400 строками
Для начала уберите 595-ю, поставьте, на триггеры 3 св диода,
напишите 4 строчки по 3 кодировки, и поморгайте светиками согласно этого кода.
Тогда можно о чем то говорить.
Да, и я его не видел, проект.... :(
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Как и обещал. Выкладываю видео по работе блока.
Есть несколько замечаний:
1. Функцию включения светодиода приходится вырезать вручную в IDE и вставлять в цикл блока. Но это пока. Делее, думаю все исправим
2. Пришлось избавиться от пробелов в txt файле. Делается очень быстро (найти и заменить).
Файл на 400 сторок и 6 светодиодов.
Работа ардуинки
https://youtu.be/I9F25cJ2PC4
Файл в прграмме
https://youtu.be/7-jV-8zghfk
Тормозов нет вообще.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

А вот расширит. регистров пока не нашел. Очень жаль. Теперь только вторник и на др. рынке.

P.S. Вот уже около часа гирлянда играет по кругу. Все ок.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Чтение данных с SD карты

Сообщение rw6cm »

Дончанин писал(а): 23 фев 2020, 13:13 Вот уже около часа гирлянда играет по кругу
Это не тот блок про который шла речь в25 посту,
да и этот по факту тоже не рабочий, вы вынесли из него часть кода в скетч.
Если по существу блок не годится.
Вы загрузили по полной без надобности UART, и прицепились к нему прицепом, ))
да еще в основном цикле delay повесили.
Как все это будет крутится когда на шину SPI к SD еще 595 навешаете.... :smile37:
Пробуйте:
В текстовом файле убраны \n. (если вы думаете что это будет читаться как новая строка то ошибаетесь)
track1.txt
В настройке блока указываете длину и количество строк.
Sd_read_to_str.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Наконец-то добрался до компьютера.
Владимир, огромное Вам спасибо. Вместо моей крякозябры, такая красивая компактная flp. И полностью исправленный блок.
А скажите, обязательно вводить длину и количество строк или можно это сделать чтобы блок определял автоматически или может изначально указать с запасом? Ведь потом при работе вдруг понадобиться меньше/больше, что по длине массива, что по длине строки.
И второй вопрос: можно ли сделать дополнительный выход (булеан), который срабатывает когда файл заканчивается?
Это расширит некоторые возможности.
Спасибо.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Чтение данных с SD карты

Сообщение rw6cm »

Дончанин писал(а): 25 фев 2020, 08:50 обязательно вводить длину и количество строк или можно это сделать чтобы блок определял автоматически или может изначально указать с запасом? Ведь потом при работе вдруг понадобиться меньше/больше, что по длине массива, что по длине строки.
[spoiler]
Сейчас так:
Блок чтения строк с SD карты.
En - вкл/выкл
Pause - приостановить/продолжить.
Files - имя файла с расширением .txt ( мак. 13 знаков)
T_mc - задержка между строками (мс)
Len_S - длина строки (символов)
Col_S - количество строк (ставится в доступном диапазоне строк файла)
End - по достижению Col_S выдает импульс длительностью T_mc
Nstr - номер идущей строки -1 (в файле номера 1.2.3... счетчик 0.1.2...)
Outstr - выход очередной строки.
подключение mosi 11, miso 12, sck 13, (cs 4 - в настройке блока)

Длина обязательна. если строки другой длины, лучше другим файлом.
Количество выбирается любое из диапазона строк в файле.
Если поставите больше чем есть, просто будет считать пустые строки.
Чтобы можно было менять программно сделал их как входа блока.
Заодно подправил код (вместо <= по не внимательности поставил <, что давало сдвиг на один символ)
Дополнительно вывел текущий счет строк, если смотреть в UART, обязательно по фронту с привязкой по изменению счета строки,
иначе если будут подряд идти одинаковые строки, Вы их в UARTe не увидите.
Так же можно поставить условия на определенные номера строк и менять их длины на ходу,
но лучше этого не делать, можно запутаться)))
[/spoiler]
track2.txt
Sd_read_to_str1.flp
Отправлено спустя 7 часов 35 минут 12 секунд:
Сделал в блоке отдельно En и Pause, сделал пример track2.txt на 6 св диодов 100 строк.
Единственно в начале строки проходит служебный символ( не видим), хотел от него избавится, пока не удалось.
поэтому парсить строку надо с 1 символа а не с нулевого.
теперь пример на св диодах соответствует с информацией с файла.
файлы обновил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Дончанин
Рядовой
Сообщения: 80
Зарегистрирован: 08 ноя 2017, 11:31
Откуда: Донецк

Чтение данных с SD карты

Сообщение Дончанин »

Владимир. А вот по поводу подключения. SD карта использует разъемы 11 и 13, 595 микросхема, тоже их использует. Можно ли их использовать вместе, конфликта не будет? И еще, а как использовать стороннее питание 5В? например будет 4 шт 595 микросхемы, это 24 светодиода. Питания на все с ардуины не хватит. Если брать сторонний источник на все, то земля должна быть общей? Я правильно понимаю.....
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Чтение данных с SD карты

Сообщение rw6cm »

Дончанин писал(а): 26 фев 2020, 13:14 А вот по поводу подключения. SD карта
эти 5 так назовем устройств работают на шине SPI, теоретически это возможно,
на сколько они будут друг на друга влиять (СД на 595 или наоборот)прежде всего зависит от правильности кода.
Мне не приходилось использовать в одном проекте разные девайсы на CPI шине. Сказать не чего.
На счет питания конечно должно быть отдельное питание на диоды, с общей массой между бп.
Win10-64, FLProg (portable)
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость