Arduino Forum

International => Français => Topic started by: josse34 on Oct 27, 2012, 01:06 pm

Title: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Oct 27, 2012, 01:06 pm
Bonjour à tous!!

Je suis à la recherche de modules radio ou autres permettant une portée maximale à travers divers obstacles tout en gardant une excellente autonomie.

Mon projet serait de mettre un arduino en intérieur et un module déporté duquel je souhaite compter une impulsion et l'envoyer ce compte toutes les 10min à l'arduino. Ou alors d'envoyer un signal à chaque impulsion.

Avez vous des idées et conseils?

Grand merci et bonne journée!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: Grag38 on Oct 27, 2012, 01:38 pm
Tu demandes beaucoup de choses à la HF !!!!

Longue portée, à travers des obstacles... tout cela n'est pas très copain avec la HF.

Cependant j'utilise des modules NRF24 avec de bons résultats.

Quelles sont tes contraintes réelles ? Distance, nombre de murs/obstacles et débits désirés ?

Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: vohu on Oct 27, 2012, 03:08 pm
je pense qu'avec des RF433 c'est déjà pas mal... c'est ce que j'utilise, ça traverse les murs assez bien. Dans un appartement de 70m2
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Oct 27, 2012, 03:24 pm
Bonjour!

En réalité, j'ai besoin de la méthode qui à le plus de portée avec obstacles et autonomie. Peu importe la rapiditée, je ne souhaite transmettre que des nombres à larges intervalles.
Je pense à :
- GPRS, WIFI = trop gourmand en énergie et couteux.
- Bluetooth = portée faible de 10m voir 30m.
- zbee/Xbee = Cher.
- NRF24L01 2.4GHz = rapide, peu cher mais portée de 100 à 200m.
- RF 433mhz = 500 à 1000m apparemment et un coût faible.

Bref, si je ne fais pas d'erreur, le RF 433mhz est la meilleure solution à prix modique? Avez vous un modèle précis à me conseiller sur Ebay?

Associé à une pile, je peux espérer 2 ans d'autonomie avec batterie mais reste le montage en lui même. Je veux en faire un compteur d'impulsions et envoyer le compte chaque 10 minutes ou sinon à chaque impulsion mais cela risque de réduire l'autonomie et d'avoir des loupés?
Un petit exemple : http://www.inhaos.com/uploadfile/otherpic/AN0005%20RF-2410%20Based%20Wireless%20NTC%20Sensor%20Example%20Application.pdf (http://www.inhaos.com/uploadfile/otherpic/AN0005%20RF-2410%20Based%20Wireless%20NTC%20Sensor%20Example%20Application.pdf)

