Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

Componentes e Materiais

Arduino Nano R3 1
Módulo Bluetooth HC-05 1
Conversor Buck LM2596 1
Servos MG-90s 3
Motores DC tipo 130 2
Diodo retificador FR207 1
MOSFET RFP30N06LE 1
Plug jack 2.1x5.5mm 1
Resistores 10kΩ 1
Resistores 330Ω 1
Resistores 680Ω 1
Parafusos autoatarraxantes M2x10 30
Parafuso chato M5x20 4
Conectores Dupont 15
Haste de metal 1.5mm 1
Fios 1 conjunto
Tubo termorretrátil 1
Elástico 20mm 1
Fonte 9V (mínimo 2.5 amps) 1

Ferramentas e Máquinas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Obrigado por conferir meu projeto de torreta Nerf controlada por Bluetooth. Não acho que haja muito a explicar aqui, esta é uma torreta Nerf controlada via Bluetooth a partir de um dispositivo Android ou PC.

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem
Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem
Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

Mais detalhes em: littlefrenchkev.com/bluetooth-nerf-turret

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

COMO FUNCIONA?

Nada super complexo. O movimento de inclinação (tilt) e rotação (pan) é feito por 2 servos acionados por um Arduino Nano.

Os dardos são disparados usando 2 rolos girados por 2 pequenos motores DC. Um servo empurra os dardos para dentro dos rolos quando a ordem de disparo é enviada. O carregador comporta 7 dardos.

Como mencionado acima, é controlado via Bluetooth a partir de um dispositivo Android ou PC.

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

COMO CONSTRUIR?

MONTAGEM:

O tripé e o carregador vêm em duas versões diferentes. Uma projetada para servos MG-90s e outra para servos MG996r. Servos MG996r podem consumir muita energia. Certifique-se de que sua fonte de alimentação dará conta do recado se decidir usá-los.

Tripé:
Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem
Carregador:
Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

FIAÇÃO:

SOFTWARE E TESTES!!!

ALGUMAS FOTOS EXTRAS, POR QUE NÃO!!!

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem
Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem
Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

Código

Código Arduino

Código para carregar no Arduino. O código permanece o mesmo seja qual for o método de controle escolhido (app Android ou PC).

#include <Servo.h> //-----Declara servos e variáveis
Servo recoil_servo;
Servo pan_servo;
Servo tilt_servo;
const byte pan_limit_1 = 0;
const byte pan_limit_2 = 180;
const byte tilt_limit_1 = 65;
const byte tilt_limit_2 = 180;
const byte recoil_rest = 180; // Ângulo do servo em repouso
const byte recoil_pushed = 125; // Ângulo que o servo precisa alcançar para empurrar o dardo
//-----Variáveis relacionadas ao tratamento de dados seriais
byte byte_from_app;
const byte buffSize = 30;
byte inputBuffer[buffSize];
const byte startMarker = 255;
const byte endMarker = 254;
byte bytesRecvd = 0;
boolean data_received = false;
//-----Variáveis relacionadas a tempo de motor e disparo
bool is_firing = false;
bool can_fire = false;
bool recoiling = false;
unsigned long firing_start_time = 0;
unsigned long firing_current_time = 0;
const long firing_time = 150;
unsigned long recoil_start_time = 0;
unsigned long recoil_current_time = 0;
const long recoil_time = 2 * firing_time;
const byte motor_pin = 12;
boolean motors_ON = false;

void setup() {
  pinMode(motor_pin, OUTPUT);
  digitalWrite(motor_pin, LOW);
  recoil_servo.attach(9);
  pan_servo.attach(10);
  tilt_servo.attach(11);
  recoil_servo.write(recoil_rest);
  pan_servo.write(90);
  delay(1000);
  tilt_servo.write(105);
  Serial.begin(9600);
}

void loop() {
  getDataFromPC();
  set_motor();
  if (data_received) {
    move_servo();
    set_recoil();
    set_motor();
  }
  fire();
}

void getDataFromPC() {
  if (Serial.available()) {
    byte_from_app = Serial.read();
    if (byte_from_app == 255) {
      bytesRecvd = 0;
      data_received = false;
    } else if (byte_from_app == 254) {
      data_received = true;
    } else {
      inputBuffer[bytesRecvd] = byte_from_app;
      bytesRecvd++;
      if (bytesRecvd == buffSize) {
        bytesRecvd = buffSize - 1;
      }
    }
  }
}

void move_servo() {
  byte pan_servo_position = map(inputBuffer[0], 0, 253, pan_limit_2, pan_limit_1);
  pan_servo.write(pan_servo_position);
  byte tilt_servo_position = map(inputBuffer[1], 0, 253, tilt_limit_2, tilt_limit_1);
  tilt_servo.write(tilt_servo_position);
}

void set_recoil() {
  if (inputBuffer[3] == 1) {
    if (!is_firing && !recoiling) {
      can_fire = true;
    }
  } else {
    can_fire = false;
  }
}

void set_motor() {
  if (inputBuffer[2] == 1) {
    digitalWrite(motor_pin, HIGH);
    motors_ON = true;
  } else {
    digitalWrite(motor_pin, LOW);
    motors_ON = false;
  }
}

void fire() {
  if (can_fire && !is_firing && motors_ON) {
    firing_start_time = millis();
    recoil_start_time = millis();
    is_firing = true;
  }
  firing_current_time = millis();
  recoil_current_time = millis();
  if (is_firing && firing_current_time - firing_start_time < firing_time) {
    recoil_servo.write(recoil_pushed);
  } else if (is_firing && recoil_current_time - recoil_start_time < recoil_time) {
    recoil_servo.write(recoil_rest);
  } else if (is_firing && recoil_current_time - recoil_start_time > recoil_time) {
    is_firing = false;
  }
}
Arquivos Python

O executável e o app Android podem ser encontrados aqui:
littlefrenchkev.com/bluetooth-nerf-turret
github.com/LittleFrenchKev/Bluetooth_Nerf_turret

Esquemáticos

Aqui está o diagrama principal de fiação. A fiação é dividida em pequenas seções ligadas usando conectores Dupont. Isso é para facilitar a montagem.

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

Aqui está a fiação do Bluetooth HC-05. Este pedaço de fiação inclui um divisor de tensão para permitir que os 5V vindos do Arduino sejam reduzidos para cerca de 3.3V para o pino receptor do HC-05.

Construa uma Torreta Nerf Controlada por Bluetooth: Guia de Peças e Montagem

Processo de manufatura

  1. Resistores: Fundamentos, Tipos e Aplicações Práticas
  2. Circuitos Integrados (CIs): Chips Compactos e Poderosos Impulsionando a Eletrônica Moderna
  3. Torretas Sentry Nerf Autônomas DIY – Construa uma Arma Nerf Inteligente com Motores de Passo, Câmera e Arduino
  4. Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
  5. Sistema Multi-Posição de Sensores de Temperatura para Integração em Casa Inteligente
  6. Transforme Seu Carro RC em um Veículo Controlado por Bluetooth
  7. Controle USB para Jogos DIY com Arduino – Construa Seu Próprio Gamepad de Alto Desempenho
  8. Kit MOSMusic: MOSFET, Arduino e Mais - Iluminação Sincronizada com Música
  9. Componentes Essenciais de uma Máquina de Furar: Visão Geral Completa
  10. Principais Componentes de um Motor de Combustão Interna