DK105 GROVE Sonar Radiuino
O presente projeto visa mostrar uma básica aplicação com o Kit DK 105 Grove. Utilizamos um sonar ultrassônico Grove juntamente ao nó sensor para medir distância de obstáculos. O valor desta medida (distância) será apresentado em centímetros no serial print do computador conectado ao nó base. Apresentaremos então o Kit a ser usado na figura 1. Figura 1 - Kit DK 105 juntamente com um sonar Este Kit possui dois nós, um nó sensor/atuador que realiza as medidas, e outro nó base que recebe os dados enviados pelo nó sensor. radiuino.cc 1
Nó sensor O primeiro a ser configurado será o nó sensor. Primeiramente é necessário ligar o nó sensor como mostra a figura 2. Figura 2 - Ligação do nó sensor A figura 3 apresenta como deve ser a conexão do programador UartSBee na placa Grove para que seja possível a gravação do firmware. Juntamente ao programador foi conectado o cabo USB para realizar a comunicação serial. Não podendo esquecer que a placa somente irá funcionar se estiver conectada a fonte de tensão, desta forma, pode se afirmar que o firmware só será gravado quando a placa estiver alimentada. radiuino.cc 2
Figura 3 - Conexão do UartSBee na placa DK 105 Outro fator importante para alimentação da placa é conectar os pinos POWER USB e VDC, com uma pequena chave interligar os pinos 2 e 3. Para facilitar a compreensão a figura 4 apresenta esta conexão. Figura 4 - Chave de ligação para alimentação Em seguida conectamos o Grove do sensor (sonar) no bloco D7 da placa DK 105, este bloco refere se aos pinos VCC, GND, porta de saída 7 e porta de entrada 8. A figura 5 apresenta como deve ser conectado o Grove sensor na placa. radiuino.cc 3
Figura 5 - Conectando o sensor (sonar) na placa DK 105 O fio preto corresponde ao GND, o fio vermelho corresponde ao VCC, o fio branco corresponde ao Echo (porta de entrada 8 no BE900) e o fio amarelo corresponde ao Trig (porta de saída 7 no BE900). Em sequência é feita a gravação do firmware. Para isto é necessário abrir a área do Arduíno de programação como mostra a figura 6. Ressaltando que é necessário que seja a versão Arduíno 1.0.6 radiuino 2.2, desta forma contém as bibliotecas necessárias para habilitar o rádio BE900. Figura 6 - Área de programação do Arduíno radiuino.cc 4
Em seguida é necessário abrir um exemplo de radiuino _ sensor, a figura 7 apresenta como selecionar este exemplo. Figura 7 - Selecionando exemplo radiuino -sensor Após abrir o exemplo, é necessário fazer algumas modificações no código. Para isto, primeiramente mudaremos alguns parâmetros na primeira ala do radiuino_ sensor. A figura 8 apresenta esta mudança no código, do lado esquerdo da figura é apresentado o exemplo radiuino_ sensor e do lado direito da figura é apresentado a mudança feita para o código funcionar com o sonar. Figura 8 - Primeira mudança no código Pode se observar que foi definido uma variável cm = 0, ou seja, foi declarado uma variável universal cm (podendo esta ser utilizada nas demais camadas) e zerou a variável para que ela não inicie com qualquer outro valor. radiuino.cc 5
Em seguida é necessário definir a taxa de comunicação serial, neste projeto estaremos utilizando uma taxa de 9600. Também foi preciso declarar as portas de entrada e saída, sendo a porta 7 (do BE900) de saída e a porta 8 (do BE900) de entrada. A figura 9 apresenta esta mudança. Figura 9 - Segunda mudança no código A última mudança nesta ala ocorre dentro do Void Loop, é a principal parte do código para que o sonar funcione. Foi criada uma variável chamada duração e dentro desta é armazenado o valor da contagem obtida pelo pino 8. Basicamente funciona da seguinte forma, o pino 7 envia pulsos a cada determinado tempo, conforme envia um pulso o pino 8 inicia a contagem até que receba nível alto (eco onda eletro magnética bate no obstáculo e retorna para o sonar), o valor desta contagem deve ser divido por um fator igual a 29, em seguida o resultado desta divisão deve ser divido novamente por 2, desta forma obtém a distância em centímetros. A figura 10 apresenta esta etapa do código. radiuino.cc 6
Figura 10 - Mudança do código dentro do void loop Abriremos agora a ala da camada física (_1_Phy). Nesta seção é necessário mudar a freq_offset e o número do canal, lembrando que a freq._ offset é o valor que está presente em cada rádio. A figura 11 apresenta o valor aqui utilizado para o rádio sensor. Figura 11 - BE900 com número de freq. offset (Sensor) A figura 12 apresenta esta mudança no código realizada na camada física (_1_Phy), lembrando que também pode se mudar o canal a ser usado, podendo seleciona lo entre 0 e 65. Neste projeto estaremos utilizando o canal 1. radiuino.cc 7
Figura 12 - Selecionando canal e freq. _ offset do Sensor Após realizar estas alterações na camada 1, é necessário fazer algumas mudanças no código dentro da camada aplicação (_5_App). A figura 13 apresenta o que foi mudado em relação ao exemplo radiuino _ sensor, é possível observar que o bloco de portas definidas como portas de saídas foi deletado. radiuino.cc 8
Figura 13 - Primeira mudança do código na camada 5 Mais adiante, através da figura 14, é possível observar que foi necessário incluir o AD0 (com AD0[1] correspondente a parte do valor inteiro e AD0[2] correspondente ao restante do valor) para que seja possível o envio do pacote com as informações desejadas. Lembrando que o AD0 foi configurado para obter o valor de cm. No qual cm foi configurado anteriormente como variável para armazenar o valor da distância obtido pelo sensor. O restante do código é deletado terminando em APP app = APP. Figura 14 - Segunda mudança do código na camada 5 radiuino.cc 9
Após realizar estas mudanças é necessário selecionar a placa e a porta (COM) para a gravação do firmware. A figura 15 apresenta este passo a ser feito. Figura 15 - Selecionando a COM e a Placa do nó Sensor Em sequência pode se gravar o firmware como mostra a figura 16. Figura 16 - Gravando firmware do Sensor radiuino.cc 10
Nó base A figura 17 apresenta como deve ser ligado o nó base. Após gravar o firmware do nó sensor, é necessário utilizar o mesmo programador UartSBee para gravar o firmware do nó base. Deve se conectar o cabo USB para que seja possível a comunicação serial. Figura 17 -Nó base Para o nó base não é necessário realizar muitas mudanças no código a ser utilizado, apenas com o exemplo radiuino _base é possível realizar a comunicação com nó sensor. Desta forma, a figura 18 apresenta como selecionar o exemplo radiuino _base a ser gravado no rádio BE900 base. radiuino.cc 11
Figura 18 - Selecionando exemplo radiuino _ base Após o exemplo ser aberto, é necessário mudar a freq._ offset e o número do canal, lembrando que a freq_offset é o valor que está presente em cada rádio. A figura 19 apresenta o valor aqui utilizado para o rádio base. Figura 19 - BE900 com número de freq. _ offset (Base) A figura 20 apresenta esta mudança no código realizada na camada física (_1_Phy), lembrando que o canal a ser usado deve ser o mesmo canal usada para o nó sensor. radiuino.cc 12
Figura 20 - Selecionando canal e freq. _ offset da Base Após realizar estas mudanças é necessário selecionar a placa e a porta (COM) para a gravação do firmware. A figura 21 apresenta este passo a ser feito. Figura 21 - Selecionando a placa e a COM da Base radiuino.cc 13
Em sequência pode se gravar o firmware como mostra a figura 22. Figura 22 - Gravando firmware de Base radiuino.cc 14
Realizando testes com Python Primeiramente é necessário ter o Python já instalado no computador, para esta etapa é necessário entrar no site www.radiuino.cc na sessão Download e seguir as etapas a serem realizadas. Já com o Python instalado é possível criar um novo código a ser usado ou baixar um exemplo já pronto disponível no site www.radiuino.cc na sessão Aplicações DK 105 sonar. Através deste pode se realizar os testes. Após baixar o código para abrir é necessário clicar com o botão direito em cima do código e seleciona a opção IDLE como mostra a figura 23. Figura 23 - Abrindo o Python Em seguida, é necessário clicar na sessão Run e seleciona a opção Run Module como mostra a figura 24. Figura 24 - Atualizando Python radiuino.cc 15
Em sequência abrirá uma nova janela solicitando o número da porta serial (COM) que está sendo utilizada pela base, neste projeto por exemplo, estamos utilizando a COM 9. Em seguida o programa solicitará a opção desejada, selecionaremos a opção 1 para realizar medidas. Em sequência o código também irá solicitar a quantidade de medidas que deseja realizar, a figura 25 apresenta estes passos utilizando o número de medidas igual a 100. Lembrando que o número de medidas pode ser qualquer valor. Figura 25 - Selecionando opções no Python Após inserir o número de medidas, o programa apresentara as medidas realizadas com a distância em centímetros. A figura 26 apresenta um teste realizado. radiuino.cc 16
Figura 26 - Teste realizado _ distância em cm radiuino.cc 17