Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

O sonar MaxSonar WRC1 é um sensor ultrassônico para medida de distâncias entre 6  e 7 metros (veja descrição dos pinos abaixo) com diversas vantagens, sendo a principal a robustez de sua construção com categoria de isolação IP67 o que faz dele um sensor que pode ser utilizado tranquilamente “a céu aberto” sob as condições do tempo.

 

 

 

 

 

 

Há vários lugares onde pode-se encontrar esse equipamento para compra na Internet. Este, no caso, foi adquirido na Tato.

 

Esse sensor é muito simples de ser ligado, basicamente por necessitar apenas de 3 pinos para operação: Vcc, GND e saída serial. Porém ele possui 7 pinos disponíveis:

 

 

 

 

Pino 1, deixe aberto ou alto (HIGH) para saída serial no pino 5. Deixe baixo (LOW) para encadeamento;

Pino 2, para a série XB706X - pulso com a representação de escala com fator de 56uS por centímetro. Para a série XB707X – voltagem analógica da forma de onda de retorno;

Pino 3, saída de voltagem analógica. O fator de escala é (Vcc/2014) por centímetro. Quando alimentado por 5V renderá aproximadamente 4,9mV/cm. A medição máxima é de 700cm com alimentação de 5V e 600cm com alimentação de 3,3V;

Pino 4, mantenha alto (HIGH) ou aberto para medição. Mantenha baixo (LOW) para parar a medição. Deixe o pino em alto (HIGH) por mais de 20uS para comandos de medição;

Pino 5, saída serial RS232 quando o pino 1 está em alto (HIGH).  A saída serial é de 9600 baud, 8 bits, sem paridade e 1 bit de parada (stop). Quando o pino 1 está setado em baixo (LOW) este pino envia apenas um pulso adequando para encadeamento;

Pino 6, alimentação Vcc entre 3V e 5,5V;

Pino 7, terra;

 

 

Vamos ao que interessa: mão na massa!

 

 

Como iremos ligar o sensor aos pinos GPIO de um Raspberry Pi B+, acho muito interessante você dar uma olhada no tutorial Pinos GPIO do Raspberry PI B e B+ caso não tenha visto ainda ou queira usar o Raspberry Pi B.

 

A ligação é simples: o sensor não pode ser alimentado diretamente pelo Raspberry Pi, visto que consome mais de 50mA, no meu caso estou fazendo isso diretamente pela fonte que estou usando para o próprio Rasberry Pi com uma derivação no cabo.

 

 

 

 

 

No datasheet do sensor que pode ser encontrado em XL-MaxSonar

- WR/WRC Series datasheet há a informação de que a saída serial RS-232 é invertida, ou seja, os zeros são trocados pelos uns. Nem consigo imaginar o porque disso, mas será preciso o uso de um inversor de sinal (porta lógica NOT) para resolver esse problema.

 

Com a ajuda do Marcos Teixeira da Slaser foi possível construir um inversor ultra-barato e fácil de montar e que usa apenas 3 componentes:

 

 

 

 

São necessários apenas um transistor BC337 e dois resistores de 8K2 ohms:

 

 

 

 

Você pode usar uma protoboard ou fazer uma placa de circuitos impressos, mas ligue os componentes como no esquema:

 

 

 

 

Agora ligue o emissor do transistor ao GND do Raspberry Pi, o resistor que está ligado ao coletor do transistor deve ser ligado do +5V do Raspberry Pi, a base do transistor à saída RS-232 do sensor e o coletor do transistor (antes do resistor) ao GPIO RX Serial do Raspberry Pi:

 

 

 

 

 

 

Pronto, instalações elétricas e eletrônicas prontas, vamos ao software.

 

Vou considerar que você tem instalado no seu cartão de memória do Raspberry Pi o Raspbian Linux. Vamos então receber os dados do sensor.

 

 

Primeiro sempre manter tudo atualizado:

 

 

{code}

sudo apt-get update

sudo apt-get dist-upgrade

sudo apt-get autoremove

{/code}

 

Temos que desabilitar os pinos GPIO 14 e 15 do uso para debugging, então edite o arquivo /boot/cmdline.txt.

 

Na linha de comandos retire qualquer uma das seguintes partes que existirem:

 

{code}

console=ttyAMA0,115200

kgdboc=ttyAMA0,115200

{/code}

 

Edite também o arquivo /etc/inittab, edite a seguinte linha colocando um # no início dela:

 

{code}

0:23:respawn:/sbin/getty ?L ttyAMA0 115200 vt100

{/code}

 

Reinicie o Raspberry Pi:

 

{code}

sudo reboot

{/code}

 

 

Para configurar a taxa de transmissão veja o tutorial Como ajustar a taxa de transmissão para comunicação serial, mas é muito simples, para nosso caso (serial usando pinos GPIO) basta usar:

 

 

{code}

stty –F /dev/ttyAMA0 9600

{/code}

 

 

Para receber as medições no console use:

 

 

{code}

cat /dev/ttyAMA0

{/code}

 

 

O resultado será uma sequencia de caracteres começados com “R” e seguida de três números que representam a medida obtida pelo sensor em centímetros: