Cześć,
Mam taki problem, chciałbym podłączyć Raspberry Pi 2B+ z Arduino (póki co Uno, docelowo Mega) po pinach gpio UART (nie przez USB). Dlatego napisałem sobie komunikację serial zgodnie z poniższym kodem. Komunikacja oczywiście jest poprzez konwerter poziomów logicznych.
RASPBERRY PI:
var serialPort = require("serialport");
const Readline = serialPort.parsers.Readline;
var portSerial = new serialPort("/dev/ttyAMA0", {
baudRate: 9600,
dataBits:8, stopBits:1, parity: 'none'
}, function (err) {
});
parser = new Readline();
portSerial.pipe(parser);
portSerial.on("open", function(err) {
if (err)
return console.log("Error in opening serial port");
console.log("Port opened");
});
portSerial.on('error', function(err) {
//log error
});
ARDUINO:
void setup(){
Serial.begin(9600);
Serial.println("Witaj na Forbocie!");
}
void loop() {
delay(3000);
Serial.println("Minelo 5 sekund!");
}
Pytanie brzmi, czy jest w stanie ktoś może mi zasugerować co zrobiłem źle? Z pomocą aplikacji minicom wyświetla mi poprawnie, to co bym chciał. Co też raczej potwierdza, że wybieram dobre urządzenie ttyAMA0.
Problem jednak pojawia się, gdy z poziomu mojego softu chciałbym zrealizować odbiór danych, port zostaje otwarty, a dane niestety nie zostają odebrane, niezależnie od biblioteki czy to node-serial, czy serialport itp.
Zakładam również, że konfigurację mam poprawną portów na Raspberry, skoro minicom działa, chociaż za każdym odpaleniem go jest potrzebny reboot ;).
Wersja:
Node: v10.21.0
Arm: v6