Cofre para Coding Dojo com Arduino
Esta página descreve a montagem de um "Cofre" para uso em um Coding Dojo com Arduino.
Motivação
O Garoa vem realizando há anos sessões do Coding Dojo com Arduino usando um display de 7 segmentos e um potenciômetro (originalmente de forma artesanal e mais recentemente com o Garoa Dojo Shield. Este hardware é plenamente adequado para uma primeira experiência de programação, mas:
- As variações do desafio são limitadas, reduzindo a atração por uma segunda sessão.
- É voltado para o novato em programação e Arduino.
- Depois da décima vez, os instrutores perdem o pique (pelo menos eu!)
O hardware proposto apresenta um nível maior de complexidade, tanto na variedade dos elementos como no comportamento final desejado. Novatos podem ser atendidos por um subconjunto do comportamento proposto para o cofre.
Elementos do Hardware
O hardware é composto por:
- Um servo motor, que é a trava do cofre
- Um botão para comandar a abertura
- Um LED bicolor (acende verde ou vermelho) para indicar se o comando de abertura foi aceito
- Um potenciômetro, alterado para girar continuamente, para entrada da combinação
- Um sensor de efeito Hall, para detectar se a tampa do cofre está aberta ou fechada
Comportamento Desejado
- No estado inicial o cofre está aberto e a trava desativada. O botão e o potenciômetro são ignorados, apenas o sensor da tampa é monitorado.
- Quando o sensor da tampa indicar que ela foi fechada, a trava é acionada. Botão e potenciômetro passam a ser monitorados.
- Quando o botão for apertado, é conferido se a combinação foi entrada corretamente.
- Se sim, acende o LED na cor verde, a trava é liberada, aguarda abrir e volta ao estado inicial.
- Se não, acende o LED é aceso na cor vermelha.
- A combinação correta é:
- Girar no sentido horário até a posição 7
- Girar no sentido anti-horário até a posição 2
- Girar no sentido horário até a posição 9
Sugestão de Tarefas para Solução
A lista abaixo é um sugestão das tarefas a serem feitas para montar uma solução. Exceto por dependência diretas a ordem das tarefas não importa.
- Controle do Servo motor:
- Mover o servo
- Determinar as posições para travado e livre
- Botão:
- Detectar botão apertado e solto
- LED:
- Acender o LED na cor vermelha
- Acender o LED na cor verde
- Potenciômetro:
- Ler a posição atual
- Determinar se está sendo girado no sentido horário ou anti-horário
- Determinar se a combinação foi entrada corretamente
- Sensor de efeito Hall:
- Detectar a abertura e fechamento da tampa
Resolvidas individualmente estas tarefas, evoluir com a lógica do programa para obter o comportamento desejado.
Opções Simplificadas
Algumas sugestões de problemas simplificados:
- Acender o LED conforme a tampa está aberta ou fechada
- Usar o botão diretamente para travar e liberar a tampa, sem necessidade da combinação
- Travar automaticamente quando fecha a tampa e liberar quando aperta o botão
- Considerar a combinação como uma posição do potenciômetro (por exemplo, libera a trava quando aperta o botão se o potenciômetro está na posição 8).
Conexões ao Arduino
- Servo motor:
- Botão:
- LED:
- Potenciômetro:
- Sensor de efeito Hall:
Montagem Física
Em andamento, fotos em breve.
Ideias de Aperfeiçoamento
- Incluir um buzzer e disparar se o sensor da tampa indicar que ela foi aberta sem a devida combinação.