Mudanças entre as edições de "Projeto Gateway Wifi - BTLE - Versão 2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(19 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
 
=Bolsista=
 
=Bolsista=
 
+
'''Nome:''' Thiago Werner
Nome: Thiago Werner
+
'''Curso:''' Engenharia de Telecomunicações/6ª Fase
  
 
=Local e Horário de Trabalho=
 
=Local e Horário de Trabalho=
Linha 12: Linha 12:
  
 
=Plano de Trabalho=
 
=Plano de Trabalho=
 
+
{| class="wikitable"
ETAPA Atividades Período
+
|-
 
+
! ETAPA
1     Estudo do kit de desenvolvimento nrf51 e das ferramentas. Agosto
+
! Atividades
 +
! Período
 +
|-
 +
| 1
 +
| [http://wiki.sj.ifsc.edu.br/index.php/Projeto_Gateway_Wifi_-_BTLE_-_Vers%C3%A3o_2#Kit_de_Desenvolvimento Kit de Desenvolvimento]
 +
| Agosto
 +
|-
 +
| 2
 +
| [http://wiki.sj.ifsc.edu.br/index.php/Projeto_Gateway_Wifi_-_BTLE_-_Vers%C3%A3o_2#Comunica.C3.A7.C3.A3o_via_Radio Comunicação via Radio]
 +
| Agosto
 +
|-
 +
| 3
 +
| [http://wiki.sj.ifsc.edu.br/index.php?title=Projeto_Gateway_Wifi_-_BTLE_-_Vers%C3%A3o_2#Comunica.C3.A7.C3.A3o_via_Softdevice Comunicação via Softdevice]
 +
| Agosto/Setembro
 +
|-
 +
| 4
 +
| [http://wiki.sj.ifsc.edu.br/index.php?title=Projeto_Gateway_Wifi_-_BTLE_-_Vers%C3%A3o_2#Comunica.C3.A7.C3.A3o_Wi-Fi Comunicação Wi-Fi]
 +
| Outubro
 +
|}
  
 
=Kit de Desenvolvimento=
 
=Kit de Desenvolvimento=
Linha 26: Linha 44:
 
Este documento nos fornece um passo-a-passo para programar as placas do Kit utilizando o software Eclipse. No entanto, este documento foi escrito no ano de 2013, e por isso alguns comandos que ele dá como instrução talvez não existam, ou existam similares. Com isso, a procura por download de ferramentas do ano anterior em seus sites de desenvolvedor são essenciais.
 
Este documento nos fornece um passo-a-passo para programar as placas do Kit utilizando o software Eclipse. No entanto, este documento foi escrito no ano de 2013, e por isso alguns comandos que ele dá como instrução talvez não existam, ou existam similares. Com isso, a procura por download de ferramentas do ano anterior em seus sites de desenvolvedor são essenciais.
 
Apesar disso, uma dificuldade que ainda me impossibilita de ao menos utilizar o debugger do Eclipse é o fato de um erro ocorrer: "The binary file is not found", porém algumas aplicações consigo ainda compilar.
 
Apesar disso, uma dificuldade que ainda me impossibilita de ao menos utilizar o debugger do Eclipse é o fato de um erro ocorrer: "The binary file is not found", porém algumas aplicações consigo ainda compilar.
[https://www.dropbox.com/s/sj92mj05u1g8il4/nAN-29%20%20nRF51%20Development%20with%20GCC%20and%20Eclipse%20Application%20Note%20v1.1.pdf?dl=0 nAN-29 Download]
+
<!--[https://www.dropbox.com/s/sj92mj05u1g8il4/nAN-29%20%20nRF51%20Development%20with%20GCC%20and%20Eclipse%20Application%20Note%20v1.1.pdf?dl=0 nAN-29 Download]-->
  
 
==Manual Reference==
 
==Manual Reference==
 
No Manual Reference temos uma descrição sobre todos os componentes do microcontrolador, o que é muito interessante para adquirirmos conhecimento sobre as memórias, registradores e todo o processo da máquina de estado do Radio.
 
No Manual Reference temos uma descrição sobre todos os componentes do microcontrolador, o que é muito interessante para adquirirmos conhecimento sobre as memórias, registradores e todo o processo da máquina de estado do Radio.
[https://www.dropbox.com/s/2l0379sr00fj05o/nRF51_Reference_manual%20v1.1.pdf?dl=0 Manual Reference Download]
+
<!-- [https://www.dropbox.com/s/2l0379sr00fj05o/nRF51_Reference_manual%20v1.1.pdf?dl=0 Manual Reference Download] -->
  
 
==User Guide==
 
==User Guide==
 
O Evaluation User Guide nos trás um manual para instalação do nRFgo Studio e do IDE Keil. O nRFgo Studio é a ferramenta que a Nordic nos oferece para embarcar os programas nas placas do Kit. Já o Keil, é o software que a Nordic nos recomenda para fazer debugger e editar e compilar os projetos que quisermos embarcar nas placas. Lembrando que, arquivos .c editamos no Keil, já arquivos .hex frutos da compilação no Keil são utilizados pelo nRFgo Studio.
 
O Evaluation User Guide nos trás um manual para instalação do nRFgo Studio e do IDE Keil. O nRFgo Studio é a ferramenta que a Nordic nos oferece para embarcar os programas nas placas do Kit. Já o Keil, é o software que a Nordic nos recomenda para fazer debugger e editar e compilar os projetos que quisermos embarcar nas placas. Lembrando que, arquivos .c editamos no Keil, já arquivos .hex frutos da compilação no Keil são utilizados pelo nRFgo Studio.
[https://www.dropbox.com/s/2ilck1l6vtvtcdm/nRF51822_Evaluation_Kit%20User_Guide%20v1.2.pdf?dl=0 User Guide Download]
+
<!--[https://www.dropbox.com/s/2ilck1l6vtvtcdm/nRF51822_Evaluation_Kit%20User_Guide%20v1.2.pdf?dl=0 User Guide Download]-->
 +
 
 +
=Comunicação via Radio=
 +
Utilizando o software [http://en.wikipedia.org/wiki/Keil_(company) Keil] para compilação de código e a ferramenta da nRFgo Studio a implementação do exemplo "Radio Led Example" foi bem sucedida. Para este experimento utilizamos as duas placas do Kit de Desenvolvimento nRF51822 para comunicação via rádio entre elas.
 +
 
 +
Na placa PCA10001 foi implementado a função de recepção (Rx) e na PCA10000 a de transmissão (Tx). A razão pela qual foi adotada esta distribuição foi que a PCA10001 tem muito mais recursos em sua periferia (como leds, botões, e etc), já a PCA10000 apenas tem a comunicação rádio e sua entrada USB.
 +
Contudo, a transmissão via rádio para a PCA10001 deve ser feita através de um comando feito pelo usuário, e para isso foi necessário a utilização do programa [http://www.compuphase.com/software_termite.htm Termite Terminal], que emula um terminal UART na porta USB do ambiente de trabalho. Com ele devemos configurar o "Baud Rate" para 38700 e selecionar adequadamente a porta que a PCA10000 está conectada no computador.
 +
 
 +
Para efetuar o experimento, o usuário deve escrever '1' ou '0' no terminal do Termite, o que corresponde na transmissão de um packet que aciona o "LED_1" ou "LED_0" respectivamente na PCA10001. Contudo, no código fornecido originalmente pela [http://en.wikipedia.org/wiki/Nordic_Semiconductor  Nordic] as linhas de configuração dos LEDs do arquivo de recepção à ser embarcado na PCA10001 está com erros, veja:
 +
Original:
 +
<syntaxhighlight lang=bash>
 +
      switch(packet[0])
 +
      {
 +
        case '0':
 +
          nrf_gpio_pin_set(LED0);
 +
          nrf_gpio_pin_clear(LED1);
 +
          break;
 +
 
 +
        case '1':
 +
          nrf_gpio_pin_set(LED1);
 +
          nrf_gpio_pin_clear(LED0);
 +
          break;
 +
      }
 +
</syntaxhighlight>
 +
Correto:
 +
<syntaxhighlight lang=bash>
 +
      switch(packet[0])
 +
      {
 +
        case '0':
 +
          nrf_gpio_pin_set(LED_0);
 +
          nrf_gpio_pin_clear(LED_1);
 +
          break;
 +
 
 +
        case '1':
 +
          nrf_gpio_pin_set(LED_1);
 +
          nrf_gpio_pin_clear(LED_0);
 +
          break;
 +
      }
 +
</syntaxhighlight>
 +
 
 +
Sendo assim, os links para acesso aos arquivos do exemplo estão aqui:
 +
 
 +
[https://www.dropbox.com/s/6a4i2s8smihlqrc/led_radio_example_rx.rar?dl=0 Rx_PCA10001]
 +
 
 +
[https://www.dropbox.com/s/n8hh473qa4ms6qm/led_radio_example_tx.rar?dl=0 Tx PCA10000]
 +
 
 +
=Comunicação via Softdevice=
 +
==O que é softdevice==
 +
O softdevice foi feito para soluções de BLE (Bluetooth Low Energy). Nele contém uma pilha de protocolos, que, se bem manipulados, podem nos servir para criar programas e soluções em BLE SOC (System on The Chip). O softdevice é fornecido em sua forma pre-compilada em formato .HEX, logo depois, a aplicação pode ser carregada.
 +
==Utilização de App Nordic e PCA10001==
 +
Após alguns procedimentos, um exemplo do SDK fornecido pela Nordic foi utilizado para fazer uma comunicação completa utilizando toda a biblioteca BLE do Softdevice. No exemplo BLE_APP_HRS podemos fazer transmissão de dados tanto do celular para a PCA10001 quanto da PCA10001 para o celular. A partir deste exemplo algumas modificações podem ser feitas visando a utilização para outros benefícios.
 +
 
 +
Obs: todos os programas fornecidos pelo SDK e o próprio Softdevice só estão disponíveis para clientes da Nordic.
 +
 
 +
==Comunicação mobile e PCA10001==
 +
Para a criação de um aplicativo dedicado para detecção da placa no celular foi utilizado a ferramenta de desenvolvimento fornecida pela Google Android SDK.
 +
Esta ferramenta é uma adaptação feita pela Google da IDE Eclipse. Ela foi totalmente adaptada para desenvolvimento de aplicativos para celular com sistema
 +
operacional Android.
 +
 
 +
O processo de aprendizagem da ferramenta foi muito proveitoso, pois para criação de aplicativos nesta IDE devemos ter o conhecimento de linguagem XML e Java.
 +
Um ponto crítico do processo de desenvolvimento foi de que nem todos os dispositivos conseguem detectar a emissão de beacons da placa. Foi identificado que
 +
o aplicativo fornecido pela Nordic tem adaptações feitas que permitem a comunicação com o softdevice da placa, visto que mesmo com o aplicativo desenvolvido
 +
no Android SDK detecta qualquer dispositivo menos a placa PCA10001.
 +
 
 +
[https://www.dropbox.com/s/3bqtkg5izh9tkql/bluetooth_scan.rar?dl=0 Programa Bluetooth Scan]
 +
 
 +
=Comunicação Wi-Fi=
  
 
=Referências=
 
=Referências=
  
 
*[http://www.sj.ifsc.edu.br/~eraldo/manuais/MANUAIS.tar.gz Information sur nrf51]
 
*[http://www.sj.ifsc.edu.br/~eraldo/manuais/MANUAIS.tar.gz Information sur nrf51]

Edição atual tal como às 18h38min de 28 de setembro de 2014

Bolsista

Nome: Thiago Werner Curso: Engenharia de Telecomunicações/6ª Fase

Local e Horário de Trabalho

Local de Trabalho

Os trabalhos da bolsa serão realizados na sala de Monitoria ou no labIC1.

Horários

GradeFINAL1.png

Plano de Trabalho

ETAPA Atividades Período
1 Kit de Desenvolvimento Agosto
2 Comunicação via Radio Agosto
3 Comunicação via Softdevice Agosto/Setembro
4 Comunicação Wi-Fi Outubro

Kit de Desenvolvimento

O material é composto por duas placas, são elas: PCA10000 e a PCA10001. Ambas tem o mesmo processador, Cortex M0. A sua desenvolvedora (Nordic Semicondutores) nos fornece ao comprarmos o Kit uma Key, que serve para obtermos o material necessário para desenvolvermos projetos com o Kit. O processo de investigação da Key foi demorado, contudo utilizei o rápido suporte da Nordic para obter a Key. No mesmo dia que fiz o ticket no site da Nordic a equipe de suporte respondeu com todos os dados que eu precisava para efetuar os downloads em seu site.

Dentre os diversos materiais que tive acesso, os mais importantes foram: nAN-29, Manual Reference e o User Guide.

nAN-29

Este documento nos fornece um passo-a-passo para programar as placas do Kit utilizando o software Eclipse. No entanto, este documento foi escrito no ano de 2013, e por isso alguns comandos que ele dá como instrução talvez não existam, ou existam similares. Com isso, a procura por download de ferramentas do ano anterior em seus sites de desenvolvedor são essenciais. Apesar disso, uma dificuldade que ainda me impossibilita de ao menos utilizar o debugger do Eclipse é o fato de um erro ocorrer: "The binary file is not found", porém algumas aplicações consigo ainda compilar.

Manual Reference

No Manual Reference temos uma descrição sobre todos os componentes do microcontrolador, o que é muito interessante para adquirirmos conhecimento sobre as memórias, registradores e todo o processo da máquina de estado do Radio.

User Guide

O Evaluation User Guide nos trás um manual para instalação do nRFgo Studio e do IDE Keil. O nRFgo Studio é a ferramenta que a Nordic nos oferece para embarcar os programas nas placas do Kit. Já o Keil, é o software que a Nordic nos recomenda para fazer debugger e editar e compilar os projetos que quisermos embarcar nas placas. Lembrando que, arquivos .c editamos no Keil, já arquivos .hex frutos da compilação no Keil são utilizados pelo nRFgo Studio.

Comunicação via Radio

Utilizando o software Keil para compilação de código e a ferramenta da nRFgo Studio a implementação do exemplo "Radio Led Example" foi bem sucedida. Para este experimento utilizamos as duas placas do Kit de Desenvolvimento nRF51822 para comunicação via rádio entre elas.

Na placa PCA10001 foi implementado a função de recepção (Rx) e na PCA10000 a de transmissão (Tx). A razão pela qual foi adotada esta distribuição foi que a PCA10001 tem muito mais recursos em sua periferia (como leds, botões, e etc), já a PCA10000 apenas tem a comunicação rádio e sua entrada USB. Contudo, a transmissão via rádio para a PCA10001 deve ser feita através de um comando feito pelo usuário, e para isso foi necessário a utilização do programa Termite Terminal, que emula um terminal UART na porta USB do ambiente de trabalho. Com ele devemos configurar o "Baud Rate" para 38700 e selecionar adequadamente a porta que a PCA10000 está conectada no computador.

Para efetuar o experimento, o usuário deve escrever '1' ou '0' no terminal do Termite, o que corresponde na transmissão de um packet que aciona o "LED_1" ou "LED_0" respectivamente na PCA10001. Contudo, no código fornecido originalmente pela Nordic as linhas de configuração dos LEDs do arquivo de recepção à ser embarcado na PCA10001 está com erros, veja: Original:

      switch(packet[0])
      {
        case '0':
          nrf_gpio_pin_set(LED0);
          nrf_gpio_pin_clear(LED1);
          break;

        case '1':
          nrf_gpio_pin_set(LED1);
          nrf_gpio_pin_clear(LED0);
          break;
      }

Correto:

      switch(packet[0])
      {
        case '0':
          nrf_gpio_pin_set(LED_0);
          nrf_gpio_pin_clear(LED_1);
          break;

        case '1':
          nrf_gpio_pin_set(LED_1);
          nrf_gpio_pin_clear(LED_0);
          break;
      }

Sendo assim, os links para acesso aos arquivos do exemplo estão aqui:

Rx_PCA10001

Tx PCA10000

Comunicação via Softdevice

O que é softdevice

O softdevice foi feito para soluções de BLE (Bluetooth Low Energy). Nele contém uma pilha de protocolos, que, se bem manipulados, podem nos servir para criar programas e soluções em BLE SOC (System on The Chip). O softdevice é fornecido em sua forma pre-compilada em formato .HEX, logo depois, a aplicação pode ser carregada.

Utilização de App Nordic e PCA10001

Após alguns procedimentos, um exemplo do SDK fornecido pela Nordic foi utilizado para fazer uma comunicação completa utilizando toda a biblioteca BLE do Softdevice. No exemplo BLE_APP_HRS podemos fazer transmissão de dados tanto do celular para a PCA10001 quanto da PCA10001 para o celular. A partir deste exemplo algumas modificações podem ser feitas visando a utilização para outros benefícios.

Obs: todos os programas fornecidos pelo SDK e o próprio Softdevice só estão disponíveis para clientes da Nordic.

Comunicação mobile e PCA10001

Para a criação de um aplicativo dedicado para detecção da placa no celular foi utilizado a ferramenta de desenvolvimento fornecida pela Google Android SDK. Esta ferramenta é uma adaptação feita pela Google da IDE Eclipse. Ela foi totalmente adaptada para desenvolvimento de aplicativos para celular com sistema operacional Android.

O processo de aprendizagem da ferramenta foi muito proveitoso, pois para criação de aplicativos nesta IDE devemos ter o conhecimento de linguagem XML e Java. Um ponto crítico do processo de desenvolvimento foi de que nem todos os dispositivos conseguem detectar a emissão de beacons da placa. Foi identificado que o aplicativo fornecido pela Nordic tem adaptações feitas que permitem a comunicação com o softdevice da placa, visto que mesmo com o aplicativo desenvolvido no Android SDK detecta qualquer dispositivo menos a placa PCA10001.

Programa Bluetooth Scan

Comunicação Wi-Fi

Referências