No século recente, a Robótica é o campo de pesquisa mais emergente. Os robôs assumiram o controle de quase tudo que os humanos costumavam fazer. Podemos ver robôs autônomos realizando várias tarefas em nossa sociedade. Existem também alguns robôs controlados remotamente que nos ajudam a realizar várias operações. Desde a fabricação de nanocircuitos no campo da engenharia até a realização de cirurgias complexas no campo da medicina, os robôs são mais confiáveis do que os seres humanos.
Braço robótico
Neste projeto, vamos fazer um Braço Robótico que será controlado por um microcontrolador Arduino. Ele será controlado via Bluetooth com a ajuda de um aplicativo de controle remoto Android.
Como controlar um braço robótico usando o Arduino?
Agora como sabemos o resumo do nosso projeto. Vamos reunir mais informações sobre o circuito e começar a construir um braço robótico controlado por Bluetooth e controlá-lo via Bluetooth.
Etapa 1: Coletando os componentes
A melhor abordagem para iniciar qualquer projeto é fazer uma lista completa de componentes. Esta não é apenas uma forma inteligente de iniciar um projeto, mas também nos poupa de muitos inconvenientes no meio do projeto. Uma lista de componentes deste projeto é fornecida abaixo:
- HC-05 Transceptor Serial Bluetooth Sem Fio
- Adaptador 6V
- Jumper Wires
- Tábua de pão
Etapa 2: estudar os componentes
Como temos uma lista completa de todos os componentes que usaremos, vamos dar um passo à frente e fazer um breve estudo de todos os componentes.
Arduino Nano é uma placa microcontrolada que realiza várias operações em diferentes circuitos. Requer um Código C que informa ao conselho quais tarefas executar e como. Possui 13 pinos de E / S digitais, o que significa que podemos operar 13 dispositivos diferentes. O Arduino Nano tem exatamente a mesma funcionalidade do Arduino Uno, mas em um tamanho bem pequeno. O microcontrolador na placa Arduino Nano é ATmega328p. Se você deseja controlar mais de 13 dispositivos, use o Arduino Mega.
Arduino Nano
HC-05 Transceptor Serial Bluetooth Sem Fio : Precisamos de comunicação sem fio neste projeto, então usaremos a tecnologia Bluetooth e para esse módulo que será usado é o HC-05. Este módulo tem várias taxas de baud programáveis, mas a taxa de baud padrão é 9600 bps. Pode ser configurado como mestre ou escravo, enquanto outro módulo HC-06 pode funcionar apenas no modo escravo. Este módulo possui quatro pinos. Um para VCC (5V) e os três restantes para GND, TX e RX. A senha padrão deste módulo é 1234 ou 0000 . Se quisermos nos comunicar entre dois microcontroladores ou nos comunicarmos com qualquer dispositivo com funcionalidade Bluetooth como um telefone ou laptop, o HC-05 nos ajuda a fazer isso. Vários aplicativos Android já estão disponíveis, o que torna esse processo muito mais fácil.
Módulo Bluetooth HC-05
Um típico Braço robótico é composto de vários segmentos e geralmente possui 6 juntas. Ele contém um mínimo de 4 motores de passo que são controlados pelo computador. Os motores de passo são diferentes de outros motores CC. Eles se movem precisamente em incrementos exatos. Esses braços robóticos são usados para realizar várias operações. Podemos operá-los manualmente através de um controle remoto ou podemos programá-los para funcionar de forma autônoma.
Braço robótico.
Etapa 3: montagem dos componentes
Agora como sabemos sobre o funcionamento de todos os principais componentes usados. Vamos começar a montá-los e fazer um circuito para construir um braço robótico controlado remotamente.
- .Coloque a placa Arduino Nano na placa de ensaio. O Arduino será alimentado através dos fios positivo e negativo do adaptador.
- Coloque o módulo Bluetooth na placa de ensaio também. Ligue o módulo Bluetooth através do Arduino. Conecte o pino Tx do módulo Bluetooth ao pino Rx da placa Arduino Nan e conecte o pino Rx do módulo Bluetooth ao pino Tx da placa Arduino Nano.
- Como sabemos, existem 4 motores de passo. Cada um tem um nome técnico. Eles são chamados Cotovelo , ombro , Base, e Garra . O Vcc e o aterramento de todos os motores serão comuns e conectados ao positivo e ao negativo do adaptador de 6V. O pino de sinal de todos os quatro motores será conectado ao pino 5, pino 6, pino 9 e pino 11 do Arduino Nano.
- Certifique-se de que as conexões feitas estejam de acordo com o seguinte diagrama de circuito.
Diagrama de circuito
Etapa 4: Introdução ao Arduino
Se você ainda não está familiarizado com o IDE do Arduino, não se preocupe porque um procedimento passo a passo para configurar e usar o IDE do Arduino com uma placa de microcontrolador é explicado abaixo.
- Baixe a versão mais recente do Arduino IDE em Arduino.
- Conecte sua placa Arduino Nano ao seu laptop e abra o painel de controle. Então, clique em Hardware e som . Agora clique em Dispositivos e Impressoras. Aqui, encontre a porta à qual a placa do microcontrolador está conectada. No meu caso é COM14 mas é diferente em computadores diferentes.
Encontrar o porto
- Clique no menu Ferramentas e defina o quadro para Arduino Nano no menu suspenso.
Tabuleiro de Configuração
- No mesmo menu de ferramentas, defina a porta para o número da porta que você observou antes no Dispositivos e Impressoras .
Porta de configuração
- No mesmo menu de ferramentas, defina o processador para ATmega328P (antigo bootloader).
Processador
- Para escrever código para operar servo motores, precisamos de uma biblioteca especial que nos ajudará a escrever várias funções para servo motores. Esta biblioteca está anexada junto com o código, no link abaixo. Para incluir a biblioteca, clique em Esboço> Incluir Biblioteca> Adicionar ZIP. Biblioteca.
Incluir Biblioteca
- Baixe o código anexado abaixo e cole-o em seu Arduino IDE. Clique no Envio botão para gravar o código na placa do microcontrolador.
Envio
Para baixar o código, Clique aqui.
Etapa 5: Baixar o aplicativo
Como agora montamos todo o circuito e carregamos o código na placa do microcontrolador. permite baixar um aplicativo móvel que funcionará como um controle remoto para o braço robótico. Um aplicativo gratuito está disponível na loja Google Play. O nome do aplicativo é o Little Arm Robot Control . Para fazer uma conexão Bluetooth, ligue o Bluetooth no seu celular. Acesse as configurações e emparelhe seu celular com o módulo HC-05. Depois de fazer isso, pressione o botão Bluetooth no aplicativo. Se ficar verde, significa que o aplicativo agora está conectado e pronto para operar o braço robótico. Existem controles deslizantes para definir a operação do braço robótico conforme desejado.
Aplicativo
Etapa 6: Compreendendo o Código
O código é bem comentado e fácil de entender. Ainda assim, é brevemente explicado a seguir.
1. No início, uma biblioteca é incluída para escrever um código para operar servo motores. Outra biblioteca math.h está incluído para executar diferentes operações matemáticas no código. Quatro objetos também são inicializados para serem usados para os quatro servo motores.
#include // biblioteca arduino #include // biblioteca c padrão #define PI 3.141 Servo baseServo; Servo ombroServo; Servo cotoveloServo; Servo gripperServo; comando int;
2. Em seguida, uma estrutura é declarada para assumir valores para os servo motores de base, ombro e cotovelo.
struct jointAngle {// declarando uma estrutura int base; ombro interno; cotovelo interno; };
3. Depois disso, algumas variáveis são inicializadas para armazenar a aderência, o atraso e a posição desejados do servo motor. a velocidade é definida como 15, e um objeto é feito para tirar o valor do ângulo na estrutura.
int neededGrip; int gripperPos; int desejadoDelay; int servoSpeed = 15; int pronto = 0; struct jointAngle desejadoAngle; // ângulos desejados dos servos
Quatro. configuração vazia () é uma função usada para definir os pinos do Arduino como INPUT ou OUTPUT. Aqui nesta função, declaramos que o pino dos motores será conectado a quais pinos do Arduino. Também é garantido que o Arduino não leia a entrada serial por muito tempo. A posição inicial e a taxa de transmissão também são definidas nesta função. A taxa de transmissão é a velocidade pela qual a placa do microcontrolador se comunicará com os servos e o módulo Bluetooth conectado.
void setup () {Serial.begin (9600); baseServo.attach (9); // conecta o servo base no pino 9 ao objeto servo ombroServo.attach (10); // conecta o servo de ombro no pino 9 ao objeto servo elbowServo.attach (11); // conecta o servo de cotovelo no pino 9 ao objeto servo gripperServo.attach (6); // anexa o servo da garra no pino 9 ao objeto servo Serial.setTimeout (50); // garante que o arduino não leia serial por muito tempo Serial.println ('started'); baseServo.write (90); // posições iniciais dos servos ShoulderServo.write (150); elbowServo.write (110); pronto = 0; }
5 servoParallelControl () é uma função que serve para detectar a posição atual do braço robótico e movê-lo de acordo com o comando dado através do aplicativo móvel. Se a posição atual for inferior à real, o braço se moverá para cima e vice-versa. Esta função retornará o valor da posição atual e a velocidade do servo.
int servoControle Paralelo (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // lê a posição atual int newPos = startPos; // int theSpeed = speed; // define onde está a posição em relação ao comando // se a posição atual é menor que o movimento real para cima if (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); atraso (theSpeed); return 0; } else {return 1; }}
6 void loop () é uma função que é executada repetidamente em um loop. Esta função lê os dados que chegam em série e armazena o ângulo de cada servo na estrutura. Inicialmente, o status de todos os servos é definido como zero. Aqui uma função servoParallelControl () é chamado e os parâmetros são passados nele. esta função retornará o valor e será armazenado em uma variável de status.
void loop () {if (Serial.available ()) {pronto = 1; desejadoAngle.base = Serial.parseInt (); desejadoAngle.shoulder = Serial.parseInt (); desejadoAngle.elbow = Serial.parseInt (); desejadoGrip = Serial.parseInt (); desejadoDelay = Serial.parseInt (); if (Serial.read () == ' n') {// se o último byte for 'd' então pare de ler e execute o comando 'd' significa 'feito' Serial.flush (); // limpa todos os outros comandos empilhados no buffer // envia a conclusão do comando Serial.print ('d'); }} int status1 = 0; int status2 = 0; int status3 = 0; int status4 = 0; int feito = 0; while (done == 0 && ready == 1) {// move o servo para a posição desejada status1 = servoParallelControl (desejadoAngle.base, baseServo, desejadoDelay); status2 = servoParallelControl (desejadoAngle.shoulder, ombreServo, desejadoDelay); status3 = servoParallelControl (desejadoAngle.elbow, elbowServo, desejadoDelay); status4 = servoParallelControl (desejadoGrip, gripperServo, desejadoDelay); if (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {done = 1}} // fim do tempo}
Bem, esse foi todo o procedimento de fazer um braço robótico. Depois de gravar o código e baixar o aplicativo, o robô deve funcionar perfeitamente bem quando os controles deslizantes no aplicativo são movidos. Você também pode programar o braço para trabalhar de forma autônoma para realizar a tarefa desejada.