Obstáculos para evitar o robô com servo motor
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Ferramentas e máquinas necessárias
|
Aplicativos e serviços online
|
Sobre este projeto
Tudo sobre o projeto
Sou um estudante de Design de Artes de Mídia que estuda na Multimedia University, Cyberjaya Malaysia. Este é o meu Gamma Year estudando Media Art. Design de interação é a disciplina que ensinará aos alunos como usar os componentes do Arduino e como ele funciona. Portanto, em minha tarefa final, escolhi o robô Obstáculos a Evitar como meu próprio projeto e aprendi como todos os componentes funcionam.
Etapa 1:
Prepare e construa seu chassi de robô. Dentro da embalagem tem alguns componentes, chassi, dois motores, duas rodas, uma roda dianteira, um porta-bateria, alguns parafusos, switch e fios de jumper. Foto abaixo:
Etapa 2:
Antes de soldar os fios do jumper em ambos os motores, eu recomendaria testar todos os componentes para ter certeza de que estão funcionando bem, por exemplo:Ambos os motores DC, placa Arduino, Motor Shield, Servo motor e sensor ultrassônico. Em seguida, começaremos a soldar o fio vermelho e preto em ambos os motores, exemplo da imagem abaixo:
Etapa 3:
Venha para o nosso chassis de bateria e troque a parte. Precisamos apenas cortar metade do fio preto do chassi da bateria e soldar 1 lado do fio em 1 orifício, outro fio preto soldará em outro orifício. Nosso switch está pronto!
Etapa 4:
Precisamos empilhar a placa Arduino e a placa Motor Shield, o Motor Shield se empilhará na placa Arduino. Exemplo abaixo:
Etapa 5:
Avançaremos para a placa do Motor Shield. Esta blindagem fornece energia para os motores e servo motor, os motores precisam de muita corrente e esta blindagem pode fornecer até 600mA de corrente para cada motor. Precisamos soldar / consertar os fios do motor DC na placa de blindagem do motor. Se os fios do motor DC forem longos o suficiente para alcançar a blindagem do motor, será ótimo, caso contrário, você pode precisar usar fios de jumper externos (não importa se é fio de jumper Macho / Fêmea), corte a cabeça do fio de jumper e certifique-se de dentro do linha de cobre aparece. (Você precisará cortar a borracha do fio de jumper para fazer o fio de cobre aparecer). E você precisa soldar os fios externos aos fios do motor DC. Exemplo:
Em seguida, conecte o fio esquerdo do motor ao conector M1 da blindagem do motor. O fio direito do motor se conectará ao conector M3 da placa de blindagem do motor. Exemplo:
Etapa 6:
Em seguida, precisaremos conectar os fios da chave da bateria, ambos os fios vermelho e preto, à placa de blindagem do motor.
Depois disso, precisaremos preparar os fios jumper macho e fêmea para soldá-los a 5V, GND, pino analógico 4 e pino analógico 5. Antes disso, precisaremos encontrar os fios jumper fêmea e macho das mesmas cores e cortá-los ao meio . Por que deve ser da mesma cor? Em primeiro lugar, é fácil reconhecermos qual fio pertence a qual parte. Em segundo lugar, o fio jumper macho branco soldará com o fio jumper fêmea branco que se conecta a 5V. O fio jumper Macho de cor preta solda com o fio jumper fêmea e o fio jumper Macho solda ao GND. O fio jumper macho de cor laranja soldará com o fio jumper feminino laranja, o fio jumper macho laranja soldará no pino analógico 5. Por último, mas não menos importante, o fio jumper macho marrom será soldado com o fio jumper marrom fêmea e, em seguida, o fio jumper macho de cor marrom será soldado no Pino analógico 4. Exemplo:
Etapa 7:
Você pode usar fita dupla-face ou pistola de cola quente para prender a proteção no chassi do robô.
Etapa 8:venha para a parte do sensor ultrassônico
Dos fios de jumper Fêmea e Macho que soldamos agora, o fio de jumper branco (5V) (fio de jumper de local feminino) se conectará ao pino VCC do sensor ultrassônico. O fio de jumper preto (GND) (fio de jumper de local fêmea) se conectará ao pino GND. O fio de jumper marrom (Pino analógico 4) (fio de jumper de local fêmea) se conectará ao pino de eco. O fio de jumper de cor laranja (Pino analógico 5) (fio de jumper de local fêmea) se conectará ao pino TRIG.
Etapa 9:
Por último, para o servo motor será conectado ao slot servo_2. Nota * (Existem poucos tipos de servo motor por aí. Você pode precisar encontrá-lo online para saber como eles se conectam ao slot do servo_2). Abaixo está a minha própria versão do slot servo.
Última etapa:Código
Para este robô evitando Obstáculos, precisaremos de 3 bibliotecas, que é a biblioteca Motor Shield para o driver Motor Shield, a nova biblioteca Ping é para o sensor ultrassônico. O terceiro é o Arduino IDE. Abaixo estão os links para download para bibliotecas:
-
Biblioteca Motor Shield
- Nova biblioteca Ping
Agradeço por vocês verem meu projeto. Espero que as instruções sejam claras o suficiente para que vocês sigam e construam o Robô de Evitar Obstáculos. Obrigada!
Vídeo para teste:
Código
- Arduino IDE
Arduino IDE C #
Copie e cole o código no IDE do Arduino e depois carregue na sua placa Arduino#include#include #include #define TRIG_PIN A4 #define ECHO_PIN A5 # define MAX_DISTANCE_POSSIBLE 1000 #define MAX_SPEED 150 // #define MOTORS_CALIBRATION_OFFSET 3 # define COLL_DIST 20 #define TURN_DIST COLL_DIST + 10 Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE_POSSIBLE); AF_DCMotor leftMotor (3, MOZTOR12K8K8K8); AF_DCMotor rightMotor (1, MOTOR12_8KHZ); Servo neckControllerServoMotor; int pos =0; int maxDist =0; int maxAngle =0; int maxRight =0; int maxLeft =0; int maxFront =0; int course =0; int curDist =0; String motorSet =""; int speedSet =0; configuração vazia () {neckControllerServoMotor.attach (10); neckControllerServoMotor.write (90); atraso (2000); checkPath (); motorSet ="FORWARD"; neckControllerServoMotor.write (90); moveForward ();} void loop () {checkForward (); checkPath ();} void checkPath () {int curLeft =0; int curFront =0; int curRight =0; int curDist =0; neckControllerServoMotor.write (144); atraso (120); para (pos =144; pos> =36; pos- =18) {neckControllerServoMotor.write (pos); atraso (90); checkForward (); curDist =readPing (); if (curDist curDist) {maxAngle =pos;} if (pos> 90 &&curDist> curLeft) {curLeft =curDist;} if (pos ==90 &&curDist> curFront) {curFront =curDist;} if (pos <90 &&curDist> curRight) {curRight =curDist;}} maxLeft =curLeft; maxRight =curRight; maxFront =curFront;} void setCourse () {if (maxAngle <90) {turnRight ();} if (maxAngle> 90) {turnLeft ();} maxLeft =0; maxRight =0; maxFront =0;} void checkCourse () {moveBackward (); atraso (500); moveStop (); setCourse ();} void changePath () {if (pos <90) {lookLeft ();} if (pos> 90) {lookRight ();}} int readPing () {delay (70); sem sinal int uS =sonar.ping (); int cm =uS / US_ROUNDTRIP_CM; return cm;} void checkForward () {if (motorSet =="FORWARD") {leftMotor.run (FORWARD); rightMotor.run (FORWARD); }} void checkBackward () {if (motorSet =="BACKWARD") {leftMotor.run (BACKWARD); rightMotor.run (BACKWARD); }} void moveStop () {leftMotor.run (RELEASE); rightMotor.run (RELEASE);} void moveForward () {motorSet ="FORWARD"; leftMotor.run (FORWARD); rightMotor.run (FORWARD); para (speedSet =0; speedSet
Esquemas
Processo de manufatura
- Robô Pi Simples
- Robô seguidor de linha
- Controle de um robô Roomba com Arduino e dispositivo Android
- Controle do Servo Motor com Arduino e MPU6050
- Robô assistente autônomo da casa
- Braço do robô Arduino DIY - Controlado por gestos manuais
- Controlar Arduino Robot Arm com aplicativo Android
- Robô para navegação interna supercool
- O que é um servo motor?
- Emparelhamento de redutores com servomotores