- Componentes necessários
- Construção de braço robótico
- Diagrama de circuito e explicação de trabalho:
- Como operar o braço robótico:
Neste tutorial, vamos projetar um braço robótico baseado em Arduino Uno a partir de algumas placas de papelão e servo motores. Todo o processo de construção foi explicado em detalhes abaixo. Aqui neste projeto o Arduino Uno está programado para controlar servo motores que estão servindo como articulações do braço robótico. Esta configuração também se parece com um guindaste robótico ou podemos convertê-lo em um guindaste, fazendo alguns ajustes fáceis. Este projeto será útil para iniciantes que desejam aprender a desenvolver um Robô Simples com baixo custo ou apenas querem aprender a trabalhar com Arduino e servo motores.
Este braço robótico Arduino pode ser controlado por quatro potenciômetros acoplados a ele, cada potenciômetro é usado para controlar cada servo. Você pode mover esses servos girando os potes para pegar algum objeto; com alguma prática, você pode pegar e mover facilmente o objeto de um lugar para outro. Usamos servos de baixo torque aqui, mas você pode usar servos mais poderosos para pegar objetos pesados. Todo o processo foi bem demonstrado no Vídeo final. Verifique também nossos outros projetos de robótica aqui.
Componentes necessários
- Arduino Uno
- Capacitor 1000uF (4 peças)
- Capacitor 100nF (4 peças)
- Servo motor (SG 90- quatro peças)
- Pote de 10K - Resistor variável (4 peças)
- Fonte de alimentação (5v - de preferência duas)
Servo motor
Primeiro falamos um pouco sobre Servo Motores. Os servo motores são usados principalmente quando há necessidade de movimento ou posição precisa do eixo. Eles não são propostos para aplicações de alta velocidade. Servo motores são propostos para aplicações de baixa velocidade, torque médio e posição precisa. Portanto, esses motores são os melhores para projetar braços robóticos.
Os servomotores estão disponíveis em diferentes formas e tamanhos. Vamos usar servo motores pequenos, aqui usamos quatro servos SG90. Um servo motor terá principalmente fios, um é para tensão positiva, outro é para aterramento e o último é para ajuste de posição. O fio VERMELHO está conectado à alimentação, o fio preto está conectado ao aterramento e o fio AMARELO está conectado ao sinal. Vá até este tutorial de Controle do Servo Motor usando Arduino para aprender mais sobre ele. No Arduino, temos bibliotecas predefinidas para controlar o servo, por isso é muito fácil controlar o servo, o que você aprenderá junto com este tutorial.
Construção de braço robótico
Pegue uma superfície plana e estável, como uma mesa ou uma placa de cartão rígido. Em seguida, coloque um servo motor no meio e cole-o no lugar. Certifique-se de que o grau de rotação está na área apresentada na figura. Este servo atua como base do braço.
Coloque um pequeno pedaço de papelão em cima do primeiro servo e depois coloque o segundo servo neste pedaço de placa e cole-o no lugar. A rotação do servo deve corresponder ao diagrama.
Pegue alguns cartões e corte-os em pedaços de 3cm x 11cm. Certifique-se de que a peça não esteja amolecida. Corte um orifício retangular em uma extremidade (deixe 0,8cm do fundo) apenas o suficiente para encaixar outro servo e na outra extremidade encaixe a engrenagem do servo firmemente com parafusos ou com cola. Em seguida, encaixe o terceiro servo no primeiro orifício.
Agora corte outro pedaço de papelão com os comprimentos mostrados na figura abaixo e cole outra engrenagem na parte inferior desta peça.
Agora cole o quarto e último servo na borda da segunda peça, conforme mostrado na figura.
Com isso, duas peças juntas parecem.
Quando anexamos esta configuração à base, ela deve se parecer com,
Está quase pronto. Precisamos apenas fazer o gancho para agarrar e pegar o objeto como uma mão robótica. Para o gancho, corte mais dois pedaços de cartão com comprimentos de 1cmx7cm e 4cmx5cm. Cole-os como mostrado na figura e cole a engrenagem final bem na borda.
Monte esta peça em cima e com isso concluímos a construção de nosso braço robótico.
Com isso, nosso projeto básico de braço robótico foi concluído e é assim que construímos nosso braço robótico de baixo custo. Agora conecte o circuito na placa de ensaio de acordo com o diagrama de circuito.
Diagrama de circuito e explicação de trabalho:
A conexão do circuito para Arduino Uno Robotic Arm é mostrada abaixo.
A tensão nos resistores variáveis não é completamente linear; será barulhento. Portanto, para filtrar esse ruído, capacitores são colocados em cada resistor, conforme mostrado na figura.
Agora vamos alimentar a tensão fornecida por esse resistor variável (tensão que representa o controle de posição) nos canais ADC do Arduino. Vamos usar quatro canais ADC de UNO de A0 a A3 para isso. Após a inicialização do ADC, teremos o valor digital dos potenciômetros representando a posição necessária ao usuário. Vamos pegar esse valor e combiná-lo com a posição do servo.
O Arduino tem seis canais ADC. Usamos quatro para nosso braço robótico. O UNO ADC tem resolução de 10 bits, portanto os valores inteiros variam de 0 a 1023 (2 ^ 10 = 1024 valores). Isso significa que ele mapeará tensões de entrada entre 0 e 5 volts em valores inteiros entre 0 e 1023. Portanto, para cada (5/1024 = 4,9 mV) por unidade. Saiba mais sobre como mapear os níveis de tensão usando canais ADC no Arduino aqui.
Agora, para que o UNO converta sinal analógico em sinal digital, precisamos Utilizar o Canal ADC do Arduino Uno, com o auxílio das funções abaixo:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bits);
Os canais ADC do Arduino têm um valor de referência padrão de 5V. Isso significa que podemos fornecer uma tensão de entrada máxima de 5 V para conversão ADC em qualquer canal de entrada. Como alguns sensores fornecem tensões de 0-2,5 V, portanto, com uma referência de 5 V, obtemos menor precisão, portanto, temos uma instrução que nos permite alterar esse valor de referência. Portanto, para alterar o valor de referência, temos “analogReference ();”
Como padrão, obtemos a resolução máxima do ADC da placa que é 10bits, esta resolução pode ser alterada usando a instrução (“analogReadResolution (bits);”).
Em nosso circuito de mão robótica, deixamos esta tensão de referência para o padrão, para que possamos ler o valor do canal ADC chamando diretamente a função "analogRead (pino);", aqui "pino" representa o pino onde conectamos o sinal analógico, digamos queremos ler “A0”. O valor do ADC pode ser armazenado em um inteiro como int SENSORVALUE0 = analogRead (A0); .
Agora vamos falar sobre o SERVO, o Arduino Uno possui um recurso que nos permite controlar a posição do servo apenas informando o valor do grau. Digamos que se queremos que o servo esteja em 30, podemos representar diretamente o valor no programa. O arquivo de cabeçalho SERVO ( Servo.h ) cuida de todos os cálculos de taxa de serviço internamente.
#incluir
Aqui, a primeira instrução representa o arquivo de cabeçalho para controlar o SERVO MOTOR. A segunda instrução é nomear o servo; deixamos como servo0, pois vamos usar quatro. A terceira declaração indica onde o pino do servo-sinal está conectado; deve ser um pino PWM. Aqui estamos usando PIN3 para o primeiro servo. A quarta declaração fornece comandos para o posicionamento do servo motor em graus. Se for dado 30, o servo motor gira 30 graus.
Agora, temos a posição do servo SG90 de 0 a 180 e os valores do ADC são de 0 a 1023. Usaremos uma função especial que combina os dois valores automaticamente.
valor do sensor0 = mapa (valor do sensor 0, 0, 1023, 0, 180);
Esta instrução mapeia ambos os valores automaticamente e armazena o resultado no inteiro 'servovalue0' .
É assim que controlamos os Servos em nosso projeto Robotic Arm usando o Arduino. Verifique o código completo abaixo.
Como operar o braço robótico:
Existem quatro potes fornecidos ao usuário. E ao girar esses quatro potenciômetros, fornecemos voltagem variável nos canais ADC do UNO. Portanto, os valores digitais do Arduino estão sob controle do usuário. Esses valores digitais são mapeados para ajustar a posição do servo motor, portanto, a posição do servo está no controle do usuário e, ao girar esses potes, o usuário pode mover as articulações do braço robótico e pode pegar ou agarrar qualquer objeto.