Índice:
- Etapa 1: ideias ou soluções potenciais
- Etapa 2: Fazendo a montagem
- Etapa 3: projetando o equipamento cego
- Etapa 4: codificando o cego
- Etapa 5: toques finais
- Etapa 6: Avaliação do Projeto
Vídeo: Abridor cego automático usando EV3: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Tenho um conjunto de persianas de enrolar no meu quarto que frequentemente me esqueço de abrir ou fechar de manhã ou à noite. Quero automatizar a abertura e o fechamento, mas com uma substituição de quando para quando estou trocando.
Etapa 1: ideias ou soluções potenciais
Depois de pesquisar vários sites como YouTube, Instructables e Thingiverse, descobri que a solução mais comum era motorizar o carretel que enrolava e desenrolava as cortinas usando um motor de passo ou um servo. Encontrei 2 opções principais com várias vantagens e desvantagens.
Ideia 1: Método do carretel em que o motor e a engrenagem são alojados dentro do carretel. Isso tem as vantagens de ser um método simples e elegante, mas tem as desvantagens de exigir modificações importantes na cortina, o cabo não pode mais ser usado e o conjunto seria muito difícil de acessar para manutenção quando implementado.
Idéia 2: método do cabo em que o motor e a engrenagem são alojados no cabo. Isso tem a vantagem de ser mais simples e a montagem pode ser facilmente acessada. No entanto, tem a desvantagem de ser feio e volumoso, bem como o facto de ter de ser preso ao peitoril quando implementado.
Eu prefiro o método do cabo porque é uma solução muito mais simples que não inibe o uso manual do cabo, e o cego não exigirá nenhuma modificação importante. Pretendo torná-lo o mais secreto e compacto possível quando fizer a versão final com um ESP8266.
Etapa 2: Fazendo a montagem
Fiz este projeto usando meu Lego mindstorms EV3, que tem a funcionalidade de que preciso para mostrar que o projeto poderia funcionar, e estou familiarizado com o software que definitivamente ajudou muito. Uma vez que a cortina usa uma corrente de esferas para acionar o carretel, com o qual as engrenagens de Lego são incompatíveis, decidi que a melhor solução era projetar uma engrenagem com o espaçamento correto da esfera no lado externo - com o orifício padrão "em forma de cruz" no centro, onde imprimiria o design em 3D. Neste ponto, também fiz um botão de calibração e anexei um sensor de luz à minha janela, bem como um botão para atuar como o override.
Etapa 3: projetando o equipamento cego
Desmontei a cortina para ver como ficava a manivela com mais detalhes. Durante a desmontagem, encontrei uma pequena engrenagem de 16 dentes que estava presa por uma bobina tensionada, essa era a peça que eu procurava. Depois de projetar uma réplica do equipamento, adicionei os furos compatíveis com Lego necessários, imprimi as 3 partes separadas e, finalmente, uni-as com supercola. Tive problemas inicialmente em tornar a peça Lego compatível, no sentido de que minha impressora 3D não tinha a resolução de fazer o orifício “x” o suficiente, no entanto, não teve problemas com os orifícios circulares de cada lado dele. Então, substituí o “x” por um orifício circular e ele imprimiu bem. Então, depois de alguns testes, pude ver que ele aguentava o torque e o peso da cortina. Vou linkar meus designs para o equipamento abaixo ou você pode encontrá-lo no Thingiverse em:
Etapa 4: codificando o cego
Eu queria um código que abrisse e fechasse a cortina automaticamente quando chegasse a um nível de luz específico, mas que também tivesse um botão de anulação para que alguém pudesse abrir ou fechar a cortina quando quisesse. Vinculei meu GitHub à versão final do código aqui:
O código para o projeto me levou vários dias para ser concluído, eu tinha a lógica básica do programa funcionando corretamente com o sensor de luz, porém o botão de cancelamento momentâneo não estava funcionando corretamente. Ele alterou o estado da cortina ao ser pressionado, mas faltou a função de “travamento” que significaria que a cortina permaneceria na posição - significando que a cortina imediatamente a rolaria de volta ao que era antes. Corrigi isso usando um bloco “esperar até”, ligado a uma porta lógica OR que lê os valores do sensor de luz e do sensor de toque, que explicarei a seguir.
O código começa calibrando os motores e a cortina, começando com a cortina totalmente aberta e abaixando-a até atingir o sensor de toque na parte inferior, contando quantos quartos de volta são necessários para chegar ao fundo, que é salvo como "Rotações necessárias" variável. Em seguida, ele grava "false" na variável “BlindOpen” que é usada para rastrear a posição do blind. Nesse ponto, o código se divide em 4 loops.
Um desses loops é o loop “Buttonstate” que publica continuamente o estado do botão em uma variável chamada “ButtonPressed”. Isso elimina a necessidade de vários blocos de botão serem colocados no script.
O segundo loop é o “claro ou escuro” que compara continuamente o nível de luz fora da minha janela, a uma constante definida anteriormente no código. Se o resultado estiver abaixo dessa constante, o loop escreverá “falso” na variável “ItIsLight”, enquanto se estiver acima do valor ele escreverá “verdadeiro”.
O terceiro ciclo contém uma lista numérica de 3 opções que basicamente dizem ao cego o que fazer, 0 = cego para baixo, 1 = cego para cima, 2 = não fazer nada porque cego está no lugar correto. O loop começa lendo a variável “BlindShould” que especifica a tarefa correta que o cego deve estar fazendo, então realiza essa tarefa, altera a variável “BlindOpen” para a opção correta e então fica ocioso até que a variável “BlindShould” seja alterada onde ele se repete. Ele usa o valor “RotationsNeeded”, bem como um poder de +/- 100% para mover a persiana totalmente aberta ou fechada.
O quarto e último loop é o mais complexo, é o loop “Decider” que lida com todos os dados e decide o que fazer com cada permutação. Ele faz isso usando "bifurcações na estrada" com base em lógica, onde "o botão é pressionado", "Nível de luz", "Abertura às cegas" são as perguntas verdadeiras ou falsas. Todas as permutações têm uma resposta codificada, que é 0 = cego para baixo, 1 = cego para cima ou 2 = não fazer nada - este valor é escrito na variável “BlindShould” que é então tratada por um loop anterior. Algumas respostas irão então esperar que as variáveis “ItIsLight” e / ou “ButtonPressed” mudem antes de terminar o script, este é apenas o caso para as permutações ativadas pelo botão, caso contrário, ele tentaria imediatamente corrigir sua posição, significando que a cortina retornaria ao seu estado original. Esse processo é então executado em loop para criar um sistema automático robusto e relativamente simples, que pode ser facilmente adicionado e depurado. Ufa.
Etapa 5: toques finais
Decidi posteriormente conectar uma fonte de alimentação de 9 V ao meu EV3 usando alguns pinos de madeira e parafusos como "baterias", isso fez com que o produto não dependesse de baterias e me impediu de ter que trocar as baterias a cada dois dias.
Etapa 6: Avaliação do Projeto
Acho que o projeto correu bem no geral, acabei com um protótipo funcional para a montagem de persianas automáticas, que posso pegar todas as informações relevantes que encontrei durante o projeto e implementar na versão final. Codifiquei o dispositivo com sucesso e, mais tarde, não encontrei nenhum grande problema com o código até agora. Eu teria gostado de tornar o dispositivo mais atraente visualmente, mas mais uma vez é uma prova de conceito e vou me esforçar para torná-lo bonito quando fizer a versão final com um ESP8266. Quando eu fizer o projeto novamente, vou projetar o motor para ficar dentro da cortina, pois isso seria mais fácil de esconder. A maior lição que aprendi é depurar logicamente e pensar, documentar e testar meu código antes de implementá-lo.
Recomendado:
Abridor de porta de garagem com feedback usando Esp8266 como servidor da Web: 6 etapas
Abridor de porta de garagem com feedback usando Esp8266 como servidor da Web .: Olá, vou mostrar como fazer uma maneira simples de fazer um abridor de porta de garagem.-ESP8266 é codificado como servidor da web, a porta pode ser aberta em qualquer lugar do mundo-Com feedback, você saberá se a porta está aberta ou fechada em tempo real - Simples, apenas um atalho para fazer i
Arduino Home Automation, abridor de porta automático: 6 etapas
Arduino Home Automation, abridor de porta automático: inscreva-se no meu curso 'Eletrônica em poucas palavras' aqui: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARKTambém verifique meu canal no youtube aqui para mais projetos e tutoriais de eletrônica: https://www.youtube.com/channel/UCelOOR
Stick cego para ultrassom inteligente: 5 etapas
Smart Ultrasound Blind Stick: Quase 39 milhões de pessoas no mundo são cegas hoje. A maioria deles usa uma bengala branca normal ou uma cega para obter assistência. Neste instrutível, vamos fazer uma cortina eletrônica inteligente que não só auxilie nas persianas, mas também nos sentidos
Como descrever uma série de TV para um amigo cego .: 4 etapas (com fotos)
Como descrever uma série de TV para um amigo cego .: Algumas séries de TV são descritas (DVS), mas muitas não, e se você for cego ou deficiente visual, as coisas podem ficar um pouco confusas. Você pode pedir a um amigo que digite uma descrição (que esse amigo vai começar a achar um pouco demorada), mas registre
Abridor automático de cegos: 11 etapas
Abridor de cegas automático: http: //contraptionmaker.info Vivemos em uma casa de fazenda de 150 anos com as janelas originais. Apesar do isolamento e do novo revestimento, é como viver em uma peneira, no inverno. Para combater este problema, instalamos plástico nas janelas para tentar