Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Module bluetooth et PIC
AchileT
Membre
Membre
Messages : 17
Enregistré en : septembre 2015

#11 Message par AchileT » dim. 31 janv. 2016 08:49

Salut Jérémy et tout le monde aussi .

J'ai effectivement bocoup de boulot en ce moment , je n'ai pas eu le temps de m'occuper. Je ne sais pas si j'aurais le temps dans les semaines a venir, mais faudrait que je le trouve . en tout cas si tu avance, je vais te suivre ...

Bon courage pour faire reconnaitre ton module :bravo:

Module bluetooth et PIC
Jérémy
Administrateur du site
Administrateur du site
Messages : 2750
Âge : 46
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#12 Message par Jérémy » dim. 31 janv. 2016 08:58

Pas de problème AchileT .

Il faudrait juste que tu précise ton cahier des charges ! Il s'agit juste d'allumer une ampoule de chevet ? Quelle puissance ?

Je ne comprends pas, car deja le nom marqué sur la tablette de correspond pas au nom dans le programme .

Voici une partie de l'exemple de MikroE sur ce module . il s'agit du fichier de configuration seulement :

Code : Tout sélectionner


void  BT_Configure
() {

  do {
    UART1_Write_Text("$$$");                  // Enter command mode
    Delay_ms(500);
  } while (BT_Get_Response() != BT_CMD);

  do {
    UART1_Write_Text("SN,BlueTooth-Click");   // Name of device
    UART1_Write(13);                          // CR
    Delay_ms(500);
  } while (BT_Get_Response() != BT_AOK);

   do {
    UART1_Write_Text("SO,Slave");             // Extended status string
    UART1_Write(13);                          // CR
    Delay_ms(500);
  } while (BT_Get_Response() != BT_AOK);

  do {
    UART1_Write_Text("SM,0");                 // Set mode (0 = slave, 1 = master, 2 = trigger, 3 = auto, 4 = DTR, 5 = ANY)
    UART1_Write(13);                          // CR
    Delay_ms(500);
  } while (BT_Get_Response() != BT_AOK);

  do {
    UART1_Write_Text("SA,1");                 // Authentication (1 to enable, 0 to disable)
    UART1_Write(13);                          // CR
    Delay_ms(500);
  } while (BT_Get_Response() != BT_AOK);

  do {
    UART1_Write_Text("SP,1234");              // Security pin code (mikroe)
    UART1_Write(13);                          // CR
    Delay_ms(500);
  } while (BT_Get_Response() != BT_AOK);

  do {
    UART1_Write_Text("---");                  // Security pin code (mikroe)
    UART1_Write(13);                          // CR
    Delay_ms(500);
  } while (BT_Get_Response() != BT_END);
}


Je suis surpris aussi de voir ceci dans le programme principal , une partie en commentaire :

Code : Tout sélectionner

