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

M1 Rover

Componentes e suprimentos

Drivers de motor SparkFun Dual H-Bridge L298
× 1
Motor DC (genérico)
× 4
Arduino UNO
× 1
LED (genérico)
× 8
Resistor 221 ohm
× 8
Servos (Tower Pro MG996R)
× 1
Sensor ultrassônico - HC-SR04 (genérico)
× 1

Aplicativos e serviços online

Arduino IDE
Microsoft Visual Studio 2015
Microsoft Windows 10 IoT Core

Sobre este projeto






Depois de construir vários robôs internos, decidi construir um robô externo capaz de viajar por terrenos acidentados. Eu o chamo de “M1-Robot”.





O motor M1-Robot conduz facilmente quatro motores CC com Arduino, então é perfeito para qualquer projeto de robótica. Achei que seria um coração fantástico para robôs mais poderosos, então projetei o M1 off-road com tração nas quatro rodas do coçar, arranhão.

Não é apenas um carro RC, ele pode ser programado para dirigir sozinho, seguir um conjunto de instruções ou até mesmo ser controlado de um computador remoto, e pode ser usado por meio de controladores de jogo e joysticks personalizados como um carro de controle remoto.





Etapa 1:Design


Projetar seu próprio produto ou protótipo é muito divertido, mas se tornou mais complicado quando você decidiu fazê-lo em uma escala de tamanho real. Por isso, escolhi o Google Sketch-up 2017 como uma ferramenta de design poderosa e fácil, que permite exportar os projetos do seu modelo para uma máquina de corte a laser ou até mesmo uma impressora 3D.

Passei as primeiras três semanas projetando e construindo o casco do robô.

Quanto aos materiais, recebi uma placa de madeira de 3 mm.

A fiação final não muito bonita do robô, que, devido às limitações de tempo, consistia em colocar todo o atropelamento dentro do casco.

Achei que um nome adequado para meu robô fosse M1Rover. Como estou planejando desenvolver versões dele em nomes de sequência como M2, M3, etc. Projetado em um kit, tudo o que você precisa fazer é montá-lo com alguns parafusos.





Etapa 2:componentes e recursos






⦁ Até três horas de autonomia!

⦁ Projetado para o Arduino Uno, Mega e Nano.

⦁ Tensão operacional 5V-9V DC

⦁ Um chassi de madeira de 3 mm de espessura

⦁ Rodas de 68 mm de diâmetro L298N Dual H-Bridge Motor / Stepper

⦁ Baterias de 9v para alimentar os motores DC

⦁ Baterias de 9 V para ligar o Arduino

⦁ Luzes LED 7 para traseira e frontal

⦁ Módulo Bluetooth HC-06

⦁ Escudo do sensor Arduino v5.0

⦁ Transdutor ultrassônico HC SR04





Etapa 3:o controlador do motor


Os H-Bridge são normalmente usados ​​no controle de velocidade e direção de motores, mas podem ser usados ​​para outros projetos, como direcionar o brilho de certos projetos de iluminação, como matrizes de LED de alta potência.

⦁ Certifique-se de ter todos os seus fundamentos amarrados; Arduino, fonte de alimentação e controlador do motor.

⦁ Os pinos PWM são desnecessários se você não quiser controlar os recursos PWM.





Etapa 4:montagem do chassi


O chassi foi cortado com cortador a laser em algumas partes, e como mencionei antes o modelo foi criado em um kit de fácil montagem, portanto, basta seguir as instruções abaixo.

Considerando que o design também foi importante e quando se trata de carros RC, ele deve conter luzes dianteiras e traseiras. Na frente do M1-Robot coloquei 4 LEDs brancos cada um conectado a um resistor de 220 ohms, e na parte traseira coloquei 2 LEDs vermelhos com resistor de 220 ohms cada. Esses LEDs podem ser controlados pelo mesmo aplicativo





Etapa 5:circuitos


O circuito era um pouco complicado porque quando você decidiu controlar várias partes eletrônicas ao mesmo tempo, você deve tomar cuidado com a sequência de cada parte.

⦁ Arduino Sensor Shield 5.0

⦁ Motor / de passo Arduino Uno R3 L298N Dual H-Bridge

⦁ bateria de 9v para ligar os motores DC

⦁ Luzes LED 7 (2 traseiras) e (4 dianteiras)

⦁ Módulo Bluetooth HC-06

⦁ Transdutor ultrassônico HC SR04

⦁ Servo motor 9g

⦁ Campainha ativa

⦁ 4 motores DC com rodas





Etapa 6:Software


Eu considerei várias coisas enquanto escrevia o código do M1-Robot, e com o software GUI você pode obter mais informações sobre o status do robô.

