Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在列表(python)中存储连续来自arduino的值?_Python_Python 2.7_Arduino_Arduino Uno - Fatal编程技术网

如何在列表(python)中存储连续来自arduino的值?

如何在列表(python)中存储连续来自arduino的值?,python,python-2.7,arduino,arduino-uno,Python,Python 2.7,Arduino,Arduino Uno,在我最近的项目中,我需要将数据从Arduino传输到python。而且已经完成了 这里是我的Arduino代码: float TPS_MIN = 0.00; float TPS_MAX = 5.00; float MAP_MIN = 0.85; float MAP_MAX = 1.90; float LOAD_MIN_TPS = 2.00; float LOAD_MAX_TPS = 10.00; float LOAD_MIN_MAP = 9.69; float LOAD_MAX_MAP =

在我最近的项目中,我需要将数据从Arduino传输到python。而且已经完成了

这里是我的Arduino代码:

float TPS_MIN = 0.00;
float TPS_MAX = 5.00;

float MAP_MIN = 0.85;
float MAP_MAX = 1.90;

float LOAD_MIN_TPS = 2.00;
float LOAD_MAX_TPS = 10.00;

float LOAD_MIN_MAP = 9.69;
float LOAD_MAX_MAP = 82.18;

float m1, m2;

float y1, y2;

float TPS[] = {0, 0.4, 0.8, 1.2, 1.6, 2, 2.4, 2.8, 3.2, 3.6, 4, 4.4, 4.8, 5};
float MAP[] = {0.85, 0.95, 1.05, 1.15, 1.25, 1.35, 1.45, 1.55, 1.65, 1.75, 1.85, 1.9};

int i;
int j;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  m1 = (LOAD_MAX_TPS - LOAD_MIN_TPS) / (TPS_MAX - TPS_MIN);

  for(i = 0; i < 14; i++)
  {
    y1 = m1 * (TPS[i] - TPS_MIN) + LOAD_MIN_TPS;
    Serial.println(y1);
  }

  m2 = (LOAD_MAX_MAP - LOAD_MIN_MAP) / (MAP_MAX - MAP_MIN);

  for(j = 0; j < 12; j++)
  {
    y2 = m2 * (MAP[j] - MAP_MIN) + LOAD_MIN_MAP;
    Serial.println(y2);
  }
  delay(10000000);
}
和输出(python shell):


现在,我想把这个值存储在列表中。我不知道是怎么做到的。给出一些建议。

您可能希望这样,但由于您正在运行一个无限循环,您将有一个附加数据的连续更改列表

import serial
arduino = serial.Serial('COM12', 9600, timeout = .1)
arduino_data = [] # declare a list
while True:
    data = arduino.readline()
    if data:
        arduino_data.append(data) # Append a data to your declared list
        print arduino_data

你应该提供一个你预期行为的例子,因为我们无法理解你的想法。命题和>可以说是模棱两可的。可以从这个
TPS=[]加载=[]开始。。。TPS.append(data.split()[2])LOAD.append(data.split()[5])
@PatrickTrentin好的,让我用另一个例子解释一下。您更改了几次输出,因为现在您只有一个值流。。你想让它们都在同一个数组中吗?@PatrickTrentin我改变了整个示例,这有点容易理解。是的,我希望它们都在python语言的相同数组或列表中。因此,在这之后,我很容易将数据从该数组中分离出来。我希望你能理解。好吧,现在的答案应该能让你明白这一点。
2.00


2.64


3.28


3.92


4.56


5.20


5.84


6.48


7.12


7.76


8.40


9.04


9.68


10.00


9.69


16.59


23.50


30.40


37.31


44.21


51.11


58.02


64.92


71.82


78.73


82.18
import serial
arduino = serial.Serial('COM12', 9600, timeout = .1)
arduino_data = [] # declare a list
while True:
    data = arduino.readline()
    if data:
        arduino_data.append(data) # Append a data to your declared list
        print arduino_data