Mudanças entre as edições de "Garoa Dojo Shield"
Linha 44: | Linha 44: | ||
* Usar a função <code>setup</code> do Arduino para "calibrar" o LDR na inicialização. Faz parte do exercício especificar como seria exatamente o procedimento de calibração. 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 lidos 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. Faz parte do exercício especificar como seria exatamente o procedimento de calibração. 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 lidos do LDR para amplificar o efeito sobre o display. |
||
+ | |||
== Outros usos == |
== Outros usos == |
||
É fácil conectar outros sensores e/ou atuadores externos ao '''Garoa Dojo Shield'''. Este shield não foi projetado para receber um shield em cima (afinal, o outro shield cobriria o display ;-), mas os headers permitem usar jumpers comuns para conectar um circuito montado em um breadboard, possibilitando outros experimentos e desafios. |
É fácil conectar outros sensores e/ou atuadores externos ao '''Garoa Dojo Shield'''. Este shield não foi projetado para receber um shield em cima (afinal, o outro shield cobriria o display ;-), mas os headers permitem usar jumpers comuns para conectar um circuito montado em um breadboard, possibilitando outros experimentos e desafios. |
||
+ | |||
+ | |||
+ | == Repositório de código |
||
+ | |||
+ | https://github.com/garoa/dojo-shield/ |
Edição das 06h10min de 20 de setembro de 2014
O Garoa Dojo Shield é uma placa de expansão didática (shield) 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
(fonte). 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 temos que editar este código para piscar um segmento diferente?" Depois: "Onde precisa mexer para mudar a velocidade da piscada?". As pessoas respondem rapidamente essas perguntas. Isso quebra o gelo e os participantes percebem que o código não é impossível de ler, mesmo para quem nunca programou.
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, eu respondo: "O pessoal da engenharia não mandou a documentação ainda, mas o software tem que ficar pronto em meia hora!" É inútil inspecionar as trilhas da placa sem o datasheet do display. É mais divertido descobrir por software.
6) Quando a animação estiver feita, e a dupla quiser saber como ler o potenciômetro, o apresentador sugere rodar o sketch AnalogReadSerial
(fonte) 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, outras missões podem ser propostas:
- Controlar a velocidade da animação com o LDR.
- Indicar o nível de luminosidade acendendo 1, 2 ou 3 dos segmentos horizontais.
- Fazer uma animação mais complexa: uma cobrinha com 2 segmentos; uma cobrinha que faz um trajeto em 8; uma cobrinha que se move aleatoriamente, às vezes mudando de direção nas "esquinas" do segmento G (central). A cobrinha aleatória dá um resultado visualmente interessante, mas é bem mais difícil de programar que as sugestões anteriores.
- Exibir dígitos de 0 a 9 conforme a posição do potenciômetro ou a luminosidade. Note que isso é bem mais trabalhoso que a animação sequencial. Uma solução razoável usa um array de arrays -- complicado para principiantes. Uma solução bem simples requer o uso intensivo de copiar e colar (é feio mas funciona, e com principiantes o importante é fazer funcionar, principalmente quando se está programando hardware, a beleza do software é secundária!).
- Usar a função
setup
do Arduino para "calibrar" o LDR na inicialização. Faz parte do exercício especificar como seria exatamente o procedimento de calibração. 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 lidos do LDR para amplificar o efeito sobre o display.
Outros usos
É fácil conectar outros sensores e/ou atuadores externos ao Garoa Dojo Shield. Este shield não foi projetado para receber um shield em cima (afinal, o outro shield cobriria o display ;-), mas os headers permitem usar jumpers comuns para conectar um circuito montado em um breadboard, possibilitando outros experimentos e desafios.
== Repositório de código