Mudanças entre as edições de "Cofre para Coding Dojo com Arduino"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
(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

  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.