2013-04-04 54 views
0

我有一个arduino草图,它将3个电位器的模拟数据写入外部EEPROM。当我读回数据我打印出来的地址号和模拟值,以便在串口监视器,我得到这样的:从Arduino中取出串行数据并在python中排序

0:221

1:548

2:1023

3:221

4:548

5:1023

6:221

7:548

8:1023

我需要用我得到的处理草图的最终数字,所以我想编写一些代码在python/processing中,将分别对每个电位器的数据进行排序,以便稍后将其转换为Processing草图。

任何帮助将不胜感激,我是一个初学者的编码器。

+2

你有什么问题?什么是绊脚石? – angelatlarge 2013-04-04 02:59:05

+0

你的意思是什么?你的意思是将它从第一个数字的增加索引(0,1,2,3,4 ...)改为像“p1:221,p2:548,p3:1023”等等? – adahlin 2013-04-04 14:57:23

+0

我希望数字[0,3,6等]是一个数组,[1,4,7等]是另一个数组,[2,5,8]是另一个数组。 – user2242936 2013-04-04 21:35:45

回答

0

我一直在做类似的事情,使用处理。

对我来说有效的是将每组数据放入数组中,然后使用saveStrings()将数组保存到文本文件中。然后,如果需要,我可以将其重新导入,或者轻松地在Excel中绘制它。

String inString = myPort.readStringUntil('\n'); 
    if (inString != null) { 
    inString = trim(inString); 
    String[] split = split(inString, ','); 
    inFloat0 = float(split[0]); 
    inFloat1 = float(split[1]); 

    float pot0 = inFloat0; 
    pot0list = append(pot0list, pot0); 
    float pot1 = inFloat1; 
    pot1list = append(pot1list, pot1); 

该代码是用逗号分隔串行字符串中的值,并用新的行字符指示数据字符串的结尾。

//Create string for saving to text file 
    String[] pot0listString = new String[pot0list.length]; 
    for (int i = 0; i < pot0list.length; i++) { 
    listString[i] = (Float.toString(pot0list[i]) + ',' + Float.toString(pot1list[i])); 
    } 

    //Save to text file 
    saveStrings("list.txt", listString); 

那一个会将它保存为一个文本文件,对于3组数据需要进行一些修改,但其相当简单。

此外,处理还有一个sort.list,它可以对数据进行排序,如果您也想使用它。

干杯,马特