Como fazer um arduino DIY e braço robótico controlado por Bluetooth?

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.

  1. .Coloque a placa Arduino Nano na placa de ensaio. O Arduino será alimentado através dos fios positivo e negativo do adaptador.
  2. 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.
  3. 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.
  4. 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.

  1. Baixe a versão mais recente do Arduino IDE em Arduino.
  2. 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

  3. Clique no menu Ferramentas e defina o quadro para Arduino Nano no menu suspenso.

    Tabuleiro de Configuração

  4. 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

  5. No mesmo menu de ferramentas, defina o processador para ATmega328P (antigo bootloader).

    Processador

  6. 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

  7. 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.