Projeto Piloto - Robótica Educacional com Software Livre - Aula 6


Projeto Piloto
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;



Em nossa 6ª aula tratamos de:

1 - Aprendemos como deve ser feita a ligação de um Motor de 3 ou 5 volts ao Arduino, com a ajuda de um Resistor, um TIP (Transistor) 120 ou 122 e um CASE para 4 Pilhas AA.

Um exemplo do esquema de ligação do Motor ao Arduino

Código de programação para rodar o Motor com o Arduino

Código fonte em formato de texto para copiar e colar na IDE do Arduino


// Inicio do programa Controle de um Motor com TIP 120/122 

int MotorPin = 9;   // Seleciona o pino para o Motor

void setup() {
  
pinMode(MotorPin, OUTPUT);  // Declara MotorPin como saida
  
}

void loop() {

digitalWrite(MotorPin, HIGH); // Faz o motor rodar
delay(4000);                  // Espera 4 segundos
digitalWrite(MotorPin, LOW);  // Faz o motor rodar
delay(4000);                  // Espera 4 segundos

}



2 - Partimos então para o projeto "Controlando a velocidade do Motor com Potenciômetro",  onde a ideia era controlar a velocidade com que o Motor iria girar, enquanto o potenciômetro fosse girado para esquerda ou para direita (0 ou 1023).

Um exemplo do esquema de ligação do Motor e Potenciômetro ao Arduino

Código de programação Motor e do Potenciômetro na IDE do Arduino


Código fonte em formato de texto para copiar e colar na IDE do Arduino


// Inicio do programa Controle de um Motor com Potenciometro 

int potPin = 2;     // Seleciona o pino de entrada para o potenciometro
int MotorPin = 9;   // Seleciona o pino para o Motor
int velocidade = 0; // Variavel para guardar o valor proveniente da entrada analogica

void setup() {
  
pinMode(MotorPin, OUTPUT);  // Declara MotorPin como saida
  
}

void loop() {
  
velocidade = analogRead(potPin);     // Le o valor da entrada analogica
velocidade = velocidade/4;           // Converte 0-1023 para 0-255
analogWrite(MotorPin, velocidade);   // Faz o motor rodar
  
}



3 - Continuando nossa aula, agora colocamos 2 motores para funcionar.

Um exemplo do esquema de ligação de 2 Motores ao Arduino

Código de programação dos 2 Motores com o Arduino

Código fonte em formato de texto para copiar e colar na IDE do Arduino


// Projeto 2 motores ao Arduino

int Motor1 = 9;   // Seleciona o pino para o motor 1 (direita)
int Motor2 = 11;   // Seleciona o pino para o motor 2 (esquerda)
int valor1 = 0;       // Variável para guardar o valor de rotação para o motor 1
int valor2 = 0;       // Variável para guardar o valor de rotação para o motor 2

void setup() {
  
pinMode(Motor1, OUTPUT);  // Declara MotorPin como OUTPUT (saída)
pinMode(Motor2, OUTPUT);  // Declara MotorPin como OUTPUT (saída)

}

void loop() {

valor1 = 200;    // Aciona o motor com alta velocidade
valor2 = 200;    // Aciona o motor com alta velocidade
analogWrite(Motor1, valor1);    // Aciona o Motor direito
analogWrite(Motor2, valor2);    // Aciona o Motor esquerdo
delay(5000);

valor1 = 0;    // Desliga motor direito
valor2 = 0;    // Desliga motor esquerdo
analogWrite(Motor1, valor1);    // Desliga o Motor direito
analogWrite(Motor2, valor2);    // Desliga o Motor esquerdo
delay(5000);

valor1 = 0;    // Aciona o motor com alta velocidade
valor2 = 200;    // Aciona o motor com alta velocidade
analogWrite(Motor1, valor1);    // Aciona o Motor direito
analogWrite(Motor2, valor2);    // Aciona o Motor esquerdo
delay(5000);

valor1 = 0;    // Desliga motor direito
valor2 = 0;    // Desliga motor esquerdo
analogWrite(Motor1, valor1);    // Desliga o Motor direito
analogWrite(Motor2, valor2);    // Desliga o Motor esquerdo
delay(5000);

valor1 = 200;    // Aciona o motor com alta velocidade
valor2 = 0;    // Aciona o motor com alta velocidade
analogWrite(Motor1, valor1);    // Aciona o Motor direito
analogWrite(Motor2, valor2);    // Aciona o Motor esquerdo
delay(5000);

}


