Construindo um "botão" controlável

8

Estou tentando construir um temporizador semi-analógico. Algo como aqueles velhos temporizadores de ovo que você gira o rosto. Eu quero um botão que eu possa girar que possa ser lido por um microcontrolador, e também quero que o microcontrolador seja capaz de posicionar o botão. Eu gostaria de implementar "paradas", deixando o microcontrolador empurrar o botão para certas posições. À medida que desce, o botão deve girar. Este é o meu primeiro projeto desse tipo; Eu construí pequenos robôs no passado, mas já faz muitos anos.

Eu considerei hackear um servo motor para ler sua posição, mas os pequenos servos de hobby que tentei são muito difíceis de girar, muito barulhentos e ganham muito impulso quando girados. Eles não agem como um bom botão.

Agora estou considerando um codificador rotativo conectado a um motor, mas depois de procurar em vários sites (SparkFun, ServoCity, DigiKey, Trossen e alguns outros), não consegui encontrar nada que parecesse apropriado. Não sei como encontrar um motor que tenha o tipo certo de torque baixo.

Parece que não deve ser um problema realmente incomum. Existe uma abordagem bastante normal para criar um botão que possa ser ajustado tanto pelo usuário quanto por um microcontrolador?

Rob Napier
fonte
11
Encontrei exatamente o que você está descrevendo no controle de volume de um CD player antigo. Quando você girava o botão, ele girava o potenciômetro diretamente. Quando você pressionava um botão no controle remoto, um motor conectado através de uma embreagem girava o botão e o potenciômetro. A embreagem impediria o motor de girar e emitir ruído quando o botão fosse girado manualmente. Talvez você possa recuperar esse tipo de mecanismo de um CD player ou dispositivo similar?
Chris

Respostas:

5

Eu tenho algumas opções para você.

Opção 1, crie seu próprio servomecanismo

Como você só precisa de um torque muito baixo para mover um botão, um motor muito pequeno deve fazer o trabalho corretamente. Você provavelmente precisará adicionar um pouco de atrito para que ele não se mova com muita facilidade, ou usar um pequeno motor de passo com um torque de retenção decente e um pouco de engrenagem.

Uma maneira muito barata de obter seu feedback de posição é encontrar um mouse opto-mecânico antigo .

mouse opto-mecânico - O detentor dos direitos autorais deste arquivo permite a qualquer pessoa usá-lo para qualquer fim, contanto que o detentor dos direitos autorais seja devidamente atribuído.  É permitida redistribuição, trabalho derivado, uso comercial e todos os outros usos. Mouse opto-mecânico

Conecte o eixo ao eixo do motor / botão e, em seguida, role seu próprio codificador de quadratura (levando as entradas da fase A / B diretamente ao seu microcontrolador) ou reutilize toda a placa de circuito e conecte o 'mouse' a uma porta serial e leia volte a posição do mouse X ou Y através do software.

O artigo Reciclar ratos PS / 2 em geradores de pulsos rotativos é um bom exemplo de alguém fazendo isso.

Opção 2, perseverar com o servo RC

A razão pela qual os servos RC são difíceis de girar é que eles têm um trem de engrenagens de alta relação para fornecer o torque necessário e isso dificulta a marcha à . Dê uma olhada neste diagrama explodido na página Servomecanismo da wikipedia :

Servo RC explodido - Este trabalho foi lançado em domínio público por seu autor, Sonett72, no projeto wikipedia. Mecanismo servo pequeno de R / C

  1. motor elétrico

  2. potenciômetro de feedback de posição

  3. engrenagem de redução

  4. braço atuador

Um pequeno giro no eixo do atuador deste servo RC resultaria em um grande (muitos giros) movimento do motor, se você conseguisse movê-lo sem descascar as engrenagens.

Novamente, como em sua aplicação você precisa apenas de torque suficiente para girar o botão, você pode se livrar dessa engrenagem e usar a posição do motor diretamente. Ao remover ou reduzir a engrenagem, você deve encontrar o motor muito livremente. De fato, pode ser necessário adicionar algum atrito (ou deixar algumas engrenagens no lugar) para evitar que o motor fique muito nervoso.

Mark Booth
fonte
Obrigado por tudo isso, realmente ajudou. Meu filho e eu desmontamos um de nossos servos ontem e aprendemos muito a brincar com ele. Acho que posso ter alguns ratos PS / 2 antigos para experimentar também.
Rob Napier
11
@ RobNapier - Estou feliz por poder ajudar. Quando criança, eu adorava levar as coisas em pedaços, até consegui (principalmente) reuni-las e aprendi muito no processo. Hoje em dia, tantas coisas não são peças reparáveis ​​pelo usuário que me pergunto o que as crianças orientadas para os técnicos fazem hoje em dia.
Mark Booth
BTW, eu continuei trabalhando nisso com um servo. O segredo que acredito é adicionar um cinto para permitir o deslizamento entre o motor e a panela.
Rob Napier
@RobNapier - Obrigado pela atualização, sinta-se à vontade para responder à sua própria pergunta com o que você tentou e o que achou que funcionou, você receberá pelo menos um voto positivo. * 8 ')
Mark Booth
0

Não sei se existe uma abordagem normal para isso, mas você definitivamente deveria conferir um vídeo que encontrei anos atrás e ainda me surpreende: The Secret Knock Detecting Lock . Basicamente, o cara construiu um dispositivo baseado em Arduino que você pode conectar à sua porta e configurar uma batida secreta que o acionará para abrir ... Incrível!

Tenho certeza de que apenas o vídeo seria muito bom para inspiração (é a primeira coisa que me veio à mente ao ler o título da sua pergunta), mas depois de uma rápida pesquisa no Google, também encontrei a página instrutível que explica tudo.

Esta é uma parte da página instrutível em que ele diz o motor que usa e dá algumas recomendações:

1 5v motor de redução de engrenagem. Quanto maior o torque, melhor. Aqui está uma boa. (O diâmetro de 14-16 mm é ideal porque se encaixa dentro do tubo de PVC de 1/2 ".) Eu recomendo um com pelo menos 15 onças / in (11 N-cm) de torque a 5v para girar uma trava básica.

georgebrindeiro
fonte
0

Que tal usar a stepper motor, você poderá controlar exatamente a posição.

ATOzTOA
fonte
Bem-vindo ao R.SE - talvez você possa expandir sua resposta, por razões de apoio?
Andrew
Atualmente, esta resposta aborda apenas metade da pergunta. Se o botão girar manualmente, existem truques que você pode usar para ler novamente a nova posição do motor sem precisar de um codificador? Você pode, por exemplo, usar algum tipo de sensor nos fios da bobina do motor para detectar que o motor de passo foi girado manualmente?
Mark Booth
0

Use um potenciômetro rotatório. Conecte-o a um pino ADC do seu microcontrolador e, dependendo da resolução, você pode obter valores entre 256 e 65536, que podem ser usados ​​para definir "paradas".

Tejovanth N
fonte
11
Atualmente, essa resposta responde apenas a metade da pergunta. Isso permitiria que você sentisse a posição atual do botão, mas não mova o botão do controlador.
Mark Booth
0

O padrão da indústria para resolver esse problema é com os faders em movimento .

insira a descrição da imagem aqui

São componentes baratos prontamente disponíveis que fazem exatamente o que você pede, exceto a parte redonda.

Spiked3
fonte