На Raspberry Pi не принимаются данные от Arduino по NRF24

Имею Arduino Uno и Raspberry Pi 3. К ним подключены модули NRF24L01+, разумеется по протоколу SPI. Raspberry Pi 3 в роли приемника, Arduino Uno в роли передатчика.

Но по какой то неведомой для меня причине на Raspberry Pi я получаю не то, что передаю.

Передаю, как понятно из кода набор из 4 значений, а получаю вот что:

Received: [252, 252, 252, 252]
Received: [252, 252, 252, 252]

Может быть кто то заводил NRF24 на Raspberry? Куда копать?

Код Arduino UNO(передатчика)

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

//nRF24 set the pin 9 to CE and 10 to CSN/SS
// Cables are:
//     SS       -> 10
//     MOSI     -> 11
//     MISO     -> 12
//     SCK      -> 13

//for nrf24 debug
int serial_putc( char c, FILE * ) 
{
  Serial.write( c );
  return c;
} 
void printf_begin(void)
{
  fdevopen( &serial_putc, 0 );
}

RF24 radio(9,10);

const uint64_t pipe = 0xE0E0F1F1E0LL;

void setup(void) {
  Serial.begin(9600); //Debug 
  printf_begin();
  //nRF24 configurations
  radio.begin();
  radio.setChannel(0x70);
  radio.setCRCLength(RF24_CRC_16);
  radio.setAutoAck(1);
  radio.setRetries(15,15);
  radio.setDataRate(RF24_2MBPS);
  radio.openWritingPipe(pipe);
  radio.startListening();
  radio.printDetails(); //for Debugging
}

void loop() {
  int SendPayload[4] ;
    
  SendPayload[0] = 2;
  SendPayload[1] = 3;
  SendPayload[2] = 4;
  SendPayload[3] = 5;
  radio.stopListening();
  bool ok = radio.write(&SendPayload,sizeof(SendPayload));
  Serial.println(ok);
  radio.startListening();
  delay(1000);  
}

Код на Raspberry Pi(приемника)

#!/usr/bin/python
#  -----------------------------------
#   NRF24       RPi- pin
#   1 GND       GND
#   2 3.3v  1 3.3v
#   3 CE        22 GPIO25
#   4 CSN       24 CE0_0
#   5 SCK       23 SCLK_0
#   6 MOSI  19 MOSI_0
#   7 MISO  21 MISO_0
#   8 N/C
#  -----------------------------------

from nrf24 import NRF24
import time
from time import gmtime, strftime
import RPi.GPIO as GPIO

pipes = [[0xE0, 0xE0, 0xF1, 0xF1, 0xE0], [0xE0, 0xF1, 0xF1, 0xF0, 0xE0]]

radio = NRF24()
radio.begin(0, 0,25,18)
radio.setRetries(15,15)
radio.setPayloadSize(4)
radio.setChannel(0x70)
radio.setDataRate(NRF24.BR_2MBPS)
radio.setPALevel(NRF24.PA_MIN)

radio.setAutoAck(True)
radio.enableDynamicPayloads()
radio.enableAckPayload()

radio.openWritingPipe(pipes[0])
radio.openReadingPipe(0, pipes[0])

radio.startListening()
radio.stopListening()
radio.printDetails()

radio.startListening()
radio.printDetails()

while(1):
    receivedMessage = []
    pipe = [0]
    try:
        while not radio.available(pipe, True):
            time.sleep(1000/1000000.0)
        radio.read(receivedMessage, radio.getDynamicPayloadSize())
        print("Received: {}".format(receivedMessage))
        out = ''.join(chr(i) for i in receivedMessage)
        print("Received: {}".format(out))
    except:
        print("SPI Error")
    time.sleep(1)

Ответы (0 шт):