Mudanças entre as edições de "Estágio Mouchaud sobre Bluetooth 4.0 e 6lowpan"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 8: Linha 8:
 
Etude sur l'implantation du protocole 6lowpan sur une communication Bluetooth 4.0 dans une carte nrf51 de Nordic Semiconductors. Il s'agit de l'Equipement Kit, avec deux carte : la carte pca10000 et pca10001
 
Etude sur l'implantation du protocole 6lowpan sur une communication Bluetooth 4.0 dans une carte nrf51 de Nordic Semiconductors. Il s'agit de l'Equipement Kit, avec deux carte : la carte pca10000 et pca10001
  
[[File:NRF51 Equipement Kit.jpg|frame|none|alt=Alt text|Caption text]]
+
[[File:NRF51 Equipement Kit.jpg|frame|none]]
  
 
==Programme de Travail==
 
==Programme de Travail==

Edição das 10h51min de 29 de abril de 2014

Page de Corentin Mouchaud

Description du Stage

Etude sur l'implantation du protocole 6lowpan sur une communication Bluetooth 4.0 dans une carte nrf51 de Nordic Semiconductors. Il s'agit de l'Equipement Kit, avec deux carte : la carte pca10000 et pca10001

NRF51 Equipement Kit.jpg

Programme de Travail

Anglais

(1) Basic study of the Nordic board including ARM Cortex 0 and Radio Module. (2 weeks)

(2) Basic study of the implementation of Bluetooth 4.0 on the Nordic board (C programming knowledgement is needed). (2 week). Note that the protocols is already implemented by Nordic.

(3) Small development (to be defined) showing the communication of a tablet with the nordic board using B4.0. Samples are provided then we do not expect problems in this phase.(2 weeks)

(4) Study of 6lowpan and the Contiki implementation. (2 weeks)

(5) Viability analyses to port Contiki on the Nordic Board. (2 weeks)


Français

(1) Etude basique de la carte Nordic qui inclue un processeur ARM Cortex M0 et un module radio. (2 semaines)

(2) Etude basique de l'implantation d'un Bluetooth 4.0 sur la carte Nordic (Connaissance de la programmation C requise). (2 semaines). A noter que le protocole est deja implanté par Nordic.

(3) Petit développement (a définir) pour montrer la communication d'une tablette avec la carte Nordic utilisant le Bluetooth 4.0. Les exemples sont fournis alors nous ne nous attendons pas à avoir de problèmes dans cette phase. (2 semaimes)

(4) Etude du protocole 6lowpan et de l'implantation Contiki. (2 semaines)

(5) Analyse de la viabilité de mettre Contiki sur la carte Nordic. (2 semaines)

Semaine 1 - 7/4/2014

Etape (1): Basic study of the Nordic board including ARM Cortex 0 and Radio Module.

Projet pratique


Développer un logiciel pour contrôler a distance deux LEDs dans une carte de l'Equipement Test nrf51 (pca10001). Le programme principal doit s’exécuter dans un PC lié a une première carte nrf51 (pca10000) a travers un portserial/USB. Cette carte doit executer un programme pour envoyer les commandes via RADIO a une seconde carte nrf51 (pca10000).

Diagramme de l'exemple

Réalisation


Le travail a été réalisé sous Windows :

1 - Il a d'abord fallut que je me documente sur les deux cartes nRF51822, de l'Evaluation Kit, misent a ma disposition (pca10000 et pca10001).

2 - En suivant le guide d'utilisation de l'Evaluation Kit j'ai télécharger le logciel KEIL MDK-ARM. Ce logiciel permet de compiler des programmes dans les cartes.

3 - Toujours en suivant la documentation, j'ai du telecharger J-Link Software de Segger pour configurer les cartes ( ATTENTION : la version de J - Link Software doit correspondre a la version de Keil ) .

4 - Ensuite j'ai télécharger, sur le site Nordic Semiconductor, plusieurs exemples de programme pouvant être mis sur les deux cartes.

5 - J'ai ensuite pris le terminal Realterm, me permettant de communiquer avec les programmes.

6 - J'ai d'abord implanter un exemple de programme sur la carte pca10001 en passant par KEIL. Ce programme fait clignoter les deux LEDs l'une après l'autre. J'ai pu voir que la carte fonctionnait correctement.

7 - Cette fois ci j'ai mis dans les deux cartes les deux programmes exemple LEDs_RADIO. Une fois mis il a fallut configurer le terminal pour qu'il puisse communiquer avec la carte pca10000. Le programme dans cette carte demande une valeur : soit 0, soit 1. on rentre la valeur dans le terminal et la carte envoie un paquet a la seconde carte. Celle ci lit le paquet et en fonction de la valeur, allume le LED0 et éteins la LED1, ou inversement.

Semaine 2 - 14/4/2014

Projet pratique


Développer un logiciel pour contrôler a distance deux LEDs dans une carte de l'Equipement Test nrf51 (pca10001). Le programme principal s'exécuteras finalement dans la première carte nrf51 (pca10000) a travers un portserial/USB. Cette carte doit exécuter un programme pour envoyer les commandes via RADIO a une seconde carte nrf51 (pca10001). Par la suite, commencer a étudier CONTIKI et son implantation sur la carte.

Réalisation


J'ai modifier les deux programmes exemples LEDs_RADIO pour pouvoir commander indépendamment les deux LEDs présentent sur la carte pca10001. Dans le premier programme, sur la carte pca10000, j'ai modifier le code pour envoyer différents paquets.

int main(void)
{
  init(); // initialisation
  simple_uart_putstring((const uint8_t *)"\n\rPress '1' pour allumer la LED 0\n\rPress '2' pour eteindre la LED 0\n\rPress '9' pour allumer la LED 2\n\rPress '0' pour eteindre la LED 2\n\r "); 
  // ce qu'affiche le terminal
  while(true)
  {
    uint8_t c = simple_uart_get(); // lecture de la valeur
    if (c != '1' && c != '2' && c != '9' && c != '0') // seules valeurs qui fonctionnent : 1, 2, 9, 0
      continue; 
    simple_uart_put(c); // sauvegarde de la valeur

Au niveau du second programme, j'ai modifier le code pour pouvoir qu'en fonction de la valeur du paquet envoyer par le premier programme, celui réalise différentes actions :

if (NRF_RADIO->CRCSTATUS == 1U) // écrit la valeur reçu
    {
      switch(packet[0])
      {
        case '1': // valeur reçu : 1
          nrf_gpio_pin_set(LED0); // La lED 0 s'allume
          break;
        case '2': // valeur reçu : 2
          nrf_gpio_pin_clear(LED0); // La LED 0 s’éteint
          break;
	case '9': // valeur reçu : 9
          nrf_gpio_pin_set(LED1); // La lED 1 s'allume
          break;
	case '0': // valeur reçu : 0
          nrf_gpio_pin_clear(LED1); // La LED 1 s’éteint
          break;
      }
    }

Finalement il n'est pas nécessaire pour l'instant de passer par un troisième programme sur l'ordinateur. Ceci sera réaliser ultérieurement.

Le premier programme envoie des données, tandis que le second reçoit des données. Pour que les deux programmes puissent recevoir et envoyer, il est nécessaire de créer deux fonctions, "recevoir" et "envoyer", dans chaque programmes. Ceci est en cours de réalisation.

En parallèle j'ai commencer a me documenter sur le CONTIKI ainsi que son implantation sur la carte. Des recherches plus approfondies vont m'être nécessaires concernant sont fonctionnement et son implantation.

References