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:

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.

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.

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.

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:

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.

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.

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

Após isso a montagem ficará assim:

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