Já no final da nossa aula, fizemos um trabalho em equipe, onde juntamos todos os alunos para mostrar aos mesmos como poderiamos começar a programação de nosso "PRIMEIRO CARRINHO" automatizado e programado, onde a ideia era entender o funcionamento dos 2 motores e consequentemente controlar os mesmos para que o nosso ROBÔ.






Na próxima aula, teremos a continuidade dessa mão na massa.



Os desafios da semana foram:

1 - Os alunos devem, caso tenham desejem doar, carrinhos e outros brinquedos a pilha quebrados ou danificados e que os mesmos devem ser trazidos para a nossa aula (SÁBADO), onde vamos juntar essas doações ao nosso cantinho das peças recicláveis.

2 - Treinar a lógica de programação que foi usada nos 2 motores, fazendo simulações no arduino, para que o conteúdo da semana possa ser bem fixado.


Veja as fotos que tiramos em nossa 6ª aula do Projeto, onde contamos com a participação de 18 alunos(as) e 5 professoras


Assista abaixo, a vídeo aula que montamos para apoio e revisão do conteúdo que foi ministrado em nossa 6ª aula presencial

Trabalho usando Inkscape

A professora Patrícia E.M. Rubens Machado está usando o programa INKSCAPE para criar a logotipo da Rádio desenvolvida em sua escola. Assim o desenho será vetorizado (transformado em cálculos Matemáticos), sendo um arquivo mais leve e usado em diversos tamanhos sem perder a qualidade  e poderá ser usado em diversas situações. Quem criou logo da Rádio usando desenho em papel poderá vetorizá-lo!

Rádio Rubão

Então veja o trabalho desenvolvido:

Mensagem criada para o 1º Conselho de Classe - 2013



Mensagem para o 1º Conselho de Classe/ 2013
Para iniciar o Conselho de Classe do 1º bimestre de 2013 da E.M. Amazonas, a profª Elizangela criou um video com uma mensagem de incentivo para as professoras.
O programa usado foi o Open Shot, que é muito fácil de usar e tem um bom resultado. A música de fundo é "Aguenta Firme" do grupo Voices.
Esperamos que gostem do video e se sintam motivados a ter um ano de vitórias!



Fascículo Interativo Sala de Professor - Para Tablets , celulares... - TV Escola




Sala de Professor é um programa feito de professor para professor, que mostra na prática como utilizar o audiovisual em sala de aula. Mas ele não é só televisão. Ele é também um fascículo on line para ler e interagir. Desenvolvido para computador, tablet e celular, em uma linguagem leve e informativa, o FASCÍCULO traz matérias, animações, infográficos, simuladores, mapas e outros recursos multimídia. Além disso, você pode se aprofundar no conteúdo pela dica pedagógica, pelo documentário e pelo próprio programa, é claro. Tudo para você acessar, baixar ou replicar como quiser.

Tutorial e Vídeo-aula com o Sweet Home 3D - Projeto VRlivre

Quem está com a nova versão do Liberdade pode contar com mais esta ferramenta.

O programa Sweet Home 3D, para Linux , trabalha com design de interiores é  capaz de criar ambientes  de casa com móveis, textura nas paredes, pisos, tipo daqueles usados em móveis planejados.

Tutorial. Site oficial.

Depois de criar um ambiente você pode capturar em vídeo um passeio virtual em 3D para ver sua obra! Vale conferir!
Nos Anos iniciais e Finais está previsto Alfabetização Cartográfica, podemos trabalhar os conceitos de visão oblíqua, de cima, de frente, lateral manipulando os objetos. Fazendo uma representação de uma casa, com planta baixa e maquete 3D, trabalhando conceitos de escala, noções de medida, resolução de problemas....

Quem gostou do assunto de design pode acessar os sites:
5 dicas de design que se aprende com a Apple
 

Aqui você pode acompanhar esse mesmo tutorial, em formato de vídeo aula em português


Assista os 4 vídeos abaixo e conheça um pouco mais do poder dessa maravilhosa ferramenta, que embora seja simples se for comparada as poderosas ferramentas de sua categoria, se mostra bastante eficaz no que se propõe a fazer.




Os vídeos foram incorporados do youtube.com e sendo assim os créditos pelos 4 vídeos devem ser dados aos seus devidos autores.

Projeto Piloto - Robótica Educacional com Software Livre - Aula 5


Projeto Piloto
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;



Em nossa 5ª aula tratamos de:

1Fizemos uma revisão da explicação e a montagem na Protoboard do projeto "Controlando o Pisca-Pisca do LED com Potenciômetro"  e colocamos o mesmo para funcionar.

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 em 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);





2 - Partimos então para o projeto "Controlando o Brilho do LED com Potenciômetro",  onde a ideia era controlar a intensidade do brilho em que o  LED iria ser aceso, enquanto o potenciômetro fosse girado para esquerda ou para direita (0 ou 1023).

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);
tempo = tempo / 4

digitalWrite(led, tempo); // aqui eu acendo o pino com o valor do Potenciometro





3 - Continuando nossa aula, agora vamos controlar a acendimento dos LEDs pelo teclado, usando o Monitor Serial do Arduino, ou seja, ao digitarmos uma ou mais teclas especificadas durante a programação, os LEDs deverão apagar ou acender.

Um exemplo do esquema de ligação dos 3 LEDs ao Arduino

Código de programação dos 3 LEDs ao 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 

//VRlivre
//Virmal_divx
//Controlando LEDs pelo teclado

int ledPin1 =  13;
int ledPin2 =  11;
int ledPin3  =  9;

void setup(){
 
Serial.begin(9600);
 
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);

}
 
void loop(){

char tecla;
tecla = Serial.read();

// se pressionado "g" liga o led1
if(tecla == 'g')
{
digitalWrite(ledPin1, HIGH);
}

else

//Se pressionado "h" liga o led2
if(tecla == 'h')
{
digitalWrite(ledPin2, HIGH);
}

else

//Se pressionado "j" liga o led3
if(tecla == 'j')
{
digitalWrite(ledPin3, HIGH);
}

else


//Se pressionado "d" desliga todos os leds
if(tecla == 'd')
{
digitalWrite(ledPin13, LOW);
digitalWrite(ledPin11, LOW);
digitalWrite(ledPin9, LOW);
}
delay(1000);
}




Os desafios da semana foram:

1 - Os alunos devem, caso tenham  e desejarem doar, carrinhos e outros brinquedos a pilha quebrados ou danificados e que os mesmos devem ser trazidos para a nossa aula (SÁBADO), onde vamos juntar essas doações ao nosso cantinho das peças recicláveis.

2 - Escrever e trazer escrito, no papel, um código fonte para acender e apagar 8 LEDs, usando o teclado para controlar os mesmos individualmente.


Veja as fotos que tiramos em nossa 5ª aula do Projeto, onde contamos com a participação de 18 alunos(as) e 5 professoras


Em breve... assista abaixo, a vídeo que montamos para apoio e revisão do conteúdo que foi ministrado em nossa 5ª aula presencial

... em breve ...

Teste do Servidor Web com Arduino


Projeto Piloto
Introdução à Robótica Educacional com Software e Hardware Livres

Tendo em vista nossa aquisição de um Shield Ethernet da Empresa Empretecnet ENC28J60, imagem abaixo: 



Estamos agora partindo para testes e em seguida para a idealização de nosso primeiro projeto de automação residencial via internet.

Com base neste código, acabamos de colocar no ar, para testes de conexão, nosso servidor (Arduino+Shield+LEDs), nesse momento se encontra ativo e com 2 LEDs ligados a ele nas portas 6 e 7.

Solicitamos aos visitantes, que tiverem um tempinho livre, que usem o link abaixo, cliquem nos botões e se possível nos retornem, via comentários, se deu tudo certo, críticas ou ainda sugestões para que possamos caminhar com o desenvolvimento de mais este projeto.

Link para testar o Servidor: aqui

Observação: claro que vocês não poderão ver os LEDs apagando e acendendo, pois os mesmos estão aqui, mas com a ajuda de vocês saberemos se os botões estão funcionando bem e nós ainda podermos saber daqui quantos estão acessando ao mesmo tempo nosso Servidor de testes.

Se alguém se interessar pelo código fonte usado no Arduino, segue abaixo:

/* Programa para acender e apagar LEDs ou Lampadas, com o ETHERNET SHIELD ENC28J60
*/

// Estamos incluindo aqui as bibliotecas que vao nos ajudar no controle do Shield
#include "etherShield.h"
#include "ETHER_28J60.h"

int luz1 = 6; // LED ou Lampada ligados no pino 6
int luz2 = 7; // LED ou Lampada ligados no pino 7

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // Aqui fica o MAC do SHIELD, nao precisamos mexer 
static uint8_t ip[4] = {10, 0, 0, 181}; // Esse e o endereco IP do nosso SHIELD 
static uint16_t port = 80; // Porta padrao de acesso a WEB, em nosso caso a 80

// Esse "vrlivre" sera o nome que nosso SHIELD tera daqui para baixo
ETHER_28J60 vrlivre;

void setup(){

vrlivre.setup(mac, ip, port); // Setando o MAC, IP e PORTA
pinMode(luz1, OUTPUT); // Informando que o pino e de saida
pinMode(luz2, OUTPUT); // Informando que o pino e de saida

}

void loop(){
  
char* params;
if (params = vrlivre.serviceRequest()){

//Agora o param recebe o que o serviceRequest retornar das requisições do navegador
vrlivre.print("<center><br><h1><a href='/?led1=off&led2=off'>Acendendo e apagando a LUZ via Web</a></h1>");

if (strcmp(params, "?led1=on&led2=off") == 0)
    {
      digitalWrite(luz1, HIGH);
      digitalWrite(luz2, LOW);
      vrlivre.print("<a href='?led1=off&led2=off'><button style='border: 1px solid #ff0000; border-left: 10px solid #ff0000' type='button'>Luz1 Acesa</button></a><a href='?led1=on&led2=on'><br/><button style='border: 1px solid #000; border-left: 10px solid #000' type='button'>Luz2 Apagada</button></a>");
    }
    else if (strcmp(params, "?led1=off&led2=on") == 0)
    {
      digitalWrite(luz1, LOW);
      digitalWrite(luz2, HIGH);
      vrlivre.print("<a href='?led1=on&led2=on'><button style='border: 1px solid #000; border-left: 10px solid #000' type='button'>Luz1 Apagada</button></a><a href='?led1=off&led2=off'><br/><button style='border: 1px solid #ff0000; border-left: 10px solid #ff0000' type='button'>Luz2 Acesa</button></a>");
    }
    else if (strcmp(params, "?led1=off&led2=off") == 0)
    {
      digitalWrite(luz1, LOW);
      digitalWrite(luz2, LOW);
      vrlivre.print("<a href='?led1=on&led2=off'><button style='border: 1px solid #000; border-left: 10px solid #000' type='button'>Luz1 Apagada</button></a><a href='?led1=off&led2=on'><br/><button style='border: 1px solid #000; border-left: 10px solid #000' type='button'>Luz2 Apagada</button></a>");
    }
    else if (strcmp(params, "?led1=on&led2=on") == 0)
    {
      digitalWrite(luz1, HIGH);
      digitalWrite(luz2, HIGH);
      vrlivre.print("<a href='?led1=off&led2=on'><button style='border: 1px solid #ff0000; border-left: 10px solid #ff0000' type='button'>Luz1 Acesa</button></a><a href='?led1=on&led2=off'><br/><button style='border: 1px solid #ff0000; border-left: 10px solid #ff0000' type='button'>Luz2 Acesa</button></a>");
    }
    vrlivre.respond();
  }
}

Deixem suas dúvidas ou sugestões nos comentários.

Descarte Consciente do Lixo Eletrônico

Projeto Robótica - E.M. Paulo VI

Como tarefa de casa, os alunos tiveram que ir em busca de carrinhos, além de outros brinquedos a pilha, bateria...quebrados. O objetivo foi arrecadar o maior número de componentes eletrônicos possíveis, a fim de serem reutilizados em futuras criações. 

E, para dar início a esta "campanha de arrecadação", alunos do 2º turno estiveram em todas as turmas explicando o objetivo da campanha, que entitulamos de "DESCARTE CONSCIENTE DO LIXO ELETRÔNICO".

O aluno Maisson, da turma 501, ajudou a confeccionar um cartaz para divulgação na escola:



O primeiro dia da campanha nesta segunda, dia 07/04, foi um sucesso! Conseguimos várias doações...

Aberta a chamada de trabalhos para o V FSLDC – Fórum de Software Livre de Duque de Caxias


Uma boa oportunidade de participar e apresentar trabalhos desenvolvidos em nossas escolas!


No dia 20 de julho de 2013, será realizado o V FSLDC – Fórum de Software Livre de Duque de Caxias, no hotel Mont Blanc, na cidade de Duque de Caxias, Rio de Janeiro. O evento apresentará a temática Tecnologia e Cultura Livre e contará com a presença de diversos palestrantes importantes no cenário nacional, considerados especialistas em suas áreas de atuação. Entre os assuntos em destaque no V FSLDC, estarão desenvolvimento de software, administração de sistemas, cloud computing, computação gráfica livre, negócios e cases de sucesso, mobile, educação, software livre no desktop, entre outros.
Em cinco edições, mais de duas mil pessoas já participaram, entre participantes, palestrantes e voluntários. Anualmente, Duque de Caxias, que está entre as cidades mais ricas do país, abre as portas para o Software Livre e torna-se ponto de encontro das comunidades para troca de ideias, discussão de projetos e debates em torno desse tema. Venha você também participar desse espetáculo do desenvolvimento colaborativo, seja como participante, palestrante ou voluntário.

Interessados em submeter propostas, acessem o site http://2013.fsldc.org
Ficha técnica

IV Fórum de Software Livre de Duque de Caxias
Data: 20 de Julho de 2013
Horário: 9h às 18h
Local: Hotel Mont Blanc – Duque de Caxias – Rio de Janeiro

Fonte e Créditos: aqui

O conteúdo deste blog/site pode e deve ser divulgado, conforme lei a 9.610/98 meus direitos estão assegurados, portanto eu permito a copia e reprodução gratuita, seja total ou parcial, não acarretando qualquer onûs financeiro aos interessados, porém, vedo o uso para fins lucrativos, toda reprodução para o público deve citar a fonte extraída, no caso o Técnico Linux - Espaço dos Implementadores de Informática e seja citada junto com um link para a postagem original, onde a referência deve estar numa fonte de tamanho igual ou maior a do texto, obviamente que os links citados não estão sujeitos ao mesmo termo. O conteúdo textual original desta página está disponível sob a licença GNU FDL 1.2.

Todas as marcas citadas pertencem aos seus respectivos proprietários. Os direitos autorais de todas as ilustrações pertencem aos respectivos autores, e elas são reproduzidas na intenção de atender ao disposto no art. 46 da Lei 9.610 - se ainda assim alguma delas infringe direito seu, entre em contato para que possamos removê-la imediatamente ou ainda lhe dar os devidos créditos.

Copyright © 2016 Espaço dos Implementadores de Informática