2016-09-03 3 views
-1

Ich benutze diesen Code zur Zeit die Daten zu visualisieren ich erfassen mit CooltermWie kann ich Daten von Python lesen, wenn Sie Arduino verwenden, anstatt CoolTerm zu verwenden?

# -*- coding: utf-8 -*- 
""" 
Created on Mon Aug 22 16:13:11 2016 
@author: F041 
""" 

from __future__ import division 
from scipy.ndimage.filters import gaussian_filter 
from sklearn.neighbors import NearestNeighbors 
from matplotlib.colors import ListedColormap 
import time 
import matplotlib.pyplot as plt 
start = time.clock() 


def GSRdata(fileName,dGSR="n",GSRs="n"): 
    import numpy as np 
    import matplotlib.pyplot as plt 
    GSRTdata=np.genfromtxt(fileName,skip_header=0,delimiter=',',dtype=float, deletechars='\n') 
    media_GSR=0 
    GSR=[] 
    GSRs=[] 
    contatore=0 
    for line in GSRTdata: 
     gsr=float(line[0]) 
     media_GSR+=gsr 
     if contatore==3: 
      GSR.append(media_GSR/(contatore+1)) 
      media_GSR=0   
      contatore=0 
     else: 
      contatore+=1 
    if dGSR!="n": 
     dGSR=[] 
     i=0 
     diff=0 
     while i<len(GSR)-1: 
      diff=(GSR[i+1]-GSR[i]) 
      dGSR.append(diff) 
      i+=1 
     dGSR=gaussian_filter(dGSR,sigma=4) 
     plt.xlabel("time (s)") 
     plt.ylabel("GSR difference") 
     plt.title("First forward difference") 
     plt.plot(dGSR) 
    if GSRs!="n": 
     GSRmax=max(GSR) 
     time=range(len(GSR)) 
     for value in GSR: 
      s_value=value/GSRmax 
      GSRs.append(s_value) 
     plt.show() 
     plt.scatter(time,GSRs) 
     plt.title("Standardized GSR") 
     plt.xlabel("time (s)") 
     plt.ylabel("GSRs") 

    GSR=gaussian_filter(GSR,sigma=5) 
    fig = plt.figure() 
    ax1 = fig.add_subplot(111) 
    ax1.plot(GSR,label='GSR') 
    plt.legend(loc='upper right') 
    plt.ylabel("GSR microSiemens") 
    plt.xlabel("time (s)") 
    return GSR 

Antwort

0

Sie könnten versuchen, pyserial zu verwenden.

Beispiel:

#!/usr/bin/python 
import serial 

port = serial.Serial("/dev/ttyUSB0", 9600, timeout=1, bytesize=8, 
parity='N',stopbits=1, xonxoff=0, rtscts=0, dsrdtr=0) 
data = port.readline() 
port.close()` 
+0

warum haben Sie setzen "#/usr/bin/python!"? –

+0

Jemand hat diese Frage schon beantwortet wirklich gut [hier] (http://askubuntu.com/a/694508) –

+0

Es sieht aus wie es die Daten nicht liest, wie es nicht "zuhören". Die Daten sind leer –

Verwandte Themen