Mudanças entre as edições de "Garoa Dojo Shield"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
Linha 42: Linha 42:
   
 
* Usar a função <code>setup</code> do Arduino para "calibrar" o LDR na inicialização. Especificar como seria exatamente o procedimento de calibração faz parte do exercício. De alguma forma o usuário tem que indicar (talvez com o potenciômetro) quando o LDR está exposto à luminisidade mínima e quando está exposto à luminosidade máxima. Assim o programa pode ajustar os valores de leitura do LDR para amplificar o efeito sobre o display.
 
* Usar a função <code>setup</code> do Arduino para "calibrar" o LDR na inicialização. Especificar como seria exatamente o procedimento de calibração faz parte do exercício. De alguma forma o usuário tem que indicar (talvez com o potenciômetro) quando o LDR está exposto à luminisidade mínima e quando está exposto à luminosidade máxima. Assim o programa pode ajustar os valores de leitura do LDR para amplificar o efeito sobre o display.
  +
  +
* Conectar outros sensores e/ou atuadores externos. A placa não foi projetada para receber um shield em cima (afinal, o outro shield cobriria o display), mas os headers permitem conectar a placa a um circuito externo em um breadboard, possibilitando outros experimentos e desafios.

Edição das 17h49min de 19 de setembro de 2014

O maior display de 7 segmentos que cabe em um shield, um potenciômetro e um LDR: tudo que você precisa para um Codingo Dojo com Arduino
Shield projetado e fabricado pelo Lab de Garagem, inspirado pelo painel Dojo XXL do Garoa.

O Garoa Dojo Shield é uma placa de expansão didática para o Arduino UNO e compatíveis como o EasyBlack.

Desenvolvido em parceria pelo Garoa Hacker Clube e Laboratório de Garagem, o Garoa Dojo Shield é um circuito pronto para usar no Coding Dojo com Arduino, uma atividade didática que o Garoa vem realizando desde 2012. Basta plugar um Arduino e sair programando.

A placa contém:

  • um display de 7 segmentos + ponto decimal com leds vermelhos.
  • um potenciômetro de 10KΩ.
  • um LDR (sensor de luminosidade).
  • 9 resistores para fazer o display e o LDR funcionarem.
  • conectores (headers) para ligar mais componentes.


Modo de usar

No Coding Dojo com Arduino o Garoa Dojo Shield é usado assim:

1) O apresentador conecta o Arduino com Garoa Dojo Shield no computador e carrega o sketch Blink. Isso faz piscar o segmento F do display (superior esquerdo).

2) O apresentador explica que cada segmento do display está conectado a um dos pinos digitais do Arduino, e o potenciômetro e LDR estão ligados a pinos analógicos.

3) Mostrando o código do Blink no telão, o apresentador pergunta aos participantes "Mesmo sem saber nada de linguagem C, quem me diz onde a gente tem que editar este código para fazer outro segmento piscar?" Depois: "Onde precisa mexer para mudar a velocidade da piscada". Alguém sempre responde rapidamente as duas perguntas. Isso quebra o gelo e as pessoas percebem que o código não é impossível de ler.

4) O apresentador explica o desafio: "Nossa missão é fazer uma animação tipo luz sequencial usando os 6 segmentos que formam o numero zero: acende um segmento, deixa um tempo aceso, apaga e imediatamente acende o próximo, repetindo para sempre. Uma vez feito isso, colocar interatividade: a velocidade da animação deve ser controlada pelo potenciômetro."

5) Agora pode começar o Coding Dojo, usando a metodologia tradicional de programação em pares, trocando o piloto a cada 5 minutos. Dependendo da experiência do público com programação e/ou Arduino, a missão leva de 25 a 45 minutos. Nota: faz parte do desafio os participantes descobrirem como os pinos do Arduino estão ligados aos segmentos. Quando me perguntam isso, eu respondo: "O pessoal da engenharia não mandou a documentação ainda, mas o software tem que ficar pronto em meia hora!"

6) Quando a animação estiver feita, e a dupla quiser saber como ler o potenciômetro, o apresentador sugere rodar o sketch AnalogReadSerial para ver o que ele faz. A parte de comunicação serial do AnalogReadSerial precisa ser explicada, mas a única parte daquele código relevante para a missão é a função analogRead(A0). O potenciômetro está ligado ao pino A0 do Arduino, assim não é preciso caçar os pinos analógicos.

Desafios extras

Uma vez que os participantes já fizeram o desafio básico da animação sequencial, outros desafios podem ser colocados:

  • Controlar a velocidade da animação com o LDR.
  • Fazer uma animação mais complexa: uma cobrinha com 2 segmentos; uma cobrinha que desenha um 8; uma cobrinha que se move aleatoriamente, às vezes mudando de direçao em uma das junções do segmento G (central). A cobrinha aleatória dá um resultado visualmente interessante, mas é bem mais difícil de programar que a animação sequencial básica.
  • Exibir dígitos de 0 a 9 conforme a posição do potenciômetro ou a luminosidade. Note que isso é bem mais complicado que a animação sequencial. Uma solução razoável envolve o uso de arrays aninhados, nada simples para principiantes. Uma solução mais simples envolve o uso intensivo de copiar e colar (é feio mas funciona, e com principiantes o importante é fazer funcionar, principalmente quando se está programando hardware!).
  • Usar a função setup do Arduino para "calibrar" o LDR na inicialização. Especificar como seria exatamente o procedimento de calibração faz parte do exercício. De alguma forma o usuário tem que indicar (talvez com o potenciômetro) quando o LDR está exposto à luminisidade mínima e quando está exposto à luminosidade máxima. Assim o programa pode ajustar os valores de leitura do LDR para amplificar o efeito sobre o display.
  • Conectar outros sensores e/ou atuadores externos. A placa não foi projetada para receber um shield em cima (afinal, o outro shield cobriria o display), mas os headers permitem conectar a placa a um circuito externo em um breadboard, possibilitando outros experimentos e desafios.