Я пытаюсь отправить Numpy массивы с плавающей точкой (каждый массив имеет 3 члена), например:
[-1.73921636 -0.47675802 -0.2068679 ]
на Arduino через последовательный порт.
похоже, я так мало знаю, чтобы решить эту проблему! Я использую эти строки кода в Python:
import serial
arduino=serial.Serial('com4',9600)
while 1:
array = function(x,y,z);
data=bytearray(array)
arduino.write(data)
time.sleep(.5)
Конечно, я не могу использовать последовательный монитор Arduino, поэтому я использую ЖК-дисплей 16x2, чтобы увидеть, что именно я получаю от Python. Все, что я вижу, это случайные символы (часто по-японски!). Я думаю, что это проблема с декодированием массива numpy, потому что я могу увидеть строку, если я вставлю ее в arduino.write(data)
.
Arduino код:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
char inputBuffer[32];
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.backlight();
}
void loop() {
if (Serial.available()) {
lcd.clear();
delay(200);
if (Serial.available() > 0) {
//lcd.print(" ");
Serial.readBytesUntil('\n', inputBuffer, 32);
//Serial.read();
lcd.setCursor(0, 0);
lcd.print(inputBuffer);
memset(inputBuffer, 0, sizeof(inputBuffer));
}
}
}