Commit c61a67e4 authored by Béuren F. Bechlin's avatar Béuren F. Bechlin

VER_0.0.01: onde temos o armazenamento dos dados e o algoritmo para estimar a...

VER_0.0.01: onde temos o armazenamento dos dados e o algoritmo para estimar a frequência respiratório com saída em .png
parent fc78bc1c
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
Estação biométrica CTA
Programa para aquisição dos dados
Este programa é utilizado com o programa biometrica.ino no qual a taxa de amostragem é definida no microcontrolador
Protocolo usado está disponível no biométrica.ino
Centro de Tecnologia Acadêmica - UFRGS
http://cta.if.ufrgs.br
Licença: GPL v3
Ordem de argumentos : [porta],[taxa_transmissão],[arquivo_saída]
Onde:
[porta]: porta serial no qual o arduino está conectado
[taxa_transmissão]: velocidade de comunicação serial
[arquivo_saída]: nome do arquivo em que os dados serão salvos
[tempo_de_execução]: tempo total de execução, em segundos
PADRÃO NOME DO ARQUIVO DE SAÍDA: coleta_[Nome]_[Sobrenome]_[obs].log
[obs] são observações caso sejam necessárias
'''
# Exemplo: python armazenamento.py '/dev/ttyACM0' 115200 coleta_Nome_Exemplo_1min.log 30
import sys, time, serial, datetime
argumento = sys.argv[1:] #renomeando os argumentos
# Iniciando comunicação serial
ser = serial.Serial(argumento[0], argumento[1])
# Limpando buffer para retirar as medidas feitas antes de iniciar o software
ser.setDTR(False) # Desliga DTR
time.sleep(0.005)
ser.flushInput() # Limpa buffer de dados
ser.setDTR(True) # Liga DTR novamente
# Variáveis de controle
frequencia = int(ser.readline().replace('\r\n',''))
# Arquivos de log
fisiologfile = open(argumento[2],'w')
now=datetime.datetime.now()
fisiologfile.write(now.strftime("#Frequência\t"+str(frequencia)+"\t(Hz)\n"+"#Estação Biométrica\n"+"#Coleta de dados iniciado em: "+"%Y-%m-%d %H:%M:%S" +"\n"+"#Protocolo usado: a primeira coluna é a medida do primeiro termistor e a segunda do segundo.\n"))
fisiologfile.close()
print "Data e hora da medida \t\tMedida 1\tMedida 2"
time = int(argumento[3])*frequencia
time_counter = 0;
while (time_counter <= time or time == 0):
time_counter += 1
print time, time_counter
try:
option = ser.read()
# Respiração
# Para o python '\x' serve para representar uma caracter HEX ASCII
# e o 0x para para valores HEX literais. O comando write do arduino
# envia um caracter, logo deve-se usar a primeira forma
if option == "\x0A":
sensor_value1 = ser.readline().replace('\r\n','')
sensor_value2 = ser.readline().replace('\r\n','')
# Arquivo de log
fisiologfile = open(argumento[2],'a')
fisiologfile.write(str(sensor_value1)+"\t"+str(sensor_value2)+"\n")
fisiologfile.close()
# Registra horário atual
now = datetime.datetime.now()
# Mostrando dados na tela
print now.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3],"\t", sensor_value1, "\t\t", sensor_value2
# Erro 1
if option == '\x01':
print 'Frequência muito alta para o microcontrolador: ', frequencia, '. Finalizando processo.\n'
except KeyboardInterrupt:
break
ser.close()
#Frequência\x0915\x09(Hz)
#Estação Biométrica
#Coleta de dados iniciado em: 2015-03-13 16:52:24
#Protocolo usado: a primeira coluna é a medida do primeiro termistor e a segunda do segundo.
413 430
413 429
413 430
413 430
413 431
413 430
414 430
413 431
414 431
414 431
414 431
414 431
414 431
414 430
414 430
415 431
414 430
414 430
414 430
414 430
414 430
414 430
414 430
414 430
414 431
414 430
414 430
414 430
414 430
414 430
414 430
414 430
414 430
414 429
414 429
414 429
414 428
414 428
414 427
413 427
413 427
414 427
413 426
412 426
413 426
413 425
412 425
411 425
412 424
412 423
411 424
411 423
410 423
411 423
410 423
410 422
410 422
409 422
410 422
409 421
410 421
409 421
409 421
409 421
409 421
408 421
408 420
409 421
408 420
408 420
408 420
408 420
408 420
408 420
408 420
408 420
408 419
408 419
407 419
407 418
407 419
407 418
407 418
406 417
406 418
406 418
406 417
406 418
406 417
406 417
407 418
406 418
407 419
407 420
407 421
407 422
408 422
408 423
408 424
409 425
410 425
409 425
410 427
410 427
410 427
411 427
410 427
410 427
411 427
411 427
412 428
411 428
411 427
411 427
412 428
411 428
412 428
412 429
412 429
412 428
412 429
413 429
413 429
413 429
413 429
414 430
413 430
414 429
414 430
413 430
414 430
414 430
414 430
414 430
414 430
414 430
414 430
414 430
415 430
415 430
414 431
414 430
414 430
414 430
414 430
414 431
414 430
414 430
414 430
414 430
414 429
414 429
414 428
413 428
413 428
413 428
413 428
414 427
413 427
413 426
413 427
413 426
413 426
412 426
412 426
413 425
411 425
412 425
411 425
411 424
411 424
411 423
410 423
411 422
410 422
410 422
410 422
410 421
409 421
410 421
409 421
409 420
408 421
408 421
408 420
409 420
409 421
408 420
409 420
408 421
408 420
408 421
408 420
407 419
408 420
408 420
408 419
408 419
407 419
407 419
407 419
407 419
406 418
407 419
407 419
406 418
407 418
407 417
406 417
405 417
406 417
406 416
406 417
405 416
405 417
406 418
406 418
406 420
407 421
407 422
408 423
408 424
409 425
409 425
409 426
410 426
410 427
410 428
410 428
410 428
411 428
411 429
411 429
411 429
411 429
411 429
411 428
411 429
412 429
411 429
411 429
411 428
411 428
411 428
411 429
412 429
412 429
412 429
411 428
412 429
412 430
412 429
413 429
413 430
412 430
413 430
413 430
413 430
413 430
413 431
414 430
413 430
413 431
414 431
414 431
413 431
413 431
414 432
414 431
414 431
414 431
413 431
413 431
414 430
413 430
413 430
413 429
413 429
413 428
412 427
412 427
411 427
411 426
412 426
411 426
411 426
411 425
411 426
410 425
410 424
410 425
411 424
410 424
411 424
410 424
410 424
410 424
410 423
410 423
409 423
409 422
409 422
409 422
409 422
409 422
408 421
408 421
408 421
407 420
407 420
408 420
407 420
407 420
407 419
407 419
407 420
407 419
407 419
407 419
406 419
407 419
407 419
407 419
407 419
406 418
406 418
407 419
406 418
406 418
407 418
406 418
406 418
406 417
406 418
406 417
407 417
406 418
406 419
406 419
406 419
407 420
406 420
407 421
407 421
407 422
407 423
408 423
408 423
408 424
408 424
409 424
409 425
409 425
409 426
409 426
410 426
410 427
410 427
411 427
411 427
411 428
411 427
412 427
412 428
412 428
411 428
412 428
412 429
412 429
412 428
413 429
412 429
412 429
413 429
413 428
413 429
413 429
413 428
412 429
412 429
412 428
413 428
413 429
412 429
412 428
413 428
413 429
413 428
414 429
413 429
413 429
413 429
413 429
413 430
413 430
414 429
414 429
414 429
413 428
413 428
413 427
413 427
413 427
413 426
412 426
413 426
412 426
412 425
411 424
411 424
411 424
411 424
411 423
410 423
410 422
410 422
409 422
409 422
409 421
410 421
409 421
409 422
409 421
409 421
409 420
408 420
409 420
408 420
409 420
408 420
409 420
409 420
409 420
408 420
408 420
408 419
408 420
408 420
408 420
408 419
408 419
407 419
408 419
408 418
407 419
407 418
407 418
406 418
407 417
407 417
406 417
406 417
406 417
406 417
406 417
406 417
406 417
406 417
407 418
406 419
407 420
407 421
408 422
408 422
409 423
409 424
410 424
410 424
410 425
410 425
410 425
410 426
411 426
410 426
410 427
411 427
411 427
412 427
411 428
411 427
412 427
411 427
411 427
411 427
412 427
412 428
412 428
413 428
412 428
412 429
412 428
413 428
413 429
413 429
413 429
413 430
413 430
414 430
414 430
413 430
413 430
413 429
414 430
414 431
414 430
414 430
414 431
414 431
414 431
414 430
414 430
413 430
413 430
413 430
413 430
413 429
413 429
413 428
413 428
412 427
412 428
412 428
413 427
412 427
412 427
413 426
412 426
413 426
411 425
412 425
412 425
411 425
411 425
411 425
411 425
411 424
410 423
411 423
410 423
410 423
410 422
409 423
409 422
409 422
409 421
408 421
408 421
409 421
408 421
408 421
408 421
408 420
409 420
408 421
408 420
408 420
408 420
408 421
408 421
408 420
408 420
408 420
408 420
408 419
408 420
408 420
407 420
407 418
407 419
407 419
407 418
407 418
407 418
406 418
406 417
406 417
406 417
406 418
407 419
406 420
407 421
407 422
409 423
409 423
408 424
410 425
410 425
410 426
410 427
411 426
410 427
411 427
411 428
411 428
411 428
411 428
412 428
412 428
412 429
412 428
412 428
412 429
412 430
412 430
413 429
412 429
412 430
412 429
412 429
412 429
413 430
413 430
413 430
413 430
413 430
414 430
414 431
413 430
413 431
413 431
414 430
413 431
413 431
414 431
414 432
414 431
414 431
413 431
414 431
414 431
414 431
413 431
413 431
413 431
413 430
413 430
414 430
413 430
413 430
413 429
412 429
413 428
412 428
413 428
413 428
412 427
412 427
412 427
412 426
412 426
412 426
412 426
411 426
411 425
411 425
411 425
411 424
410 424
410 424
410 423
410 423
409 423
410 423
409 422
409 422
409 421
408 421
408 421
408 421
408 421
409 421
407 420
408 421
408 420
408 421
408 421
408 420
409 421
408 421
407 420
407 419
408 420
408 420
407 420
408 420
408 419
407 419
407 419
407 419
406 419
406 418
407 418
406 418
406 418
406 418