Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Ligando o sonar MaxSonar WRC1 (MB7067) ao Raspberry Pi

Imprimir
Avaliação do Usuário: / 2
PiorMelhor 

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:


sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get autoremove


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:


console=ttyAMA0,115200
kgdboc=ttyAMA0,115200


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


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


Reinicie o Raspberry Pi:


sudo reboot


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:


stty –F /dev/ttyAMA0 9600


Para receber as medições no console use:


cat /dev/ttyAMA0


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:


 

Adicionar comentário


Código de segurança
Atualizar

You are here: