nRF24L01 et B+ [tuto en fin de topic]
Modérateurs : Francois, smba38
Re: nRF24L01 et B+ [tuto en fin de topic]
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 ?
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 ?
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: nRF24L01 et B+ [tuto en fin de topic]
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...)
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é 178 fois
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: nRF24L01 et B+ [tuto en fin de topic]
Ha j'ai aussi un tuto qui peu aider:
- Fichiers joints
-
- nrf24l01_tutorial_0.7z
- (470.29 Kio) Téléchargé 200 fois
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
Re: nRF24L01 et B+ [tuto en fin de topic]
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
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
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: nRF24L01 et B+ [tuto en fin de topic]
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.
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
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: nRF24L01 et B+ [tuto en fin de topic]
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
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
Re: nRF24L01 et B+ [tuto en fin de topic]
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 :\
Mais j'arrive pas à transmettre encore la variable string par le biais de radio.write
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);
}
Re: nRF24L01 et B+ [tuto en fin de topic]
Bonjour,
Peut-être mettre une variable dans la fonction radio.write().
Pour lui indiquer quoi transmettre.
Cordialement.
SMBA38.
Peut-être mettre une variable dans la fonction radio.write().
Pour lui indiquer quoi transmettre.
Cordialement.
SMBA38.
-
- Raspinaute
- Messages : 629
- Enregistré le : mar. 6 janv. 2015 19:44
- Localisation : finistere
Re: nRF24L01 et B+ [tuto en fin de topic]
+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:
par
si ca fonctionne on pourra épurer le fichier et modifier selon vos besoins.
@+
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) );
Code : Tout sélectionner
String temp = (sensors.getTempCByIndex(0));
bool ok = radio.write( &temp, strlen(temp) );
@+
rpi b+ ,osmc, motioneyes
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
rpi 2 raspbian , server minecraft 24h/24 , utilisation gpio
orange pi pc debian ,utilisation gpio, motion cam
Re: nRF24L01 et B+ [tuto en fin de topic]
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 ^^
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 ^^