Pular para o conteúdo

8 de junho de 2020

Tutorial para montagem de “Caixa Inútil” (Useless Box)

por proesicomponentes

Este tutorial serve pra você, apaixonado por eletrônica, montar sua caixa inútil, no formato e com o material que estiver à sua disposição, como você pode facilmente achar alguns layouts para impressão, e desenvolver com papelão, de forma mais pratica, ou desenvolver com uma caixa de madeira que foi o caminho que escolhemos. É um projeto simples em seu desenvolvimento, e demanda de poucos materiais.

Material:

01 arduino (uno R3,  nano, etc)

02 servos 180° – usado foi o 9G DXW 90 Tower Pro

01 LM7805

01 BD 139

01 Capacitor 330uf 16V

01 Capacitor 470 16V

01 Fonte 7,5Vdc

01 placa ilhada 12,9 x 2

01 caixa a sua escolha

01 ursinho, a sua escolha. Uma dica, quanto mais fofinho, e olhos grandes melhor o resultado.

Fios de Jumper

Na internet, existem outros tutorias que ensinam montar caixas sem o ursinho, só com o braço mecânico. Para começar a montagem, calculamos o espaço que o arduino iria ocupar junto com o braço e o arduino, conseguimos posicionar no centro da caixa. A preparação do ursinho é a parte mais dolorosa.

fotos1

A cabeça do urso fica colada na tampa e o tecido preto, serve para dar um acabamento quando a caixa estiver funcionando. Agora montamos o urso e o arduino para definir o tamanho dos suportes, disposição da placa e do botão.

fotos2

Para facilitar, montamos gabaritos em papel para depois poder fazer as montagens. Você não vai acertar as posições de primeira, no nosso caso foram montados 3 gabaritos antes de acertar no tamanho da pata. Depois da peças montadas, botão fixado, cabeça do urso colada, o resultado será este.

foto3

Detalhes importantes, o tecido da pata foi usado o tecido do braço do ursinho, sobre conjunto para fazer a abertura da tampa, vários tutorias usam somente uma madeira deslizando pela tampa, optamos por algo fixo na tampa, mais trabalhoso, porém não corre o risco da tampa cair sozinha durante os movimentos ou de ser aberto manualmente. Terminado a parte mecânica, agora montamos o arduino e suas ligações.

Os servos, até podem ser alimentado pelo próprio arduino, porém não é recomendado, ideal é usar alimentação externa, por isso que usamos capacitor na 470 uf antes do LM 7805 e na saída um de 330uf montados numa placa ilhada para ficar organizado. Depois da caixa montada, os servos quando energizados se deslocavam para a posição de 90 graus e acabavam por se trancar, para isso não acontecer, foi montado um transistor BD139 como chave (enable) dos servos.

foto4

Para o arduino, saem os pinos de controle dos servos, da chave alavanca, da base do BD139. Voce vai começar a programar e vai alterando os angulos dos servos, evite batidas fortes das peças ou que os servos trabalhem forçados de mais, isso vai evitar desgate ou quebra dos servos.

 

Para Poupar tempo ou servir como exemplo, segue o programa usado. As interações podem ser programadas como você bem entender. Nosso programa foi programado para ter 5 interações diferentes e após isto, o programa se encerra.

/*

* Projeto caixa inútil – Unsless box

*

* Projeto desenvolvido por Venancio Miranda e Proesi Componentes

*

* Material:

* 02 servos 9g dxw90

* 01 chave MTS alavanca L/D

* 01 BD 139

* 01 LM 7805

* 01 Capacitor 330uf 16V

* 01 Capacitor 470uf 16V

* 01 placa ilhada 12,9 x 2

*/

#include <Servo.h>

#define enablePin  11

#define botao      10

#define servo_pata  9

#define servo_tampa 8

// Posições da tampa

#define fecha   152

#define meio     70

#define abre      0

#define bate    165

#define fresta  140

#define Tbatida 100

// Posições pata

#define guarda 180

#define aceno   60

#define desl    10

boolean limite = true;

int count = 0, button = 0 , enable = 0;

Servo pata;

Servo tampa;

// Função que orienta posição dos servos e delay entre nova movimentação

void comando (Servo nome_servo,int grau ,int tempo)

{

nome_servo.write(grau);

delay(tempo);

}

 

void setup()

{

pinMode(botao , INPUT_PULLUP);

pinMode(enablePin , OUTPUT);

digitalWrite(enablePin,LOW);

 

pata.attach(servo_pata);

tampa.attach(servo_tampa);

}

 

 

void loop()

{

while(limite)                     //While que executa limite de execuções

{

digitalWrite(enablePin,LOW);

button = digitalRead(botao);

 

if(button == LOW)

{

switch(count)                 // contagem e sequencia dos movimentos

{

case 0:

digitalWrite(enablePin,HIGH);

delay(500);

comando(tampa , abre , 750);

comando(pata , desl, 1000);

comando(pata , guarda , 1000);

comando(tampa, fecha , 2000);

count++;

break;

 

case 1:

digitalWrite(enablePin,HIGH);

delay(1000);

comando(tampa , meio, 2000);

comando(tampa, fecha, 1000);

comando(tampa , abre , 1000);

comando(pata , desl, 1000);

comando(pata , guarda , 1000);

comando(tampa, fecha , 2000);

count++;

break;

 

case 2:

digitalWrite(enablePin,HIGH);

delay(2000);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , abre , 1000);

comando(pata , desl, 1000);

comando(pata,aceno,300);

comando(pata,desl,300);

comando(pata,aceno,300);

comando(pata,desl,300);

comando(pata,aceno,300);

comando(pata,desl,2000);

comando(pata , guarda , 1000);

comando(tampa, fecha , 2000);

count++;

break;

case 3:

digitalWrite(enablePin,HIGH);

delay(3000);

comando(tampa , abre , 750);

comando(pata , desl, 1000);

comando(pata , guarda , 1000);

comando(tampa, fecha , 1500);

comando(tampa , abre , 1500);

comando(pata,desl,300);

comando(pata,aceno,300);

comando(pata,desl,300);

comando(pata,aceno,300);

comando(pata,desl,2000);

comando(pata,guarda,1000);

comando(tampa, fecha , 2000);

comando(tampa , meio, 2000);

comando(tampa, fecha, 1000);

count++;

break;

 

case 4:

digitalWrite(enablePin,HIGH);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

comando(tampa , fresta , Tbatida);

comando(tampa , bate   , Tbatida);

 

comando(tampa, abre, 750);

comando(tampa, bate, 750);

comando(tampa, abre, 1250);

comando(pata , desl, 1000);

comando(pata , guarda , 1000);

comando(tampa, fecha , 2000);

limite = false;                         //encerra while

break;

}

}

}

}Nosso resultado final foi este, já com os devidos acabamentos.

foto5

Leia mais de Dicas

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Observação: HTML é permitido. Seu endereço de e-mail nunca será publicado.

Assinar os comentários

%d blogueiros gostam disto: