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