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

Pathfinder

Componentes e suprimentos

Arduino UNO
Um dos componentes principais.
× 1
Sensor ultrassônico - HC-SR04 (genérico)
Um dos componentes principais.
× 1
Bateria de íons de lítio 1000mAh
Um dos componentes principais.
× 2
Cátodo comum difuso RGB
Um dos componentes principais.
× 1
Buzzer
Um dos suprimentos necessários.
× 1
Resistor 330 ohm
Um dos suprimentos necessários.
× 3
Cabo USB-A para B
Um dos suprimentos necessários.
× 1
Fios de jumpers (genérico)
Um dos suprimentos necessários.
× 20

Ferramentas e máquinas necessárias

Arduino Materia 101
Uma das máquinas principais.
Chave de fenda Digilent
Uma das ferramentas necessárias.

Aplicativos e serviços online

Arduino IDE
Um dos aplicativos principais.
Autodesk Fusion 360
Um dos serviços online.

Sobre este projeto





Sinopse


O papel representa o projeto de um Robô para Evitar Obstáculos com a capacidade de detectar objetos em seu curso e navegar ao redor desses objetos tomando uma decisão adequada. Ele demonstra uma unidade robótica baseada em Arduino UNO e Adafruit Motor Shield, onde o código é escrito no software Arduino IDE. Evitar obstáculos é um dos fatores-chave consideráveis ​​para o desenvolvimento de robôs móveis. A implementação do Sensor Ultrassônico de Distância colocado no Micro-Servo Motor rendeu mais precisão na detecção dos objetos ao redor. Este robô projetado é diferente de outros robôs disponíveis devido à integração de uma campainha magnética e um LED CC RGB difuso, pelo qual ele alcançou a capacidade de indicar o procedimento de detecção de objetos e controlar a velocidade de motores de engrenagem CC em 4 tipos de circunstâncias. Como um robô autônomo, a potencialidade de manobrar em condições desconhecidas sem criar nenhum impacto foi executada. Além disso, esta tecnologia projetada pode ser implantada para operações militares e assistência humanitária, melhorando a capacidade de detecção de objetos em diversos ambientes.





Multimídia





Interpretação


As bibliotecas incluídas adicionadas no código de bloco são as seguintes,
  AFMotor.h 
Servo.h

As conexões definidas atribuídas no código inline são as seguintes,

definir BuzzPIN A0

definir TrigPIN A1

definir EchoPIN A2

definir LEDBPIN A3

definir LEDGPIN A4

definir LEDRPIN A5

definir DCMROFF 25

O programa previsto fornecido na arquitetura do robô é o seguinte,
  • Capacidade de detectar objetos em seu caminho por faixas de distância predeterminadas.
  • Procure um novo caminho comparativamente a uma direção aberta.
  • Indica a detecção de objetos e controla sua velocidade.

Todas as operações seriam realizadas de forma autônoma, sem a necessidade de qualquer controle externo.

Este projeto apresentou os detalhes essenciais para a concepção de um robô móvel que foi implementado com a capacidade de evitar obstáculos, navegar por conta própria e indicar o movimento de motorredutores DC através do acendimento da cor seletiva de um LED CC RGB difuso em 4 situações diferentes. O robô projetado mostrou variação do que outros obstáculos evitando robôs em termos de indicação de luz-som, controle de velocidade do motor e técnica de manobra intensa, detectando obstáculos de alcance de 180 graus na frente do robô; o que foi uma tarefa difícil de combinar por meio de uma programação adequada. O robô foi construído na plataforma Arduino UNO Rev3 com a ajuda do software Arduino IDE v1.8.5 para a integração do código de montagem adequado para adquirir as funções necessárias. Essa integração tornou o robô capaz de realizar as operações necessárias sem interação humana e com considerável precisão. Com outros desenvolvimentos, combinando uma câmera de transmissão e tecnologia sem fio, este robô pode ser usado efetivamente para operações militares para detectar diferentes tipos de atividades, enquanto suas unidades básicas podem ser úteis para auxiliar os humanos com deficiência visual ou auditiva a notificar a localização dos objetos circundantes.

Demonstração do Projeto Youth Zest

Código

  • Programa
Programa Arduino
O programa de montagem, para configurar de acordo com esta máquina autônoma.
 #include  // Adicionar Adafruit Motor Shield para a biblioteca do kit Arduino. # Include  // Adicionar biblioteca Servo Motor. # Define BuzzPIN A0 // Atribua o PIN A0 como BuzzPIN (Conecte o PIN do Arduino UNO "A0" ao Buzzer "+" PIN). # Defina TrigPIN A1 // Atribua o PIN A1 como TrigPIN (Conecte o PIN do Arduino UNO "A1" ao Sensor Ultrasonic Sonar "Trig" PIN). # Define EchoPIN A2 // Atribui PIN A2 como EchoPIN (Conecte o PIN do Arduino UNO "A2" ao PIN do Sensor Ultrasonic Sonar "Trig"). # Define LEDBPIN A3 // Atribua o PIN A3 como LEDBPIN (Conecte o Arduino UNO "A3" PIN com PIN de cátodo comum difuso RGB "LEDB"). # Definir LEDGPIN A4 // Atribuir PIN A4 como LEDGPIN (Conecte o PIN de Arduino UNO "A4" com PIN de cátodo comum difuso RGB "LEDG"). # Define LEDRPIN A5 // Atribuir PIN A5 como LEDRPIN (Conecte o PIN do Arduino UNO "A5" com o PIN do cátodo comum difuso RGB "LEDR"). # Define DCMROFF 25 // Isso define o deslocamento para permitir diferenças entre os dois motores de tração DC.AF_DCMo tor M1 (1, MOTOR12_64KHZ); // Criar DCMotor # 1 usando a saída M1, definir a frequência PWM de 64kHz.AF_DCMotor M2 (2, MOTOR12_64KHZ); // Cria DCMotor # 2 usando a saída M2, Defina a frequência PWM de 64kHz.Servo SER1; // Cria objeto Servo para controlar Servo.int Search (void) {// Declaração de variável de tipo inteiro. duração do flutuador =0,0; // Declaração de variável de tipo flutuante. float CM =0,0; // Declaração de variável de tipo flutuante. digitalWrite (TrigPIN, LOW); // Saída TrigPIN como 0V (nível lógico baixo). atrasoMicrosegundos (2); // Atrasar 2us, enviar 10 nós de pulso alto para o sensor de sonar ultrassônico "TrigPIN". digitalWrite (TrigPIN, HIGH); // Saída TrigPIN como 5V (nível lógico alto). atrasoMicrosegundos (10); // Atraso de 10us. digitalWrite (TrigPIN, LOW); // Saída TrigPIN como 0V (nível lógico baixo). Duração =pulseIn (EchoPIN, HIGH); // Inicia a contagem do tempo, até novamente EchoPIN volta para a lógica "High Level" e coloca o "Time" na variável chamada "Duration". CM =(Duração / 58,8); // Converter distância em CM. return CM; // Retornar ao CM.} Int RightDistance, LeftDistance; // Distâncias em qualquer lado.float Distance =0.00; // Variável de tipo flutuante declaração.void setup () {// Loop de configuração. pinMode (BuzzPIN, OUTPUT); // Declara BuzzPIN como "PIN de saída". pinMode (TrigPIN, OUTPUT); // Declara TrigPIN como "PIN de saída". pinMode (EchoPIN, INPUT); // Declara EchoPIN como "PIN de saída". pinMode (LEDBPIN, OUTPUT); // Declara LEDBPIN como "PIN de saída". pinMode (LEDGPIN, OUTPUT); // Declara LEDGPIN como "PIN de saída". pinMode (LEDRPIN, OUTPUT); // Declara LEDRPIN como "PIN de saída". SER1.attach (10); // Anexa o Servo no pino 10 (SER1 no kit Adafruit Motor Shield para Arduino ao objeto Servo).} Void loop () {// Loop principal. SER1.write (80); // Diz ao Servo para se posicionar a 80 graus (voltado para frente). atraso (100); // Atraso de 0.1s. Distância =Pesquisa (); // Medindo a distância em CM. if (Distância <30) {// Se obstáculo encontrado em 30cm. digitalWrite (BuzzPIN, HIGH); // Saída BuzzPIN como 5V (nível lógico alto). digitalWrite (LEDBPIN, LOW); // Saída LEDBPIN como 0V (nível lógico baixo). digitalWrite (LEDGPIN, LOW); // Saída LEDGPIN como 0V (nível lógico baixo). digitalWrite (LEDRPIN, HIGH); // Saída LEDRPIN como 5V (nível lógico alto). M1.setSpeed ​​(100); // Diminua a velocidade. M2.setSpeed ​​(100); // Diminua a velocidade. ChangePath (); // Se a frente estiver bloqueada, Mude a direção. } else if ((Distance> =30) &&(Distance <60)) {// Se obstáculo encontrado entre 30cm a 60cm. digitalWrite (BuzzPIN, LOW); // Saída BuzzPIN como 0V (nível lógico baixo). digitalWrite (LEDBPIN, HIGH); // Saída LEDBPIN como 5V (nível lógico alto). digitalWrite (LEDGPIN, LOW); // Saída LEDGPIN como 0V (nível lógico baixo). digitalWrite (LEDRPIN, LOW); // Saída LEDRPIN como 0V (nível lógico baixo). M1.setSpeed ​​(150); // A velocidade aumenta ligeiramente. M2.setSpeed ​​(150); // A velocidade aumenta ligeiramente. Avançar (); // O robô se move para a direção para frente. } else if ((Distance> =60) &&(Distance <90)) {// Se obstáculo encontrado entre 60cm a 90cm. digitalWrite (BuzzPIN, LOW); // Saída BuzzPIN como 0V (nível lógico baixo). digitalWrite (LEDBPIN, LOW); // Saída LEDBPIN como 0V (nível lógico baixo). digitalWrite (LEDGPIN, HIGH); // Saída LEDGPIN como 5V (nível lógico alto). digitalWrite (LEDRPIN, LOW); // Saída LEDRPIN como 0V (nível lógico baixo). M1.setSpeed ​​(200); // Acelerar. M2.setSpeed ​​(200); // Acelerar. Avançar (); // O robô se move para a direção para frente. } else {// Se o obstáculo não puder ser encontrado em 90cm. digitalWrite (BuzzPIN, LOW); // Saída BuzzPIN como 0V (nível lógico baixo). digitalWrite (LEDBPIN, HIGH); // Saída LEDBPIN como 5V (nível lógico alto). digitalWrite (LEDGPIN, HIGH); // Saída LEDGPIN como 5V (nível lógico alto). digitalWrite (LEDRPIN, HIGH); // Saída LEDRPIN como 5V (nível lógico alto). M1.setSpeed ​​(250); // A velocidade aumenta totalmente. M2.setSpeed ​​(250); // A velocidade aumenta totalmente. Avançar (); // O robô se move para a direção para frente. }} void ChangePath () {// Loop de mudança de caminho. Pare (); // Robot Stop. Para trás (); // O robô corre na direção inversa. Pare (); // Robot Stop. SER1.write (12); // Verifique a distância à direita. atraso (500); // Atraso de 0,5s. RightDistance =Search (); // Definir distância certa. atraso (500); // Atraso de 0,5s. SER1.write (160); // Verifique a distância à esquerda. atraso (1000); // Atrasar por 1s. LeftDistance =Search (); // Definir distância à esquerda. atraso (500); // Atraso de 0,5s. SER1.write (80); // Retorne ao centro. atraso (500); // Atraso de 0,5s. CompareDistance (); // Encontre a distância mais longa.} Void CompareDistance () {// Loop de comparação de distâncias. if (RightDistance> LeftDistance) {// Se a direita é menos obstruída. Vire à direita (); // Robot Vire na direção certa. } else if (LeftDistance> RightDistance) {// Se a esquerda for menos obstruída. Vire à esquerda (); // Robot Vire na direção esquerda. } else {// Se ambos forem igualmente obstruídos. Inversão de marcha (); // Robot Turn Around. }} void Forward () {// Loop de avanço. M1.run (FORWARD); // Gire o DCMotor # 1 para a frente. M2.run (AVANÇAR); // Gire o DCMotor nº 1 para Avançar.} Void Backward () {// Loop para trás. M1.run (PARA TRÁS); // Gire o DCMotor # 1 para trás. M2.run (PARA TRÁS); // Gire o DCMotor # 2 para trás. atraso (500); // Atrasar por 1s.} Void TurnRight () {// Loop de curva à direita. M1.run (PARA TRÁS); // Gire o DCMotor # 1 para trás. M2.run (AVANÇAR); // Gire o DCMotor # 2 para a frente. M1.setSpeed ​​(100 + DCMROFF); // Calibrar a velocidade do DCMotor # 1. atraso (300); // Atraso para 0,7s.} Void TurnLeft () {// Volta para a esquerda. M1.run (FORWARD); // Gire o DCMotor # 1 para a frente. M2.run (PARA TRÁS); // Gire o DCMotor # 2 para trás. M2.setSpeed ​​(100 + DCMROFF); // Calibrar a velocidade do DCMotor # 2. atraso (300); // Atraso para 0,7s.} Void TurnAround () {// Trun Around loop. M1.run (FORWARD); // Gire o DCMotor # 1 para a frente. M2.run (PARA TRÁS); // Gire o DCMotor # 2 para trás. M2.setSpeed ​​(100 + DCMROFF); // Calibre a velocidade do DCMotor # 2. atraso (700); // Atraso para 2.1s.} Void Stop () {// Parar o loop. M1.run (RELEASE); // Libere o DCMotor # 1. M2.run (RELEASE); // Libere o DCMotor nº 2. atraso (100); // Atraso de 0.1s.} 

Peças personalizadas e gabinetes

Chassi
O chassi do robô, para configurar adequadamente esta máquina autônoma.

Esquemas

O diagrama de circuito, para configurar adequadamente esta máquina autônoma.

Processo de manufatura

  1. Componentes do circuito
  2. Circuito Integrado
  3. Envie dados do sensor de um Arduino para outro usando Firebase
  4. Dados digitais Arduino
  5. Sensor de temperatura múltipla
  6. Controlador de jogo Arduino
  7. MOSMusic
  8. O que é microeletrônica?
  9. Componentes da máquina de perfuração
  10. Componentes do motor de combustão interna