Raspberry Pi und nRF24L01+ Funkmodul

OP #3526117
Lesenswert?

Hallo Leute,

ich versuche nun schon seit einigen Tagen eine Ansteuerung für ein 
nRF24L01+ Funkmodul auf meinem Raspberry Pi zu realisieren. Ich nutze 
zur Ansteuerung eine modifizierte Version der RF24.h, welche ich im 
Internet gefunden habe. Passend dazu habe auch ein fertiges Programm im 
Internet gefunden, welches ich ein wenig abgeändert habe:
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <unistd.h>
4
#include <string.h>
5
#include <string>
6
#include <getopt.h>
7
#include <cstdlib>
8
#include <iostream>
9
#include "/home/pi/RF24/librf24-rpi/librf24/RF24.h"
10

11
using namespace std;
12
RF24 radio("/dev/spidev0.0",8000000,25); //spi device, speed and CSN,only CSN is NEEDED in RPI
13
const int role_pin = 7;
14
const uint64_t pipes[1] = { 0xF0F0F0F0E1LL };
15

16
void setup(void)
17
{
18
  //Prepare the radio module
19
  printf("\nPreparing interface\n");
20
  radio.begin();
21
  printf("Started\n");
22
  radio.setRetries( 15, 15);
23
  radio.setChannel(0x4c);
24
  radio.setPALevel(RF24_PA_MAX);
25
  radio.setPALevel(RF24_PA_MAX);
26

27
  radio.openWritingPipe(pipes[0]);
28
  radio.openReadingPipe(1,pipes[1]);
29
  radio.startListening();
30
  radio.printDetails();
31
}
32

33
void switchLight(void)
34
{
35
  //This function send a message
36

37
  unsigned long message = 2;
38
  
39
  //Send the message
40
  bool ok = radio.write( &message, sizeof(unsigned long) );
41
  if (ok)
42
    printf("ok...");
43
  else
44
    printf("failed.\n\r");
45
}
46

47
int main( int argc, char ** argv)
48
{
49
  uint8_t i;
50
  
51
  setup();
52

53
  for(i = 0; i < 1000; i++)
54
  {
55
      printf("Sending message...\n");
56
      switchLight();
57
      printf("Done...\n");
58
  }
59
}

Ursprünglich war es ein Programm um ein Licht per Funk einzuschalten. 
Nun soll das Programm ganz einfach immer wieder eine 2 an den 
Kommunikationspartner senden. Das hat soweit nur den Sinn, dass ich auf 
dem Oszi sehen möchte ob sich überhaupt was am SPI-Port des RPi tut.

Wenn ich das Program in der Konsole Kompeliere, so kommt folgende 
Ausgabe:

Preparing interface
can't open device: no such file or directory

Hat sich schon mal einer von euch mit dem Thema befasst und kann mir 
weiterhelfen?

Ich entschuldige mich schonmal im Voraus für den Programmierstill, aber 
ich möchte erstmal einfach nur das es läuft. Danach werde ich dann alles 
sauber Programmieren.
Gast #3533359
Lesenswert?

Hay,

ich bin zur Zeit leider bei dem gleichen Problem =D. Die Anleitungen 
dafür sind einfach viel zu undetailiert ...

Ich vermute aber, dass irgendwas mit dem foldenden Teil nicht stimmt:
RF24 radio("/dev/spidev0.0",8000000,25);

Da
"/dev/spidev0.0"
bei mir zumindest erst garnicht existiert.


In welchem Teil der Anleitung das installiert werden sollte? Keine 
Ahnung. Ich glaube der Teil ist in der Anleitung der ich gefolgt bin 
leider weggefallen.


http://hack.lenotta.com/arduino-raspberry-pi-switching-light-with-nrf24l01/
Gast #3533596
Lesenswert?

Problem bei mir gelöst:
Methode 2 bei der GPIO-Einrichtung funktioniert nicht zu 100% =D

Ich habe Methode 1 inklusive des Reboots hinterhergeschoben und es 
funktioniert nun. Ob es jetzt lediglich an dem Reboot lag kann ich im 
Nachhinein nicht sagen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren