Руководство по подключению OpenLog
Введение
Внимание! Это руководство по Open Log для последовательного UART [DEV-13712]. Если вы используете Qwiic OpenLog для IC [DEV-15164], обратитесь к руководству по подключению Qwiic OpenLog.
OpenLog Data Logger — это простое в использовании решение с открытым исходным кодом для регистрации последовательных данных из ваших проектов. OpenLog предоставляет простой последовательный интерфейс для регистрации данных из проекта на карту microSD.SparkFun OpenLog
• ДЕВ-13712SparkFun OpenLog с заголовками
• ДЕВ-13955
продукт не найден
Требуемые материалы
Чтобы полностью пройти этот урок, вам понадобятся следующие части. Вам может не понадобиться все, в зависимости от того, что у вас есть. Добавьте это в корзину, прочитайте руководство и при необходимости настройте корзину.
Руководство по подключению OpenLog Список пожеланий SparkFun
![]() |
Ардуино Про Мини 328 – 3.3 В/8 МГц ДЕВ-11114 Он синий! Он тонкий! Это Arduino Pro Mini! Минималистичный подход SparkFun к Arduino. Это 3.3-вольтовый Arduino … |
![]() |
Базовый разъем SparkFun FTDI – 3.3 В ДЕВ-09873 Это новейшая версия нашего [FTDI Basic](http://www.sparkfun.com/commerce/product_info.php?products_idзнак равно |
![]() |
USB-кабель SparkFun Cerberus – 6 футов КАБ-12016 У вас неправильный USB-кабель. Неважно, какой у вас кабель, он неправильный. Но что, если бы вы могли… |
![]() |
SparkFun OpenLog ДЕВ-13712 SparkFun OpenLog — это регистратор данных с открытым исходным кодом, который работает через простое последовательное соединение и поддерживает… |
![]() |
Карта microSD с адаптером – 16 ГБ (класс 10) КОМ-13833 Это карта памяти microSD класса 10 объемом 16 ГБ, идеально подходящая для размещения операционных систем для одноплатных компьютеров… |
![]() |
USB-ридер microSD КОМ-13004 Это потрясающий маленький USB-ридер microSD. Просто вставьте карту microSD во внутреннюю часть USB-разъема, т… |
![]() |
Женские заголовки PRT-00115 Один ряд из 40 отверстий, гнездовой разъем. Можно отрезать по размеру с помощью пары кусачек. Стандартный интервал .1″. Мы используем … |
![]() |
Провода-перемычки Premium 6″ M/M, упаковка из 10 шт. PRT-08431 Это эксклюзив SparkFun! Это 155-миллиметровые длинные перемычки с разъемами-папа на обоих концах. Используйте их для… |
![]() |
Разрывные мужские заголовки – под прямым углом PRT-00553 Ряд прямоугольных штыревых разъемов – разломайте для подгонки. 40 контактов, которые можно обрезать до любого размера. Используется с индивидуальными печатными платами или… |
Рекомендуемая литература
Если вы не знакомы или не уверены в следующих концепциях, мы рекомендуем прочитать их, прежде чем продолжить работу с Руководством по подключению OpenLog.
Как паять: пайка через сквозные отверстия
В этом руководстве вы найдете все, что вам нужно знать о пайке сквозных отверстий.
Последовательный периферийный интерфейс (SPI)
SPI обычно используется для подключения микроконтроллеров к периферийным устройствам, таким как датчики, сдвиговые регистры и SD-карты.
Последовательная связь
Концепции асинхронной последовательной связи: пакеты, уровни сигналов, скорости передачи данных, UART и многое другое!
Основы последовательного терминала
В этом руководстве вы узнаете, как взаимодействовать с последовательными устройствами с помощью различных приложений-эмуляторов терминала.
Аппаратное обеспечение болееview
Власть
OpenLog работает со следующими настройками:
Номинальные мощности OpenLog
Вход VCC | 3.3 В–12 В (рекомендуется 3.3 В–5 В) |
Вход RXI | 2.0В-3.8В |
Выход TXO | 3.3В |
Потребляемый ток в режиме холостого хода | ~2мА-5мА (без карты microSD), ~5мА-6мА (с картой microSD) |
Активное письмо Потребление тока | ~20-23 мА (с картой microSD) |
Потребление тока OpenLog составляет около 20 мА - 23 мА при записи на microSD. В зависимости от размера карты microSD и ее производителя активное потребление тока может варьироваться, когда OpenLog записывает на карту памяти. Увеличение скорости передачи данных также увеличит потребление тока.
Микроконтроллеры
OpenLog работает на базе встроенного ATmega328, работающего на частоте 16 МГц благодаря встроенному кристаллу. В ATmega328 загружен загрузчик Optiboot, что позволяет OpenLog быть совместимым с настройкой платы «Arduino Uno» в Arduino IDE.Интерфейс
Последовательный UART
Основным интерфейсом с OpenLog является разъем FTDI на краю платы. Этот разъем предназначен для прямого подключения к Arduino Pro или Pro Mini, что позволяет микроконтроллеру отправлять данные через последовательное соединение в OpenLog.
Предупреждение! Из-за порядка выводов, обеспечивающего совместимость с Arduino, его нельзя напрямую подключить к коммутационной плате FTDI. Для получения более подробной информации обязательно ознакомьтесь со следующим разделом «Подключение оборудования».
СПИ
Также на противоположном конце платы выведены четыре контрольные точки SPI. Вы можете использовать их для перепрограммирования загрузчика на ATmega328.Последняя версия OpenLog (DEV-13712) выводит эти штырьки на меньшие сквозные отверстия с покрытием. Если вам нужно использовать ISP для перепрограммирования или загрузки нового загрузчика в OpenLog, вы можете использовать штырьки pogo для подключения к этим контрольным точкам.
Последний интерфейс для связи с OpenLog — это сама карта microSD. Для связи карте microSD требуются контакты SPI. Это не только место, где OpenLog хранит данные, но вы также можете обновить конфигурацию OpenLog через config.txt file на карту microSD.
MicroSD Card
Все данные, регистрируемые OpenLog, хранятся на карте microSD. OpenLog работает с картами microSD, которые включают в себя следующие функции:
- 64MB - 32GB
- FAT16 или FAT32
Индикатор состояния
На OpenLog имеются два светодиодных индикатора состояния, которые помогут вам в устранении неполадок.
- STAT1 – Этот синий светодиодный индикатор подключен к Arduino D5 (ATmega328 PD5) и включается/выключается при получении нового символа. Этот светодиод мигает, когда работает последовательная связь.
- STAT2 – этот зеленый светодиод подключен к Arduino D13 (SPI Serial Clock Line/ ATmega328 PB5). Этот светодиод мигает только тогда, когда активен интерфейс SPI. Вы увидите, как он мигает, когда OpenLog записывает 512 байт на карту microSD.
Подключение оборудования
Существует два основных способа подключения OpenLog к цепи. Для подключения вам понадобятся некоторые разъемы или провода. Убедитесь, что вы припаяли к плате для надежного соединения.
Базовое последовательное соединение
Кончик: Если у вас есть гнездовой разъем OpenLog и гнездовой разъем FTDI, вам понадобятся перемычки M/F для подключения.
Это аппаратное соединение предназначено для взаимодействия с OpenLog, если вам необходимо перепрограммировать плату или регистрировать данные через базовое последовательное соединение.
Выполните следующие подключения:
OpenLog → Базовый разъем FTDI 3.3V
- ЗЕМЛЯ → ЗЕМЛЯ
- ЗЕМЛЯ → ЗЕМЛЯ
- VCC → 3.3 В
- TXO → RXI
- RXI → TXO
- ДТР → ДТР
Обратите внимание, что это не прямое соединение между FTDI и OpenLog — необходимо поменять местами контакты TXO и RXI.
Ваши соединения должны выглядеть следующим образом: После установки соединений между OpenLog и FTDI Basic подключите плату FTDI к USB-кабелю и к компьютеру.
Откройте последовательный терминал, подключитесь к COM-порту вашего FTDI Basic и вперед!
Проект Аппаратное Подключение
Кончик: Если на OpenLog припаяны гнездовые разъемы, то к Arduino Pro Mini можно припаять штекерные разъемы, чтобы соединить платы без использования проводов.Хотя взаимодействие с OpenLog через последовательное соединение важно для перепрограммирования или отладки, OpenLog лучше всего раскрывается во встроенном проекте. Эта общая схема — то, как мы рекомендуем вам подключить OpenLog к микроконтроллеру (в данном случае Arduino Pro Mini), который будет записывать последовательные данные в OpenLog.
Сначала вам нужно будет загрузить код на ваш Pro Mini, который вы собираетесь запустить. Пожалуйста, ознакомьтесь с Arduino Sketches для некоторых example код, который вы можете использовать.
Примечание: Если вы не знаете, как программировать Pro Mini, ознакомьтесь с нашим руководством здесь.
Использование Arduino Pro Mini 3.3V
Этот урок — ваш путеводитель по всему, что касается Arduino Pro Mini. Он объясняет, что это такое, чем это не является и как начать его использовать.
После программирования Pro Mini вы можете снять плату FTDI и заменить ее платой OpenLog.
Обязательно подключите контакты с маркировкой BLK на Pro Mini и OpenLog (контакты с маркировкой GRN на обоих устройствах также совпадут, если все сделано правильно).
Если вы не можете подключить OpenLog напрямую к Pro Mini (из-за несоответствия разъемов или других плат), вы можете использовать перемычки и выполнить следующие соединения.
OpenLog → Arduino Pro/Arduino Pro Mini
- ЗЕМЛЯ → ЗЕМЛЯ
- ЗЕМЛЯ → ЗЕМЛЯ
- ВКК → ВКК
- TXO → RXI
- RXI → TXO
- ДТР → ДТР
После завершения ваши соединения с Arduino Pro Mini и Arduino Pro должны выглядеть следующим образом.
На диаграмме Fritzing OpenLogs показаны с зеркальными заголовками. Если перевернуть гнездо microSD относительно верхней части Arduino view, они должны соответствовать заголовку программирования, например FTDI.
Примечание что подключение осуществляется напрямую, при этом OpenLog находится «вверх ногами» (картой microSD вверх).
⚡Примечание: Поскольку Vcc и GND между OpenLog и Arduino заняты разъемами, вам нужно будет подключить питание к другим доступным контактам на Arduino. В противном случае вы можете припаять провода к открытым контактам питания на любой из плат.
Включите свою систему, и вы готовы начать регистрацию!
Эскизы Arduino
Существует шесть различных бывш.ampВ комплект входят эскизы, которые можно использовать на Arduino при подключении к OpenLog.
- OpenLog_Benchmarking — Этот бывшийample используется для тестирования OpenLog. Он отправляет очень большие объемы данных со скоростью 115200 бит/с через несколько files.
- OpenLog_CommandTest — Этот бывшийample показывает, как создать и добавить file через командную строку управления через Arduino.
- OpenLog_ReadExampле — Этот бывшийampВ этом разделе показано, как управлять OpenLog через командную строку.
- OpenLog_ReadExample_LargeFile - Бывшийample как открыть большой хранимый file на OpenLog и сообщите об этом через локальное соединение Bluetooth.
- OpenLog_Test_Sketch — используется для тестирования OpenLog с большим количеством последовательных данных.
- OpenLog_Test_Sketch_Binary — используется для тестирования OpenLog с двоичными данными и экранированными символами.
Прошивка
OpenLog имеет на борту два основных компонента программного обеспечения: загрузчик и прошивка.
Загрузчик Arduino
Примечание: Если вы используете OpenLog, приобретенный до марта 2012 года, встроенный загрузчик совместим с настройкой «Arduino Pro или Pro Mini 5V/16MHz w/ ATmega328» в Arduino IDE.
Как упоминалось ранее, OpenLog имеет на борту серийный загрузчик Optiboot. Вы можете обращаться с OpenLog так же, как с Arduino Uno при загрузке example код или новая прошивка на плату.
Если вы в конечном итоге сломаете свой OpenLog и вам нужно будет переустановить загрузчик, вам также нужно будет загрузить Optiboot на плату. Пожалуйста, ознакомьтесь с нашим руководством по установке загрузчика Arduino для получения дополнительной информации.
Компиляция и загрузка прошивки в OpenLog
Примечание: Если вы впервые используете Arduino, пожалуйста, повторите попытку.view наше руководство по установке Arduino IDE. Если вы ранее не устанавливали библиотеку Arduino, ознакомьтесь с нашим руководством по установке, чтобы вручную установить библиотеки.
Если по какой-либо причине вам необходимо обновить или переустановить прошивку на вашем OpenLog, следующая процедура позволит вам запустить плату.
Сначала загрузите Arduino IDE v1.6.5. Другие версии IDE могут работать для компиляции прошивки OpenLog, но мы проверили эту версию как известную хорошую.
Далее загрузите прошивку OpenLog и необходимый пакет библиотек.
СКАЧАТЬ ПАКЕТ ПРОШИВКИ OPENLOG (ZIP)
После загрузки библиотек и прошивки установите библиотеки в Arduino. Если вы не уверены, как вручную установить библиотеки в IDE, ознакомьтесь с нашим руководством: Установка библиотеки Arduino: Ручная установка библиотеки.
Примечание: Мы используем модифицированные версии библиотек SdFat и SerialPort, чтобы произвольно объявить, насколько большими должны быть буферы TX и RX. OpenLog требует, чтобы буфер TX был очень маленьким (0), а буфер RX должен быть максимально большим. Совместное использование этих двух модифицированных библиотек позволяет повысить производительность OpenLog.
Ищете последние версии? Если вы предпочитаете самые последние версии библиотек и прошивок, вы можете загрузить их напрямую из репозиториев GitHub, ссылки на которые приведены ниже. Библиотеки SdFatLib и Serial Port не видны в менеджере плат Arduino, поэтому вам нужно будет вручную установить библиотеку.
- GitHub: OpenLog > Прошивка > OpenLog_Firmware
- Библиотеки Arduino Билла Греймана
SdFatLib-бета
Последовательный порт
Далее, чтобы взять аванtage из измененных библиотек, измените SerialPort.h file находится в каталоге \Arduino\Libraries\SerialPort. Измените BUFFERED_TX на 0 и ENABLE_RX_ERROR_CHECKING на 0. Сохраните fileи откройте Arduino IDE.
Если вы еще этого не сделали, подключите OpenLog к компьютеру через плату FTDI. Пожалуйста, дважды проверьте example circuit, если вы не уверены, как это сделать правильно.
Откройте скетч OpenLog, который вы хотите загрузить, в меню «Инструменты»>«Плата», выберите «Arduino/Genuino Uno» и выберите нужный COM-порт для вашей платы FTDI в меню «Инструменты»>«Порт».
Загрузите код.
Вот и все! Теперь ваш OpenLog запрограммирован с новой прошивкой. Теперь вы можете открыть последовательный монитор и взаимодействовать с OpenLog. При включении питания вы увидите либо 12>, либо 12<. 1 означает, что последовательное соединение установлено, 2 означает, что SD-карта успешно инициализирована, < означает, что OpenLog готов регистрировать любые полученные последовательные данные, а > означает, что OpenLog готов принимать команды.
Эскизы прошивки OpenLog
В OpenLog включены три эскиза, которые вы можете использовать в зависимости от вашего конкретного приложения.
- OpenLog – Эта прошивка поставляется по умолчанию на OpenLog. Отправка команды ? покажет версию прошивки, загруженную на устройство.
- OpenLog_Light – Эта версия скетча удаляет меню и командный режим, позволяя увеличить буфер приема. Это хороший вариант для высокоскоростного ведения журнала.
- OpenLog_Minimal – Скорость передачи данных должна быть установлена в коде и загружена. Этот эскиз рекомендуется для опытных пользователей, но также является лучшим вариантом для регистрации на самой высокой скорости.
Набор команд
Вы можете взаимодействовать с OpenLog через последовательный терминал. Следующие команды помогут вам читать, писать и удалять files, а также изменить настройки OpenLog. Вам нужно будет находиться в командном режиме, чтобы использовать следующие настройки.
Пока OpenLog находится в командном режиме, STAT1 будет включаться/выключаться для каждого полученного символа. Светодиод будет гореть до тех пор, пока не будет получен следующий символ.
File Манипуляция
- новый File – Создает новый file названный File в текущем каталоге. Стандарт 8.3 fileимена поддерживаются.
НапримерampНапример, «87654321.123» приемлемо, а «987654321.123» — нет.
• Бывшийampле: новый file1.txt - добавить File – Добавить текст в конец File. Затем последовательные данные считываются из UART в потоке и добавляются в file. Он не отображается на последовательном терминале. Если File не существует при вызове этой функции, file будет создан.
• Бывшийample: добавить новыйfile.csv - писать File СМЕЩЕНИЕ – Напишите текст File от местоположения OFFSET в пределах file. Текст считывается из UART, строка за строкой и возвращается обратно. Чтобы выйти из этого состояния, отправьте пустую строку.
• Бывшийample: запись logs.txt 516 - rm File – Удаляет File из текущего каталога. Поддерживаются подстановочные знаки.
• Бывшийampле: rm README.txt - размер File – Выходной размер File в байтах.
• Бывшийample: размер Log112.csv
• Выход: 11 - читать File + НАЧАЛО+ ДЛИНА ТИП – Вывести содержимое File начиная с НАЧАЛА и продолжая ДЛИНОЙ.
Если START опущен, весь file сообщается. Если LENGTH опущено, сообщается все содержимое от начальной точки. Если TYPE опущено, OpenLog по умолчанию будет сообщать в ASCII. Существует три выходных TYPE:
• ASCII-код = 1
• ШЕСТНАДЦАТЕРИЧНЫЙ = 2
• СЫРЬЕ = 3
Вы можете пропустить некоторые завершающие аргументы. Проверьте следующий примерampлес.
Базовое чтение + пропущенные флаги:
• Бывшийampле: прочитать LOG00004.txt
• Выход: Акселерометр X=12 Y=215 Z=317
Читать с начала 0 длиной 5:
• Бывшийampле: прочитать LOG00004.txt 0 5
• Выход: Ускорение
Прочитать с позиции 1 длиной 5 в HEX:
• Бывшийampле: прочитать LOG00004.txt 1 5 2
• Выход: 63 63 65 6C - Чтение с позиции 0 с длиной 50 в формате RAW:
- • Бывшийampле: прочитать LOG00137.txt 0 50 3
- • Вывод: Андре– -þ Расширенный тест символов
- кот File – Напишите содержание file в шестнадцатеричном формате на последовательный монитор для viewing. Иногда полезно увидеть, что file правильно записывает без необходимости извлекать SD-карту и view то file на компьютере.
• Бывшийampле: кот LOG00004.txt
• Вывод: 00000000: 41 63 65 6c 3a 20 31
Манипуляции с каталогами
- ls – Выводит список всего содержимого текущего каталога. Поддерживаются подстановочные знаки.
• Бывшийampле: ls
• Вывод: \src - Подкаталог md – создать подкаталог в текущем каталоге.
• Бывшийampле: мд Эксample_Sketches - Подкаталог cd – Перейти в подкаталог.
• Бывшийampле: cd Hello_World - cd .. – Перейти на более низкий каталог в дереве. Обратите внимание, что между 'cd' и '..' есть пробел. Это позволяет парсеру строк увидеть команду cd.
• Бывшийampле: компакт-диск .. - rm Subdirectory – Удаляет подкаталог. Для работы этой команды каталог должен быть пустым.
• Бывшийample: rm temps - rm -rf Directory – Удаляет каталог и все fileсодержится в нем.
• Бывшийample: rm -rf Библиотеки
Команды функций низкого уровня
- ? – Эта команда выведет список доступных команд в OpenLog.
- disk – Показать идентификатор производителя карты, серийный номер, дату изготовления и размер карты. ПримерampВывод:
Тип карты: SD2
Идентификатор производителя: 3
OEM-идентификатор: SD
Продукт: SU01G
Версия: 8.0
Серийный номер: 39723042
Дата изготовления: 1/2010
Размер карты: 965120 КБ - init – Повторная инициализация системы и повторное открытие SD-карты. Это полезно, если SD-карта перестает отвечать.
- sync – Синхронизирует текущее содержимое буфера с SD-картой. Эта команда полезна, если в буфере менее 512 символов и вы хотите записать их на SD-карту.
- сброс – Переходит OpenLog в нулевое местоположение, перезапускает загрузчик и затем код инициализации. Эта команда полезна, если вам нужно отредактировать конфигурацию file, сбросьте OpenLog и начните использовать новую конфигурацию. Циклическое включение питания по-прежнему является предпочтительным методом сброса платы, но эта опция доступна.
Системные настройки
Эти настройки можно обновить вручную или отредактировать в файле config.txt. file.
- echo STATE – Изменяет состояние системного эха и сохраняется в системной памяти. STATE может быть включено или выключено. Пока включено, OpenLog будет выводить полученные последовательные данные в командной строке. Пока выключено, система не считывает полученные символы.
Примечание: Во время обычного ведения журнала эхо будет отключено. Требования к системным ресурсам для отражения полученных данных во время ведения журнала слишком высоки. - verbose STATE – Изменяет состояние подробного отчета об ошибках. STATE может быть включено или выключено. Эта команда хранится в памяти. При отключении подробных ошибок OpenLog будет отвечать только знаком !, если есть ошибка, а не неизвестная команда: COMMAND. Символ ! проще анализировать для встроенных систем, чем полную ошибку. Если вы используете терминал, то включение verbose позволит вам видеть полные сообщения об ошибках.
- baud – эта команда откроет системное меню, позволяющее пользователю ввести скорость передачи данных. Поддерживается любая скорость передачи данных от 300 бит/с до 1 Мбит/с. Выбор скорости передачи данных происходит немедленно, и OpenLog требует выключения и включения питания, чтобы настройки вступили в силу. Скорость передачи данных сохраняется в EEPROM и загружается каждый раз при включении OpenLog. Значение по умолчанию – 9600 8N1 .
Помните: если плата застряла на неизвестной скорости передачи данных, вы можете привязать RX к GND и включить OpenLog. Светодиоды будут мигать вперед и назад в течение 2 секунд, а затем начнут мигать синхронно. Выключите OpenLog и снимите перемычку. Теперь OpenLog сбрасывается до 9600 бит/с с помощью escape-символа `CTRL-Z`, нажатого три раза подряд. Эту функцию можно отменить, установив бит Emergency Override в 1.
Более подробную информацию см. в config.txt.
- set – Эта команда открывает системное меню для выбора режима загрузки. Эти настройки будут выполнены в
• при следующем включении питания и сохраняются в энергонезависимой EEPROM. Новый File Ведение журнала – этот режим создает новый file каждый раз при включении OpenLog. OpenLog передаст 1 (UART активен), 2 (SD-карта инициализирована), затем < (OpenLog готов к приему данных). Все данные будут записаны в LOG#####.txt. Номер ##### увеличивается каждый раз при включении OpenLog (максимум 65533 журнала). Номер хранится в EEPROM и может быть сброшен из меню настроек.
Все полученные символы не отображаются. Вы можете выйти из этого режима и войти в командный режим, отправив CTRL+z (ASCII 26). Все буферизованные данные будут сохранены.
Примечание: Если создано слишком много журналов, OpenLog выведет ошибку **Слишком много журналов**, выйдет из этого режима и перейдет в командную строку. Последовательный вывод будет выглядеть как `12!Слишком много журналов!`.
- Добавить File Ведение журнала — также известный как последовательный режим, этот режим создает file называется SEQLOG.txt, если его там еще нет, и добавляет все полученные данные в file. OpenLog передаст 12<, в это время OpenLog готов принимать данные. Символы не отображаются эхом. Вы можете выйти из этого режима и войти в командный режим, отправив CTRL+z (ASCII 26). Все буферизованные данные будут сохранены.
- Командная строка – OpenLog передаст 12>, в это время система готова принимать команды. Обратите внимание, что знак > указывает на то, что OpenLog готов принимать команды, а не данные. Вы можете создать files и добавить данные в files, но это требует некоторого последовательного анализа (для проверки ошибок), поэтому мы не устанавливаем этот режим по умолчанию.
- Сбросить Новый File Номер – этот режим сбросит журнал. file номер в LOG000.txt. Это полезно, если вы недавно очистили карту microSD и хотите получить журнал file числа, чтобы начать заново.
- Новый символ Escape – эта опция позволяет пользователю ввести символ, такой как CTRL+z или $, и установить его в качестве нового символа Escape. Эта настройка сбрасывается на CTRL+z во время аварийного сброса.
- Количество экранированных символов – эта опция позволяет пользователю ввести символ (например, 1, 3 или 17), обновляя новое количество экранированных символов, необходимых для перехода в командный режим. Напримерample, ввод 8 потребует от пользователя нажать CTRL+z восемь раз, чтобы попасть в командный режим. Эта настройка сбрасывается до 3 во время аварийного сброса.
Объяснение символов экранирования: Причина, по которой OpenLog требует нажатия `CTRL+z` 3 раза для входа в командный режим, заключается в том, чтобы предотвратить случайный сброс платы во время загрузки нового кода из Arduino IDE. Есть вероятность, что плата увидит символ `CTRL+z`, проходящий во время загрузки (проблема, которую мы видели в ранних версиях прошивки OpenLog), поэтому это направлено на предотвращение этого. Если вы когда-либо подозреваете, что ваша плата вышла из строя из-за этого, вы всегда можете выполнить аварийный сброс, удерживая контакт RX на земле во время включения питания.
Конфигурация File
Если вы не хотите использовать последовательный терминал для изменения настроек OpenLog, вы также можете обновить настройки, изменив CONFIG.TXT. file.
Примечание: Эта функция работает только на версии прошивки 1.6 или новее. Если вы купили OpenLog после 2012 года, у вас будет версия прошивки 1.6+
Для этого вам понадобится устройство чтения карт памяти microSD и текстовый редактор. Откройте файл config.txt file (капитализация file имя не имеет значения) и настройте его! Если вы никогда раньше не запускали OpenLog с SD-карты, вы также можете вручную создать fileЕсли вы включили OpenLog с ранее вставленной картой microSD, при чтении карты microSD вы должны увидеть что-то вроде следующего.OpenLog создает файлы config.txt и LOG0000.txt file при первом включении.
Конфигурация по умолчанию file имеет одну строку настроек и одну строку определений.Конфигурация по умолчанию file написанный OpenLog.
Обратите внимание, что это обычные видимые символы (невидимых или двоичных значений нет), и каждое значение разделено запятой.
Настройки определяются следующим образом:
- baud : Скорость передачи данных. По умолчанию 9600 бит/с. Допустимые значения, совместимые с Arduino IDE: 2400, 4800, 9600, 19200, 38400, 57600 и 115200. Вы можете использовать другие скорости передачи данных, но вы не сможете общаться с OpenLog через последовательный монитор Arduino IDE.
- escape: ASCII-значение (в десятичном формате) экранированного символа. 26 — это CTRL+z, значение по умолчанию. 36 — это $, это часто используемый экранированный символ.
- esc# : Количество требуемых экранированных символов. По умолчанию это три, поэтому вам нужно нажать экранированный символ три раза, чтобы перейти в командный режим. Допустимые значения: от 0 до 254. Установка этого значения на 0 полностью отключит проверку экранированных символов.
- mode : Системный режим. OpenLog по умолчанию запускается в режиме New Log (0). Допустимые значения: 0 = New Log, 1 = Sequential Log, 2 = Command Mode.
- verb : Подробный режим. Расширенные (подробные) сообщения об ошибках включены по умолчанию. Установка этого значения в 1 включает подробные сообщения об ошибках (например, неизвестная команда: удалить ! ). Установка этого значения в 0 отключает подробные сообщения об ошибках, но будет отвечать ! в случае ошибки. Отключение подробного режима удобно, если вы пытаетесь обрабатывать ошибки из встроенной системы.
- echo : режим эха. В командном режиме символы по умолчанию отображаются эхом. Установка этого параметра в 0 отключает отображение символов. Отключение этого параметра удобно при обработке ошибок и нежелании отправлять команды обратно в OpenLog.
- ignoreRX : Аварийное отключение. Обычно OpenLog выполняет аварийный сброс, когда вывод RX понижается во время включения питания. Установка этого параметра на 1 отключит проверку вывода RX во время включения питания. Это может быть полезно для систем, которые будут удерживать линию RX на низком уровне по разным причинам. Если аварийное отключение отключено, вы не сможете принудительно вернуть устройство к 9600 бит/с, и конфигурация file будет единственным способом изменить скорость передачи данных.
Как OpenLog изменяет конфигурацию File
Существует пять различных ситуаций, в которых OpenLog может изменить config.txt file.
- Конфигурация file найдено: Во время включения питания OpenLog будет искать файл config.txt file. Если file Если он найден, OpenLog будет использовать включенные настройки и перезапишет все ранее сохраненные системные настройки.
- Нет конфигурации file найдено: Если OpenLog не может найти config.txt file затем OpenLog создаст config.txt и запишет в него текущие сохраненные системные настройки. Это означает, что если вы вставите недавно отформатированную карту microSD, ваша система сохранит свои текущие настройки.
- Поврежденная конфигурация file найдено: OpenLog сотрет поврежденный config.txt fileи перезапишет как внутренние настройки EEPROM, так и настройки config.txt file до заведомо исправного состояния 9600,26,3,0,1,1,0.
- Недопустимые значения в конфигурации file: Если OpenLog обнаружит какие-либо настройки, содержащие недопустимые значения, OpenLog перезапишет поврежденные значения в config.txt file с текущими сохраненными системными настройками EEPROM.
- Изменения через командную строку: если системные настройки изменяются через командную строку (через последовательное соединение или с помощью последовательных команд микроконтроллера), эти изменения будут записаны как в системную EEPROM, так и в файл config.txt. file.
- Аварийный сброс: если OpenLog выключается и включается с перемычкой между RX и GND, а бит аварийного сброса установлен на 0 (разрешая аварийный сброс), OpenLog перезапишет как внутренние настройки EEPROM, так и настройки config.txt. file до заведомо исправного состояния 9600,26,3,0,1,1,0.
Поиск неисправностей
Существует несколько различных вариантов проверки, если у вас возникли проблемы с подключением через последовательный монитор, проблемы с пропущенными символами в журналах или проблема с зависшим OpenLog.
Проверьте поведение светодиода STAT1
Светодиод STAT1 ведет себя по-разному при двух различных распространенных ошибках.
- 3 мигания: Карта microSD не инициализировалась. Возможно, вам придется отформатировать карту в FAT/FAT16 на компьютере.
- 5 миганий: OpenLog изменил скорость передачи данных и его необходимо перезагрузить.
Дважды проверьте структуру подкаталогов
Если вы используете OpenLog.ino по умолчаниюample, OpenLog будет поддерживать только два подкаталога. Вам нужно будет изменить FOLDER_TRACK_DEPTH с 2 на количество подкаталогов, которые вам нужно поддерживать. После этого перекомпилируйте код и загрузите измененную прошивку.
Проверьте количество Files в корневом каталоге
OpenLog будет поддерживать только до 65,534 XNUMX журналов. files в корневом каталоге. Мы рекомендуем переформатировать карту microSD для повышения скорости записи.
Проверьте размер измененной прошивки
Если вы пишете пользовательский скетч для OpenLog, убедитесь, что ваш скетч не больше 32,256 500. Если это так, он будет врезан в верхние XNUMX байт флэш-памяти, которые используются последовательным загрузчиком Optiboot.
Двойная проверка File Имена
Все file Имена должны быть буквенно-цифровыми. MyLOG1.txt подойдет, но Hi !e _.txt может не работать.
Использовать 9600 бод
OpenLog работает на базе ATmega328 и имеет ограниченный объем оперативной памяти (2048 байт). Когда вы отправляете последовательные символы в OpenLog, эти символы буферизуются. Упрощенная спецификация SD Group позволяет карте SD записывать блок данных во флэш-память до 250 мс (раздел 4.6.2.2 Запись).
При 9600 бит/с это 960 байт (10 бит на байт) в секунду. Это 1.04 мс на байт. В настоящее время OpenLog использует буфер приема размером 512 байт, поэтому он может буферизировать около 50 мс символов. Это позволяет OpenLog успешно принимать все символы, поступающие со скоростью 9600 бит/с. По мере увеличения скорости передачи данных буфер будет использоваться меньшее время.
Время переполнения буфера OpenLog
Скорость передачи данных | Время на байт | Время до переполнения буфера |
9600 бит/с | 1.04мс | 532мс |
57600 бит/с | 0.174мс | 88мс |
115200 бит/с | 0.087мс | 44мс |
Многие карты SD имеют более быстрое время записи, чем 250 мс. Это может зависеть от «класса» карты и того, сколько данных уже хранится на карте. Решением является использование более низкой скорости передачи данных или увеличение времени между символами, отправляемыми с более высокой скоростью передачи данных.
Отформатируйте карту MicroSD
Не забудьте использовать карту с небольшим количеством или без files на нем. Карта microSD с 3.1 ГБ ZIP-файлов files или MP3 имеет более медленное время отклика, чем пустая карта.
Если вы не форматировали карту microSD в ОС Windows, переформатируйте ее и создайте DOS-файл. fileсистема на SD-карте.
Замена карт MicroSD
Существует множество различных производителей карт, перемаркированных карт, размеров карт и классов карт, и не все они могут работать правильно. Обычно мы используем карту microSD класса 8 на 4 ГБ, которая хорошо работает на скорости 9600 бит/с. Если вам нужны более высокие скорости передачи данных или больше места для хранения, вы можете попробовать карты класса 6 или выше.
Добавить задержки между записями символов
Добавляя небольшую задержку между операторами Serial.print(), вы можете дать OpenLog возможность записать его текущую версию
буфер.
Напримерampль:
Последовательный.начало(115200);
для (int i = 1 ; i < 10 ; i++) {
Serial.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
}
может не вестись должным образом, так как много символов отправляется прямо рядом друг с другом. Вставка небольшой задержки в 15 мс между большими записями символов поможет OpenLog записывать без потери символов.
Последовательный.начало(115200);
для (int i = 1 ; i < 10 ; i++) {
Serial.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
задержка(15);
}
Добавить совместимость с последовательным монитором Arduino
Если вы пытаетесь использовать OpenLog со встроенной последовательной библиотекой или библиотекой SoftwareSerial, вы можете заметить проблемы с командным режимом. Serial.println() отправляет как новую строку, так и возврат каретки. Есть две альтернативные команды, чтобы обойти это.
Первый способ — использовать команду \r (возврат каретки ASCII):
Serial.print(“ТЕКСТ\r”);
В качестве альтернативы вы можете отправить значение 13 (десятичный возврат каретки):
Serial.print(«ТЕКСТ»);
Последовательный.запись(13);
Аварийный сброс
Помните, если вам необходимо сбросить OpenLog до состояния по умолчанию, вы можете сбросить плату, подключив контакт RX к GND, включив питание OpenLog, дождавшись, пока светодиоды начнут мигать синхронно, а затем выключив питание OpenLog и сняв перемычку.
Если вы изменили бит аварийного отключения на 1, вам необходимо изменить конфигурацию. file, так как аварийный сброс не сработает.
Проверьте с сообществом
Если у вас все еще есть проблемы с OpenLog, пожалуйста, проверьте текущие и закрытые проблемы в нашем репозитории GitHub здесь. С OpenLog работает большое сообщество, поэтому есть вероятность, что кто-то нашел решение проблемы, которую вы видите.
Ресурсы и дальнейшие действия
Теперь, когда вы успешно зарегистрировали данные с помощью OpenLog, вы можете настроить удаленные проекты и отслеживать все возможные поступающие данные. Подумайте о создании собственного проекта Citizen Science или даже о трекере для домашних животных, чтобы увидеть, что делает Пушистик, когда он на улице!
Ознакомьтесь с этими дополнительными ресурсами для устранения неполадок, получения помощи или вдохновения для вашего следующего проекта.
- OpenLog GitHub
- Проект Illumitune
- Подключение датчика освещенности LilyPad
- BadgerHack: Дополнение к датчику почвы
- Начало работы с OBD-II
- Верньер Фотогейт
Нужно больше вдохновения? Ознакомьтесь с некоторыми из этих связанных руководств:
Дистанционный датчик уровня воды Photon
Узнайте, как создать дистанционный датчик уровня воды для резервуара для хранения воды и как автоматизировать насос на основе показаний!
Дистанционный датчик уровня воды Photon
Узнайте, как создать дистанционный датчик уровня воды для резервуара для хранения воды и как автоматизировать насос на основе показаний!
Регистрация данных в Google Таблицах с помощью Tessel 2
В этом проекте рассматривается, как регистрировать данные в Google Таблицах двумя способами: с помощью IFTTT с web подключение или USB-флешка и «sneakernet» без.
Графическое отображение данных датчиков с помощью Python и Matplotlib
Используйте matplotlib для создания графика данных о температуре в реальном времени, полученных с датчика TMP102, подключенного к Raspberry Pi.
Если у вас есть какие-либо отзывы об уроке, посетите раздел комментариев или свяжитесь с нашей службой технической поддержки по адресу TechSupport@sparkfun.com.
Документы/Ресурсы
![]() |
SparkFun DEV-13712 Платы разработки SparkFun [pdf] Руководство пользователя DEV-13712, DEV-11114, DEV-09873, CAB-12016, COM-13833, COM-13004, PRT-00115, PRT-08431, DEV-13712 Платы разработки SparkFun, DEV-13712, Платы разработки SparkFun, Платы разработки, Платы |