python初学者在这里。我正在使用 Rapsberry Pi 和 Arduino 使用距离传感器。
传感器数据的输出是连续的,直到程序停止。这是输出的一个片段:
4 5 5 0 0 448
4 5 5 0 0 0
4 5 5 0 0 0
4 5 5 0 0 0
4 5 5 0 0 0
4 5 5 0 0 0
4 5 5 0 0 448
我的问题是将每列数据保存到自己的变量中的最佳方法是什么?每列都是由空格分隔的自己的传感器,我需要对每个传感器执行操作。我曾尝试使用,.split()但无法使其正常运行。
这是将从 Arduino 获取串行数据的 Python 代码。如果我不使用.decode(),.strip()然后输出将在每个换行符的开头和每个换行符/r/n的末尾都有 ab' 。
import datetime
import serial
datetime.datetime.now()
ser=serial.Serial('/dev/ttyACM0',115200)
while True:
read_serial=ser.readline()
val= read_serial.decode()
print (val.strip())
这是Arduino代码:
#include <NewPing.h>
#define SONAR_NUM 6 // Number of sensors.
#define MAX_DISTANCE 500 // Maximum distance (in cm) to ping.
NewPing sonar[SONAR_NUM] = { // Sensor object array.
NewPing(12, 13, MAX_DISTANCE), // Each sensor's trigger pin, echo pin, and max distance to ping.
NewPing(10, 11, MAX_DISTANCE),
NewPing(8, 9, MAX_DISTANCE),
NewPing(6, 7, MAX_DISTANCE),
NewPing(4, 5, MAX_DISTANCE),
NewPing(2, 3, MAX_DISTANCE)
};
void setup() {
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}
void loop() {
for (uint8_t i = 0; i < SONAR_NUM; i++) { // Loop through each sensor and display results.
delay(15); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings
Serial.print(" ");
Serial.print(sonar[i].ping_in());
}
Serial.println();
}
万千封印
相关分类