O código básico para o kit inicial pode ser controlado por celular ou laptop via Bluetooth:
  int frontled =3; // led int rearled =4; int outPin1 =5; // motor1 int outPin2 =6; // motor1 int outPin4 =11; // motor2 int outPin3 =12; // motor2 char bt =0; // BT int buzzerPin =2; const int pingPin =9; // Pino de disparo do sensor ultrassônico int echoPin =8; // Pino de eco do sensor ultrassônico / * ----------------------------------------- ------------------------------------- * / void setup () {Serial.begin (9600); pinMode (outPin1, OUTPUT); pinMode (outPin2, OUTPUT); pinMode (outPin3, OUTPUT); pinMode (outPin4, OUTPUT); pinMode (frontled, OUTPUT); pinMode (buzzerPin, OUTPUT);} void loop () {if (Serial.available ()> 0) {bt =Serial.read (); digitalWrite (fronteado, 1); longa duração, polegadas, cm; pinMode (pingPin, OUTPUT); digitalWrite (pingPin, LOW); atrasoMicrosegundos (2); digitalWrite (pingPin, HIGH); atrasoMicrosegundos (10); digitalWrite (pingPin, LOW); pinMode (echoPin, INPUT); duração =pulseIn (echoPin, HIGH); polegadas =microssegundosToInches (duração); cm =microssegundosToCentímetros (duração); if (cm> 10) {// distância para parar / * ________________________________________________________________________ * / if (bt =='F') // mover para frente {digitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, HIGH); digitalWrite (outPin4, LOW); } else if (bt =='B') // move para trás {digitalWrite (outPin1, LOW); digitalWrite (outPin2, HIGH); digitalWrite (outPin3, LOW); digitalWrite (outPin4, HIGH); } else if (bt =='S') // pare !! {digitalWrite (outPin1, LOW); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, LOW); } else if (bt =='R') // right {digitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, LOW); } else if (bt =='L') // left {digitalWrite (outPin1, LOW); digitalWrite (outPin2, LOW); digitalWrite (outPin3, HIGH); digitalWrite (outPin4, LOW); } else if (bt =='I') // encaminhar à direita {digitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, HIGH); } else if (bt =='G') // avançar para a esquerda {digitalWrite (outPin1, LOW); digitalWrite (outPin2, HIGH); digitalWrite (outPin3, HIGH); digitalWrite (outPin4, LOW); }} else {digitalWrite (buzzerPin, HIGH); atraso (500); digitalWrite (buzzerPin, LOW); atraso (500); }}} microsegundosToInches longos (microssegundos longos) {return microssegundos / 74/2;} microssegundosToCentímetros longos (microssegundos longos) {return microssegundos / 29/2;}  

O código do Arduino é compatível com qualquer tipo de controlador, pois todas as partes eletrônicas são programadas para funcionar através de ordens de porta serial, portanto, pode-se utilizar módulo Bluetooth emissor / receptor, PC, celular.

⦁ Aplicativo Windows C # (captura de tela em anexo)





Etapa 7:Pacotes


STARTER

Este pacote M1-Robot envolve componentes básicos, enquanto a placa superior permite a fácil montagem de qualquer sensor, manipulação ou hardware de computador. Basta conectar sensores às fontes de alimentação integradas e Rover para começar.

EXPLORER

O pacote Explorer permite funcionalidade autônoma interna e externa básica e, em vez de uma câmera IP, usei uma câmera de celular conectada à Internet via endereço IP.

MAPEAMENTO

O pacote Explorer permite rastreamento GPS básico, é claro, enquanto o veículo está ao ar livre, é muito legal quando você observa os caminhos de coordenadas em tempo real.

MANIPULAÇÃO

Interagindo com o mundo com um braço robótico e uma pinça de 50 mm com dois dedos.

Dica importante:

Nem todos os servos têm 180 graus completos de rotação. Muitos não o fazem. Você pode escrever um teste para determinar onde estão os limites mecânicos. Use servo.writeMicroseconds em vez de servo.write Eu gosto mais disso porque permite que você use 1000-2000 como o intervalo base. E muitos servos darão suporte fora dessa faixa, de 600 a 2400.

Portanto, tente valores diferentes e veja de onde você tira o buzz que indica que você atingiu o limite. Então, apenas fique dentro desses limites ao escrever. Você pode definir esses limites ao usar servo.attach (pin, min, max)

Edit:devo dizer que, se você quiser, pode definir os microssegundos mínimo e máximo no anexo e, em seguida, basta usar servo.write. Ele usa map () para alterar o valor de 0-180 graus que você passa para um valor de microssegundos.

Logo será, se você o mantiver no ponto final - ele está puxando alta corrente e esquentando rapidamente - é muito fácil "cozinhar" um servo carregando-o dessa forma por qualquer período de tempo.

Encontre a verdadeira amplitude de movimento e certifique-se de que o código não tente empurrá-lo além das paradas finais. A função constrain () do Arduino é útil para isso:
  servo.write (restrição (ângulo, 10, 160)); // restringir o ângulo no intervalo 10..160  

Peças personalizadas e gabinetes

m1rover_dxf_hackaday_4o7WTGHUGE.dxf

Esquemas


Processo de manufatura

  1. Motor de relutância
  2. Protótipo da Raspoulette
  3. Rover
  4. Robô Pi Simples
  5. Ataque OVNI!
  6. 3D RGB Arduclock
  7. Biblioteca de motor de passo bipolar
  8. Speed ​​Pick e pedal de pedal da guitarra!
  9. O que é um Motor Linear?
  10. O que é um servo motor?