Preciso plotar dados seriais do Arduino.
Eu preciso de suporte para:
- Vários formatos de dados (por exemplo, assinado, não assinado, 8 bits, 16 bits);
- Plota vários dados nos mesmos eixos;
- Exporta / importa dados de arquivo.
Como plotar dados seriais do Arduino é uma necessidade comum, minha pergunta é: Quais programas / utilitários estão disponíveis para plotar dados seriais do Arduino que atendam às necessidades acima?
Quais são as vantagens / desvantagens do método que você sugeriu?
Respostas:
Existem algumas boas aplicações para visualizar os dados seriais, incluindo:
MegunoLink (US $ 29,95; Lite grátis) - plotagem, registro, programação, relatórios e muito mais.
MakerPlot (US $ 39) - plotagem digital e analógica, monitoramento, interfaces personalizadas e muito mais.
ArduinoPlot (grátis) - plotagem simples.
arduino-plotter (grátis) - plotagem fácil e leve, com suporte para todos os tipos primitivos
Bridge Control Panel (gratuito) - registro, plotagem e muito mais.
RealtimePlotter (gratuito) - plotagem de dados de 6 canais.
Plotter de dados seriais em tempo real (gratuito) - plotagem de dados CSV, registro e muito mais.
SimPlot (gratuito) - plotagem de 4 canais.
Plotter serial do Arduino (gratuito) - construído no Arduino Editor em Ferramentas> Plotador serial .
(Este é um wiki da comunidade, você pode expandir a lista.)
fonte
GnuPlot
Vantagens: É muito flexível, programável e disponível gratuitamente.
Desvantagens: Um pouco complexo de aprender (mas eu descobri como começar em alguns minutos e bastante funcional em uma ou duas horas), é executado em uma janela do terminal (se você considera isso uma desvantagem).
Algo que achei muito útil foi criar um script para recarregar o arquivo de log do meu programa de terminal periodicamente, para que eu tenha um gráfico dinâmico à medida que minha experiência progride.
Edit: Aqui está o script GnuPlot que o plota:
fonte
Eu uso o Matplotlib para qualquer plotagem que eu precise fazer.
Não é específico para o arduino, mas é um excelente kit de ferramentas de plotagem Python .
Eu construí uma série de aplicativos que plotam dados de vários microcontroladores em tempo real para um gráfico, mas esse foi realmente um processo de duas etapas: 1. Colocar dados do dispositivo no computador, 2. plotar dados em tempo real .
Realmente, acho que você deve dividir sua pergunta em duas partes:
fonte
SerialPlot (grátis). Faz tudo o que você precisa e muito mais.
Outras características:
fonte
Respondendo à minha própria pergunta aqui .. Eu uso o Bridge Control Panel como mencionado.
Vantagens: Muitos recursos.
Desvantagens: Configuração complicada e relatórios de sintaxe / erro muito ruins.
Para usar: Você precisa gravar os dados do Arduino na porta serial, um byte de cada vez. Para um tipo de dados int com a seguinte aparência:
No Bridge, o comando para ler dados é:
RX8 é o comando de leitura [h = 43] significa que o próximo byte válido é "C" em ASCII, em seguida, o Byte Alto da Chave1 e o Byte Baixo da Chave1
Parece assim no Bridge:
fonte
Você pode tentar o serialchart . É um programa bastante direto. Faz exatamente o que você pediu. A única desvantagem é que requer dados no formato CSV (não atende ao primeiro ponto).
Captura de tela da página do projeto:
fonte
Você pode estar interessado em
Telemetry
Veja no Github . É um protocolo de comunicação, altamente simples de usar, com uma interface limpa, que permite a comunicação bidirecional com dispositivos Arduino / Mbed.Se você não quiser ler este longo post, consulte Um passo a passo de todos os recursos impressionantes
O poder desta biblioteca vem da interface da linha de comando da área de trabalho (que não requer habilidades de programação em python).
Ele é capaz de abrir gráficos de alto desempenho (muito acima do que pode ser feito com o matplotlib) apenas digitando um comando .
O protocolo suporta estruturas de dados complexas . Por enquanto, matrizes e matrizes esparsas podem ser enviadas da placa incorporada.
Os gráficos abertos a partir da interface da linha de comando compreendem o tipo de dados e, para matrizes, em vez de plotar cada amostra versus tempo, a amostra será plotada em relação ao seu próprio índice.
Em um futuro próximo, está planejado adicionar suporte para coordenadas espaciais (dados xyz), que permitirão plotar dados espaciais imediatamente. Mais uma vez, as plotagens descobrirão tudo, plotarão seus dados no espaço 2D ou 3D e você poderá se concentrar no desenvolvimento do seu aplicativo.
Acredito que esses recursos sejam simplesmente únicos para esse projeto.
CLI de Pytelemetry
Depois de instalada
pip
, a linha de comando pode ser iniciada comEntão você pode
connect
,ls
(lista) recebeu tópicos,print
os dados recebidos em um tópico,pub
(publicar) em um tópico, ou aberto umplot
em um tópico para exibir dados recebidos em tempo realiniciar
Wiki
PS: Eu sou o autor.
Eu o desenvolvi porque não consegui encontrar uma solução que me permitisse:
tudo isso sem usar soluções proprietárias ou GUIs inchadas.
Usando esta biblioteca, o tempo para configurar uma comunicação entre o Arduino e o PC passou de meio dia para 5 minutos.
fonte
Ninguém mencionou o Processing, que é super versátil. Você pode fazer muito mais do que apenas plotar, mas se isso é tudo o que você quer fazer, pode usar a biblioteca gwoptics; conecte o Arduino e o Processamento conforme indicado aqui .
fonte
Eu fiz uma ferramenta equivalente em python que imprime dados em tempo real a partir do acelerômetro ADXL345. https://github.com/mba7/SerialPort-RealTime-Data-Plotter
pode ser que seja útil para alguém
Basta escolher o serial com e speed e enviar os dados seriais no seguinte formato:
Pode ser facilmente adaptado para alterar este formato
fonte
Você pode usar o MATLAB Student Edition . Isso também poupa seu tempo para análises adicionais. Você pode simplesmente abrir a porta COM no MATLAB e plotar o sinal recebido e / ou salvar o sinal na área de trabalho ou o que for. O MATLAB facilita tudo!
fonte
O formato CSV é mais versátil para qualquer dado (assinado / não assinado, vários tamanhos e precisão).
Ferramenta de plataforma cruzada (escrita em Java / Scala) O Scsvlog pode receber / analisar seqüências de caracteres CSV da porta / soquete serial, mostrar valores e desenhar gráficos (até 8).
fonte
Você pode experimentar o software que desenvolvi para essa proposta. Destina-se a ser fácil de usar. Consulte SerialGraphicator - Cliente de porta serial livre de código aberto capaz de valores gráficos que são recebidos no formato JSON.
fonte
Embora eu não o tenha usado, "rqt_plot" em execução no PC parece ser uma maneira popular de plotar dados em um PC que vem através de uma porta serial de um Arduino executando um esboço que inclui a biblioteca rosserial_arduino ou a biblioteca ros_arduino_bridge .
fonte
Sei que essa é uma pergunta muito antiga, mas recentemente criei um aplicativo para Mac que resolve esse problema muito bem. Você pode encontrar mais informações sobre isso em www.bloonapp.com. Existem alguns vídeos de demonstração no site que você pode conferir.
fonte
Eu sei que você provavelmente estava atrás de uma saída GUI mais avançada, mas consegui replicar uma tarefa que normalmente seria feita com um osciloscópio:
usando a plotadora serial no Arduino IDE e um módulo ADC, você pode obter US $ 3 no eBay. Admito que é um pouco grosseiro, mas pode valer a pena brincar com a ferramenta por um tempo, antes de investir em soluções no nível Python / Matlab / ect. Foi extremamente fácil de usar. Não seria preciso muito para adicionar a gravação do cartão SD ao processo.
Consulte: https://edwardmallon.wordpress.com/2016/08/15/using-the-arduino-uno-as-a-basic-data-acquisition-system/
fonte
Telemetry Viewer
Vantagens:
Desvantagens:
fonte
Serial Plotter é um programa simples que criei com a Electron que recebe dados no seguinte formato:
data1,data2,timestamp;
e os converte em um gráfico em tempo real.fonte
Quase útil. Precisa:
O Live Graph é uma opção melhor e eu o uso em conjunto com o Tera Term, que obtém os dados por meio do link USB / serial (e o salva em um arquivo de log que, em seguida, o Live Graph pesquisa).
O Live Graph é um pouco problemático ao armazenar dados em cache e não encontrei uma maneira de definir uma janela móvel para exibir resultados. Além disso, mostrar vários gráficos requer dimensionamento manual, mas apesar de tudo isso, ainda é muito útil. Está escrito em java, então você precisará do JRE. Eu prefiro isso do que ter que instalar o python como alguns outros programas gráficos. Outra desvantagem é que ele abre 4 janelas diferentes, o que é uma dor quando eu quero alternar entre ele e Tera Term.
Ainda estou para encontrar um software que seja
fonte
?
botão no editor.Estou usando processing.org para plotagem serial do Arduino. Foi o único aplicativo que pude encontrar que me permitiu fazer histogramas reais (por exemplo, um milhão de eventos em cem caixas) e exibir vários números de informações, além de significar sigma para cada canal. Dois grandes problemas: A) acabou sendo baseado em Java sem bytes não assinados; B) sincronizou com entrada necessária de buffer circular e marcadores nos dados. (alta velocidade, sem aperto de mão)
fonte
Monitoramento SVisual e gravação de sinais para o Arduino e não apenas.
Exemplo de vídeo
Download grátis)
fonte