Merci!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Nov 18, 2012, 10:55 am
Bonjour.
Je viens de recevoir mes modules 433mhz :
(http://www.aplomb.nl/Niels_skn/433MHz_zender_en_ontvanger_top.jpg)

Ceux ci me conviennent très bien puisque je n'ai besoin que d'un transfert unilatéral (emetteur FS1000A + recepteur XY-MK-5V).
Leur avantage pour moi contrairement aux NRF24 étant que l'on peux adjoindre les antennes de son choix, trés important dans mon cas puisque l'émetteur se situe en autonomie dans un épais boitier plastique au fond du jardin.
Je souhaite donc une portée minimal d'environ 50m à travers mur béton de maison, obstacles de jardin et boitier plastique.

Bref, je souhaite dimensionner l'électronique et ces antennes afin de maximiser portée et autonomie de l'émetteur.


-1- L'antenne de l'émetteur est elle plus importante que le récepteur, ou le contraire, ou est ce une idée fausse?

-2- A 433mhz, un simple brin doit apparemment mesurer L=300/F soit environ 17cm, j'en trouve peu qui soient de cette longueur apparente à moins qu'ils ne prennent en charge la longueur effective du fil avec d'éventuelles "spires".
J'ai le choix entre ces antennes (toutes sont affichées comme spéciales 433mhz et résistance de 50ohms) :
- Queue de cochon interne standard : (http://image.made-in-china.com/2f0j00NjbtKPUGCEcA/433MHz-Spring-Coil-Antenna.jpg)
- 10cm SMA avec embout femelle à câble que je souderais (gain dbi inconnu) : (http://i01.i.aliimg.com/photo/v1/456371963/433mhz_handheld_two_way_radio_antenna_with.jpg)
- Embase magnétique SMA avec embout femelle à câble que je souderais (gain 3dbi) : (http://cloud7.lbox.me/images/384x384/201210/433mhz-7dbi-sma-male-sucker-antenna-3m_ptyyzw1350352085276.jpg)
Mais le plus pratique serait :
- Antenne adhesive SMA avec embout femelle à câble que je souderais (gain 2,5dbi) : (http://szwholesale.com/ebay/3/2012/4-5/Rfbat/2057A.jpg)
- Antenne adhesive en T type SMA avec embout femelle à câble que je souderais (gain 2dbi) : (http://www.rfsupplier.com/images/ProPho/2376/A.jpg)

-3- Cette bande des 433mhz étant très utilisée, est ce nécessaire d'adjoindre un encodeur PT2262 et un décodeur PT2272 pour éviter les interférences radio?

-4- Il me faut determiner le boitier émetteur selon l'autonomie et la portée en sachant que le module FS1000A à une portée apparemment dépendante de la tension et peut etre mis en sommeil en connectant la pin DATA au GROUND.
Le boitier sera composé d'un phototransistor (ou photodiode ou photorésistance) dont je dois envoyer les impulsions à intervalles régulières, mais je ne sais pas comment faire. J'ai pensé à 4 piles AA soit 5 à 6V il me faut tenir minimum 1an.
Comment envoyer ces impulsions par radio? Il faut un optocoupleur + CI ?
Au niveau autonomie, est ce plus malin de mettre l'émetteur en sommeil et d'envoyer le total des impulsions chaque heures?


Grand merci pour votre aide et idées!

Bon dimanche!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: Artouste on Nov 18, 2012, 11:52 am

Bonjour.
Je viens de recevoir mes modules 433mhz :

Ceux ci me conviennent très bien puisque je n'ai besoin que d'un transfert unilatéral (emetteur FS1000A + recepteur XY-MK-5V).
Leur avantage pour moi contrairement aux NRF24 étant que l'on peux adjoindre les antennes de son choix, trés important dans mon cas puisque l'émetteur se situe en autonomie dans un épais boitier plastique au fond du jardin.
Je souhaite donc une portée minimal d'environ 50m à travers mur béton de maison, obstacles de jardin et boitier plastique.



bonjour

avec 50 m, il n'y a peut etre meme pas besoin d'antenne externe "sophistiquée"
J'ai dans ma campagne des sondes de T° distantes de + de 100m du recepteur situé dans une construction "ancienne" qui envoient un rafraichissement/minute
sans antennes externes.

liens vers les specifs des TX RX ?

le vrai probleme de cette bande c'est qu'elle est selon les endroits très sollicitée et  joindre un syteme encodeur/decodeur ne reglera pas cet aspect en cas de collision.
il faut donc prevoir de la redondance d'émission
soit emettre une trame numerotée X, Y fois en temps décalé, à charge pour le systeme de reception de verifier qu'il aura au moins une fois bien reçu une info OK.
soit encore si une rtc est disponible emettre des trames horodatées toutes les x minutes , une trame reprenant les x derniers comptage
d'autres methodes existent
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: al1fch on Nov 18, 2012, 01:23 pm
même avis : redondance des trames émises + somme de contrôle (ou CRC) à chaque trame émise  (fréquent pour les sondes extérieures de température).  Encodage genre telecommande inaproprié içi.

Je propose d'envoyer systématiquement le cumul des impulsions. Il ne peut que progresser. Le récepteur peut donc en plus vérifier que la progression du comptage est 'vraisemblable'.... ça permet également au récepteur de retomber sur ses pieds après des loupés à répétition. (compteurs d'eau radio)

Il y a par contre un gros risque à n'envoyer que l'info "impulsion unique" ou un simple décompte compte partiel sur un intervalle donné. A moins d'etre en pleine campagne il faut tabler sur un probleme technique d'extraction de trames valides dans du bruit.
En visualisant la sortie data du recepteur on a une idée du bruit ambiant .... et des caractéristiques du récepteur.

Un récepteur 433MHz superhétérodyne devrait améliorer les choses si ce simple récepteur à super-réaction n'est pas assez sensible et sélectif.
http://boutique.comelec.fr/category.php?id_category=416 (http://boutique.comelec.fr/category.php?id_category=416)
http://www.gotronic.fr/cat-modules-hybrides-hf-commut-579.htm (http://www.gotronic.fr/cat-modules-hybrides-hf-commut-579.htm)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Nov 18, 2012, 03:35 pm
La vache!
Quelle rapidité et précision! Cela dépasse mes connaissances, désolé si je suis lent à la détente!

Je reprend les questions dans l'ordre :

-1- Que j'améliore la réception de 3 db , reviens au même que d'améliorer l'émetteur de 3 db. Donc quel que soit le coté que j'améliore , c'est identique en tant que GAIN gagné??
Mes contraintes de place sont sur l'émetteur et non sur le récepteur, néanmoins je veux faire un système universel bien conçu dés le départ pour ne pas être ennuyé avec des soucis de portée ou autonomie, donc si il faut un récepteur superhétérodyne, je le fait.
Que feriez vous à ma place avec votre expérience pour un système idéal???

-2- En complément de -1-, quelles antennes me conseillez vous à l'émetteur et au récepteur (peut être différentes)?

-3- Il est important d'horodater les données de préférence au récepteur et effectivement le cumul des impulsions me plait bien mais comment conserver un maximum d'autonomie (minimum 1an) à l'émetteur.
Pour le moment, concernant l'émetteur je n'ai pas défini de structure, mes connaissances sont trop faibles. J'ai un phototransistor et un émetteur 433mhz, concernant l'électronique, je la souhaite le plus simple possible, que me proposez vous et quelle batterie (combien de piles AA) sachant que l'émetteur supporte 2.5 à 12V??
Je n'ai pas bien compris comment traiter le signal de reception pour filtrer uniquement mes trames aux autres, je n'ai donc pas de specifications des TX RX.

-4- Même question que dans -3-, quelle batterie pour tenir minimum 1an voir plutôt 1an et demi?

Grand merci pour votre aide et implication, j'apprécie!

Bye
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: Artouste on Nov 19, 2012, 12:20 pm

La vache!
Quelle rapidité et précision! Cela dépasse mes connaissances, désolé si je suis lent à la détente!

Je reprend les questions dans l'ordre :

-1- Que j'améliore la réception de 3 db , reviens au même que d'améliorer l'émetteur de 3 db. Donc quel que soit le coté que j'améliore , c'est identique en tant que GAIN gagné??
Mes contraintes de place sont sur l'émetteur et non sur le récepteur, néanmoins je veux faire un système universel bien conçu dés le départ pour ne pas être ennuyé avec des soucis de portée ou autonomie, donc si il faut un récepteur superhétérodyne, je le fait.
Que feriez vous à ma place avec votre expérience pour un système idéal???

-2- En complément de -1-, quelles antennes me conseillez vous à l'émetteur et au récepteur (peut être différentes)?

-3- Il est important d'horodater les données de préférence au récepteur et effectivement le cumul des impulsions me plait bien mais comment conserver un maximum d'autonomie (minimum 1an) à l'émetteur.
Pour le moment, concernant l'émetteur je n'ai pas défini de structure, mes connaissances sont trop faibles. J'ai un phototransistor et un émetteur 433mhz, concernant l'électronique, je la souhaite le plus simple possible, que me proposez vous et quelle batterie (combien de piles AA) sachant que l'émetteur supporte 2.5 à 12V??
Je n'ai pas bien compris comment traiter le signal de reception pour filtrer uniquement mes trames aux autres, je n'ai donc pas de specifications des TX RX.

-4- Même question que dans -3-, quelle batterie pour tenir minimum 1an voir plutôt 1an et demi?

Grand merci pour votre aide et implication, j'apprécie!

Bye

bonjour
1- ça s'appelle un bilan de liaison et c'est une mesure relative, déjà faire un test de portée avec les TX/RX tel quels
2- renvoi à 1
3- Tu n'a pas les specifications des TX et RX mais tu sais que le TX peut etre alimenté entre 2.5 et 12V, tu les sort d'où  alors :smiley-mr-green:ces specifications ?
4- reponse eventuelle selon lecture des specifications et eventuellement mesure de la conso du RX
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 10, 2013, 05:45 pm
Bonsoir!
Bon finalement mon choix se porte sur des NRF24 moins perturbées, plus puissants, à double voie et surtout avec un mode veille.

Il faut maintenant concevoir le module émetteur déporté. J'utilise en récepteur un MEGA avec RTC. J'ai besoin de capter en permanence une entrée impulsionnelle pour comptage et transmission des paquets toutes les heures avec mode veille du NRF24 entre-temps.

J'ai pensé à ce shield à base de arduino nano et avec le slot NRF24:
(http://imall.iteadstudio.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/i/m/im120417016_9.jpg)


Ça serait l'idéal pour moi mais le plus difficile est d'obtenir minimum 1 an d'autonomie, est ce possible (avec combien de piles LR6) et comment faire?

Merci pour votre aide!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: fdufnews on Jul 10, 2013, 06:52 pm
Quote
Que j'améliore la réception de 3 db , reviens au même que d'améliorer l'émetteur de 3 db.

Pas tout à fait à niveau de bruit constant le rapport signal sur bruit est plus défavorable dans le premier cas. Puisqu'à la réception le gain est appliqué au signal et au bruit.
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 10, 2013, 08:06 pm
Bonsoir.
Dans mon cas présent, il y a deux versions de NRF24 :
(http://imall.iteadstudio.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/i/m/im120606002_7_1.jpg) (http://imall.iteadstudio.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/i/m/im120606003_10.jpg)

Tout deux ont la même consommation mais celui avec antenne porte plus loin et à meilleur débit (dans mon cas je m'en fiche), comment fait il, une histoire d'antenne?

Et concernant l'autonomie d'un tel montage?

Merci!!!!!
:smiley-mr-green:
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: Artouste on Jul 10, 2013, 08:58 pm

Bonsoir.
Dans mon cas présent, il y a deux versions de NRF24 :

- Tout deux ont la même consommation mais celui avec antenne porte plus loin et à meilleur débit (dans mon cas je m'en fiche), comment fait il, une histoire d'antenne?

- Et concernant l'autonomie d'un tel montage?



bonsoir

- bien évidemment  :smiley-mr-green:  , l'antenne (en E ou R ) est toujours le dernier maillon faible de la chaine de transmission
il faut rapporter ça aux notions d'isotropie

- fonction de la conso et de la source d'energie  8)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 10, 2013, 09:29 pm
Euh même conso, sur les deux que tu montres je ne pense pas : la version "longue portée" possède un amplificateur de puissance (on le voit bien sur la photo). Et forcement ça engendre un surplus de conso : 125 mA en service (valeur ebay, pas plus de détail mais c'est l'ordre d'idée)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 10, 2013, 11:43 pm
Bonsoir!
Pourtant les deux fiches indiquent bien 115mA : http://imall.iteadstudio.com/im120606002.html et http://imall.iteadstudio.com/im120606003.html
Bref, d'abord fraudais que je connaisse l'autonomie et le système, qu'en pensez vous d'ailleurs?
Merci!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 11, 2013, 08:37 am
Je sais où ils sont allé pêcher leur spec, datasheet du nrf : maxi 13.5 mA en réception et 11.3 mA en émission.

Pour la conso (quelque soit le modèle) ça sera ridicule. 115 mA  pendant quelque dizaines de µS toutes les 10 min on sera très proche de la conso en sommeil (900 nA). En revanche il va falloir que tu apprennes à maîtriser la mise en sommeil de l'Atmega avec réveil par un timer.
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 09:04 am
Salut!
Pour le NRF, que ce soit l'un ou l'autre, effectivement je ne me fait pas de souci sur la conso mais le point dur semble être la conso de l'arduino car je ne peux mettre en sommeil le comptage des impulsions! Chaque jour il y aura des heures sans impulsions ou l'on pourra mettre en sommeil l'ATmega après un timer et reveil via la prochaine impulsion.

Est il possible avec un tel montage http://imall.iteadstudio.com/development-platform/arduino/shields/im120417016.html sur arduino nano de compter avec le NRF24 & l'ATmega en sommeil????
Sinon comment faire car avec l'ATmega constamment en UP je ne peux esperer que 2 jours avec une pile 9V!!!

D'excellents articles qui parlent de cela mais avec des capteur de température ou luminosité pour lesquels on peut échantillonner le sommeil à plus de 10 minutes :
http://interface.khm.de/index.php/lab/experiments/sleep_watchdog_battery/
http://hwstartup.wordpress.com/2013/03/11/how-to-run-an-arduino-on-a-9v-battery-for-weeks-or-months/

Merci!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: Grag38 on Jul 11, 2013, 09:12 am
avec mes montages en NRF24 avec antenne 2.4 j'utilise des arduino mini en 3,3Volts (consomme moins que le nano en 5v)

https://www.sparkfun.com/products/11114

j'utilise aussi ces modules de sparkfun :

https://www.sparkfun.com/products/705

Je l'ai aient utilisés ce weekend sur un festival en champ libre, résultat :  >200m de portée avec 10 modules ;o)

Attention les modules nrf24 que tu as montré consomment plus et fonctionnent en 3,3v. Sinon ils fonctionnent bien.

A+
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 09:22 am
Merci!
Effectivement, le MINI est plus destiné à ce genre d'application, feu!
Je préfère un module NRF24 avec connectique comme ceux présentés.

Quelle autonomie espérer avec ce genre de montage??

Merci!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: JMe87 on Jul 11, 2013, 10:35 am
Bonjour,
il est impossible de te donner une autonomie si on ne sait pas ce que consomme en moyenne ton montage et ce que tu utilises comme source d'alimentation.

Je t'invite a aller lire cette discussion :

http://forum.arduino.cc/index.php?topic=129332.15 (http://forum.arduino.cc/index.php?topic=129332.15)

de meme cette discussion en anglais :

http://forum.arduino.cc/index.php?topic=174257.0 (http://forum.arduino.cc/index.php?topic=174257.0)

pour rappel le choix d'une batterie 9V est un tres mauvais choix parce que tu as au minimum 4V "en trop" que tu vas devoir transformer en chaleur dans un regulateur qui va consommer de l'energie pour son fonctionnement interne meme si le microcontroleur est en veille.
De plus la petite pile rectangulaire 9V est reputee pour avoir le plus mauvais rendement energie/volume.

A mon avis, il doit etre possible de mettre en veille le micro et de le reveiller
- par la detection d'une impulsion
et
- par le timer interne pour compter le temps qui passe.

Tiens nous au courant de ton projet
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 11, 2013, 10:42 am
Le mieux est une pile bouton lithium 3V. Elles font environ 200 mAh en moyenne, il te suffit ensuite de diviser par la conso de ton montage pour avoir le nombre d'heure de fonctionnement. Avec 50 µA :
200 000 / 50 = 4000 h soit 166 jours.
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 11:11 am
Salut!

Un ATmega 328 consomme :
- Active Mode: 0.2mA
- Power-down Mode: 0.1?A
- Power-save Mode: 0.75?A (Including 32kHz RTC)
Un Attiny85 consomme :
- Active Mode: 1 MHz, 1.8V: 300 µA
- Power-down Mode: 0.1 µA at 1.8V
Ce dernier à l'air bien mieux avec une conso réduite en actif par 6 mais est il possible de brancher un NRF24 + une entrée impulsionnelle http://imall.iteadstudio.com/development-platform/arduino/arduino-compatible-mainboard/im130615003.html ??

Une pile bouton??! Ca semble impossible! Ce calculateur déduit 23 jours d'autonomie : http://oregonembedded.com/batterycalc.htm
Avec cet outil, un montage à base de Attiny85 à une autonomie de 3 ans, j'ai du me planter quelque part, certainement dans la capacité des piles LR6 en exemple:
Capacity rating of battery (mAh)      10000mAh (4 piles LR6)
Current consumption of device during sleep (mA)      0.0002mA
Current consumption of device during wake (mA)      0.3mA
Number of wakeups per hour      3600 If always on, enter 3600 here.
Duration of wake time (ms)      1000ms If always on, enter 1000 here.


La pile 9V était un exemple, disons que le choix de la batterie se fera en fonction du montage, un groupe de LR6 ou une batterie NIMH par exemple.

Je pense partir sur un arduino NANO ou MINI ou un ITEADUINO : http://imall.iteadstudio.com/development-platform/arduino/arduino-compatible-mainboard/im130615003.html

Dans tout les cas, ce que je ne comprend pas c'est si ces boards sont capable de compter des impulsions en mode veille? Si oui ça serait le Pérou mais je craint d'être naïf!!! Car si le comptage impose un UP du controlleur, alors il faut partir sur 1 an d'autonomie avec en moyenne 15 heures par tranches de 24heures de comptage d'impulsion et transmission via NRF24L01 si le comptage des 60 dernières minutes est supérieur à 0 (peu importe la précision, le clock interne du microcontrôleur est capable de le faire).

Est ce déjà une bonne base?

Merki!!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: skywodd on Jul 11, 2013, 11:23 am
Bonjour,


Dans tout les cas, ce que je ne comprend pas c'est si ces boards sont capable de compter des impulsions en mode veille? Si oui ça serait le Pérou mais je craint d'être naïf!!! Car si le comptage impose un UP du controlleur, alors il faut partir sur 1 an d'autonomie avec en moyenne 15 heures par tranches de 24heures de comptage d'impulsion et transmission via NRF24L01 si le comptage des 60 dernières minutes est supérieur à 0 (peu importe la précision, le clock interne du microcontrôleur est capable de le faire)

Ton impulsion doit être câblé sur une broche d'interruption.
Dés que l'interruption sera "reçu" le cpu sortira du mode veille, exécutera le code associé à ton interruption.
Ce sera alors à toi de faire ce qu'il faut pour envoyer les données (réveil du nRF24 + envoi) puis revenir en mode veille.

Remarque : ce principe de fonctionnement est géré matériellement par les microcontrôleurs MSP430.
Ces µc sont conçu pour faire de la "vrai" basse conso. Ils ont un mode de travaille dans lequel tout est fait en interruption avec mise en veille automatique le reste du temps.
Si tu veut maximiser l'autonomie de ton montage c'est une solution à envisager, par contre niveau code c'est un peu plus compliqué que de l'arduino.
(ça reste du C mais il faut gratter un peu dans la doc du hardware bas niveau)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 11:37 am
Salut Skywood!

Ok je comprend le fonctionnement, mais disons que j'ai 2 impulsions en 1 heures, le µC en mode veille sera il capable de garder en mémoire la première impulsion et un timer actif pour transmettre 60 minutes après la dernière transmission??

Est il possible de mettre un NRF24L01 sur un MSP430?? Il existe plein de board sur cette base : http://www.exp-tech.de/advanced_search_result.php?language=en&keywords=MSP430&XTCsid=7419194f3deb124476845e546bbd3cdc&pfrom=&pto=&listing_sort=price_asc&listing_count=192 ou http://www.lipoly.de/index.php?main_page=advanced_search_result&search_in_description=1&keyword=MSP430

Pouvez vous me dire, à la louche, quelle autonomie (disons pour l'exemple avec 4 piles LR6) je peux raisonnablement espérer avec ces 3 bases:


Merci!

Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: skywodd on Jul 11, 2013, 11:46 am

Ok je comprend le fonctionnement, mais disons que j'ai 2 impulsions en 1 heures, le µC en mode veille sera il capable de garder en mémoire la première impulsion et un timer actif pour transmettre 60 minutes après la dernière transmission??

Suffit de pas éteindre le timer quand tu passes en mode veille + basse conso ;)


Est il possible de mettre un NRF24L01 sur un MSP430?? Il existe plein de board sur cette base : http://www.exp-tech.de/advanced_search_result.php?language=en&keywords=MSP430&XTCsid=7419194f3deb124476845e546bbd3cdc&pfrom=&pto=&listing_sort=price_asc&listing_count=192 ou http://www.lipoly.de/index.php?main_page=advanced_search_result&search_in_description=1&keyword=MSP430

Oui c'est possible.
http://battomicro.wordpress.com/2013/03/27/tutorial-le-nrf24l01-larduino-et-le-msp-430/
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 12:17 pm
Oki!
Un conseil de board MSP430 facile à programmer et à connecter à un NRF24L01?

Sur cette base exemple, avec un MSP430 ayant cette consommation :
? Active Mode: 220 ?A at 1 MHz, 2.2 V
? Standby Mode: 0.5 ?A
? Off Mode (RAM Retention): 0.1 ?A
et un NRF24L01 avec PLA et LNA :
Emission mode current(peak): 115mA
Receive Mode Current(peak): 45mA
Power-down mode current: 4.2uA

En gardant le timer actif et réveil du µC après chaque impulsion pour comptage et transmission chaque 60 minutes avec un NRF24L01 ce calcul est il réaliste (sur http://oregonembedded.com/batterycalc.htm ) :
Capacity rating of battery (mAh)      5000mAh = 2 piles LR6 alcaline pour 3V
Current consumption of device during sleep (mA)      0.0047mA (0,0005 du MSP + 0,0042 du NRF)
Current consumption of device during wake (mA)      0.42mA (0.22 du MSP + 115/600 (une trame de 10sec toutes les heures) = 0.2 du NRF)
Number of wakeups per hour      3000 If always on, enter 3600 here.
Duration of wake time (ms)      500ms = milli-Seconds. If always on, enter 1000 here.

Autonomie = 2.7 ans

On oublie pas un peu tout la petite conso qui tourne autour comme le capteur impulsionnelle, les autres composants, les variations de températures jusqu'aux négatives?!)

1 an c'est jouable?

Merci!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 11, 2013, 01:40 pm
Avec mon MSP430 + NRF je dure plusieurs années avec une émission toutes les 2 secondes, donc toi toutes les 60 minutes ...  Mais pourquoi une trame de 10 sec ??!

Pour ton calcul d'autonomie attention, les capacités ne s'additionnent pas si les piles sont en série (mais la tension oui). Elles s'additionnent si les piles sont en parallèle. Ensuite il y a une erreur sur la conso du nrf en power down : c'est 0.9µA.
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 01:57 pm
B@tto, tu m'intéresse!!!!!
Ton article traite du sujet http://battomicro.wordpress.com/2013/03/27/tutorial-le-nrf24l01-larduino-et-le-msp-430/ mais que me conseille tu comme matériel, par exemple chez Olimex : https://www.olimex.com/Products/MSP430/Header/ ??
Et un semblant de schéma existe?!???!!

Bien vu pour les capas des piles, du coup :
Capacity rating of battery (mAh)      2500mAh = 2 piles LR6 alcaline VARTA INDUSTRIEL (données pour 2900mah) pour 3V (et mettre 2 blocs en parallèle de 2 piles en série améliorerait l'autonomie???)
Current consumption of device during sleep (mA)      0.0047mA (0,0005 du MSP + 0,0042 du NRF)
Current consumption of device during wake (mA)      0.24mA (0.22 du MSP + 115/6000 (1sec toutes les heures) = 0.02 du NRF) Attention, je souhaite utiliser le NRF24 avec amplification (modèle PLAN et LNA), prés de 10 fois plus portant (jusqu'à 1000m)
Number of wakeups per hour      2000 If always on, enter 3600 here.
Duration of wake time (ms)      500ms = milli-Seconds. If always on, enter 1000 here.

Dans ces conditions, prés de 3,5ans et 1an sans mode veille!!!! Fabuleux!!! Mais quand tu dis :
Quote
J'ai fait un essai avec une émission toutes les 2 secondes, alimenté par un condensateur goldcap 5F. Ca a tenu 2 jours, ce qui me donnait une consommation de ~10µA. Avec un pile bouton 200 mAh, ce montage pourrait tenir : 200 000 / 10 / 24 / 365 = 2,3 an ! Et à 0,5 hz de fréquence ! Imaginez si vous greffez un panneau solaire ou si on passe à une émission par minute … Les applications sont quasi infinies !

je tombe à la renverse, mon calcul serait encore sans doute loin de la réalité!!!!!!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 11, 2013, 03:17 pm
Oui je vois d'autres erreur dans ton calcul : je suppose que les wake up indiqué correspondent à la conso wake up, hors ce n'est pas le cas. Certes il y a un réveille lors de l'overflow du timer, mais c'est très bref et pas de passage par le nrf qui est le plus gourmand ici. En plus ton wake up est très loin de durer 500 ms (enfin je sais pas ce que tu fais durant ce temps mais la partie émission dure moins de 500 µs)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 11, 2013, 03:22 pm
Pour le matos attention un MPS430 est bien moins user friendly qu'une arduino ... Y'a bien Energia (IDE Arduino-like) mais quand j'ai fait ce tuto il n'y avait pas grand chose sur les Nrf et j'avais des soucis de wake-up avec le timer.

Le mieux pour commencer c'est un launchpad (commande direct sur le site de texas intrument) et pour le module tu prends un module nrf "classique". Avec le launchpad tu peux programmer beaucoup de µC de ti du moment qu'il prennent en charge le spi by wire
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 03:52 pm
Ohlala c'est compliqué, je n'en ai besoin que pour l'émission, mais déjà que je nage un peu avec l'arduino!

Désolé d'insister mais dites moi pour conclure une bonne fois pour toute le choix de matériel, si prendre un arduino nano à la place du MSP430 affecterais énormément l'autonomie.
Je souhaiterais atteindre du 2 an en théorique sur 2 piles AA (2500mah) mais de toutes façon changerais les piles chaque année.
Si gagner 10% d'autonomie alors qu'elle est de plus de 3 ans, alors ça ne m'interresse pas même si c'est l'idéal car je vais devoir passer trop de temps à coder et souder!

Mes calculs pour un ATmega328 sur NANO
Capacity rating of battery (mAh)      2500mAh = 2 piles LR6
Current consumption of device during sleep (mA)      0.005mA (0,00075 du NANO + 0,0042 du NRF)
Current consumption of device during wake (mA)      0.22mA (0.2 du NANO + 115/6000 (1sec toutes les heures) = 0.02 du NRF)
Number of wakeups per hour      2500 If always on, enter 3600 here.
Duration of wake time (ms)      1ms = milli-Seconds. If always on, enter 1000 here.

5ans ou 1 an sans veille!!!
Les caractéristiques de consommation de l'ATmega sont très faibles elles aussi, autant que le MSP430 : - Active Mode: 0.2mA - Power-down Mode: 0.1?A - Power-save Mode: 0.75?A (Including 32kHz RTC) sauf erreur de ma part!
D'autant que prendre un ATmega168 peut faire gratter du temps.

Merci pour votre aide!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 11, 2013, 04:16 pm
Oué enfin il faut bien lire la datasheet, forcement sur la première page "il faut se la péter" ;)

Si tu veux réveille le µC de manière "software", il faut le watchdog et page 316 de la datasheet ça donne 4.2µA à 3V. Aparemment avec la RTC ça consomme moins et réveil possible par le timer 2.

Bref dans tout les cas tu perdras pas ton argent, ça servira toujours. Sur ebay une micro pro 3V + adaptateur FDTI + un nrf t'en a pour 15 €  maxi...

Et vaut mieux avoir bien en main l'Arduino avant de passer le cran au-dessus
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 11, 2013, 08:06 pm
Salut!
Bon j'imagine cela pour faire du 9V :
(http://www.exp-tech.de/images/product_images/original_images/3_198_0.jpg)
ca pour le recevoir :
(http://imall.iteadstudio.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/i/m/im120417016_8.jpg)
Avec un ARDUINO NANO et un NRF24L01 comme cela :
(http://www.exp-tech.de/images/product_images/info_images/im120606003_10.jpg)

Dans l'autre cas j'ai cela :
(https://www.olimex.com/Products/MSP430/Header/MSP430-HE427/images/thumbs/310x230/MSP430-HE427.jpg)
avec ce NRF24 :
(http://www.exp-tech.de/images/product_images/original_images/mod-nrf24lr-01.jpg)
Et pour programmer ce bidule : https://www.olimex.com/Products/MSP430/JTAG/MSP430-JTAG-TINY-V2/ qui coûte un bras!

J'avoue ne pas me décider, pourrais je compter sur votre aide [active] pour le MSP430????!!! :smiley-eek-blue:
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 12, 2013, 01:43 pm
Bonjour!
Bon j'ai acheté un launchpad MSP430 que je testerais, en attendant j'ai fait le montage de NRF24L01 sur deux arduino (l'un NANO en client, l'autre MEGA en serveur).
J'utilise ces modules : (http://www.ccqqpp.com:9513/UploadFile/2012-8/2012820122544338.jpg)
http://www.ebay.fr/itm/2-PCS-NRF24L01-2-4GHz-RF-Wireless-Transceiver-Module-for-Arduino-/270975079068?pt=LH_DefaultDomain_0&hash=item3f175f929c#ht_3223wt_1157 (http://www.ebay.fr/itm/2-PCS-NRF24L01-2-4GHz-RF-Wireless-Transceiver-Module-for-Arduino-/270975079068?pt=LH_DefaultDomain_0&hash=item3f175f929c#ht_3223wt_1157)

Ainsi que la librairie MIRF : http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 (http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01)

Impossible de les faire fonctionner avec les sketch PING_CLIENT & PING_SERVER , j'ai pourtant respecté le pinage :
* 3.3V
* GND
* MISO -> 12
* MOSI -> 11
* SCK -> 13
* CE -> 8
* CSN -> 7

Mais le serial du serveur indique de façon ponctuelle plusieurs :
Quote
Got packet
Reply sent.

Si je débranche le NRF24, c'est la même chose.

Et le serial du client indique en permanence :
Quote
Timeout on response from server
Finished sending

Si je débranche le NRF24, ça bloque sur "beginning"

J'ai essayé 2 autres librairie (NRF24 et RF24_MASTER), avec des resistances de 10K sur les digitals, plusieurs codes exemples, rien n'y fait!

Une idée??

Merci!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: Artouste on Jul 12, 2013, 01:49 pm

...

Une idée??
...

bonjour
c'est le genre de situation pas simple à dem....der à distance :smiley-mr-green:

question :  l'echange des module NRF amène les mêmes symptômes ?
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: skywodd on Jul 14, 2013, 07:09 pm
Attend une minute ...
Pourquoi TOUT prendre sur ebay, il existe des sites qui font des cartes dans le même ordre de prix.

Exemple : prend une launchpad MSP430 de TexasInstrument, 12€ fdp compris sur le estore de Ti.
Bonus : le debuggeur (le truc qui coute un bras) est inclut, de même qu'un second MSP430 !

Ensuite pour la prog utilise l'ide Energia, tu seras comme avec une carte Arduino classique, le prix et la consommation en moins ;)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 15, 2013, 07:24 pm
Bonsoir!
Bon avec le bon pinage ça vas un peu mieux mais je pense quand même que pendant mes expérimentations, mes NRF24 ont peut être pris un choc, voici d'ailleurs la copie du sketch GettingStarted dont les transmissions réussies ne dépassent pas les 8 premières tentatives que ce soit dans un sens ou dans l'autre :
Quote

RF24/examples/GettingStarted/

ROLE: Pong back

*** PRESS 'T' to begin transmitting to the other node

STATUS = 0x0e RX_DR=0 TX_DS=0 MAX_RT=0 RX_P_NO=7 TX_FULL=0
RX_ADDR_P0-1 = 0xf0f0f0f0d2 0xf0f0f0f0e1
RX_ADDR_P2-5 = 0xc3 0xc4 0xc5 0xc6
TX_ADDR   = 0xf0f0f0f0d2
RX_PW_P0-6 = 0x08 0x08 0x00 0x00 0x00 0x00
EN_AA = 0x3f
EN_RXADDR= 0x03
RF_CH = 0x4c
RF_SETUP = 0x07
CONFIG = 0x0f
DYNPD/FEATURE = 0x00 0x00
Data Rate = 1MBPS
Model = nRF24L01+
CRC Length = 16 bits
PA Power = PA_HIGH
*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK

Now sending 7236...ok...Got response 7236, round-trip delay: 47

Now sending 8285...ok...Got response 8285, round-trip delay: 68

Now sending 9354...ok...Got response 9354, round-trip delay: 72

Now sending 10428...failed.

Failed, response timed out.

Now sending 11706...ok...Failed, response timed out.

Now sending 12947...ok...Failed, response timed out.

Now sending 14187...ok...Failed, response timed out.

Now sending 15427...failed.

Failed, response timed out.

Now sending 16705...failed.

Failed, response timed out.

Now sending 17983...failed.

Failed, response timed out.

Now sending 19262...failed.

Failed, response timed out.


J'en attends d'autres d'ici peu pour voir.

Skywood, j'ai pris via Ebay mais chez HackSpark pour 10€ le lauchnpad port compris (http://hackspark.fr/fr/ti-msp430-launchpad.html) mais je ne trouve rien dans le estore qui est à 12€, uniquement cela à 9.9USD frais de port compris apparemment : https://estore.ti.com/MSP-EXP430G2-MSP430-LaunchPad-Value-Line-Development-kit-P2031.aspx
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 16, 2013, 12:58 pm
Oui c'est bien celui à 9.9$ (il était même à 4.5$ il y a quelques mois !)
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: skywodd on Jul 16, 2013, 11:20 pm

Oui c'est bien celui à 9.9$ (il était même à 4.5$ il y a quelques mois !)

Héhé moi j'en ai eu quatre en précommande, j'ai sauté dessus direct dés l'annonce de Ti ^_^
Deux pour la v1.4 et deux pour la v1.5 8)

Bon erratum c'est la stellaris qui est à 12€, sinon la launchpad classique c'est 7€ (enfin 9.99$), fdp compris.
Même si le prix de la launchpad a doublé depuis les pré-commande ça reste LA carte de dév tout compris (debug + cpu) la moins chère du marché.
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 17, 2013, 09:07 am
Avec un sticker et un µC de plus :D

Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: alex72 on Jul 17, 2013, 01:51 pm
Bonjour!

Je te conseille aussi les NRF24, je les utilise avec succès et sur de bonnes distances. Pour autonomie, je te conseille des arduino pro mini 3v3, tu prends une pince et tu casse la led smd liée à la pin 13 tu gagneras déjà quelques ma. Tu peux aussi utiliser l'horloge interne avec un programmateur externe. Ensuite désactives tout ce qui ne t'es pas utile de manière logicielle(ADC..)...bref la bidouilla après   ]:) Perso j'arrive à une consommation de 32ua en mode veille.

Bonne chance!
Alex.


Bonjour à tous!!

Je suis à la recherche de modules radio ou autres permettant une portée maximale à travers divers obstacles tout en gardant une excellente autonomie.

Mon projet serait de mettre un arduino en intérieur et un module déporté duquel je souhaite compter une impulsion et l'envoyer ce compte toutes les 10min à l'arduino. Ou alors d'envoyer un signal à chaque impulsion.

Avez vous des idées et conseils?

Grand merci et bonne journée!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: skywodd on Jul 17, 2013, 03:05 pm

Avec un sticker et un µC de plus :D

Avec DEUX stickers, ça rigole pas chez Ti :smiley-mr-green:
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 18, 2013, 11:26 am

Bonjour!

Je te conseille aussi les NRF24, je les utilise avec succès et sur de bonnes distances. Pour autonomie, je te conseille des arduino pro mini 3v3, tu prends une pince et tu casse la led smd liée à la pin 13 tu gagneras déjà quelques ma. Tu peux aussi utiliser l'horloge interne avec un programmateur externe. Ensuite désactives tout ce qui ne t'es pas utile de manière logicielle(ADC..)...bref la bidouilla après   ]:) Perso j'arrive à une consommation de 32ua en mode veille.

Bonne chance!
Alex.


Salut!
J'avais la même idée que toi de casser la led, avec 32µA, cela fait une autonomie de prés de 5ans! http://oregonembedded.com/batterycalc.htm Pas mal du tout!

Je vais essayer, en attendant je viens de recevoir mon MSP430 Launchpad, c'est bien conçu et Energia est magnifique! Un véritable clone de l'arduino, c'est agréable!!!
J'ai essayé de suivre ce tuto pour l'utilisation avec NRF24L01 : http://battomicro.wordpress.com/2013/03/27/tutorial-le-nrf24l01-larduino-et-le-msp-430/ ainsi que la librairie : https://github.com/spirilis/msprf24 :
Code: [Select]
#include <msp430.h>
#include "msprf24.h"
#include "nrf_userconfig.h"

char addrTX[]={'t','e','s','t','2'};

char buf[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; // trame exemple

int main(void) {

WDTCTL = WDTPW + WDTHOLD;
BCSCTL2 = SELM_0 + DIVM_0 + DIVS_0;

if (CALBC1_1MHZ != 0xFF) {
DCOCTL = 0x00;
BCSCTL1 = CALBC1_1MHZ; /* Set DCO to 1MHz */
DCOCTL = CALDCO_1MHZ;
}

BCSCTL1 |= XT2OFF + DIVA_3;
BCSCTL3 = XT2S_0 + LFXT1S_0 + XCAP_0;
TA0CCTL0 = CM_0 + CCIS_0 + OUTMOD_0 + CCIE; // configuration du timer à 1 s
TA0CCR0 = 4095;
TA0CTL = TASSEL_1 + ID_0 + MC_1;

UCB0CTL1 |= UCSWRST; // configuration du SPI
UCB0CTL0 = UCMSB + UCMST + UCMODE_0 + UCSYNC;
UCB0CTL1 = UCSSEL_2 + UCSWRST;
UCB0BR0 = 64;
UCB0BR1 = 6;
UCB0CTL1 = ~UCSWRST;

P1DIR|=BIT0;

rf_crc=RF24_EN_CRC|RF24_CRCO; // CRC active, 16-bit
rf_addr_width=5; // On utilise une adresse de 5 bytes
rf_speed_power=RF24_SPEED_2MBPS|RF24_POWER_0DBM; // vitesse 1MBPS et puissance max
rf_channel=1;

msprf24_init();

msprf24_set_pipe_packetsize(0,16); // payload de 16 byte sur le pipe 0
msprf24_open_pipe(0,1); // ouverture du pipe avec Auto-Acknowledgement

w_tx_addr(addrTX); // configuration adresse émission
w_rx_addr(0,addrTX); // configuration adresse réception idem à celle de transmission
                      // pour permettre la réception de l'ACK

msprf24_standby(); // module en veille (pas endormi)

while(1){

if(msprf24_is_alive()) { // fait clignoter la LED rouge sur launchpad si
    P1OUT^=BIT0; // le nrf est bien connecté
}else{
    P1OUT&=!BIT0;
}

LPM3; // on endort

w_tx_payload(16,buf); // on charge le FIFO avec le tableau buf
msprf24_activate_tx(); // émission
msprf24_get_irq_reason(); // récupère les alertes du NRF
while(!(rf_irq && RF24_IRQ_TX)) msprf24_get_irq_reason(); // tant que la transmission n'est pas finie, on boucle
msprf24_irq_clear(RF24_IRQ_TX); // on efface les flags d'alerte

}

}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR_H


Le fichier "nrf_userconfig.h" contient :
Code: [Select]
/* nrf_userconfig.h
* User configuration of nRF24L01+ connectivity parameters, e.g.
* IRQ, CSN, CE pin assignments, Serial SPI driver type
*
*
* Copyright (c) 2012, Eric Brundick <spirilis@linux.com>
*
* Permission to use, copy, modify, and/or distribute this software for any purpose
* with or without fee is hereby granted, provided that the above copyright notice
* and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
* OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

#ifndef _NRF_USERCONFIG_H
#define _NRF_USERCONFIG_H

/* CPU clock cycles for the specified amounts of time--accurate minimum delays
* required for reliable operation of the nRF24L01+'s state machine.
*/
/* Settings for 1MHz MCLK.
#define DELAY_CYCLES_5MS       5000
#define DELAY_CYCLES_130US     130
#define DELAY_CYCLES_15US      15
*/

/* Settings for 8MHz MCLK.
#define DELAY_CYCLES_5MS       40000
#define DELAY_CYCLES_130US     1040
#define DELAY_CYCLES_15US      120
*/

/* Settings for 16MHz MCLK */
#define DELAY_CYCLES_5MS       80000
#define DELAY_CYCLES_130US     2080
#define DELAY_CYCLES_15US      240

/* Settings for 24MHz MCLK.
#define DELAY_CYCLES_5MS       120000
#define DELAY_CYCLES_130US     3120
#define DELAY_CYCLES_15US      360
*/

/* SPI port--Select which USCI port we're using.
* Applies only to USCI devices.  USI users can keep these
* commented out.
*/
//#define RF24_SPI_DRIVER_USCI_A 1
#define RF24_SPI_DRIVER_USCI_B 1

/* Define whether this library should use LPM0+IRQs during SPI I/O and whether this library should provide the ISR. */
#define RF24_SPI_DRIVER_USCI_USE_IRQ 1
#define RF24_SPI_DRIVER_USCI_PROVIDE_ISR 1


/* Operational pins -- IRQ, CE, CSN (SPI chip-select)
*/

/* IRQ */
#define nrfIRQport 2
#define nrfIRQpin BIT2

/* CSN SPI chip-select */
#define nrfCSNport 2
#define nrfCSNportout P2OUT
#define nrfCSNpin BIT1

/* CE Chip-Enable (used to put RF transceiver on-air for RX or TX) */
#define nrfCEport 2
#define nrfCEportout P2OUT
#define nrfCEpin BIT0

#endif


Dans le tuto il indique :
Quote
Modification du nrf_userconfig.h : en haut il y des constantes suivant la fréquence de fonctionnement, il suffit de décommenter la partie qui vous correspond et de commenter les autres et en bas la partie hardware pour définir où sont brancher les pins CE, CSN et IRQ si vous l'utilisez

Je ne sais pas à quelle pin physique correspond les BIT0, BIT1 et BIT2 pour regler en fonction du pinage que j'utilise :
(http://unboxnbeyond.files.wordpress.com/2013/05/24l01pinout-800.jpg?w=300&h=137)
P1.5: SCK
P1.6: MISO
P1.7: MOSi
P2.0: CE
P2.1: CSN
P2.2: IRQ

Je recontre une erreur de compilation :
Quote
sketch_jul18a.cpp.o: In function `main':
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:40: undefined reference to `msprf24_init()'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:42: undefined reference to `msprf24_set_pipe_packetsize(unsigned char, unsigned char)'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:43: undefined reference to `msprf24_open_pipe(unsigned char, unsigned char)'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:45: undefined reference to `w_tx_addr(char*)'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:46: undefined reference to `w_rx_addr(unsigned char, char*)'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:49: undefined reference to `msprf24_standby()'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:53: undefined reference to `msprf24_is_alive()'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:61: undefined reference to `w_tx_payload(unsigned char, char*)'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:62: undefined reference to `msprf24_activate_tx()'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:63: undefined reference to `msprf24_get_irq_reason()'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:64: undefined reference to `msprf24_get_irq_reason()'
C:\Users\acer\AppData\Local\Temp\build4513026607041527577.tmp/sketch_jul18a.cpp:65: undefined reference to `msprf24_irq_clear(unsigned char)'
collect2: ld returned 1 exit status


Merci et bonne journée!!!
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: B@tto on Jul 18, 2013, 11:37 am
C'est un tuto pour CCS, pas pour Energia ;)

Il faudrait faire quelques modifications pour que la lib soit correctement intégrée.

Pour Energia il y a une toute prête : http://unboxnbeyond.wordpress.com/2013/05/22/connecting-msp430-and-stellaris-launchpad-through-nrf24l01/
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: alex72 on Jul 18, 2013, 11:54 am
Hey!

Quote
Salut!
J'avais la même idée que toi de casser la led, avec 32µA, cela fait une autonomie de prés de 5ans! http://oregonembedded.com/batterycalc.htm Pas mal du tout!


Oui c'est impressionnant, après il faut voir aussi ta consommation en mode normale et le temps d'utilisation dans ce mode...mais globalement on peut économiser beaucoup!  :)


Quote
Je vais essayer, en attendant je viens de recevoir mon MSP430 Launchpad, c'est bien conçu et Energia est magnifique! Un véritable clone de l'arduino, c'est agréable!!!


Je ne connais pas 'Energia' mais du coup tu éveilles ma curiosité et pour cela je t'en remercies!  ;)

Quote
J'ai essayé de suivre ce tuto pour l'utilisation avec NRF24L01 : http://battomicro.wordpress.com/2013/03/27/tutorial-le-nrf24l01-larduino-et-le-msp-430/ ainsi que la librairie : https://github.com/spirilis/msprf24 :


Je ne connaissais pas cette librairie, du coup je ne pourrais pas t'aider sur ton problème de connections. Par contre, je ne saurais mieux te conseiller que d'utiliser la librairie disponible sur ce blog:

http://maniacbug.wordpress.com/2011/11/02/getting-started-rf24/ (http://maniacbug.wordpress.com/2011/11/02/getting-started-rf24/)

En fouinant, tu y trouveras une tonne de choses intéressantes sur notamment la réduction de consommation, la possibilité de créer une véritable réseau de nœuds NRF24L01 ...bref, je l'utilise et en suis entièrement satisfait. A toi de voir, je ne connais pas tes contraintes...

A bientôt!
Alex.
Title: Re: Modules radio ou autres pour portée et autonomie maximale
Post by: josse34 on Jul 18, 2013, 03:02 pm
Bonjour!
Merci B@tto, le code et la librairie pour MSP430 de http://unboxnbeyond.wordpress.com/2013/05/22/connecting-msp430-and-stellaris-launchpad-through-nrf24l01/ semble coller mais utilisée sans autre NRF24 les sketch exemple TX ou RX n'écrivent absolument rien sur la console.

Par contre sur l'ARDUINO comment adapter l'exemple GettingStarted montrée ci-dessous de la librairie d'une IBOARD PRO sur base MEGA légèrement dérivée de la librairie http://maniacbug.wordpress.com/2011/11/02/getting-started-rf24/ pour communiquer avec le sketch exemple (RX ou TX) du MSP430?

Code: [Select]
/*
Copyright (C) 2011 J. Coliz <maniacbug@ymail.com>
Modified by Andy Karpov <andy.karpov@gmail.com>

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
version 2 as published by the Free Software Foundation.
*/

/**
* Example for Getting Started with nRF24L01+ radios.
*
* This is an example of how to use the RF24 class.  Write this sketch to two
* different nodes.  Put one of the nodes into 'transmit' mode by connecting
* with the serial monitor and sending a 'T'.  The ping node sends the current
* time to the pong node, which responds by sending the value back.  The ping
* node can then see how long the whole cycle took.
*/

#include <SPI.h>
#include <digitalWriteFast.h>
#include "iBoardRF24.h"
#include "printf.h"

//
// Hardware configuration
//

// Set up nRF24L01 radio on iBoard
iBoardRF24 radio(12,11,8,7,9,2);

//
// Topology
//

// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };

//
// Role management
//
// Set up role.  This sketch uses the same software for all the nodes
// in this system.  Doing so greatly simplifies testing. 
//

// The various roles supported by this sketch
typedef enum { role_ping_out = 1, role_pong_back } role_e;

// The debug-friendly names of those roles
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};

// The role of the current running sketch
role_e role = role_pong_back;

void setup(void)
{
  //
  // Print preamble
  //

  Serial.begin(57600);
  printf_begin();
  printf("\n\rRF24/examples/GettingStarted/\n\r");
  printf("ROLE: %s\n\r",role_friendly_name[role]);
  printf("*** PRESS 'T' to begin transmitting to the other node\n\r");

  //
  // Setup and configure rf radio
  //

  radio.begin();

  // optionally, increase the delay between retries & # of retries
  radio.setRetries(15,15);

  // optionally, reduce the payload size.  seems to
  // improve reliability
  radio.setPayloadSize(8);

  //
  // Open pipes to other nodes for communication
  //

  // This simple sketch opens two pipes for these two nodes to communicate
  // back and forth.
  // Open 'our' pipe for writing
  // Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading)

  if ( role == role_ping_out )
  {
    radio.openWritingPipe(pipes[0]);
    radio.openReadingPipe(1,pipes[1]);
  }
  else
  {
    radio.openWritingPipe(pipes[1]);
    radio.openReadingPipe(1,pipes[0]);
  }

  //
  // Start listening
  //

  radio.startListening();

  //
  // Dump the configuration of the rf unit for debugging
  //

  radio.printDetails();
}

void loop(void)
{
  //
  // Ping out role.  Repeatedly send the current time
  //

  if (role == role_ping_out)
  {
    // First, stop listening so we can talk.
    radio.stopListening();

    // Take the time, and send it.  This will block until complete
    unsigned long time = millis();
    printf("Now sending %lu...",time);
    bool ok = radio.write( &time, sizeof(unsigned long) );
   
    if (ok)
      printf("ok...");
    else
      printf("failed.\n\r");

    // Now, continue listening
    radio.startListening();

    // Wait here until we get a response, or timeout (250ms)
    unsigned long started_waiting_at = millis();
    bool timeout = false;
    while ( ! radio.available() && ! timeout )
      if (millis() - started_waiting_at > 200 )
        timeout = true;

    // Describe the results
    if ( timeout )
    {
      printf("Failed, response timed out.\n\r");
    }
    else
    {
      // Grab the response, compare, and send to debugging spew
      unsigned long got_time;
      radio.read( &got_time, sizeof(unsigned long) );

      // Spew it
      printf("Got response %lu, round-trip delay: %lu\n\r",got_time,millis()-got_time);
    }

    // Try again 1s later
    delay(1000);
  }

  //
  // Pong back role.  Receive each packet, dump it out, and send it back
  //

  if ( role == role_pong_back )
  {
    // if there is data ready
    if ( radio.available() )
    {
      // Dump the payloads until we've gotten everything
      unsigned long got_time;
      bool done = false;
      while (!done)
      {
        // Fetch the payload, and see if this was the last one.
        done = radio.read( &got_time, sizeof(unsigned long) );

        // Spew it
        printf("Got payload %lu...",got_time);

// Delay just a little bit to let the other unit
// make the transition to receiver
delay(20);
      }

      // First, stop listening so we can talk
      radio.stopListening();

      // Send the final one back.
      radio.write( &got_time, sizeof(unsigned long) );
      printf("Sent response.\n\r");

      // Now, resume listening so we catch the next packets.
      radio.startListening();
    }
  }

  //
  // Change roles
  //

  if ( Serial.available() )
  {
    char c = toupper(Serial.read());
    if ( c == 'T' && role == role_pong_back )
    {
      printf("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK\n\r");

      // Become the primary transmitter (ping out)
      role = role_ping_out;
      radio.openWritingPipe(pipes[0]);
      radio.openReadingPipe(1,pipes[1]);
    }
    else if ( c == 'R' && role == role_ping_out )
    {
      printf("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK\n\r");
     
      // Become the primary receiver (pong back)
      role = role_pong_back;
      radio.openWritingPipe(pipes[1]);
      radio.openReadingPipe(1,pipes[0]);
    }
  }
}
// vim:cin:ai:sts=2 sw=2 ft=cpp


Merci!