Introdução à Robótica Educacional com Software e Hardware Livres no Sábado na Escola
A Robótica Educacional corresponde a uma aplicação da tecnologia na educação em que o ambiente de aprendizagem valoriza o planejamento, pesquisa, interesse, motivação e cooperação entre os alunos, através de uma rica experiência interdisciplinar, uma vez que envolve diferentes áreas de conhecimento e pessoas na resolução de problemas.
A Robótica Educacional Livre, parte para soluções livres em substituição aos produtos comerciais, o que propomos e o uso de Hardware e Softwares Livres como base para a programação.
Utilizaremos motores, componentes eletrônicos de baixo custo e algumas sucatas de equipamentos, para construção de KITS de robótica de acordo com a realidade de cada escola.
Cidade: Volta Redonda
Estado: Rio de Janeiro
Local: Escola Municipal Paulo VI;
Horário: 08:00 às
11:30;
Nossa aula de hoje foi bem produtiva:
1 - Fizemos a montagem de um simulador de "Sinal de Trânsito ou Semáforo", onde a ideia é que possamos ter 3 LEDs (Vermelho - Amarelo - Verde) e os mesmos deverão acender e apagar, simulando o funcionamento do Semáforo.
Um exemplo do esquema de ligação do Semáforo no Arduino
Código de programação para o Semáforo na IDE do Arduino
Código fonte em formato de texto para copiar e colar na IDE do Arduino
// Inicio do programa Semaforo Simples
// Aqui estou dizendo para o computador os pinos
// que vou usar e dando um nome a cada um deles
int verdecarro = 13;
int amarelocarro = 11;
int vermelhocarro = 9;
void setup() {
// Aqui eu digo que os pinos escolhidos são de saída
pinMode(verdecarro, OUTPUT);
pinMode(amarelocarro, OUTPUT);
pinMode(vermelhocarro, OUTPUT);
}
void loop() {
digitalWrite(verdecarro, HIGH); // aqui eu acendo o pino 13 luz verde
delay(5000); // Aqui diz esperar 1 segundo (5000=5s)
digitalWrite(verdecarro, LOW); // aqui eu apago o pino 13
digitalWrite(amarelocarro, HIGH); // aqui eu acendo o pino 11
delay(3000); // Aqui diz esperar 1 segundo (3000=3s)
digitalWrite(amarelocarro, LOW); // aqui eu apago o pino 11
digitalWrite(vermelhocarro, HIGH); // aqui eu acendo o pino 9
delay(5000); // Aqui diz esperar 1 segundo (5000=5s)
digitalWrite(vermelhocarro, LOW); // aqui eu apago o pino 9
}
// Fim do programa
Obs.: Vale ressaltar que a ideia principal do "SEMÁFORO" era fazer os alunos perceberem que eles podiam controlar os 3 LEDs de forma individual, desta forma após esse primeiro exemplo, eles foram desafiados a mudar a programação para fazer com que os LEDs acendessem ou apagassem de outra forma, sumulando alguns tipos de sinas que são encontrados em nossas ruas.
2 - Partimos para o controle de 8 LEDs, onde além da montagem dos componentes na Protoboard (LEDs, Resistor e Fios) os alunos deveriam escrever um código que nos desse como resultado o efeito do "Scanner" do K.I.T.T., carro famoso do Seriado Super Máquina (Anos 80).
Veja no vídeo abaixo o efeito que os alunos deveriam conseguir com o código.
Os 2 vídeos abaixo, são para recordação dos que já conheciam o seriado e para aqueles que nunca ouviram falar dessa tal Super Máquina, terem uma ideia do que ela era.
Um exemplo do esquema de ligação dos oito (8) LEDs ao Arduino
Código de programação para oito (8) LEDs na IDE do Arduino
Código fonte e m formato de texto para copiar e colar na IDE do Arduino
// Inicio do programa Super Maquina
// Aqui estou dizendo para o computador os pinos
// que vou usar e dando um nome a cada um deles
int pin1 = 13;
int pin2 = 12;
int pin3 = 11;
int pin4 = 10;
int pin5 = 9;
int pin6 = 8;
int pin7 = 7;
int pin8 = 6;
void setup() {
// Aqui eu digo que os pinos escolhidos são de saída
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin7, OUTPUT);
pinMode(pin8, OUTPUT);
}
void loop() {
digitalWrite(pin1, HIGH);
delay(134);
digitalWrite(pin1, LOW);
digitalWrite(pin2, HIGH);
delay(134);
digitalWrite(pin2, LOW);
digitalWrite(pin3, HIGH);
delay(134);
digitalWrite(pin3, LOW);
digitalWrite(pin4, HIGH);
delay(134);
digitalWrite(pin4, LOW);
digitalWrite(pin5, HIGH);
delay(134);
digitalWrite(pin5, LOW);
digitalWrite(pin6, HIGH);
delay(134);
digitalWrite(pin6, LOW);
digitalWrite(pin7, HIGH);
delay(134);
digitalWrite(pin7, LOW);
digitalWrite(pin8, HIGH);
delay(134);
digitalWrite(pin8, LOW);
digitalWrite(pin7, HIGH);
delay(134);
digitalWrite(pin7, LOW);
digitalWrite(pin6, HIGH);
delay(134);
digitalWrite(pin6, LOW);
digitalWrite(pin5, HIGH);
delay(134);
digitalWrite(pin5, LOW);
digitalWrite(pin4, HIGH);
delay(134);
digitalWrite(pin4, LOW);
digitalWrite(pin3, HIGH);
delay(134);
digitalWrite(pin3, LOW);
digitalWrite(pin2, HIGH);
delay(134);
digitalWrite(pin2, LOW);
digitalWrite(pin1, HIGH);
digitalWrite(pin1, LOW);
}
// Fim do programa
Parabéns a todos os 5 grupos e seus respectivos orientadores, pois todos conseguirão escrever o código e executar a montagem no Arduino.
Ressaltamos ainda que por se tratar de um trabalho inicial, utilizamos uma codificação simples partindo do raciocínio linear dos alunos, em que era só acender um LED, esperar um tempo, apagar o LED que estava aceso e acender o próximo, repetindo isso até terminar o processo, depois seria somente voltar com o código de traz para frente.
Agora para os interessados e/ou mais experientes, podem usar o código abaixo, que vai produzir o mesmo efeito, porém ele usa "if" e "else".
boolean t = true;
int i = 13;
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
}
void loop()
{
digitalWrite(i,HIGH);
delay(134);
digitalWrite(i,LOW);
if(t == true)
{
i = i - 1;
}
else
{
i = i + 1;
}
if(i < 6)
{
i = 7;
t = false;
}
if(i > 13)
{
i = 12;
t = true;
}
}
3 - Finalizando, fizemos a explicação e a montagem na Protoboard do projeto "Controlando o LED com Potenciômetro", que será abordado com maiores detalhes em nossa próxima aula, onde falaremos sobre o código e executaremos essa aplicação com os alunos.
Um exemplo do esquema de ligação do LED e Potenciômetro ao Arduino
Código de programação LED e o Potenciômetro na IDE do Arduino
Código fonte e m formato de texto para copiar e colar na IDE do Arduino
// Inicio do programa Controle de Led com Potenciometro
// Aqui estou dizendo para o computador os pinos
// que vou usar e dando um nome a cada um deles
// e informando as possiveis variaveis que usarei
int led = 9;
int potenciometro = 2;
int tempo = 0;
void setup() {
// Aqui eu digo que o pino escolhido e de saida
pinMode(led, OUTPUT);
}
void loop() {
// Leitura do valor do potenciômetro que é usada como delay
tempo = analogRead(potenciometro);
digitalWrite(led, HIGH); // aqui eu acendo o pino
delay(tempo); // temporizo a piscada com potenciometro
digitalWrite(led, LOW); // aqui eu apago o pino
delay(tempo);
}
O desafio da semana foi para que os alunos juntassem carrinhos e outros brinquedos a pilha quebrados ou danificados e que os mesmos deveriam ser trazidos para a nossa aula, onde iriamos juntar essas doações ao nosso cantinho das peças recicláveis, pois poderiamos aproveitar Motores, Leds, fios e demais coisas destes brinquedos, que até então estavam sem utilidade.
Veja as fotos que tiramos em nossa 4ª aula do Projeto, onde contamos com a participação de 18 alunos(as) e 5 professoras
Assista abaixo, a vídeo que montamos para apoio e revisão do conteúdo que foi ministrado em nossa 4ª aula presencial
0 comentários: