Useless Box Arduino – A Caixa Inútil com Personalidade

A Useless Box Arduino, também conhecida como Caixa Inútil devido á sua tradução para o português, é um projeto desenvolvido com o intuito de entreter as pessoas através de sua “personalidade” e suas reações parcialmente espontâneas à estímulos externos.

Useless Machine Arduino – A caixa inútil em MDF

Useless Box Arduino – A caixa inútil em MDF

Normalmente a Useless Box Arduino está associada a projetos makers que tem como objetivo apresentar a eletrônica de uma maneira mais divertida, inspirando o gosto e a curiosidade de uma maneira diferenciada.

Bastante utilizada em instituições de ensino para conquistar adeptos da eletrônica, este projeto apresenta um grau de complexidade suficiente para ser utilizado também como instrumento de desenvolvimento técnico através de exercícios de programação, por exemplo.

A ideia de funcionamento é simples, ao instigar as pessoas à liga-la, a Useless Box recusa-se a ficar ligada e de maneira autônoma se desliga novamente, cada vez que é ativado o interruptor ela apresenta um padrão comportamental diferente, mas sempre desligando-se ao final.

 

Vídeo Prático Useless Box Arduino

 

Caixa MDF para a Useless Box Arduino

Quem já tentou desenvolver este projeto ou até mesmo já o tenha executado, sabe que a maior dificuldade está no desenvolvimento mecânico do mesmo, uma vez que a Useless Box necessita de conexões específicas e articulações definidas para cada uma das suas ações.

Tendo isto em vista, a Usinainfo desenvolveu uma carcaça em MDF capaz de executar o movimento de até três servos motores, visando um projeto completo e com um exclusivo diferencial, a caixa inútil desenvolvida pela empresa conta com um terceiro servo além do responsável por erguer a tampa e o responsável por desativar o interruptor.

Este terceiro motor possui a finalidade de proporcionar uma “pegadinha”, vinculado a uma bandeira o mesmo dá indícios de que a Useless Box se entregou, que desistiu de insistir em desliga-se, podendo ser utilizado como desfecho para suas ações ou como uma pegadinha, se desligando normalmente ao final de suas ações.

Bandeira vinculada ao terceiro servo motor da Useless Machine

Bandeira vinculada ao terceiro servo motor da Useless Box

Outro diferencial desta versão da Useless Box é a preocupação que se teve com os detalhes que envolviam este projeto, além de terem desenvolvido um equipamento sem necessidade de porcas e parafusos, possibilitando sua montagem através de encaixes firmes e seguros, também se preocuparam com o design do mesmo.

Um sinal da preocupação que se teve com o design de suas peças está na pequena mãozinha desenvolvida para fixação no sistema de desligamento automático e que pode ser observada através da imagem abaixo:

Sistema de desarme do interruptor com design exclusivo

Sistema de desarme do interruptor com design exclusivo

Os fatores mencionados acima e todos os demais que envolvem o desenvolvimento da Useless Box Arduino mostram que temos em mãos um produto que nos possibilitará uma excelente experiência de uso, tendo a possibilidade de adquirir a caixa inútil através do site da Usinainfo, só nos basta desenvolver o esquema elétrico e o código, então vamos lá!

 

Produtos Utilizados na Useless Box Arduino

Abaixo seguem todos produtos utilizados no desenvolvimento do projeto, os quais pode ser adquiridos de forma avulsa conforma listagem. Se você quiser, pode adquirir a versão do Useless Box Arduino Completo, o qual já possui todas as peças necessárias para montagem.

Arduino Uno R3 + Cabo USB;

Case Useless Box Arduino – Caixa Inútil;

Micro Servo 9g Tower Pro MG90S 180° com Engrenagens Metálicas;

– 2 Micro Servo Motor 9g SG90 180°;

Protoboard 170 Pontos para Montagem de Projetos;

Jumper Premium para Protoboard Macho-Macho 20 cm;

Chave Alavanca MTS-102 3T 2 Posições;

Jack P4 Plástico (2,1×5,5mm) para Paineis e Chassis;

Fonte de Alimentação Chaveada 5VDC 1A;

Parafusos e Espaçadores (Arduino UNO e Servos).

Optamos pela utilização de um servo motor metálico tendo em vista a maior força que o mesmo aplica para a função de desligar o interruptor, agregando maior qualidade ao projeto e evitando que eventualmente o projeto não consiga desenvolver tal função.

 

Esquema de Ligação da Caixa Inútil Arduino

Tentaremos replicar o mesmo esquema de ligação utilizado no desenvolvimento do projeto, com a protoboard e como distribuímos as ligações entre motores, Arduino e demais elementos. Segue esquema de ligação da Useless Box / Caixa Inútil:

Esquema de ligação da Useless Machine / Caixa Inútil

Esquema de ligação da Useless Box / Caixa Inútil

Assim como o esquema de ligação, disponibilizamos também o esquema elétrico do referente projeto, verifique através da imagem abaixo:

Esquema elétrico da Useless Machine / Caixa Inútil

Esquema elétrico da Useless Box / Caixa Inútil

Como pudemos ver, o esquema de ligação é bastante simples, o que se torna parcialmente complicado é o posicionamento dos produtos dentro da Useless Box Arduino uma vez que o espaço para distribuição é relativamente pequeno e a quantia de fios relativamente grande.

Para a conexão da fonte de alimentação, utilizamos um Jack P4, com furações já inclusas no corpo da Caixa Inútil e que possibilita a entrada dos 5V necessários para o funcionamento dos motores, uma vez que a corrente de funcionamento dos mesmos excede os limites da placa Arduino.

 

Código de Funcionamento da Useless Box Arduino

O código de funcionamento da Caixa Inútil é parcialmente extenso, porém possui cada uma das reações da sua “personalidade” programadas passo por passo. Um total de sete funções foram programadas para expressar as ações da mãozinha que age para desligar o interruptor quando o mesmo é ligado.

Iniciamos o código utilizando a biblioteca Servo.h, porém a mesmo não possibilitava um ajuste tão preciso do movimento e acabava trepidando bastante a tampa em relação ao dispositivo que à levantava. Tendo isto em vista, a biblioteca Servo.h foi substituída pela biblioteca VarSpeedServo.h, o que possibilitou um controle de velocidade e melhorou o funcionamento da Useless Box Arduino.

Biblioteca VarSpeedServo.h: DOWNLOAD AQUI.

Segue código completo de funcionamento da Caixa Inútil:

Dentre os elementos utilizados no código, um dos que mais pode causar dúvidas é o que segue:

O seu funcionamento é bastante simples, baseado na biblioteca VarSpeedServo.h esta função determina que o servo nomeado bandeira execute um movimento até o ângulo de 45º com uma velocidade de 30 e só execute a próxima função quando tiver chegado ao seu objetivo, ou seja:

As principais funções do código estão todas explicadas com as respectivas observações e comentários necessários para sua compreensão, porém vale ressaltar um item bastante importante quanto ao código, o ato de copiá-lo e colá-lo não significa que irá funcionar em seu projeto sem nenhum tipo de adaptação / alteração, isto ocorre uma vez que os servos podem ser instalados de maneiras diferentes, o que iria alterar os ângulos de funcionamento do projeto.

 

Calibração dos Servos Motores da Useless Box Arduino

O principal fator de funcionamento do projeto está no trabalho executado pelos servos motores, afinal de contas, eles executam todo o trabalho que a Useless Box desenvolve. Tendo isto em vista, é necessária a calibração de posição dos mesmos de acordo com o intervalo de movimento possível para execução de todas as suas funções.

Para entendermos melhor, vamos utilizar o servo motor conectado a mão que desliga o interruptor como exemplo, veja abaixo o código utilizado para deslocamento do braço de sua posição final até sua posição inicial assim como uma imagem que ilustra este procedimento:

Representação dos ângulos de trabalho da Useless Box Arduino

Representação dos ângulos de trabalho da Useless Box Arduino

Para realizar esta calibração, foi utilizado o código de funcionamento do servo motor disponível no Blog da Usinainfo, com ele é delimitado o ângulo de funcionamento do servo e através de um método de tentativa e erro vamos ajustando o ângulo padrão de nossos equipamentos.

Normalmente, quando trabalhamos com os servos SG90 o ângulo inicial será aproximadamente 180º ou aproximadamente 0º, porém apenas testando o servo quando já instalado na Useless Box Arduino para termos ideia destes valores.

O principal cuidado que precisamos ter é quanto ao ângulo final que deve ser o menor possível, evitando pressões excessivas com a alavanca, por exemplo, para que não ocorra danos ao servo e seja necessária possível troca posteriormente.

O artigo utilizado como base para o teste dos servos é o que segue:

Controle de Posição Servo Motor com Arduino

 

Conclusão

Inicialmente, o projeto parece ser extremamente fácil, porém o desenvolvimento geral dele mostrou-se um pouco desafiador, uma vez que existe a necessidade de calibração, vale lembrar que se os ângulos iniciais e finais forem alterados, devem-se alterar todos os demais ângulos do devido servo no código para movimentos compatíveis.

Os demais detalhes de funcionamento são extremamente condicentes com a visão inicial de surpresa e entretenimento, uma vez que para quem tem o primeiro contato com a Useless Box Arduino se surpreende com a reação da mesma.

Em um contexto geral, como o próprio nome já representa, a Caixa Inútil não possui grandes funcionalidades, porém é bastante útil para quem deseja aprimorar os seus conhecimentos e desafiar-se no mundo da programação e desenvolvimento de projetos.

Não deixe de comentar sobre o que achou e quais as experiências que teve ao desenvolver a sua Useless Box Arduino, compartilhe suas dificuldades e ajude os demais que também desejam realizar o seu projeto a encontrar o êxito.

Categorias
ArduinoProjetos

Mecânico de Manutenção com Experiência em Sistemas Embarcados, Automação e Desenvolvimento de Projetos; Graduado nos Cursos de Matemática - URI e Física - UFFS.
11 Número de Comentários
  • Alisson
    17 dezembro 2019 at 11:52
    Deixe seu Comentário

    Extremamente didático, esse codigo esta feito de uma maneira que a gente pode aprender de forma bem dinamica, Obg.!

  • Marcio
    9 janeiro 2020 at 14:40
    Deixe seu Comentário

    Ao compilar o programa, aparece a seguinte mensagem de erro:

    sketch_jan06a:65:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao1() {

    ^

    sketch_jan06a:77:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao2() {

    ^

    sketch_jan06a:88:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao3() {

    ^

    sketch_jan06a:98:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao4() {

    ^

    sketch_jan06a:114:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao5() {

    ^

    sketch_jan06a:137:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao6() {

    ^

    sketch_jan06a:172:16: error: a function-definition is not allowed here before ‘{‘ token

    void reacao7() {

    ^

    sketch_jan06a:195:1: error: expected ‘}’ at end of input

    }

    ^

    Foram encontradas múltiplas bibliotecas para “VarSpeedServo.h”
    Usado: C:\Users\Marcio\Documents\Arduino\libraries\VarSpeedServo
    Não usado: C:\Users\Marcio\Documents\Arduino\libraries\VarSpeedServo-master
    Usando biblioteca VarSpeedServo na pasta: C:\Users\Marcio\Documents\Arduino\libraries\VarSpeedServo (legacy)
    exit status 1
    a function-definition is not allowed here before ‘{‘ token

    • Matheus Gebert Straub
      16 janeiro 2020 at 18:44
      Deixe seu Comentário

      Boa Tarde Marcio! Ao que pude observar na mensagem de erro, o seu software está encontrando algum problema de compatibilidade entre as bibliotecas instaladas. Verifique as bibliotecas da pasta do software Arduino e também as instaladas na pasta de usuário do disco local C, pode estar ocorrendo algum tipo de conflito entre estas.

  • Alex Lucchesi
    22 janeiro 2020 at 17:35
    Deixe seu Comentário

    Boa tarde. Tenho uma pergunta qual tipo de bateria haveria a possibilidade de alimenta-la sem a necessidade de fonte.

    • Equipe Usinainfo
      23 janeiro 2020 at 16:14
      Deixe seu Comentário

      Boa tarde Alex, tudo bem?
      Você pode utilizar um power bank 5V.

      • Alex Lucchesi
        24 janeiro 2020 at 20:04
        Deixe seu Comentário

        Uma bateria de 3,7 volts por 2A com carregador TP4056, conseguiria funcionar?

  • Alex Lucchesi
    2 fevereiro 2020 at 14:00
    Deixe seu Comentário

    Boa tarde… Após realizar algumas mudanças para calibrar os servos… Tudo está funcionando perfeitamente… Gostaria de puder me explicar como faço para colocar esta rotina abaixo dentro do seu projeto… Gostaria de ter um led com efeito fader dentro da caixa. Abaixo o código… Pode me ajudar?

    //Constante que representa o pino onde o positivo do
    //led será ligado.
    const int led = 10;

    //Controladores do efeito de fader
    int brilho = 0;
    int fader = 5;
    boolean acende = true;
    boolean apaga = false;

    //Método setup, executado uma vez ao ligar o Arduino.
    void setup() {
    //Definindo o pino led como de saída.
    pinMode(led,OUTPUT);
    }

    //Método loop, executado enquanto o Arduino estiver ligado.
    void loop() {
    analogWrite(led,brilho);

    //Processo de acendimento do led usando o efeito fader.
    if (acende == true) {
    if (brilho 0) {
    brilho = brilho – fader; // diminuindo o brilho do led.
    } else {
    acende = true;
    apaga = false;
    }
    }

    delay(20);
    }

  • Felipe Oliveira Resende
    1 abril 2020 at 15:10
    Deixe seu Comentário

    Faltou o passo a passo da montagem da caixa.

    • Matheus Gebert Straub
      7 abril 2020 at 14:29
      Deixe seu Comentário

      Boa Tarde Felipe! Caso esteja com problema na montagem do seu equipamento, entre em contato com a Usinainfo através do e-mail contato@usinainfo.com.br que eles farão o possível para lhe auxiliar.

  • JUAN MARTIN CORA
    3 maio 2020 at 22:47
    Deixe seu Comentário

    Seria legal incluir um “aleatorio entre” com os 7 codigos, ou os quantos mais forem sendo criados..

    • Matheus Gebert Straub
      7 maio 2020 at 10:50
      Deixe seu Comentário

      Bom Dia Juan! Realmente seria uma função bem legal de incluir, traria um ar de surpresa já que assim teoricamente sempre sabemos o próximo movimento.

    Deixe seu Comentário

    *

    *

    Sobre nós

    Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

    Sugestões

    Artigos Relacionados