Cofre para Coding Dojo com Arduino

De Garoa Hacker Clube
Revisão de 19h05min de 2 de setembro de 2015 por DQ (discussão | contribs)
Ir para navegação Ir para pesquisar

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

  1. 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.
  2. Quando o sensor da tampa indicar que ela foi fechada, a trava é acionada. Botão e potenciômetro passam a ser monitorados.
  3. Quando o botão for apertado, é conferido se a combinação foi entrada corretamente.
    1. Se sim, acende o LED na cor verde, a trava é liberada, aguarda abrir e volta ao estado inicial.
    2. Se não, acende o LED é aceso na cor vermelha.
  4. A combinação correta é:
    1. Girar no sentido horário até a posição 7
    2. Girar no sentido anti-horário até a posição 2
    3. 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.