if (CMD_mode){

    
/* The responses expected from the EasyBT module:
    CMD
    AOK
    AOK
    AOK
    AOK
    AOK
    END
    SlaveCONNECTmikroE
    EasyBlueTooth
    mikroE ...
    EasyBlueTooth*/

    // Process reception through state machine
    // We are parsing CMD<cr><lf>, AOK<cr><lf>, CONN<cr> and END<cr><lf> responses
    
switch (BT_state) {
      case  
0: {
                
response 0;                   // Clear response
                
if (tmp == 'C')                 // We have 'C', it could be CMD<cr><lf>  or CONN
                  
BT_state 1;                 // Expecting 'M' or 'N'
                
if (tmp == 'A')                 // We have 'A', it could be AOK<cr><lf>
                  
BT_state 11;                // expecting 'O'
                
if (tmp == 'E')                 // We have 'E', it could be END<cr><lf>
                  
BT_state 31;                // expecting 'N'
                
break;                          // ...
      
}
 
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module bluetooth et PIC
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3260
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#13 Message par paulfjujo » dim. 31 janv. 2016 16:55

bonsoir,


CODE PIN ... essaie 0000




Pour l'init du RN41 , soit tu utilise void BT_Configure(), soit le source de la machine d'etat (State Machine)
qui à mon avis est bien plus compliqué à comprendre ...
Aide toi, le ciel ou FantasPic t'aidera

Module bluetooth et PIC
Jérémy
Administrateur du site
Administrateur du site
Messages : 2750
Âge : 46
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#14 Message par Jérémy » dim. 31 janv. 2016 17:08

CODE PIN ... essaie 0000

J'ai essayé ! Je commence a désespérer qu'un jour j'arrive a faire fonctionner tout seul . Normalement ca devrait être simple , et à chaque fois il m'arrive une M...e ou une S...t en anglais . C'est démoralisant à force .

je suis conscient que j'apprends beaucoup de chose d'un coup, certainement trop, mais bon je suis comme ca ! :D

Techniquement je n'utilise rien . j'ai seulement télécharger le code exemple dans le PIC, et brancher le tout . Peut etre ai je oublié de faire quelques choses mais alors je ne sais pas ce que c'est

Le void BT_Configure() c'est bien la partie qui envoie au module bluetooth la configuration ?

Donc je pense que je ne dois pas réussir a lui envoyer cette fonction , c'est pourquoi le nom affiché n'est pas le bon , et le mdp aussi ? je ne vois que ca . Je vais tacher de m'assurer que la configuration UART soit bonne !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module bluetooth et PIC
Jérémy
Administrateur du site
Administrateur du site
Messages : 2750
Âge : 46
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#15 Message par Jérémy » dim. 31 janv. 2016 18:21

Je confirme j'ai aucune initialisation .... L'UART ne répond pas même à 9600 bauds .

J'ai mis des led test partout .

J'arrive à la fonction :

Code : Tout sélectionner

void  BT_Configure() {
   PORTD.B0 = 1;
   delay_ms (200);
   PORTD.B0 = 0;

  do {
    UART1_Write_Text("$$$");                  // Enter command mode
    Delay_ms(500);
  } while (BT_Get_Response() != BT_CMD);

  PORTD.B0 = 1;
  delay_ms (200);
  PORTD.B0 = 0;
 


La première led s’allume pas la seconde . Je reste donc bloqué sur cette partie . Aucun dialogue sur le port série .

Niveau hard .
Je dois mettre la broche RC7 ( Rx) en entrée ?
J'ai modifié ceci dans le programme "exemple" :
RCIE_bit = 1;
Par
RC1IE_bit = 1;
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module bluetooth et PIC
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3260
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#16 Message par paulfjujo » dim. 31 janv. 2016 18:30

Le void BT_Configure() c'est bien la partie qui envoie au module bluetooth la configuration ?



oui, mais !
cette init ne se passera bien que si tu recois les bonnes reponses...
je te suggere une prise en main de ton module bluetooth via un terminal directement (aux niveaux LTTL pres) relié à celui-ci..
comme cela tu peux verfier le comportement du module .. sans se compliquer avec un programme applicatif.

voir
http://paulfjujo.free.fr/_BlueTooth/18F_BlueTooth.htm
Phase primordiale : Test du module BlueTooth
en direct via Terminal Vbray RS232
Déboires rencontres et remedes :

exemple de dialogue obtenu avec mon RN41

Code : Tout sélectionner


Terminal log file
Date
: 12/03/2012 - 22:33:05
-----------------------------------------------
$$$---?
---
END
CMD
+ECHO OFF
ECHO ON
D
***Settings***
BTA=00066607DB49
BTName
=BlueTooth-Click
Baudrt
=115K
Parity
=None
Mode  
=Slav
Authen
=1
Encryp
=0
PinCod
=1234
Bonded
=0
Rem
=NONE SET
E
***ADVANCED Settings***
SrvName= SPP
SrvClass
=0000
DevClass
=1F00
InqWindw
=0100
PagWindw
=0100
CfgTimer
=80
StatuStr
=Slave
SM
,0AOK
O
***OTHER Settings***
Profile= SPP
CfgChar
= $
SniffEna=0
LowPower
=0
TX Power
=0
IOPorts
= 0
IOValues
=0
DebugMod
=0
RoleSwch
=0
GB00066607DB49
G
&20
VVer 4.77 05
/12/09 
(c) Roving Networks
H
*** SET COMMANDS ***
SA,<1,0>   - Authentication
SB
,<num>   - Send Break
SC
,<hex>   - Service Class
SD
,<hex>   - Device Class
SE
,<1,0>   - Encryption
SF
,1       - Factory Defaults
SI
,<hex>   - Inquiry Scan Window
SJ
,<hex>   - Page Scan Window
SL
,<E,O,N> - Parity
SM
,<0-5>   - Mode (0=slav,1=mstr,2=trig,3=auto,4=DTR,5=Any)
SN,<name>  - Name
SO
,<text>  - conn/discon Status
SP
,<text>  - Pin Code
SR
,<adr>   - Remote Address
SS
,<text>  - Service Name
ST
,<num>   - Config Timer
SU
,<rate>  - Baudrate
SW
,<hex>   - Sniff Rate
SX
,<1,0>   - Bonding
SY
,<hex>   - TX power
SZ
,<num>   - Raw Baudrate
S7
,<0-1>   - 7bit data
S
~,<0-3>   - Profile (0=SPP,1=DCE,2=DTE,3=MDM,4=D&S
S
?,<0-1>   - role switch
S
$,<char>  - CMD mode char
S
@,<hex>   - io port dir
S
&,<hex>   - io port val
S
%,<hex>   - io boot dir
S
^,<hex>   - io boot val
S
*,<hex>   - pio(8-11) set
S
|,<hex>   - low power timers
*** DISPLAY      ***
D     - Basic Settings
E     
- Extended Settings
G
<X>  - Stored setting
GB    
- BT Address
GK    
- Connect Status
G
&    - I/O Ports
V     
- Firmare version
*** OTHER        ***
C,<adr>    - Connect
F
,1        - Fast Mode
I
,<time>,<cod> - Device Scan Inquiry
K
,         - Kill (disconnect)
L,         - toggle local echo
P
,<text>   - Pass Thru
Q          
- Quiet (no discovery)
R,1        - Reboot
T
,<0,1>    - send data in CMD mode
U
,<rate>,<E,O,N> - Temp Uart Change
Z          
- low power sleep
&          - Read switches

-----------------------------------------------
Date: 12/03/2012 - 22:34:36
End log file





avec ce fichier macro pour Terminal Vbray
(Cdes sous touches de fonctions)
enlever l'extension .txt , sous Terminal vbray charger ce fichier macro
BTC_2012.tmf.txt



Vbray_terminal_Macro_pour_test_RN41.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Module bluetooth et PIC
Jérémy
Administrateur du site
Administrateur du site
Messages : 2750
Âge : 46
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#17 Message par Jérémy » dim. 31 janv. 2016 21:01

Hello,

Oui j'ai regarder ton site pour m'inspirer, mais c'est très compliqué pour moi. Déjà j'ai compris qu'il fallait l'initialiser ce module !! OUF !! une bonne chose de faite .

Bon, n'ayant pas de quoi faire les montages que tu me préconise, j'ai reflechie pour me servir de ma carte eayspic qui comprend tout ca . J'ai retirer mon PIC dessus, pour laisser les broches libres . j'ai connecter les broches du module BT au broches du USB/UART présent sur ma carte . Aibnsi je devrais pouvoir pouvoir utilisé realterm pour dialoguer avec ce fichu BT .

Je sais pas trop pourquoi , je tape $$$ apres plusieurs essais de configuration sur realterm ( que je ne maitrise pas du tout), et ho miracle j'ai un joli cmd qui s'affiche sur realterm . C'est une bonne réponse enfin il me cause ce bougre de BT .

J'enchaine avec l'envoie de SN,BlueTooth-Click , rien , je trifouille un peu , et je coche deux fois le CR dans realterm dans la partie EOL . et ho miracle il me répond AOK encore une bonne réponse, je continu et encore une bonne et encore et encore .
Jusqu'a qu'il me marque END .

Je cours cherche ma tablette, je recherche le BT , encore un miracle, je vois le bon nom écrit !! ,je clique sur appareillé , mot de passe, paf réussi !!!!

Un petit pas pour le Bluetooth, un grand pas pour Jérémy ! :D

Ok nouveau test avec USART terminal de mikroC .Impeccable , mais il faut cocher la case append new line pour que ça fonctionne et mettre un CR bien évidemment.

savez vous qu'est unappend new line et comment en faire en C ? c'est un LF ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module bluetooth et PIC
Jérémy
Administrateur du site
Administrateur du site
Messages : 2750
Âge : 46
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#18 Message par Jérémy » lun. 1 févr. 2016 07:41

Bonjour à tous ,

Appareillé OUI , mais connecté non ? Connaissez vous la différence ?

Car tout se passe parfaitement, sur am tablette je vois appareil appairés mais mon BT reste toujours en attente de connexion. Vu sur l'ecran LCD ;

Donc j'en déduis que je reste bloqué sur cette ligne de code dans le programme, qui se situe juste après la configuration :
// Wait until connected
while (BT_Get_Response() != BT_CONN);


Bizarre ! totu est bon sauf que le module BT n'envoie pas le mot disant qu'il est appairé au PIC .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module bluetooth et PIC
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3260
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#19 Message par paulfjujo » lun. 1 févr. 2016 11:51

bonjour,


savez vous qu'est unappend new line et comment en faire en C ? c'est un LF ?


\r pour CR Carriage Return retour à la ligne
\n pour LF Line Feed saut de ligne

avec terminal VBRAY , sous les touches de fonction (MACRO) on rajoute #013 pour un CR (code decimal du caractere)

Avec quelle application , sur ton phone, tu essaies de connecter ton module BT PIC...

essaies avec cette appli sur Appinventor2
http://ai2.appinventor.mit.edu/?gallery ... 2785601536
tu devrais voir ton module dans la liste apres appui sur "Selection B.T."
et si connecté, un icone bluetooth apparait en bas à droite..



HC06_160127_appli.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Module bluetooth et PIC
Jérémy
Administrateur du site
Administrateur du site
Messages : 2750
Âge : 46
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#20 Message par Jérémy » lun. 1 févr. 2016 12:14

Bonjour PAulfjujo,

Avec quelle application , sur ton phone, tu essaies de connecter ton module BT PIC...

Hum....... avec aucune . En fait je recherche juste avec ma tablette les dispositif Bluetooth a portée. Je me connecte dessus en cliquant sur appairé .

Donc ma tablette et mon BT sont appairés mais pas connectés ? ca me parait bien comme explication . je me connecte via une application , sur un dispositif déjà appairé ?

J'essaye ton application ce soir en rentrant .
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités