segunda-feira, 29 de maio de 2017

Sexto encontro - Projeto Semáforo parte 4

Do virtual para o real

Olá turma no encontro do dia 26/05/17, continuamos realizando alterações no programa, desta vez criarmos a função mudarTempo().
Começamos a brincar com o kit de robótica de forma a:
            a)Montar diversos semáforos com as peças físicas do Kit de robótica.
            b)Programar o placa real do arduíno e fazer a as conexões dos fios.
Nossa atividade;
2 Mecânica
2.1 Iniciamos as montagens das estruturas para os leds dos semáforos.

2 Programação
2.1 Criamos a função mudarTempo() para executar a leitura dos botões (colocamos a estrutura de decisão dentro da função).
2.2 Através da IDE, Baixamos o nosso código para a placa do arduino.

3 Eletrônica
3.1 Interligamos os conectores dos leds a placa

               
Segue o novo código para vocês analisarem e brincarem.
// os números são os pinos que controlam os leds nas suas respectivas cores
// give it a name:
int ledVermelho = 10;
int ledAmarelo = 11;
int ledVerde = 12;
int tempo = 500;


// the setup routine runs once when you press reset:
//configura os pinos do Arduino como saida(OUTPUT)
void setup() {
  // saida digital
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAmarelo, OUTPUT);
  pinMode(ledVerde, OUTPUT);
  //entrada digital, botões
  pinMode(8, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
}

// the loop routine runs over and over again forever:
void loop() {
  verde();
  amarelo();
  vermelho();              
  //tomar uma decisão
  mudarTempo();  
}

//função verde
void verde(){
 digitalWrite(ledVerde, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // espera 1 segundo
 digitalWrite(ledVerde, LOW);    // turn the LED off by making the voltage LOW - apaga o led
  delay(10);
}

void amarelo(){
  digitalWrite(ledAmarelo, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledAmarelo, LOW);    // turn the LED off by making the voltage LOW
  delay(10);
}

//função vermelho
void vermelho(){
 digitalWrite(ledVermelho, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledVermelho, LOW);    // turn the LED off by making the voltage LOW
  delay(10);  
}

//função mudarTempo()
void mudarTempo(){
 if (digitalRead(8)==LOW){
    tempo=2000;
  }
  
  if (digitalRead(7)==LOW){
    tempo=300;
  } 
}

Nesta fase do projeto semáforo aprendemos:
Como transferir nossos programas para a placa do arduíno.
Como funciona partes  das estruturas mecânicas do Kit ATTO.

Desafio: Quando aumentamos o tempo de mudança das cores do semáforo percebemos que o tempo  que as luzes ficam apagada também aumenta.
Como podemos alterar o código para que o tempo das luzes apagadas seja menor?


Abç a todos!

Montagem dos semáforos

Olá turma, aqui estão algumas fotos do nosso 6° encontro









domingo, 21 de maio de 2017

Quinto encontro - Projeto Semáforo parte 3

Programando botões de comando
Olá turma no encontro do dia 19/05/17  continuamos fazendo melhorias no nosso semáforo, desta vez focamos na programação.
Nossa atividade;
1 Programação
1.1 Criamos mais duas funções para armazenar e executar blocos de código dos LEDs amarelo e vermelho
1.2 Vimos como funciona uma estrutura de decisão, no caso, o comando if.
1.3 Melhoramos as entradas dos botões no arduino habilitando os pull ups internos do arduino, o que garante entradas mais precisas.
            Sem os pull ups podem ocorrer disparos nos botões.
            pinMode(8, INPUT_PULLUP);
                pinMode(7, INPUT_PULLUP);
               
Segue o novo código para vocês analisarem e brincarem.
// os números são os pinos que controlam os leds nas suas respectivas cores
// give it a name:
int ledVermelho = 10;
int ledAmarelo = 11;
int ledVerde = 12;
int tempo = 500;


// the setup routine runs once when you press reset:
//configura os pinos do Arduino como saida(OUTPUT)
void setup() {
  // initialize the digital pin as an output.
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAmarelo, OUTPUT);
  pinMode(ledVerde, OUTPUT);
 
//configura os pinos 6 e 9 do Arduino como entrada(INPUT)
  pinMode(8, INPUT_PULLUP);
  pinMode(7, INPUT_PULLUP);
      
}

// the loop routine runs over and over again forever:
void loop() {
                verde();
                amarelo();
                vermelho();
            
                //tomar uma decisão quando o botão estiver apertado sinal LOW
                if (digitalRead(8)==LOW){
                tempo=2000;
                }
                 if (digitalRead(7)==LOW){
                 tempo=300;
                 }
 
}

//função verde
void verde() {
  digitalWrite(ledVerde, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // espera 1 segundo
  digitalWrite(ledVerde, LOW);    // turn the LED off by making the voltage LOW - apaga o led
  delay(tempo);
}

void amarelo() {
  digitalWrite(ledAmarelo, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledAmarelo, LOW);    // turn the LED off by making the voltage LOW
  delay(tempo);
}

//função vermelho
void vermelho(){
  digitalWrite(ledVermelho, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledVermelho, LOW);    // turn the LED off by making the voltage LOW
  delay(tempo); 
}

Nesta fase do projeto semáforo revimos:
Configurar os pinos digitais do arduino como entrada (INPUT) ou saída (OUTPUT).
Alterar valores de variáveis.
Criação de funções.
Nesta fase do projeto semáforo aprendemos:
Uso de pull ups internos na placa do arduino.
Utilizar estrutura de decisão: comando if.

Como desafio, tentem criar uma função chamada de mudarTempo() para a estrutura de decisão e depois usá-la dentro da função loop!


Abç a todos!

quarta-feira, 17 de maio de 2017

Quarto encontro - Projeto Semáforo parte 2

Colocando botões e variável
Olá turma neste encontro do dia 12/05/17  adicionamos dois botões de pressão no nosso semáforo com o objetivo de controlar a velocidade que as luzes acendem e apagam.
Nossa atividade;
1 Circuito Eletrônico
1.1 Acrescentamos dois botões (pushbottons) ao circuito;
1.2 Conectamos eles aos pino 9 e 8 do arduino;
2 Programação
2.1 Criamos uma variável para guardar o tempo que as luzes acendem e apagam.
                int tempo=1000;             //tempo de 1 segundo

2.2 Criamos uma função para armazenar e executar blocos de código
2. Configuramos os pinos 9 e 8 como entrada de sinal digital para receberem sinais externos (botão)
                Dentro da função setup  colocamos o código
                pinMode( 9, INPUT);        //input significa que este pino recebe sinais externos
                pinMode( 8, INPUT);

Segue o novo código para vocês analisarem e brincarem.
// os números são os pinos que controlam os leds nas suas respectivas cores
// give it a name:
int ledVermelho = 10;
int ledAmarelo = 11;
int ledVerde = 12;
int tempo = 500;

//configura os pinos do Arduino como saida (OUTPUT) 
void setup() {
  // initialize the digital pin as an output.
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAmarelo, OUTPUT);
  pinMode(ledVerde, OUTPUT);
  
//configura os pinos do Arduino como entrada(INPUT) 
  pinMode(8, INPUT);
  pinMode(7, INPUT);
    
}

// função loop, onde programa roda e controla os ledS
void loop() {
  verde();                   

  digitalWrite(ledAmarelo, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledAmarelo, LOW);    // turn the LED off by making the voltage LOW
  delay(tempo);
  
  digitalWrite(ledVermelho, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // wait for a second
  digitalWrite(ledVermelho, LOW);    // turn the LED off by making the voltage LOW
  delay(tempo);               // wait for a second
      
}

//cria uma função para acender e apagar o led verde
void verde(){
digitalWrite(ledVerde, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(tempo);               // espera 1 segundo
 digitalWrite(ledVerde, LOW);    // turn the LED off by making the voltage LOW - apaga o led
  delay(tempo);
}

Nesta fase do projeto semáforo aprendemos:
Adicionar botões ao circuito
Configurar os pinos digitais do arduino como entrada (INPUT) ou saída (OUTPUT)
Alterar valores de variáveis
Criar função.

Após a atividade no laboratório de informática, discutimos as dificuldades que alguns estão sentindo e o que está de positivo no projeto.
E principal problema é que alguns estão esquecendo o login e a senha de acesso ao circuits.io,
Vamos tentar postar sugestões para solucionar este problema.

Abç a todos!



quinta-feira, 11 de maio de 2017

Terceiro encontro - Projeto Semáforo

Olá turma,
Em nosso encontro do dia 05/052017, Iniciamos nosso Projeto Semáforo.
Entendemos como funciona um semáforo.
Fizemos um passo a passo da sequencia de luzes que acendem e apagam e quanto tempo dura cada estado das luzes, ou seja, criamos um algoritmo do Semáforo.
Depois fomos para nosso laboratório virtual https://circuits.io/  e montamos nosso circuito.
Click para visualizar
A galera mandou bem montagem.
A programação é a parte que demanda mais tempo e necessita muita atenção, pois qualquer descuido faz o circuito não funcionar; por exemplo esquecer o ponto e virgula ao final de cada comando
Para o pessoal que teve alguma dificuldade estou deixando um código padrão para utilizarem na próxima aula.
Durante os próximos encontros vamos melhorar gradativamente o código.

// os números são os pinos que controlam os leds nas suas respectivas cores
// give it a name:
int ledVermelho = 10;
int ledAmarelo = 11;
int ledVerde = 12;

// the setup routine runs once when you press reset:
//configura os pinos do Arduino como saida(OUTPUT)
void setup() {
  // initialize the digital pin as an output.
  pinMode(ledVermelho, OUTPUT);
  pinMode(ledAmarelo, OUTPUT);
  pinMode(ledVerde, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(ledVerde, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // espera 1 segundo
  digitalWrite(ledVerde, LOW);    // turn the LED off by making the voltage LOW - apaga o led
  delay(1000);
  
  digitalWrite(ledAmarelo, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(ledAmarelo, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);
  
  digitalWrite(ledVermelho, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(ledVermelho, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
    
  
}

Depois que concluímos a programação conhecemos o Kit de Robótica que recebemos da Prefeitura, tivemos a oportunidade de ver os componentes físicos que trabalhamos no mundo virtual.

Caso tenham alguma dúvida procurem-me 

Abç