Mudanças entre as edições de "Cofre para Coding Dojo com Arduino"
(Detalhes sobre os componentes e conexões) |
|||
Linha 63: | Linha 63: | ||
* 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). |
* 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 == |
+ | == Detalhes dos Componentes e Conexões ao Arduino == |
* Servo motor: |
* Servo motor: |
||
+ | ** Motor que permite controlar a posição angular de 0 a 180 graus |
||
+ | ** Posição é definida pela largura do pulso no seu sinal de controle |
||
+ | ** Arduino vem com biblioteca e exemplo para controle de servo motor [https://www.arduino.cc/en/Reference/Servo] |
||
+ | ** Sinal de controle ligado ao pino digital 2 |
||
* Botão: |
* Botão: |
||
+ | ** Chave de contato momentâneo |
||
+ | ** Um contato está ligado ao pino 3 e o outro a GND |
||
+ | ** Quando o botão está apertado o pino 3 estará ligado a GND, quando solto o pino 3 estará desconectado |
||
+ | ** Ver exemplo Digital | DigitalInputPullup |
||
* LED: |
* LED: |
||
+ | ** LED que acende vermelho ou verde conforme a polaridade da alimentação |
||
+ | ** Conectado aos pinos digital 4 e 5 |
||
* Potenciômetro: |
* Potenciômetro: |
||
+ | ** Resistor variável |
||
+ | ** Um extremo conectado ao +5V e o outro a GND |
||
+ | ** Terminal central ligado ao pino analógico 0 |
||
+ | ** Ver exemplo AnalogreadSerial |
||
+ | ** Devido à alteração para girar livremente tem uma região onde a leitura não é confiável |
||
* Sensor de efeito Hall: |
* Sensor de efeito Hall: |
||
+ | ** Sensor [www.allegromicro.com/~/Media/Files/Datasheets/A112x-Datasheet.ashx A1120LUA] |
||
+ | ** Funciona como um botão que é apertado pelo polo sul de um imã |
||
+ | ** Saída ligada ao pino 6 |
||
== Montagem Física == |
== Montagem Física == |
Edição das 16h21min de 6 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).
Detalhes dos Componentes e Conexões ao Arduino
- Servo motor:
- Motor que permite controlar a posição angular de 0 a 180 graus
- Posição é definida pela largura do pulso no seu sinal de controle
- Arduino vem com biblioteca e exemplo para controle de servo motor [1]
- Sinal de controle ligado ao pino digital 2
- Botão:
- Chave de contato momentâneo
- Um contato está ligado ao pino 3 e o outro a GND
- Quando o botão está apertado o pino 3 estará ligado a GND, quando solto o pino 3 estará desconectado
- Ver exemplo Digital | DigitalInputPullup
- LED:
- LED que acende vermelho ou verde conforme a polaridade da alimentação
- Conectado aos pinos digital 4 e 5
- Potenciômetro:
- Resistor variável
- Um extremo conectado ao +5V e o outro a GND
- Terminal central ligado ao pino analógico 0
- Ver exemplo AnalogreadSerial
- Devido à alteração para girar livremente tem uma região onde a leitura não é confiável
- Sensor de efeito Hall:
- Sensor [www.allegromicro.com/~/Media/Files/Datasheets/A112x-Datasheet.ashx A1120LUA]
- Funciona como um botão que é apertado pelo polo sul de um imã
- Saída ligada ao pino 6
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.