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...') |
m (Foram revertidas as edições de Yangping55 (disc) para a última versão por Pitanga) |
||
(8 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Esta página descreve a montagem de um "Cofre" para uso em um [[Coding Dojo com Arduino]]. |
Esta página descreve a montagem de um "Cofre" para uso em um [[Coding Dojo com Arduino]]. |
||
+ | |||
+ | [[Arquivo:Cofre1.jpg|512px]] |
||
== Motivação == |
== 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: |
+ | 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. |
* 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 25: | ||
== 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). |
||
+ | |||
⚫ | |||
+ | |||
+ | * 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: |
||
+ | ** 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 [http://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 |
||
+ | |||
+ | [https://github.com/garoa/dojo-cofre Sketch de teste no github] |
||
== Montagem Física == |
== Montagem Física == |
||
+ | |||
+ | [[Arquivo:Cofre4.jpg|400px]] |
||
+ | [[Arquivo:Cofre3.jpg|400px]] |
||
+ | [[Arquivo:Cofre2.jpg|400px]] |
||
+ | |||
+ | == Ideias de Aperfeiçoamento == |
||
+ | |||
+ | * Incluir um buzzer e disparar se o sensor da tampa indicar que ela foi aberta sem a devida combinação. |
||
+ | |||
+ | [[Categoria:Projetos]][[Categoria:Arduino]] |
Edição atual tal como às 05h55min de 19 de outubro de 2017
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 A1120LUA
- Funciona como um botão que é apertado pelo polo sul de um imã
- Saída ligada ao pino 6
Montagem Física
Ideias de Aperfeiçoamento
- Incluir um buzzer e disparar se o sensor da tampa indicar que ela foi aberta sem a devida combinação.