Transmitindo dados via luz usando Laser e Arduino

Atualmente alguns módulos laser permitem que os mesmos sejam controlados através de um pino de Sinal, ou seja, este mesmo pino torna possível injetar sinais no feixe de laser e utilizando-se de um receptor próprio, ou até mesmo em alguns casos uma célula fotovoltaica, é possível recuperar esses dados transmitidos por meio do feixe a vários metros de distância, quando se usa algum material para a propagação do feixe como, por exemplo, um cabo de fibra ótica há um menor risco de interferência e interrupção na comunicação, mas o princípio é o mesmo.

Já pensou como seria legal mandar mensagens, transmitir informações e até mesmo áudios através da luz? A Autocore Robótica mandou pra gente os módulos para podermos montar esse projeto e aqui vamos ensinar como fazer isso, não tudo porque áudio vai ficar para outro artigo, mas a parte de transmitir informações e mandar mensagens sim!

Material utilizado:

– 2x Arduino                                          (Versão de sua preferência)
– Módulo Laser 650nm 6mm 5V       (link)
– Módulo Receptor Laser                    (link)

Montagem:

Transmissor

Módulo Laser KY-008

Este módulo pode funcionar de duas formas, a primeira e mais comum é ele ligado o 5V no pino S e GND no pino (-), ou seja, ele estará sempre ligado, e bom, não é essa a ligação que precisamos, a ligação que precisamos você precisa fazer da seguinte forma:

Arduino Laser
D3 S
GND (-)
5V (+)

Ligado dessa forma temos o pino de sinal para transmitirmos qualquer coisa, lembrando que quando ligado dessa forma o laser ira parecer bem fraco se não houver algo no pino de sinal, então nada de pânico, ele não está estragado.
Quando é dito que pode ser injetado qualquer sinal, é literalmente qualquer sinal mas, claro, que não seja fora do que ele consegue trabalhar, vamos ao código.

Código

A maneira mais simples e fácil de se transmitir dados através de um feixe de luz é a mesma para se transmitir através de um único fio, estou falando da comunicação série ou comunicação serial, em que os dados são enviados em uma sequência por um só fio, nesse caso, um só feixe.

Por se tratar de comunicação serial, vamos usar um código baseado no exemplo da biblioteca SoftwareSerial, pois queremos manter a porta Serial do Arduino livre para enviarmos o que quisermos.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); // RX, TX (Laser (S))

void setup() {
  // Abre a serial para enviar dados
  Serial.begin(57600);
  while (!Serial) {
    ; // Espera para Arduinos com ATmega32u4 (USB Nativa)
  }
  Serial.println("Envie o que quiser!");
  mySerial.begin(4800);
  mySerial.println("Hello world!");
}

void loop() {
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

 

 Receptor

Não adianta nada um sistema transmitindo dados se você não consegue recebê-los, correto? Então vamos ao receptor! O receptor é bem simples de se utilizar, usaremos o mesmo programa do transmissor porém com pequenas mudanças, pois somente precisamos receber os dados que estão chegando pelo feixe do laser, então vamos a ligação:

Módulo Receptor Laser

O módulo receptor não tem mistério algum em sua ligação, basta ligar conforme os pinos escritos em seu corpo que não há erro, ou seja, pinos VCC, OUT e GND conectados no Arduino nos pinos 5V, D3 e GND, respectivamente. Então bastará apontar o feixe para a ponta do sensor, aquele componente parecido com um “transistor transparente” para que ele consiga receber o sinal corretamente. Devido a sua sensibilidade algumas vezes não preciso o laser estar apontado diretamente em seu centro para que o sinal consiga ser recebido. Vamos ao código:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 2); // RX (OUT do Receptor), TX

void setup() {
  // Abre a serial para receber dados
  Serial.begin(57600);
  while (!Serial) {
    ; // Espera para Arduinos com ATmega32u4 (USB Nativa)
  }
  Serial.println("Aguarde pelos dados.");
  mySerial.begin(4800);
}

void loop() {
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
}

 Conclusões

É totalmente possível enviar dados por meio da luz utilizando o laser, porém devido a limitações construtivas, o laser ou seu sensor possui uma velocidade máxima em que é possível enviar dados sem que comece a aparecer erros, neste caso, nossos testes não conseguiram uma recuperação significativa de dados em velocidades acima de 38400bps, por isso recomendamos velocidades mais baixas.

Outro fator importante é o meio, bom, se você está transmitindo dados de grande importância você não vai querer erros ou que eles sejam corrompidos, certo? Então mandar dados em longa distância pelo ar não é muito seguro caso você queira isso, mas e se você possuir um cabo para guiar a luz até onde quer chegar? Eis que temos o princípio de comunicação da fibra óptica!

Agora é sua vez!!
Na Autocore Robótica você vai encontrar tudo que precisa para fazer este projeto e outros também disponíveis aqui no site, visita lá! https://www.autocorerobotica.com.br/

 

17

Graduando em Engenharia Elétrica pela Universidade Federal de São João del Rei (UFSJ) também é Técnico em Eletrotécnica pelo Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG). Apaixonado por criação e desenvolvimento de projetos relacionados à software e hardware.

2 Comentários

  1. Patabens! Excelente tutorial.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *