Mudanças entre as edições de "Cofre para Coding Dojo com Arduino"
(Criou página com '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 Ar...') |
|||
Linha 7: | Linha 7: | ||
* As variações do desafio são limitadas, reduzindo a atração por uma segunda sessão. |
* 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. |
* É voltado para o novato em programação e Arduino. |
||
− | * Depois da décima vez os instrutores perdem o pique (pelo menos eu!) |
+ | * 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. |
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. |
||
Linha 23: | Linha 23: | ||
== Comportamento Desejado == |
== 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 == |
== Conexões ao Arduino == |
||
+ | * Servo motor: |
||
+ | * Botão: |
||
+ | * LED: |
||
+ | * Potenciômetro: |
||
+ | * Sensor de efeito Hall: |
||
== Montagem Física == |
== 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. |
Edição das 19h05min de 2 de setembro de 2015
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.