Projeto de Natal

O proposito desse projeto é estabelecer as relações natalinas, concretizar a imaginação da criança e aproximar a bom velhinho nas nossas casas.

Com materiais que você deve ter em casa e com a placa Franzininho DIY, sensor de presença e servo motor criamos uma atividade bem lúdica para a garotada.

Materiais

Insumo de papelaria

  • 2 caixas de sabão em pó

  • Pedaços de papelão

  • Palitos de sorvete

  • Cola

  • Cola quente

  • Tinta/lápis de cor

  • Tesoura

  • Estilete

Insumo eletrônico

  • Franzininho DIY

  • Sensor de presença

  • Power bank/ alimentação

  • 3 leds RGB

  • Computador

Primeira etapa - Estrutura inferior

Você precisa de uma das caixas de sabão e tirar a medida de 3 cm das bordas e recortar, utilize um estilete e ficará conforme a imagem abaixo:

Arquivo pessoal: Diana Santos
  • detalhe eu não tirei foto, mas você deve fazer um corte também na parte superior da caixa para que o papai noel passe e apareça no meio desse vão.

Arquivo pessoal: Diana Santos

Agora você deve encapar da forma que achar melhor. Eu utilizei folha sulflite e fiz os tijolinhos com tinta guache, mas você poderia encapar com outro material e fazer os tijolinhos e colar a parte por exemplo. Personalize da forma que achar melhor, use a criatividade e utilize os materiais que você tenha em casa.

Arquivo pessoal: Diana Santos

Segunda etapa - Estrutura Superior

Você deve fazer um buraco na parte de trás na foto eu fiz nesse tamanho mas depois eu abri mais um pouco.

Arquivo pessoal: Diana Santos

Agora você deve encapar eu utilizei folha sulfite e fiz medidas de tijolinhos as medidas são de : 5x3 cm e ficará igual a imagem abaixo:

Arquivo pessoal: Diana Santos

Agora chegou a hora de unir as caixas de sabão, mas antes tem um detalhe, você deve fazer um corte também nesta caixa de sabão para que o papai noel passe.

Arquivo pessoal: Diana Santos

Papai Noel

Minha impressora acabou a tinha e então eu desenhei a mão esse papai noel, você pode ver alguns modelos na internet, mas desde que seja melhor que as caixas de sabão.Após isso decore ele e não precisa ter pernas, pois ele vai descer só um pouco da chaminé. Cole com um palito de sorvete atrás e ficará igual o da imagem. Colocamos na ponta do picole um pedaço de terminal e colamos com cola quente.

Arquivo pessoal: Diana Santos

Agora pegue outro palito de sorvete e cole o acessório do servo motor, colei com fita dupla fase fina, conforme a imagem.

Arquivo pessoal: Diana Santos

Após isso a montagem ficará assim:

Arquivo pessoal: Diana Santos

Agora é só seguir as imagens e montar da forma que achar melhor.

[EM ANDAMENTO]

Circuito

[EM ANDAMENTO]

Código

#include <Adafruit_SoftServo.h> // SoftwareServo (funciona em pinos não PWM)

#define SERVOPIN 0
#define SENSOR 2
#define LED 1

#define INTERVALO_PISCA     150  // tempo para inversão do led
#define INTERVALO_ATUALIZA  10    //tempo para atualizar o servo: minimo 5

#define MINIMO 1   //meno valor 0
#define MAXIMO 178   //maior valor 179

Adafruit_SoftServo servo;  //instacia do servo

int servoPos;  // variável para controle de posição do Servo
long int ultimaInversao = 0;    //variável auxiliar para temporização do LED
long int ultimaatualizacao = 0; //variável auxiliar para atualização do Servo

void iniciaServo(){
  OCR0A = 0xAF;            // any number is OK
  TIMSK |= _BV(OCIE0A);    // Turn on the compare interrupt (below!)

  servo.attach(SERVOPIN);   // anexa pino do Servo
  servo.write(MAXIMO);      // posição inicial do servo
  delay(15);                   // Aguarda servo chegar na posição inicial
}

void setup() {    

  iniciaServo();            //função com a inicializações do servo motor
  
  pinMode(LED, OUTPUT);     //pino do LED como saída
  pinMode(SENSOR,INPUT_PULLUP);    //pino do Sensor como entrada
}

void loop()  {      

  if ((millis() - ultimaatualizacao) > INTERVALO_ATUALIZA)  //verifica se já passou o tempo para atualizar o servo
  {        

   if(!digitalRead(SENSOR))            //se não estiver acionado o sensor de presenção
   {
    if(servoPos <= MAXIMO) servoPos++;  //papi noel sobe
   }
   else{                                //se tiver presença   
      if (servoPos > MINIMO) servoPos--; //papi noel desce
    }

    servo.write(servoPos);                    // atualiza posição do servo
    ultimaatualizacao = millis();               //salva tempo para proxima atualização
  } 

  if ((millis() - ultimaInversao) > INTERVALO_PISCA) //verifica se já dpassou o tempo para inverter o LED
  {
    if(digitalRead(SENSOR))//se tiver alguém na frente da lareira         
    {
      digitalWrite(LED, !digitalRead(LED)); //Pisca LED
    }
    else{
      digitalWrite(LED,LOW);                //apaga LED
    }
    ultimaInversao = millis();              //salva tempo para proxima atualização
  }
}


//interrupção para atualização do servo
// NÃO ALTERAR CONFIGURAÇÃO
volatile uint8_t counter = 0;
SIGNAL(TIMER0_COMPA_vect) {
  
  counter += 2;
  if (counter >= 20) {
    counter = 0;
    servo.refresh();
  }
}

Last updated