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

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
Linha 15: Linha 15:
 
No [[Coding Dojo com Arduino]] o '''Garoa Dojo Shield''' é usado assim:
 
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).
+
1) O apresentador conecta o Arduino com Garoa Dojo Shield no computador e carrega o sketch <code>Blink</code>. 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.
 
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.
Linha 25: Linha 25:
 
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.
 
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.
   
  +
6) Quando a animação estiver feita, e a dupla quiser saber como ler o potenciômetro, o apresentador sugere rodar o sketch <code>AnalogReadSerial</code> para ver o que ele faz. A parte de comunicação serial do <code>AnalogReadSerial</code> precisa ser explicada, mas a única parte daquele código relevante para a missão é a função <code>analogRead()</code>.
'''Nota:''' faz parte do desafio os participantes descobrirem quais pinos do Arduino controlam quais 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!"
 
   
 
'''Nota:''' faz parte do desafio os participantes descobrirem quais pinos do Arduino controlam quais 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!"
   
 
== Desafios extras ==
 
== Desafios extras ==

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

O Garoa Dojo Shield é uma 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 em um Arduino e sair programando.

O circuito 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.


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.

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().

Nota: faz parte do desafio os participantes descobrirem quais pinos do Arduino controlam quais 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!"

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 intrigante, 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.