terça-feira, 7 de junho de 2011

Documentação

Documentação: http://www.mediafire.com/?kxayc0tx0wt9s3j





~~

Código fonte receptor:
/* Código para recepção de RF 433 MHz (testado com arduino 2560).
* Autor: Lucas Guimarães Gonçalves

* Tabela de variáveis para pinos:
RECEP: Receptor (saída);
LED: LED (saída);
BEEP: Buzzer (saída).

* Como funciona: Um comando é enviado pelo transmissor e o receptor tenta identifica-lo, caso seja o determinado comando ele para de apitar o alarme e acende o led.
*/

// Comando
#define COMANDO "esta_ai?\0"

char txt_cmd[] = COMANDO;

// Define pinos de saída.
#define RECEP 8
#define LED 22
#define BEEP 52

// Tempo em milissegundos para LED acender e BEEP desativar.
#define TEMPO_LED 500
#define TEMPO_BEEP_LIGA 5000
#define TEMPO_BEEP 500

// Ativar serviços do Arduino.
void setup()
{
// Seta pinos para output (saída).
pinMode(RECEP, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(BEEP, OUTPUT);

// Serial 3 (rx 3).
Serial3.begin(4800);
Serial.begin(4800);
}

// Loop principal.
void loop()
{
digitalWrite(RECEP, HIGH);

long _tempo_antes = millis();
long _tempo_agora = _tempo_antes;
long _tempo_led = 0, _tempo_beep = 0;

boolean _ativa_beep = true;

while (_tempo_agora - _tempo_antes <= TEMPO_BEEP_LIGA)
{
if (recebe_sinal(Serial3.read(), COMANDO, pega_tamanho_texto(COMANDO)))
{
digitalWrite(LED, HIGH);
digitalWrite(BEEP, LOW);

_ativa_beep = false;
_tempo_beep = _tempo_agora;
_tempo_led = _tempo_agora;
_tempo_antes = millis();
}

if ((_tempo_led - _tempo_agora) <= -TEMPO_LED)
digitalWrite(LED, LOW);

if (_ativa_beep == true && ((_tempo_agora - _tempo_beep) % TEMPO_BEEP <= 50 && (_tempo_beep - _tempo_agora) % TEMPO_BEEP >= -50))
digitalWrite(BEEP, HIGH);
else
digitalWrite(BEEP, LOW);

_tempo_agora = millis();
}
}

/* Função de montagem do vetor comando para cada bit do sinal recebido e compara ele com comando.
Retorno:
true: Comando recebido;
false: Comando não recebido.
*/
boolean recebe_sinal(char caractere, char *comando, int tamanho)
{
for (int i = 0; i < (tamanho-1); i++)
txt_cmd[i] = txt_cmd[i+1];
txt_cmd[tamanho-1] = caractere;

Serial.print(txt_cmd);
if (comparar(comando, txt_cmd, tamanho))
// Serial.print(txt_cmd); // Mostra texto recebido.
return true;
else
return false;
}

/* Função compara textos.
Retorno true: Texto idêntico.
*/
boolean comparar(char *texto1, char *texto2, int tamanho)
{
for (int i = 0; i < tamanho; i++)
if (texto1[i] != texto2[i])
return false;

return true;
}

// Função que retorna tamanho do texto.
int pega_tamanho_texto(char *texto)
{
int tamanho = 0;

while(texto[tamanho++] != '\0')
continue;

return tamanho-1;
}

Código fonte transmissor:
/*
* Código para transmissão de RF 433 MHz (testado com arduino 1280).
* Autor: Lucas Guimarães Gonçalves

* Tabela de variáveis para pinos:
TRANS: Receptor (saída).

*/

// Define pinos de saída.
#define TRANS 8

// Ativar serviços do Arduino.
void setup()
{
pinMode(TRANS, OUTPUT);

// Serial 3 (tx 3)
Serial3.begin(4800);
}

// Loop principal.
void loop()
{
digitalWrite(TRANS, HIGH);

while(1)
{
Serial3.print("\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF");
Serial3.print("esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?esta_ai?");
delay(500);
}
}

segunda-feira, 6 de junho de 2011

Documentacao Parcial

Bom, deixo em extenso nossa documentacao, fruto do esforco que tivemos no periodo em que desenvolvemos nosso projeto.


Autores: Rodrigo Ramirez Echegorri e Lucas Guimaraes Goncalves

Agradecimentos


Gostaríamos de agradecer as pessoas que nos apoiaram, acreditaram e incentivaram nosso projeto. Agradecemos também a Universidade e aos professores que nos forneceram os meios de atingir nossa meta, aos nossos familiares, aos amigos que compreenderam. E a todos que estão lendo, muito obrigado.



Resumo


O projeto “Estou Aqui”, ou simplesmente “EA”, trata-se de um trabalho referente ao terceiro período do curso de Engenharia da Computação da Pontifícia Universidade Católica do Paraná (PUCPR). O projeto trata-se de um sistema, que por meio de ondas de radiofrequência (RF), seja capaz de controlar a distância entre dois objetos.


Palavras-chave: controle de distância, radiofrequência, estou aqui, EA


ABSTRACT


The “Estou Aqui” project, or just “EA”, is a third period of Computer Engineering at the Catholic University of Parana (PUCPR) project. The project is a system, that by the use of radio-frequency waves, is capable of controlling the distance between two objects.


Key Words: distance control, radio-frequency, estou aqui, EA


1. Introdução


Ondas de Radiofrequência (RF) são umas das aplicações de comunicação que mais amplamente se empregam atualmente na área de computação. O Projeto estou aqui é uma proposta de aplicação simples e direta deste recurso, avisando ao usuário que o objeto (ou criança), ao qual foi acoplado ou está com a posse de um dos dispositivos, se afastou demasiadamente, por meio de um aviso luminoso e sonoro.




2. Objetivos



    1. . Gerais:


Desenvolver um projeto baseado nos requisitos de Resolução de Problemas de Engenharia e Física III. Com o objetivo de entender o funcionamento da transmissão RF.



    1. . Específicos:


  • Estudar e aplicar o conceito de transmissores por radio frequência em um projeto de teor pratico.


  • Criar dois dispositivos capazes de se comunicarem entre si, por meio de RF.


  • Estudar o funcionamento do Arduino MEGA 2560 e Arduino MEGA 1280, e suas características.


  • Estudar o funcionamento do transmissor NDR433 e receptor MRF00040, e suas características.


  • Programação do sistema que ira alertar quando a distancia ultrapassar o limite estabelecido.


  • CD do projeto, com fotos, vídeos, documentação e página na internet.


3. Material Utilizado



  • 2 Placas Arduino, uma modelo MEGA 2560 e outra modelo MEGA 1280.


  • 1 Buzzer dois terminais.


  • 1 LED.


  • Transmissor de RF NDR433 de 433MHz.


  • Receptor de RF MRF00040 de 433 Mhz.


  • 2 Protoboards.


4. Descrição do Projeto


A ideia do projeto foi inicialmente sugerida pelo estudante Rodrigo Ramirez Echegorri, como um dispositivo em que auxiliasse a localizar objetos ou até crianças pequenas, utilizando um localizador com ondas de radiofrequência. Tal projeto nos possibilitaria o estudo do comportamento de um equipamento de transmissão de dados em RF.

Após a apresentação da ideia aos Professores Gil e Afonso, e a aprovação de ambos, seguimos com o planejamento do projeto, que distribuiu a carga horária do mesmo, como sera descrito posteriormente. O projeto foi aprovado no dia 15/03/2011.

Em seguida, foi decidido optar pelo uso da placa Arduino (Fig. 01), devido a facilidade de se operar e por retirar o trabalho de criar a plataforma onde se acoplariam os circuitos de RF futuramente. Em seguida, optamos pela escolha de componentes simples para transmissão de RF, uma vez que eles simplesmente funcionariam como uma forma dos dois circuitos se reconhecerem.

O modelo da placa escolhida foi a Arduino MEGA 2560 e 1280, as duas obtidas por compra. Com a seleção da placa, nos voltamos com a seleção dos componentes que fariam a comunicação em si. Foram empregados o transmissor NDR433 para transmitir os sinais.

5. Glossário



LED (Light Emitting Diode – Diodo Emissor de Luz): Trata-se de um semicondutor que emite luz devido a passagem de corrente elétrica. Muito utilizado para sinalizar a passagem de corrente por um circuito, e também como sinalizador de avisos ou alertas.


Buzzer: Equipamento sonoro, que por meio de passagem de uma corrente elétrica, emite um ruido agudo e intermitente, enquanto houver passagem de corrente pelo mesmo.

Transmissor/Receptor RF: Dispositivos capazes de permitir a passagem de dados por meio do meio aéreo, utilizando-se de ondas de Radiofrequência (RF), geralmente numa frequência de 433MHz.


Arduino: É um computador físico baseado numa simples plataforma de hardware livre, projetada com um microcontrolador de placa única, com suporte de entrada/saída embutido e uma linguagem de programação padrão, na qual tem origem em Wiring, e é essencialmente C/C++.

Protoboard: Trata-se de uma placa com conexões preestabelecidas, geralmente utilizada como teste de projetos de circuitos. É bastante aplicada em universidades e cursos técnicos voltados para a área de eletrônica, devido a sua facilidade de utilização e versatilidade para testar componentes antes de serem soldados.




8. Problemas encontrados



  1. Problema de comunicação entre os Arduinos: Ruídos excessivos. Solução: Instalação de antenas no transmissor e no receptor e nova abordagem na programação.

  2. Problema com transmissor não funcional. Solução: Troca de transmissores.



9. Conclusão


O Projeto nos trouxe um conhecimento maior em vários aspectos. Em primeiro lugar da importância do Brainstorming em uma equipe, que mesmo pequena, fez a comunicação entre os membros bem facilitada. O conhecimento em comunicação por meio de rádio frequência foi obtido, aplicado e observado em nosso objeto, assim como a versatilidade de implementação do mesmo, desde comunicações, até controle de movimento e distância, que foi o objetivo de nosso projeto. A auto-gerencia no decorrer do projeto foi bastante desenvolvida, com o estabelecimento de metas e prazos para se cumprir as atividades do projeto.

Também podemos ressaltar o ganho acadêmico com o aprendizado e uma noção de como se conduz um projeto no mercado de trabalho atual, todos estas aquisições são de enorme valor. No quesito de conteúdo, o conhecimento conquistado com a montagem de componentes como transmissores e receptores e programação de um Arduino foram solidificadas com o andamento do projeto.







Link -> http://www.mediafire.com/?t0x9d8hbzy360uz

domingo, 29 de maio de 2011

Componentes




- 2 Placas Arduino, modelo MEGA 2560 (sendo 1 obtida a partir de empréstimo
na universidade).

- 1 Buzzer dois terminais.

- LED de alto Brilho 3V 2500mC

- Transmissor de RF NDR433 de 433MHz

- Receptor de RF MRF00040 de 433 MHz

- 2 Protoboards (Circuitos "teste", onde podemos conectar os componentes de nosso circuito, testa-los, para em seguida os soldar em uma placa.)

- 2 caixas para armazenar arduino.

quinta-feira, 26 de maio de 2011

Historico - Projeto "Estou Aqui"


O Projeto "Estou Aqui" (EA), trata de um projeto desenvolvido pelos estudantes da PUCPR Rodrigo Ramirez Echegorri e Lucas Guimarães Gonçalves, no primeiro semestre de 2011. Ele tem como proposta, usar ondas de Radio para transmitir um sinal, que, caso fosse interrompido, avisaria o usuário, por meio de um sinal sonoro, que o objeto esta distante.

A ideia surgiu de Rodrigo Ramirez Echegorri, e após ser discutida com o resto da equipe, e o professor, passou-se a ser implementada a partir do dia 15 de marco de 2011.