nRF24L01 et B+ [tuto en fin de topic]

Un lieu pour discuter des composants et de leur utilisation. Un passage obligé si vous devez interfacer votre Raspberry Pi avec le monde extérieur. On y trouvera aussi les cartes type commande de moteur pas à pas, continu, servo...

Modérateurs : Francois, smba38

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » jeu. 9 avr. 2015 19:24

Re à tous,

Je vais essayer de me concentrer uniquement sur le C car le portage de la library en python n'a pas l'air spécialement au point.

Je ne parviens pas du tout à faire fonctionner un code en dehors des exemples...

Pourtant si on défini les deux pipes, et les réglages de base je vois pas pourquoi ça ne fonctionne pas :(

es ce que quelqu'un aurait l'amabilité de me faire un exemple d'envoi de donnée depuis un arduino vers le pi en C que je puisse essayer de m'en inspirer, que je comprennes mes erreurs ?

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » jeu. 9 avr. 2015 20:33

Bonsoir,
je vois que l'on en est au même point. moi j’essaie d envoyer du rpi sur un µc. je joint les deux fichiers C (sans les dépendances) du rpi et du µc pour que l 'on compare. spi.cpp pour le rpi main.c pour le µc
Pour la configuration je suis parti de la config par defaut et j'ai juste modifier le minimum (ptx, prx, power up...)
Fichiers joints
nrf24l01.7z
(5.17 Kio) Téléchargé 176 fois
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » jeu. 9 avr. 2015 20:53

Ha j'ai aussi un tuto qui peu aider:
Fichiers joints
nrf24l01_tutorial_0.7z
(470.29 Kio) Téléchargé 198 fois
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » ven. 10 avr. 2015 12:44

C'est gentil merci !

Bien on va tenter de s'aider alors !

Moi personnellement j'essaie de repartir des exemples fournis et de les changer pour parvenir à mes fin.

Par exemple je pars de l'exemple transfert qui fonctionne bien pour essayer d'introduire une demande de température sur la sonde et l'envoi vers le pi.

Je ne comprends pas qu'il n'y ai pas plus d'exemple que cela au vu du nombre de post que je vois et qui utilise cette configuration

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » ven. 10 avr. 2015 14:19

C est pas faut . Moi je peus meme pas partir des exemples, j ai pas d arduino mais des stm32.
Du cout je dois reécrir le driver et les lib en entier.
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » ven. 10 avr. 2015 20:36

Bonsoir, quand vous partez des exemples, qu es qui ne fonctionne pas?l la compilation ou l execution du programme?
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » lun. 13 avr. 2015 22:56

Hello,

En fait, quand on part des exemples on a beaucoup de mal à essayer de les transformer pour en faire ce que l'on souhaite, il manque des variables ou des choses qui pour le moment je ne vois pas encore leur utilité :

Voici le bout de code en C pour ma sonde sur laquelle je travail, rien d'exceptionnelle, en partant d'autres exemples sur le net :\

Code : Tout sélectionner


#include <SPI.h>
#include <RF24.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2

// ce,csn pins
RF24 radio(9,10);

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

void setup(void)
{
    // init radio for writing on channel 76
    radio.begin();
    radio.setPALevel(RF24_PA_MAX);
    radio.setChannel(0x4c);
    radio.openWritingPipe(0xF0F0F0F0E1LL);
    radio.enableDynamicPayloads();
    radio.powerUp();

    sensors.begin(); // IC Default 9 bit. If you have troubles consider upping it 12. Ups the delay giving the IC more time to process the temperature measurement

    Serial.begin(9600);

}

void loop(void)
{

  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0));
  String temp = (sensors.getTempCByIndex(0));

  radio.write();
  
  // pause a second
  delay(1000);
}

Mais j'arrive pas à transmettre encore la variable string par le biais de radio.write

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par smba38 » mar. 14 avr. 2015 10:05

Bonjour,

Peut-être mettre une variable dans la fonction radio.write().
Pour lui indiquer quoi transmettre.

Cordialement.

SMBA38.

guillaume9344
Raspinaute
Messages : 629
Enregistré le : mar. 6 janv. 2015 19:44
Localisation : finistere

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par guillaume9344 » mar. 14 avr. 2015 10:42

+1 pour samba
si on ce refaire au getting started write s'utilise : radio.write(adresse du premier byte à transmettre, nombre de bytes à transmettre)
de plus, dans l initialisation de l 'adresse writing pipe, votre adresse est sur 6 bytes au li-eu de 5 maxi.
Attention également à avoir la même adresse en réception sur le module de réception.
Je vais paraitre un peu lourd, mais avez vous réussi à transmettre de l 'ardino vers le pi avec les exemples fournis?
Si ca fonctionne , dans getting started, c'est un unsigned long qui est transmit (représentant l'heure) vous pouvez commencer par le remplacer par votre fonction:
remplacer:

Code : Tout sélectionner

	unsigned long time = millis();
			bool ok = radio.write( &time, sizeof(unsigned long) );
par

Code : Tout sélectionner

	  String temp = (sensors.getTempCByIndex(0));
bool ok = radio.write( &temp, strlen(temp) );
si ca fonctionne on pourra épurer le fichier et modifier selon vos besoins.
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam

lawfix
Messages : 66
Enregistré le : mer. 24 sept. 2014 10:02

Re: nRF24L01 et B+ [tuto en fin de topic]

Message par lawfix » mar. 14 avr. 2015 14:17

Bonjour à tous,

Merci pour vos conseils.

Je testerais ça dès ce soir pour optimiser le code :)

Etant donné que je prends des bouts à gauche à droite c'est pas forcément très optimale, mais je commence un petit peu à comprendre comment elle fonctionne (il me semble... ).

Sinon concernant les exemples fournis avec les librairies, je peux transmettre dans les deux sens effectivement.

Je n'ai aucun soucis de fonctionnement avec les exemples, c'est comme ça que je vérifie mes câblages ^^

Répondre

Retourner vers « L'électronique et le Raspberry Pi »