terça-feira, 23 de maio de 2017

Desafio #7 - Animatronic

Esse desafio assim que foi anunciado me chamou basante atenção, no começo pensei em fazer mil coisas e entre elas turrets, como essa do vídeo:



Mas vieram os requisitos:
- 1 placa arduíno;
- 1 LDR;
- 1 buzzer;
- 1 servo-motor;
- 2 leds.

*Tudo que eu queria era um sensor de presença i.i


O desafio consistia em construir um animatronic, ou seja, um robô com ações pré-definidas. Nosso conceito foi fazer um gato possuído que no escuro ficaria com olhos vermelhos e fazendo um som estridente.

Nos dividimos para fazer as duas partes do trabalho, o gato e a programação, minha dupla a Isa ficou responsável pela criação do gato e tudo isso está no blog dela (CLIQUE AQUI), enquanto eu fiquei na parte de programação do gato.




A parte de programar no arduino foi muito divertido, pois dava para ver no meio físico funcionando. Abaixo o código e as ligações feitas no arduino para quem quiser reproduzir.

#define NOTE_F7  2794
#define NOTE_G4  392
#define NOTE_A2  110

#include <Servo.h>


Servo braco;
int luz;
int pos = 0;
int melody[] = {
 NOTE_F7, NOTE_G4, NOTE_A2};
int noteDurations[] ={
 9,12,7};

void setup() {
 Serial.begin(9600);
 pinMode(13,OUTPUT);
 pinMode(12,OUTPUT);
 pinMode(A0,INPUT);
 pinMode(5,OUTPUT);
 digitalWrite(5,0);
 pinMode(4,OUTPUT);
 digitalWrite(4,0);
 pinMode(2,OUTPUT);
 digitalWrite(2,1);
 braco.attach(9);
 pinMode(8, OUTPUT);
 
}

void loop() {
 luz = analogRead(A0);
 Serial.println(luz);
 if (luz>=400){ /* VERMELHO*/
   braco.write(180);
   digitalWrite(12,1);
   digitalWrite(13,0);
   for (int thisNote = 0; thisNote < 3; thisNote++) {
     int noteDuration = 1000/noteDurations[thisNote];
     tone(8, melody[thisNote],noteDuration);
     int pauseBetweenNotes = noteDuration * .14;
     delay(pauseBetweenNotes);
     noTone(8);
   }
 }
 if (luz<=400){ /* VERDE */
   braco.write(45);
   digitalWrite(13,1);
   digitalWrite(12,0);
 }
}


Resultado de tudo isso:


0 comentários:

Postar um comentário