PROGRAMAÇÃO E ROBÓTICA
PROJECTO: AquaGuard Robotics ( 8ªCLASSE)
1. Problemática
A exposição de roupas ao ar livre para secagem é uma prática comum e económica, mas
está sujeita à imprevisibilidade meteorológica. O problema reside na impossibilidade de
vigilância constante:
Incerteza Climática: Mudanças repentinas no tempo podem ocorrer quando os
moradores estão fora de casa, a dormir ou ocupados com outras tarefas.
Desperdício de Recursos: A roupa molhada pela chuva exige uma nova lavagem
(devido à acidez da chuva e poluição), resultando em desperdício de água,
detergente, energia elétrica e, principalmente, tempo.
Danos aos Tecidos: A humidade prolongada sem secagem adequada pode causar
odores desagradáveis e o aparecimento de fungos (bolor) nas peças.
Pergunta Central: Como garantir a integridade da secagem da roupa de forma autónoma,
sem depender da presença física humana para reagir a eventos climáticos?
2. Objetivo Geral
Desenvolver um protótipo de sistema robótico automatizado, baseado na plataforma
Arduino, capaz de detetar a precipitação em tempo real e acionar um mecanismo de
proteção física para salvaguardar as roupas expostas.
Objetivos Específicos
Para alcançar o objetivo geral, o projeto foca-se em:
1. Monitorização: Utilizar um sensor de condutividade para identificar a presença
de gotas de água de forma instantânea.
2. Automação: Programar uma lógica de controlo que interprete os dados do sensor
e tome decisões sem intervenção humana.
3. Execução Mecânica: Implementar um Servo Motor para realizar a
movimentação física (seja o recolhimento da corda ou a ativação de uma cobertura
impermeável).
4. Eficiência: Garantir que o sistema retorne à posição original assim que a
superfície do sensor estiver seca, retomando o processo de secagem natural.
Aqua (Latim)
Significa "Água". É a raiz universal para tudo o que envolve recursos hídricos. No teu
projeto, representa o elemento externo (a chuva) que o sistema monitoriza
constantemente.
Guard (Inglês)
Significa "Guarda" ou "Protetor". Transmite a ideia de segurança, vigilância e
preservação. Indica que a missão principal do dispositivo é agir como um escudo,
garantindo que a roupa permaneça seca independentemente das condições
meteorológicas.
Robotics (Inglês)
Significa "Robótica". Esta palavra eleva o projeto de um simples "utensílio doméstico"
para uma solução de engenharia. Indica que existe:
Deteção: (Sensor de Chuva).
Processamento: (Arduino).
Ação Física: (Servo Motor).
PROGRAMAÇÃO:LINGUAGEM C
#include <Servo.h>
#define leituraAnalogica A5 //Atribui o pino A5 a variável leituraAnalogica
#define leituraDigital 8 //Atribui o pino 8 a variável leituraDigital
#define LedVermelho 3 //Atribui o pino 3 a variável LedVermelho
#define LedVerde 4 //Atribui o pino 4 a variável LedVerde
int valorAnalogico; //Declaração da variável que armazenará o valor analógico do sensor
de chuva
int valorDigital; //Declaração da variável que armazenara a saída digital do sensor de
chuva
Servo servomotor;//Criando objeto do tipo Servo
int pos = 0;//Variável que armazena a posição do servo
void setup() {
[Link](9600); //Incia a comunicação serial
[Link](9);//Atribui o pino digital 9 ao objeto servomotor
pinMode(leituraAnalogica, INPUT); //Define leituraAnalogica como entrada
pinMode(leituraDigital, INPUT); //Define leituraDigital como entrada
pinMode(LedVermelho, OUTPUT); //Define LedVermelho como saída
pinMode(LedVerde, OUTPUT); //Define LedVerde como saída
}
void loop() {
valorAnalogico = analogRead(leituraAnalogica); //Realiza a leitura analógica do sensor
e armazena em valorAnalogico
[Link]("Valor analógico do sensor: "); //Imprime mensagem
[Link](valorAnalogico); //Imprime no monitor serial o valor da saída analógica
do sensor de chuva
valorDigital = digitalRead(leituraDigital); //Realiza a leitura digital do sensor e
armazena em valorDigital
if (valorDigital == 0) { //Se esse valor for igual a 0, será mostrado no monitor serial que
a chuva foi detectada e o led verde se acende
[Link]("Status: Chuva detectada");
[Link](90);// Comanda o servo para ir para o posição da variável pos
digitalWrite(LedVermelho, LOW);
digitalWrite(LedVerde, HIGH);
}
else { // se esse valor for igual a 1, será mostrado no monitor serial que o solo está seco
e o led vermelho se acende
[Link]("Status: Chuva não detectada");
[Link](0);// Comanda o servo para ir para o posição da variável pos
digitalWrite(LedVermelho, HIGH);
digitalWrite(LedVerde, LOW);
}
delay(500); //Atraso de 500ms
}