Guia de conexão do OpenLog
Introdução
Atenção! Este tutorial é para o Open Log para UART serial [DEV-13712]. Se você estiver usando o Qwiic OpenLog para CI [DEV-15164], consulte o Guia de Conexão do Qwiic OpenLog.
O OpenLog Data Logger é uma solução de código aberto e fácil de usar para registrar dados seriais de seus projetos. O OpenLog fornece uma interface serial simples para registrar dados de um projeto em um cartão microSD.SparkFun OpenLog
• DEV-13712SparkFun OpenLog com cabeçalhos
• DEV-13955
nenhum produto encontrado
Materiais necessários
Para concluir este tutorial, você precisará dos seguintes itens. Dependendo do que você tem, talvez não precise de todos. Adicione ao seu carrinho, leia o guia e ajuste o carrinho conforme necessário.
Guia de conexão OpenLog Lista de desejos do SparkFun
![]() |
Arduino Pro Mini 328 – 3.3 V/8 MHz DEV-11114 É azul! É fino! É o Arduino Pro Mini! A abordagem minimalista de design da SparkFun para o Arduino. Este é um Arduino de 3.3 V... |
![]() |
SparkFun FTDI Basic Breakout – 3.3 V DEV-09873 Esta é a revisão mais recente do nosso [FTDI Basic](http://www.sparkfun.com/commerce/product_info.php?products_id=… |
![]() |
Cabo USB SparkFun Cerberus – 6 pés CAB-12016 Você tem o cabo USB errado. Não importa qual você tenha, é o errado. Mas e se você pudesse ter… |
![]() |
SparkFun OpenLog DEV-13712 O SparkFun OpenLog é um registrador de dados de código aberto que funciona por meio de uma conexão serial simples e suporta mi… |
![]() |
Cartão microSD com adaptador – 16 GB (Classe 10) COM-13833 Este é um cartão de memória microSD de 10 GB classe 16, perfeito para abrigar sistemas operacionais de computadores de placa única… |
![]() |
Leitor USB microSD COM-13004 Este é um pequeno leitor USB microSD incrível. Basta inserir o seu cartão microSD na parte interna do conector USB e… |
![]() |
Cabeçalhos Femininos PRT-00115 Fileira única de 40 furos, cabeçote fêmea. Pode ser cortado no tamanho desejado com um alicate de corte. Espaçamento padrão de 1 cm. Usamos… |
![]() |
Fios de ligação Premium 6″ M/M Pacote com 10 PRT-08431 Exclusivo da SparkFun! São jumpers de 155 mm de comprimento com conectores macho em ambas as extremidades. Use-os para ju… |
![]() |
Cabeçalhos Masculinos Break Away – Ângulo Reto PRT-00553 Uma fileira de conectores machos em ângulo reto – quebráveis para encaixar. 40 pinos que podem ser cortados em qualquer tamanho. Usado com PCBs personalizados ou gen… |
Leitura recomendada
Se você não estiver familiarizado ou não se sentir confortável com os conceitos a seguir, recomendamos lê-los antes de continuar com o Guia de Conexão do OpenLog.
Como soldar: Soldagem por furo passante
Este tutorial aborda tudo o que você precisa saber sobre soldagem through-hole.
Interface Periférica Serial (SPI)
O SPI é comumente usado para conectar microcontroladores a periféricos, como sensores, registradores de deslocamento e cartões SD.
Comunicação serial
Conceitos de comunicação serial assíncrona: pacotes, níveis de sinal, taxas de transmissão, UARTs e muito mais!
Noções básicas sobre terminais seriais
Este tutorial mostrará como se comunicar com seus dispositivos seriais usando uma variedade de aplicativos emuladores de terminal.
Hardware acabadoview
Poder
O OpenLog é executado nas seguintes configurações:
Classificações de potência do OpenLog
Entrada VCC | 3.3 V-12 V (recomendado 3.3 V-5 V) |
Entrada RXI | 2.0V-3.8V |
Saída TXO | 3.3V |
Consumo de corrente ocioso | ~2mA-5mA (sem cartão microSD), ~5mA-6mA (com cartão microSD) |
Consumo de corrente de escrita ativa | ~20-23mA (com cartão microSD) |
O consumo de corrente do OpenLog é de cerca de 20 mA a 23 mA ao gravar em um microSD. Dependendo do tamanho do cartão microSD e do fabricante, o consumo de corrente ativo pode variar quando o OpenLog grava no cartão de memória. Aumentar a taxa de transmissão também consumirá mais corrente.
Microcontroladores
O OpenLog é alimentado por um ATmega328 integrado, que opera a 16 MHz graças ao cristal integrado. O ATmega328 possui o bootloader Optiboot instalado, o que permite que o OpenLog seja compatível com a configuração da placa "Arduino Uno" na IDE do Arduino.Interface
UART serial
A interface principal com o OpenLog é o conector FTDI na borda da placa. Este conector foi projetado para ser conectado diretamente a um Arduino Pro ou Pro Mini, permitindo que o microcontrolador envie os dados por uma conexão serial para o OpenLog.
Aviso! Devido à ordem dos pinos que o torna compatível com os Arduinos, ele não pode ser conectado diretamente a uma placa de expansão FTDI. Para mais informações, confira a próxima seção sobre Conexão de Hardware.
SPI
Há também quatro pontos de teste SPI separados na extremidade oposta da placa. Você pode usá-los para reprogramar o bootloader do ATmega328.O OpenLog mais recente (DEV-13712) separa esses pinos em furos passantes menores. Se você precisar usar um provedor de internet para reprogramar ou carregar um novo bootloader no OpenLog, poderá usar pinos pogo para conectar-se a esses pontos de teste.
A interface final para comunicação com o OpenLog é o próprio cartão microSD. Para se comunicar, o cartão microSD requer pinos SPI. Além de ser onde os dados são armazenados pelo OpenLog, você também pode atualizar a configuração do OpenLog por meio do arquivo config.txt. file no cartão microSD.
Cartão microSD
Todos os dados registrados pelo OpenLog são armazenados no cartão microSD. O OpenLog funciona com cartões microSD que oferecem os seguintes recursos:
- 64MB para 32GB
- FAT16 ou FAT32
LED de status
Há dois LEDs de status no OpenLog para ajudar você na solução de problemas.
- STAT1 – Este LED indicador azul está conectado ao Arduino D5 (ATmega328 PD5) e liga/desliga quando um novo caractere é recebido. Este LED pisca quando a comunicação serial está funcionando.
- STAT2 – Este LED verde está conectado ao Arduino D13 (SPI Serial Clock Line/ATmega328 PB5). Este LED pisca apenas quando a interface SPI está ativa. Você o verá piscar quando o OpenLog gravar 512 bytes no cartão microSD.
Conexão de hardware
Existem dois métodos principais para conectar seu OpenLog a um circuito. Você precisará de alguns conectores ou fios para conectar. Certifique-se de soldar à placa para uma conexão segura.
Conexão serial básica
Dica: Se você tiver um conector fêmea no OpenLog e um conector fêmea no FTDI, você precisará de fios jumper M/F para conectar.
Esta conexão de hardware foi projetada para interagir com um OpenLog caso você precise reprogramar a placa ou registrar dados por meio de uma conexão serial básica.
Faça as seguintes conexões:
OpenLog → Breakout básico FTDI de 3.3 V
- Terra → Terra
- Terra → Terra
- VCC → 3.3 V
- TXO → RXI
- RXI → TXO
- DTR → DTR
Observe que não é uma conexão direta entre o FTDI e o OpenLog – você deve alternar as conexões dos pinos TXO e RXI.
Suas conexões devem ser semelhantes às seguintes: Depois de fazer as conexões entre o OpenLog e o FTDI Basic, conecte sua placa FTDI a um cabo USB e ao seu computador.
Abra um terminal serial, conecte-se à porta COM do seu FTDI Basic e pronto!
Conexão de hardware do projeto
Dica: Se você tiver os conectores fêmeas soldados no OpenLog, você pode soldar os conectores machos no Arduino Pro Mini para conectar as placas sem precisar de fios.Embora a interface com o OpenLog por meio de uma conexão serial seja importante para reprogramação ou depuração, o ponto de destaque do OpenLog é em um projeto embarcado. Este circuito geral é como recomendamos que você conecte seu OpenLog a um microcontrolador (neste caso, um Arduino Pro Mini) que gravará dados seriais no OpenLog.
Primeiro, você precisará enviar o código para o Pro Mini que pretende usar. Confira os esboços do Arduino para alguns exemplos.ampo código que você pode usar.
Observação: Se você não tiver certeza de como programar seu Pro Mini, confira nosso tutorial aqui.
Usando o Arduino Pro Mini 3.3V
Este tutorial é o seu guia para tudo relacionado ao Arduino Pro Mini. Ele explica o que é, o que não é e como começar a usá-lo.
Depois de programar seu Pro Mini, você pode remover a placa FTDI e substituí-la pelo OpenLog.
Certifique-se de conectar os pinos rotulados como BLK no Pro Mini e no OpenLog (os pinos rotulados como GRN em ambos também corresponderão se feitos corretamente).
Se você não puder conectar o OpenLog diretamente no Pro Mini (devido a conectores incompatíveis ou outras placas no caminho), você pode usar fios de ligação e fazer as seguintes conexões.
OpenLog → Arduino Pro/Arduino Pro Mini
- Terra → Terra
- Terra → Terra
- VCC → VCC
- TXO → RXI
- RXI → TXO
- DTR → DTR
Quando terminar, suas conexões deverão ficar como as seguintes com o Arduino Pro Mini e o Arduino Pro.
O diagrama de Fritzing mostra os OpenLogs com os cabeçalhos espelhados. Se você inverter o soquete microSD em relação à parte superior do Arduino view, eles devem corresponder ao cabeçalho de programação como um FTDI.
Observação que a conexão é direta com o OpenLog “de cabeça para baixo” (com o microSD voltado para cima).
⚡Observação: Como Vcc e GND entre o OpenLog e o Arduino estão sendo ocupados pelos conectores, você precisará conectar a alimentação aos outros pinos disponíveis no Arduino. Caso contrário, você pode soldar fios aos pinos de alimentação expostos em qualquer uma das placas.
Ligue seu sistema e você estará pronto para começar a registrar!
Esboços do Arduino
Existem seis ex diferentesampesboços incluídos que você pode usar no Arduino quando conectado a um OpenLog.
- OpenLog_Benchmarking — Este example é usado para testar o OpenLog. Ele envia grandes quantidades de dados a 115200 bps em vários files.
- OpenLog_CommandTest — Este example mostra como criar e anexar um file via controle de linha de comando através do Arduino.
- OpenLog_ReadExample — Este example explica como controlar o OpenLog via linha de comando.
- OpenLog_ReadExample_LargeFile -Exampcomo abrir um grande armazenado file no OpenLog e relatá-lo por meio de uma conexão bluetooth local.
- OpenLog_Test_Sketch — Usado para testar o OpenLog com muitos dados seriais.
- OpenLog_Test_Sketch_Binary — Usado para testar o OpenLog com dados binários e caracteres de escape.
Firmware
O OpenLog tem dois softwares principais a bordo: o bootloader e o firmware.
Carregador de inicialização Arduino
Observação: Se você estiver usando um OpenLog adquirido antes de março de 2012, o bootloader integrado é compatível com a configuração “Arduino Pro ou Pro Mini 5V/16MHz com ATmega328” no Arduino IDE.
Como mencionado anteriormente, o OpenLog possui o bootloader serial Optiboot integrado. Você pode tratar o OpenLog como um Arduino Uno ao carregar arquivos ex.ampcódigo le ou novo firmware para a placa.
Se você acabar travando seu OpenLog e precisar reinstalar o bootloader, também será necessário carregar o Optiboot na placa. Confira nosso tutorial sobre como instalar um bootloader Arduino para mais informações.
Compilando e carregando firmware no OpenLog
Observação: Se esta é a primeira vez que você usa o Arduino, por favor, review Nosso tutorial sobre como instalar o Arduino IDE. Se você ainda não instalou uma biblioteca Arduino, confira nosso guia de instalação para instalar as bibliotecas manualmente.
Se por algum motivo você precisar atualizar ou reinstalar o firmware no seu OpenLog, o processo a seguir colocará sua placa em funcionamento.
Primeiro, baixe o Arduino IDE v1.6.5. Outras versões do IDE podem funcionar para compilar o firmware do OpenLog, mas verificamos que esta é uma versão reconhecidamente boa.
Em seguida, baixe o firmware OpenLog e o pacote de bibliotecas necessárias.
BAIXE O PACOTE DE FIRMWARE OPENLOG (ZIP)
Após baixar as bibliotecas e o firmware, instale-as no Arduino. Se não tiver certeza de como instalar manualmente as bibliotecas no IDE, confira nosso tutorial: Instalando uma Biblioteca Arduino: Instalando Manualmente uma Biblioteca.
Observação: Estamos usando versões modificadas das bibliotecas SdFat e SerialPort para declarar arbitrariamente o tamanho dos buffers TX e RX. O OpenLog exige que o buffer TX seja muito pequeno (0) e o buffer RX precisa ser o maior possível. O uso dessas duas bibliotecas modificadas em conjunto permite um melhor desempenho do OpenLog.
Procurando as versões mais recentes? Se preferir as versões mais atualizadas das bibliotecas e do firmware, você pode baixá-las diretamente dos repositórios do GitHub vinculados abaixo. As bibliotecas SdFatLib e Serial Port não estão visíveis no gerenciador de placas Arduino, então você precisará instalá-las manualmente.
- GitHub: OpenLog > Firmware > OpenLog_Firmware
- Bibliotecas Arduino de Bill Greiman
SdFatLib-beta
Porta serial
Em seguida, para aproveitar a vantagemtage das bibliotecas modificadas, modifique o SerialPort.h file encontrado no diretório \Arduino\Libraries\SerialPort. Altere BUFFERED_TX para 0 e ENABLE_RX_ERROR_CHECKING para 0. Salve o filee abra o IDE do Arduino.
Se ainda não o fez, conecte o OpenLog ao computador por meio de uma placa FTDI. Verifique novamente o exampo circuito se você não tiver certeza de como fazer isso corretamente.
Abra o esboço do OpenLog que você gostaria de carregar no menu Ferramentas>Placa, selecione “Arduino/Genuino Uno” e selecione a porta COM apropriada para sua placa FTDI em Ferramentas>Porta.
Carregue o código.
Pronto! Seu OpenLog agora está programado com o novo firmware. Agora você pode abrir um monitor serial e interagir com o OpenLog. Ao ligar, você verá 12> ou 12<. 1 indica que a conexão serial foi estabelecida, 2 indica que o cartão SD foi inicializado com sucesso, < indica que o OpenLog está pronto para registrar quaisquer dados seriais recebidos e > indica que o OpenLog está pronto para receber comandos.
Esboços de firmware do OpenLog
Há três esboços incluídos que você pode usar no OpenLog, dependendo da sua aplicação específica.
- OpenLog – Este firmware é fornecido por padrão no OpenLog. Enviar o comando ? mostrará a versão do firmware carregada na unidade.
- OpenLog_Light – Esta versão do esboço remove o menu e o modo de comando, permitindo aumentar o buffer de recebimento. Esta é uma boa opção para registros de alta velocidade.
- OpenLog_Minimal – A taxa de transmissão deve ser definida no código e enviada. Este esboço é recomendado para usuários experientes, mas também é a melhor opção para registros de alta velocidade.
Conjunto de Comandos
Você pode interagir com o OpenLog por meio de um terminal serial. Os comandos a seguir ajudarão você a ler, escrever e excluir files, bem como alterar as configurações do OpenLog. Você precisará estar no Modo de Comando para usar as seguintes configurações.
Enquanto o OpenLog estiver no Modo de Comando, o STAT1 será ligado/desligado para cada caractere recebido. O LED permanecerá aceso até que o próximo caractere seja recebido.
File Manipulação
- novo File – Cria um novo file nomeado File no diretório atual. Padrão 8.3 filenomes são suportados.
Por exemploample, “87654321.123” é aceitável, enquanto “987654321.123” não é.
•Example: novo file1.txt - acrescentar File – Acrescentar texto ao final de FileOs dados seriais são então lidos da UART em um fluxo e adicionados ao file. Não é ecoado no terminal serial. Se File não existe quando esta função é chamada, o file será criado.
•Example: acrescentar novofile.csv - escrever File OFFSET – Escrever texto para File do local OFFSET dentro do fileO texto é lido da UART, linha por linha, e ecoado de volta. Para sair desse estado, envie uma linha em branco.
•Example: escrever logs.txt 516 - rm File – Exclui File do diretório atual. Caracteres curinga são suportados.
•Example: rm README.txt - tamanho File – Tamanho de saída de File em bytes.
•Example: tamanho Log112.csv
• Saída: 11 - ler File + INICIAR+ TIPO DE COMPRIMENTO – Exibe o conteúdo de File começando do INÍCIO e indo em direção ao COMPRIMENTO.
Se START for omitido, todo o file é relatado. Se LENGTH for omitido, todo o conteúdo desde o ponto inicial será relatado. Se TYPE for omitido, o OpenLog usará como padrão o formato ASCII. Há três TYPEs de saída:
• ASCII = 1
• HEX = 2
• RAW = 3
Você pode omitir alguns argumentos finais. Verifique o seguinte exemploamples.
Leitura básica + sinalizadores omitidos:
•Example: leia LOG00004.txt
• Saída: Acelerômetro X=12 Y=215 Z=317
Leia do início 0 com comprimento de 5:
•Example: leia LOG00004.txt 0 5
• Saída: Aceleração
Leia a partir da posição 1 com comprimento 5 em HEX:
•Example: leia LOG00004.txt 1 5 2
• Saída: 63 63 65 6C - Leia a partir da posição 0 com comprimento de 50 em RAW:
- •Example: leia LOG00137.txt 0 50 3
- • Saída: André– -þ Teste de Caractere Estendido
- gato File – Escreva o conteúdo de uma file em hexadecimal para o monitor serial para viewing. Às vezes é útil ver que um file está gravando corretamente sem ter que puxar o cartão SD e view o file em um computador
•Example: cat LOG00004.txt
• Saída: 00000000: 41 63 65 6c 3a 20 31
Manipulação de Diretórios
- ls – Lista todo o conteúdo do diretório atual. Caracteres curinga são suportados.
•Example: ls
• Saída: \src - md Subdiretório – Cria um subdiretório no diretório atual.
•Example: md Example_Sketches - cd Subdiretório – Alterar para subdiretório.
•Example: cd Olá_Mundo - cd .. – Muda para um diretório mais abaixo na árvore. Observe que há um espaço entre 'cd' e '..'. Isso permite que o analisador de strings veja o comando cd.
•Example: cd .. - rm Subdiretório – Exclui subdiretório. O diretório deve estar vazio para que este comando funcione.
•Example: rm temps - rm -rf Diretório – Exclui diretório e qualquer files contidos nele.
•Example: rm -rf Bibliotecas
Comandos de função de baixo nível
- ? – Este comando exibirá uma lista de comandos disponíveis no OpenLog.
- Disco – Mostra o ID do fabricante do cartão, número de série, data de fabricação e tamanho do cartão. Ex.ampa saída é:
Tipo de cartão: SD2
ID do fabricante: 3
ID do OEM: SD
Produto: SU01G
Versão: 8.0
Número de série: 39723042
Data de fabricação: 1/2010
Tamanho do cartão: 965120 KB - init – Reinicializa o sistema e reabre o cartão SD. Isso é útil se o cartão SD parar de responder.
- sync – Sincroniza o conteúdo atual do buffer com o cartão SD. Este comando é útil se você tiver menos de 512 caracteres no buffer e quiser gravá-los no cartão SD.
- reset – Salta o OpenLog para a posição zero, executa novamente o bootloader e, em seguida, o código de inicialização. Este comando é útil se você precisar editar a configuração file, reinicie o OpenLog e comece a usar a nova configuração. Desligar e ligar novamente ainda é o método preferido para reiniciar a placa, mas esta opção está disponível.
Configurações do sistema
Essas configurações podem ser atualizadas manualmente ou editadas no config.txt file.
- echo STATE – Altera o estado do eco do sistema e é armazenado na memória do sistema. STATE pode ser on ou off. Enquanto estiver on, o OpenLog ecoará os dados seriais recebidos no prompt de comando. Enquanto estiver off, o sistema não lê os caracteres recebidos.
Observação: Durante o registro normal, o eco será desativado. A demanda por recursos do sistema para ecoar os dados recebidos é muito alta durante o registro. - verbose STATE – Altera o estado do relatório de erros verbose. STATE pode ser ativado ou desativado. Este comando é armazenado na memória. Ao desativar os erros verbose, o OpenLog responderá apenas com um ! se houver um erro, em vez de um comando desconhecido: COMMAND. O caractere ! é mais fácil de analisar para sistemas embarcados do que o erro completo. Se você estiver usando um terminal, deixar o verbose ativado permitirá que você veja as mensagens de erro completas.
- baud – Este comando abrirá um menu do sistema permitindo que o usuário insira uma taxa de transmissão. Qualquer taxa de transmissão entre 300 bps e 1 Mbps é suportada. A seleção da taxa de transmissão é imediata e o OpenLog requer um ciclo de energia para que as configurações entrem em vigor. A taxa de transmissão é armazenada na EEPROM e é carregada sempre que o OpenLog é ligado. O padrão é 9600 8N1.
Lembre-se: Se a placa travar em uma taxa de transmissão desconhecida, você pode conectar o RX ao GND e ligar o OpenLog. Os LEDs piscarão alternadamente por 2 segundos e, em seguida, piscarão em uníssono. Desligue o OpenLog e remova o jumper. O OpenLog agora é redefinido para 9600 bps com o caractere de escape `CTRL-Z` pressionado três vezes consecutivas. Este recurso pode ser anulado configurando o bit de Anulação de Emergência como 1.
Veja config.txt para mais informações.
- set – Este comando abre um menu do sistema para selecionar o modo de inicialização. Essas configurações ocorrerão no
• próxima inicialização e são armazenados em EEPROM não volátil. Novo File Registro – Este modo cria um novo file Cada vez que o OpenLog é inicializado, o OpenLog transmitirá 1 (UART ativo), 2 (cartão SD inicializado) e < (OpenLog pronto para receber dados). Todos os dados serão gravados em um LOG#####.txt. O número ##### aumenta cada vez que o OpenLog é inicializado (o máximo é 65533 registros). O número é armazenado na EEPROM e pode ser zerado no menu de configuração.
Todos os caracteres recebidos não são ecoados. Você pode sair deste modo e entrar no modo de comando pressionando CTRL+z (ASCII 26). Todos os dados armazenados em buffer serão armazenados.
Observação: Se muitos logs tiverem sido criados, o OpenLog exibirá o erro **Muitos logs**. Saia deste modo e volte para o Prompt de Comando. A saída serial será semelhante a `12!Muitos logs!`.
- Acrescentar File Registro – Também conhecido como modo sequencial, este modo cria um file chamado SEQLOG.txt se ainda não estiver lá e anexa quaisquer dados recebidos ao fileO OpenLog transmitirá 12<, momento em que estará pronto para receber dados. Os caracteres não são ecoados. Você pode sair deste modo e entrar no modo de comando pressionando CTRL+z (ASCII 26). Todos os dados armazenados em buffer serão armazenados.
- Prompt de Comando – O OpenLog transmitirá 12>, momento em que o sistema estará pronto para receber comandos. Observe que o sinal > indica que o OpenLog está pronto para receber comandos, não dados. Você pode criar files e anexar dados a files, mas isso requer alguma análise serial (para verificação de erros), então não definimos esse modo por padrão.
- Redefinir novo File Número – Este modo irá zerar o log file número para LOG000.txt. Isso é útil se você limpou recentemente um cartão microSD e deseja o log file números para começar tudo de novo.
- Novo Caractere de Escape – Esta opção permite ao usuário inserir um caractere como CTRL+z ou $ e defini-lo como o novo caractere de escape. Esta configuração é redefinida para CTRL+z durante uma reinicialização de emergência.
- Número de caracteres de escape – Esta opção permite que o usuário insira um caractere (como 1, 3 ou 17), atualizando o novo número de caracteres de escape necessários para entrar no modo de comando. Por exemploampPor exemplo, inserir 8 exigirá que o usuário pressione CTRL+z oito vezes para entrar no modo de comando. Essa configuração é redefinida para 3 durante uma redefinição de emergência.
Explicação dos Caracteres de Escape: O motivo pelo qual o OpenLog exige que a tecla `CTRL+z` seja pressionada três vezes para entrar no modo de comando é para evitar que a placa seja reiniciada acidentalmente durante o upload de novo código da IDE do Arduino. Existe a possibilidade de a placa detectar o caractere `CTRL+z` durante o bootload (um problema que vimos nas primeiras versões do firmware do OpenLog), então isso visa evitar isso. Se você suspeitar que sua placa foi bloqueada por esse motivo, você sempre pode fazer uma reinicialização de emergência segurando o pino RX no terra durante a inicialização.
Configuração File
Se preferir não usar o terminal serial para modificar as configurações do seu OpenLog, você também pode atualizar as configurações modificando o CONFIG.TXT file.
Observação: Este recurso funciona apenas com firmware versão 1.6 ou mais recente. Se você comprou um OpenLog depois de 2012, estará executando o firmware versão 1.6+.
Para isso, você precisará de um leitor de cartão microSD e um editor de texto. Abra o arquivo config.txt file (a capitalização do file O nome não importa) e configure! Se você nunca ligou seu OpenLog com o cartão SD antes, você também pode criar manualmente o file. Se você ligou o OpenLog com o cartão microSD inserido anteriormente, deverá ver algo parecido com o seguinte ao ler o cartão microSD.O OpenLog cria um config.txt e LOG0000.txt file na primeira inicialização.
A configuração padrão file tem uma linha de configurações e uma linha de definições.Configuração padrão file escrito pelo OpenLog.
Observe que esses são caracteres visíveis regulares (não há valores não visíveis ou binários) e cada valor é separado por uma vírgula.
As configurações são definidas da seguinte forma:
- baud: A taxa de transmissão de comunicação. 9600 bps é o padrão. Os valores aceitáveis compatíveis com o Arduino IDE são 2400, 4800, 9600, 19200, 38400, 57600 e 115200. Você pode usar outras taxas de transmissão, mas não conseguirá se comunicar com o OpenLog através do monitor serial do Arduino IDE.
- escape: O valor ASCII (em formato decimal) do caractere de escape. 26 é CTRL+z e é o padrão. 36 é $ e é um caractere de escape comumente usado.
- esc#: O número de caracteres de escape necessários. Por padrão, é três, então você deve pressionar o caractere de escape três vezes para entrar no modo de comando. Os valores aceitáveis vão de 0 a 254. Definir este valor como 0 desabilitará completamente a verificação de caracteres de escape.
- modo: Modo de sistema. O OpenLog inicia no modo Novo Log (0) por padrão. Os valores aceitáveis são 0 = Novo Log, 1 = Log Sequencial, 2 = Modo de Comando.
- verbo: Modo verboso. Mensagens de erro estendidas (verbosas) são ativadas por padrão. Definir como 1 ativa mensagens de erro verbosas (como comando desconhecido: remove ! ). Definir como 0 desativa erros verbosos, mas responderá com um ! se houver um erro. Desativar o modo verboso é útil se você estiver tentando lidar com erros de um sistema embarcado.
- echo: Modo de eco. No modo de comando, os caracteres são ecoados por padrão. Definir como 0 desativa o eco de caracteres. Desativar essa opção é útil ao lidar com erros e você não quer que os comandos enviados sejam ecoados de volta para o OpenLog.
- ignoreRX: Substituição de Emergência. Normalmente, o OpenLog realiza uma reinicialização de emergência quando o pino RX é colocado em nível baixo durante a inicialização. Definir como 1 desabilitará a verificação do pino RX durante a inicialização. Isso pode ser útil para sistemas que mantêm a linha RX baixa por vários motivos. Se a Substituição de Emergência estiver desabilitada, você não poderá forçar a unidade de volta para 9600 bps, e a configuração file será a única maneira de modificar a taxa de transmissão.
Como o OpenLog modifica a configuração File
Existem cinco situações diferentes para o OpenLog modificar o config.txt file.
- Configuração file encontrado: Durante a inicialização, o OpenLog procurará por um config.txt file. Se o file for encontrado, o OpenLog usará as configurações incluídas e substituirá quaisquer configurações do sistema armazenadas anteriormente.
- Nenhuma configuração file encontrado: se o OpenLog não conseguir encontrar o config.txt file O OpenLog criará o arquivo config.txt e registrará nele as configurações do sistema armazenadas atualmente. Isso significa que, se você inserir um cartão microSD recém-formatado, o sistema manterá as configurações atuais.
- Configuração corrompida file encontrado: OpenLog apagará o config.txt corrompido file, e irá reescrever as configurações internas da EEPROM e as configurações do config.txt file para o estado conhecido como bom de 9600,26,3,0,1,1,0.
- Valores ilegais na configuração file: Se o OpenLog descobrir alguma configuração contendo valores ilegais, o OpenLog substituirá os valores corrompidos em config.txt file com as configurações do sistema EEPROM armazenadas atualmente.
- Alterações por meio do prompt de comando: se as configurações do sistema forem alteradas por meio do prompt de comando (por meio de uma conexão serial ou por meio de comandos seriais do microcontrolador), essas alterações serão registradas na EEPROM do sistema e no config.txt. file.
- Reinicialização de emergência: se o OpenLog for reiniciado com um jumper entre RX e GND, e o bit de substituição de emergência for definido como 0 (permitindo reinicialização de emergência), o OpenLog reescreverá as configurações internas da EEPROM e as configurações do config.txt. file para o estado conhecido como bom de 9600,26,3,0,1,1,0.
Solução de problemas
Há várias opções diferentes para verificar se você está tendo problemas para se conectar ao monitor serial, com caracteres perdidos em logs ou com um OpenLog bloqueado.
Verifique o comportamento do LED STAT1
O LED STAT1 mostra comportamento diferente para dois erros comuns diferentes.
- 3 piscadas: O cartão microSD falhou ao inicializar. Pode ser necessário formatar o cartão com FAT/FAT16 em um computador.
- 5 piscadas: o OpenLog mudou para uma nova taxa de transmissão e precisa ser reiniciado.
Verifique novamente a estrutura do subdiretório
Se você estiver usando o OpenLog.ino ex padrãoampO OpenLog suportará apenas dois subdiretórios. Você precisará alterar FOLDER_TRACK_DEPTH de 2 para o número de subdiretórios que você precisa suportar. Depois disso, recompile o código e carregue o firmware modificado.
Verifique o número de Files no diretório raiz
O OpenLog suportará apenas até 65,534 logs files no diretório raiz. Recomendamos reformatar seu cartão microSD para melhorar a velocidade de registro.
Verifique o tamanho do seu firmware modificado
Se você estiver escrevendo um esboço personalizado para o OpenLog, verifique se o seu esboço não é maior que 32,256. Nesse caso, ele ocupará os 500 bytes superiores da memória Flash, que é usada pelo bootloader serial Optiboot.
Verificação dupla File Nomes
Todos file Os nomes devem ser alfanuméricos. MyLOG1.txt está ok, mas Hi !e _.txt pode não funcionar.
Use 9600 Baud
O OpenLog é executado no ATmega328 e possui uma quantidade limitada de RAM (2048 bytes). Quando você envia caracteres seriais para o OpenLog, esses caracteres são armazenados em buffer. A Especificação Simplificada do Grupo SD permite que um cartão SD leve até 250 ms (seção 4.6.2.2 Gravação) para gravar um bloco de dados na memória flash.
A 9600 bps, isso significa 960 bytes (10 bits por byte) por segundo. Isso equivale a 1.04 ms por byte. O OpenLog atualmente usa um buffer de recepção de 512 bytes, o que permite armazenar em buffer cerca de 50 ms de caracteres. Isso permite que o OpenLog receba com sucesso todos os caracteres que chegam a 9600 bps. À medida que você aumenta a taxa de transmissão, o buffer dura menos.
Tempo de estouro do buffer do OpenLog
Taxa de transmissão | Tempo por byte | Tempo até que o buffer seja estourado |
9600bps | 1.04ms | 532ms |
57600bps | 0.174ms | 88ms |
115200bps | 0.087ms | 44ms |
Muitos cartões SD têm um tempo de gravação superior a 250 ms. Isso pode ser afetado pela "classe" do cartão e pela quantidade de dados já armazenados nele. A solução é usar uma taxa de transmissão mais baixa ou aumentar o tempo entre os caracteres enviados na taxa de transmissão mais alta.
Formate seu cartão MicroSD
Lembre-se de usar um cartão com poucos ou nenhum files nele. Um cartão microSD com 3.1 GB de ZIP files ou MP3s tem um tempo de resposta mais lento do que um cartão vazio.
Se você não formatou seu cartão microSD em um sistema operacional Windows, reformate o cartão microSD e crie um DOS filesistema no cartão SD.
Trocar cartões MicroSD
Existem muitos tipos diferentes de fabricantes de cartões, cartões com novas etiquetas, tamanhos e classes de cartão, e nem todos funcionam corretamente. Normalmente, usamos um cartão microSD classe 8 de 4 GB, que funciona bem a 9600 bps. Se precisar de taxas de transmissão mais altas ou mais espaço de armazenamento, experimente cartões classe 6 ou superior.
Adicionar atrasos entre as gravações de caracteres
Adicionando um pequeno atraso entre as instruções Serial.print(), você pode dar ao OpenLog a chance de registrar sua execução atual.
tampão.
Por exemploampem:
Serial.begin(115200);
para(int i = 1 ; i < 10 ; i++) {
Serial.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
}
pode não registrar corretamente, pois há muitos caracteres sendo enviados um ao lado do outro. Inserir um pequeno atraso de 15 ms entre gravações de caracteres grandes ajudará o OpenLog a gravar sem perder caracteres.
Serial.begin(115200);
para(int i = 1 ; i < 10 ; i++) {
Serial.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
atraso(15);
}
Adicionar compatibilidade com o monitor serial Arduino
Se você estiver tentando usar o OpenLog com a biblioteca serial integrada ou a biblioteca SoftwareSerial, poderá notar problemas com o modo de comando. Serial.println() envia quebra de linha E retorno de carro. Existem dois comandos alternativos para resolver isso.
A primeira é usar o comando \r (retorno de carro ASCII):
Serial.print(“TEXTO\r”);
Alternativamente, você pode enviar o valor 13 (retorno de carro decimal):
Serial.print(“TEXTO”);
Serial.write(13);
Reinicialização de emergência
Lembre-se, se você precisar redefinir o OpenLog para um estado padrão, você pode redefinir a placa conectando o pino RX ao GND, ligando o OpenLog, esperando até que os LEDs comecem a piscar em uníssono e, em seguida, desligando o OpenLog e removendo o jumper.
Se você alterou o bit de substituição de emergência para 1, será necessário modificar a configuração file, pois a Reinicialização de Emergência não funcionará.
Verifique com a Comunidade
Se você ainda estiver com problemas com o seu OpenLog, confira os problemas atuais e encerrados em nosso repositório do GitHub aqui. Há uma grande comunidade trabalhando com o OpenLog, então é provável que alguém tenha encontrado uma solução para o problema que você está enfrentando.
Recursos e Indo Além
Agora que você registrou os dados com sucesso com o seu OpenLog, pode configurar projetos remotos e monitorar todos os dados que chegam. Considere criar seu próprio projeto de Ciência Cidadã ou até mesmo um rastreador de animais de estimação para ver o que o Fluffy faz quando está fora de casa!
Confira estes recursos adicionais para solução de problemas, ajuda ou inspiração para seu próximo projeto.
- OpenLog GitHub
- Projeto Illumitune
- Conexão do sensor de luz LilyPad
- BadgerHack: Complemento para sensor de solo
- Introdução ao OBD-II
- Fotogate Vernier
Precisa de mais inspiração? Confira alguns destes tutoriais relacionados:
Sensor remoto de nível de água Photon
Aprenda a construir um sensor remoto de nível de água para um tanque de armazenamento de água e como automatizar uma bomba com base nas leituras!
Sensor remoto de nível de água Photon
Aprenda a construir um sensor remoto de nível de água para um tanque de armazenamento de água e como automatizar uma bomba com base nas leituras!
Registrando dados no Planilhas Google com o Tessel 2
Este projeto aborda como registrar dados no Planilhas Google de duas maneiras: usando IFTTT com um web conexão ou um pen drive USB e “sneakernet” sem.
Gráfico de dados de sensores com Python e Matplotlib
Use o matplotlib para criar um gráfico em tempo real de dados de temperatura coletados de um sensor TMP102 conectado a um Raspberry Pi.
Se você tiver algum feedback sobre o tutorial, visite os comentários ou entre em contato com nossa equipe de suporte técnico em Suporte técnico@sparkfun.com.
Documentos / Recursos
![]() |
SparkFun DEV-13712 Placas de desenvolvimento SparkFun [pdf] Guia do Usuário DEV-13712, DEV-11114, DEV-09873, CAB-12016, COM-13833, COM-13004, PRT-00115, PRT-08431, DEV-13712 Placas de desenvolvimento SparkFun, DEV-13712, Placas de desenvolvimento SparkFun, Placas de desenvolvimento, Placas |