Точно так же, как и среда программирования LEGO Mindstorms NXT-G, среда программирования нового набора EV3 тоже поддерживает работу с файлами. Манипуляции с файлами могут понадобится в многих случаях. Например, если необходимо снять показания с сенсоров и енкодеров во время выполнения роботом задания на каком-нибудь полигоне, либо чтобы получить данные какого-то эксперимента для дальнейшего их анализа. |
Блок работы с файлами расположен в палитре "Дополнения"
После установки блока в программу, становятся доступными несколько режимов работы с данным блоком:
При выборе одного из режимов блок меняет свой внешний вид, а что позволяет конфигурировать для этого блока только нужные параметры.
Вот так будет выглядеть блок в режиме "Удалить файл". Заданный файл удалиться из каталога проекта, расположенного на EV3 блоке.
Естественно в файл можно записать какие-то данные. Все данные представляются в виде строчек - один вызов блока запись в файл добавляет новую строку файл. Среда программирования EV3 преобразует типы самостоятельно, поэтому в ней больше нет блока "Из цифры в текст".
Чтение из файла может быть сделано, как для строки, так и для числа.
После работы с файлом, его крайне рекомендуется закрывать с помощью отдельной функции, предоставляемой блоком.
Имя файла, с которым работает блок задано в виде строки в верхней части блока. Оно может быть изменено, если начать набирать там другую строку.
В итоге, типовой алгоритм работы с файлом на чтение будет следующим:
- Считать данные из файла. Если данных много, то нужно использовать блок повторение.
- После чтения файла, его нужно закрыть.
- Удалить предыдущую версию файла. Если этого не сделать, то последующая запись будет добавляться в конец существующего файла, т.е. старые данные будут вместе с новыми. Если файла еще нет на блоке, программа корректно обработает эту ситуацию автоматически без всяких сообщений об ошибке.
- Запись в файл. Если данных много, то они записываются в цикле. На каждой итерации цикла делается добавление новой строчки в файл.
- Закрытие файла, после выполнения последней операции записи. Если файл не закрыть, то последующее чтение из него в этой же программе будет невозможно.
Блок после этого изменит свой вид:
Вот пример программы, где это может использоваться: робот 6 раз запускают по разным частям полигона, где он считывает показания датчика цвета в режиме замера освещенности. Для каждого прогона робота создается свой собственный файл: test_1, test_2, test_3, ...
Следующий пример программы показывает, как можно выгрузить данные работы программы в виде CSV файла (формат с разделителем в виде ";"). Этот файл понимается программой электронных таблиц Excel - данные можно представить в виде табличек и выполнить их анализ, используя всю мощь этой популярной программы.
Нужно обратить внимание, что первой операцией в файл в случае форматированных файлов должна быть строка с названиями элементов (столбцов), которые будут записываться в дальнейшем.
После запуска программ, работающих с файлами, естественно хочется их загрузить на PC или ноутбук и там открыть. Для этого нужно точно знать имя проекта, в рамках которого программа по записи данных в файл работала, - полученный файл будет хранится в папке проекта, совпадающей по имени с именем проекта.
Итак, нажимаем кнопку с символическим изображением жесткого диска компьютера:
Открывается окно с содержим внутренней памяти EV3 блока:
Нужно найти папку проекта и в ней файл по имени, которое было задано в верхней части блока:
Файл найден? Нажимаем на "Загрузить".
Открывается окно для выбора места, куда будем загружать и под каким именем.
После того, как файл загружен, он может быть найден на файловой системе и открыт. Если расширение файла при записи было задано (.csv), то файл откроется автоматически программой Excel.
Как только файл открыт, данные в нем представлены в виде нескольких столбцов. Поскольку с данных может быть много, то имеет смысл рассмотреть их, когда они представлены в графической форме в виде графика:
Такой инструмент анализа работы сенсоров и моторов нового набора EV3 является основным для авторов блога. Хочется надеяться, что он будет полезным для кого-либо еще!
Гавно твой туториал
ОтветитьУдалитьСпасибо за помощь!
ОтветитьУдалитьОЧень полезно. Спасибо!
ОтветитьУдалитьКак из файла вывести данные в массив?
ОтветитьУдалить