Всем добрый день! У меня возникла проблема: не получается соединить ардуину и малинку. Я новичок, и как понял из множества интернет статей, первым делом надо проверить работает ли SPI. Я его включил и проверил функцией dev:
pi@raspberrypi:~ $ ls /dev/
Все видно на скриншоте

Таким способом у нас SPI включен или нет? Потом я пытался проверить другим способом: малина отсылает "Привет" и прекращает отсылать, когда сообщение пришло в ардуину. Но НИЧЕГО НЕ ПОЛУЧАЕТСЯ!! Помогите пожалуйста.
Вот код малины(Отсылает "Привет")
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
from lib_nrf24 import NRF24
import time
import spidev
pipes = [[0xe7, 0xe7, 0xe7, 0xe7, 0xe7], [0xc2, 0xc2, 0xc2, 0xc2, 0xc2]]
radio = NRF24(GPIO, spidev.SpiDev())
radio.begin(0, 17)
time.sleep(1)
radio.setRetries(15,15)
radio.setPayloadSize(32)
radio.setChannel(0x60)
radio.setDataRate(NRF24.BR_2MBPS)
radio.setPALevel(NRF24.PA_MIN)
radio.setAutoAck(True)
radio.enableDynamicPayloads()
radio.enableAckPayload()
radio.openWritingPipe(pipes[1])
radio.openReadingPipe(1, pipes[0])
radio.printDetails()
c=1
while True:
buf = ['H', 'E', 'L', 'O',c]
c = (c + 1) & 255
# send a packet to receiver
radio.write(buf)
print ("Sent:"),
print (buf)
# did it return with a payload?
if radio.isAckPayloadAvailable():
pl_buffer=[]
radio.read(pl_buffer, radio.getDynamicPayloadSize())
print ("Received back:"),
print (pl_buffer)
else:
print ("Received: Ack only, no payload")
time.sleep(10)
Вот код ардуины(принимает сигнал)
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
//
// Hardware configuration
//
// Set up nRF24L01 radio on SPI bus plus pins 7 & 8
RF24 radio(9,10);
//
// Channel info
//
const uint8_t num_channels = 126;
uint8_t values[num_channels];
//
// Setup
//
void setup(void)
{
//
// Print preamble
//
Serial.begin(115200);
printf_begin();
Serial.println(F("\n\rRF24/examples/scanner/"));
//
// Setup and configure rf radio
//
radio.begin();
radio.setAutoAck(false);
// Get into standby mode
radio.startListening();
radio.stopListening();
radio.printDetails();
// Print out header, high then low digit
int i = 0;
while ( i < num_channels )
{
printf("%x",i>>4);
++i;
}
Serial.println();
i = 0;
while ( i < num_channels )
{
printf("%x",i&0xf);
++i;
}
Serial.println();
}
//
// Loop
//
const int num_reps = 100;
void loop(void)
{
// Clear measurement values
memset(values,0,sizeof(values));
// Scan all channels num_reps times
int rep_counter = num_reps;
while (rep_counter--)
{
int i = num_channels;
while (i--)
{
// Select this channel
radio.setChannel(i);
// Listen for a little
radio.startListening();
delayMicroseconds(128);
radio.stopListening();
// Did we get a carrier?
if ( radio.testCarrier() ){
++values[i];
}
}
}
// Print out channel measurements, clamped to a single hex digit
int i = 0;
while ( i < num_channels )
{
printf("%x",min(0xf,values[i]));
++i;
}
Serial.println();
}
// vim:ai:cin:sts=2 sw=2 ft=cpp