Urso+Ted

=** Autores **= Carine Chen - 0040961523027 Daiane Dias - 0040961523005 Guilherme Giglio - 0040961523026 Rafael Bruni - 0040961523007


 * Dispositivo **
 * Arduino UNO

**Projeto** Pelúcia que se mexe a cabeça e os braços

**Resumo** O projeto tem como finalidade fazer com que a pelúcia mexa suas partes como cabeça e os braços através de sinais mandado via rádio. Portanto, ele utilizará um Arduíno à pilhas.

Foram utilizados materiais para dentro da pelúcia e fora.
 * Software/materiais **


 * Dentro da pelúcia: **
 * Arduíno UNO
 * Transceiver NRF24L01
 * Servos
 * Cabos
 * Bateria

**Fora da pelúcia:**


 * Arduino UNO
 * Transceiver NRF24L01
 * Joystick
 * Cabos
 * Cabo USB


 * Variados: **


 * Uma pelúcia
 * Arame
 * Durepox
 * Fita crepe
 * Agulha
 * Linha


 * Softwares: **


 * IDE do arduino
 * Bibliotecas disponíveis para rádio SPI.h, NRF24L01.h e RF24.h
 * Bibliotecas disponíveis para o servo Servo.h

**Metodologia** A pelúcia se mexe através da transmissão de dados via radio frequência, um Arduíno manda sinais interpretados pelo Joystick enquanto o outro recebe os sinais e o reproduz no servo motor que está acoplado com a estrutura da pelúcia fazendo-a se mexer.

**Desenvolvimento**

O primeiro desafio foi construir a base que fica dentro da pelúcia. Para isso utilizamos arames espessos e Durepox para fixar a diversas partes da estrutura. Todos os servos foram fixados nos arames da base.

Arames de sustentação para o movimento foram fixados no servos com fita crepe.

Todos os componentes do arduino receptor foram postos dentro da pelúcia de modo que a bateria ficou para fora, no caso de haver a precisão de trocar/carregar as baterias.





Estrutura





Arduino transmissor

Arduino receptor




 * Programação **


 * Código do transmissor comentado: **

code format="c" //Bibliotecas utilizadas
 * 1) include 
 * 2) include 
 * 3) include 

//Derminando os pinos de comunicação CNS e CE RF24 radio(7, 8); //CNS, CE

//Endereço para a comunicação do rádio const byte address[6] = "00001";

void setup {

//Iniciando o rádio radio.begin;

//Checando o endereço de comunicação radio.openWritingPipe(address);

//Deterninando a frequência do rádio radio.setPALevel(RF24_PA_MIN);

} void loop {

//O rádio começa a mandar informações radio.stopListening;

//Inicia a variável angleValue e atribui a ela o valor do joystick int potValue = analogRead(A0);

//Mapeia a variável angleValue int angleValue = map(potValue, 0, 1023, 0, 180);

//Envia os dados da variável angleValue radio.write(&angleValue, sizeof(angleValue));

} code


 * Código do receptor comentado: **

code format="c" //Bibliotecas utilizadas
 * 1) include 
 * 2) include 
 * 3) include 
 * 4) include 

//Derminando os pinos de comunicação CNS e CE RF24 radio(7, 8); //CNS, CE

//Endereço para a comunicação do rádio const byte address[6] = "00001"

//Inicialização dos 3 servos Servo s; //Cabeça Servo g; //Braço Servo f; //Braço

void setup {

//Determinando os pinos dos servos s.attach(5); //Cebeça g.attach(4); //Braço f.attach(3); //Braço

//Determinando uma posição inicial para os servos dos braços f.write(0); g.write(180);

//Iniciando o rádio radio.begin;

//Checando o endereço de comunicação radio.openReadingPipe(0, address);

//Determinando a frequência do rádio radio.setPALevel(RF24_PA_MIN);

}

void loop {

//O rádio começa a procurar informações radio.startListening;

//Se o rádio tiver um retorno if ( radio.available) { //Se o rádio estiver disponível

while (radio.available) { //Enquanto o rádio estiver disponível

//Variável de controle do ângulo int angleV = 0;

//Armazena os dados obtido na variável radio.read(&angleV, sizeof(angleV));

//Escreve o valor dos dados obtidos nos servos s.write(angleV); //Cabeça g.write(angleV); //Braço f.write(angleV); //Braço }

}

} code


 * Problemas encontrados e Soluções **

Adquirir o conhecimento necessário para operar o Transceiver NRF24L01. Para adquirir o conhecimento necessário foi preciso assistir várias vídeo aulas para o melhor entendimento e pegar como exemplo códigos com comandos parecidos para comparação. Antes da criação do código principal foi desenvolvido um código de comunicação simples para entender o funcionamento do rádio.

Por conta de sobrecarregamento em um dos arduinos, as portas de saída queimaram. A solução foi trocar o arduino defeituoso por um em funcionamento.


 * Resultado final **

media type="file" key="VID-20170622-WA0009.mp4" width="300" height="300"