Taula de continguts:

Com fer un robot Arduino per evitar obstacles a casa: 4 passos
Com fer un robot Arduino per evitar obstacles a casa: 4 passos

Vídeo: Com fer un robot Arduino per evitar obstacles a casa: 4 passos

Vídeo: Com fer un robot Arduino per evitar obstacles a casa: 4 passos
Vídeo: Как сделать робота-автомобиля на Arduino, избегающего препятствий - своими руками 2024, Desembre
Anonim
Image
Image

Hola nois, en aquest instructiu, faràs un robot per evitar obstacles. Aquesta instrucció consisteix a construir un robot amb un sensor d’ultrasons que pugui detectar objectes propers i canviar-ne la direcció per evitar-los. El sensor d'ultrasons es connectarà a un servomotor que escaneja constantment a l'esquerra i la dreta buscant objectes al seu pas.

Per tant, sense més preàmbuls, comencem!

Pas 1: què necessiteu en aquest projecte:

El que necessiteu en aquest projecte
El que necessiteu en aquest projecte
El que necessiteu en aquest projecte
El que necessiteu en aquest projecte

Aquí teniu la llista de peces:

1) Arduino Uno

2) Escut del conductor del motor

3) Conjunt de motor d'engranatges, bastidor i rodes

4) Servomotor

5) Sensor d'ultrasons

6) Bateria de ions de Li (2x)

7) Suport de la bateria

8) Filferro de pont masculí i femení

9) Soldador

10) Carregador

Pas 2: diagrama del circuit

Esquema de connexions
Esquema de connexions

Treball:

Abans d’anar a treballar en el projecte, és important entendre com funciona el sensor d’ultrasons. El principi bàsic del funcionament del sensor d'ultrasons és el següent:

Mitjançant un senyal d’activació extern, el pin Trig del sensor d’ultrasons augmenta la lògica durant almenys 10 µs. S’envia una ràfega sonora des del mòdul transmissor. Consta de 8 impulsos de 40 KHz.

Els senyals tornen després de tocar una superfície i el receptor detecta aquest senyal. El pin Echo és alt des del moment d’enviar el senyal i rebre’l. Aquest temps es pot convertir a distància mitjançant els càlculs adequats.

L’objectiu d’aquest projecte és implementar un robot que eviti obstacles amb sensor ultrasònic i Arduino. Totes les connexions es realitzen segons el diagrama del circuit. A continuació s’explica el funcionament del projecte.

Quan el robot s’encén, els motors del robot funcionaran amb normalitat i el robot avança. Durant aquest temps, el sensor d'ultrasons calcula contínuament la distància entre el robot i la superfície reflectant.

Aquesta informació és processada per Arduino. Si la distància entre el robot i l'obstacle és inferior a 15 cm, el robot s'atura i escaneja en direccions esquerra i dreta cap a la nova distància mitjançant el servomotor i el sensor d'ultrasons. Si la distància cap al costat esquerre és superior a la del costat dret, el robot es prepararà per fer un gir a l’esquerra. Però primer, fa una còpia de seguretat una mica i després activa el motor de la roda esquerra en sentit invers.

De la mateixa manera, si la distància correcta és superior a la distància esquerra, el robot prepara la rotació dreta. Aquest procés continua per sempre i el robot continua movent-se sense xocar amb cap obstacle.

Pas 3: Programació d'Arduino UNO

#incloure

#incloure

#incloure

# definiu TRIG_PIN A1

# defineix ECHO_PIN A0

# defineix MAX_DISTANCE 200

# define MAX_SPEED 255 // estableix la velocitat dels motors de corrent continu

# define MAX_SPEED_OFFSET 20

Newar sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo miservo;

booleà va endavant = fals;

int distància = 100; int speedSet = 0;

configuració nul·la () {

myservo.attach (10);

myservo.write (115); endarreriment (2000); distància = readPing (); retard (100); distància = readPing (); retard (100); distància = readPing (); retard (100); distància = readPing (); retard (100); }

bucle buit () {

int distància R = 0; int distànciaL = 0; retard (40);

if (distància <= 15) {moveStop (); retard (100); moveBackward (); retard (300); moveStop (); retard (200); distànciaR = lookRight (); retard (200); distànciaL = lookLeft (); retard (200);

if (distànciaR> = distànciaL) {

giri a la dreta(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distància = readPing (); }

int lookRight () {

myservo.write (50); retard (500); int distance = readPing (); retard (100); myservo.write (115); distància de retorn; }

int lookLeft () {

myservo.write (170); retard (500); int distance = readPing (); retard (100); myservo.write (115); distància de retorn; retard (100); }

int readPing () {

retard (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } retorn cm; }

void moveStop () {

motor3.run (LLANÇAMENT);

motor4.run (LLANÇAMENT); }

void moveForward () {

si (! va endavant) {

va endavant = cert;

motor3.run (FORWARD);

motor4.run (AVANT); per a (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // augmentar lentament la velocitat per evitar carregar les bateries massa ràpidament {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); retard (5); }}}

void moveBackward () {

va endavant = fals;

motor3.run (BACKWARD);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // augmentar lentament la velocitat per evitar carregar les bateries massa ràpidament {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); retard (5); }}

void turnRight () {

motor3.run (FORWARD);

motor4.run (BACKWARD); retard (500);

motor3.run (FORWARD);

motor4.run (AVANT); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (AVANT); retard (500);

motor3.run (FORWARD);

motor4.run (AVANT); }

1) Descarregueu i instal·leu l'IDE d'escriptori Arduino

  • windows:
  • Mac OS X:
  • Linux:

2) Descarregueu i enganxeu el fitxer de biblioteca NewPing (biblioteca de funcions de sensor d'ultrasons) a la carpeta de biblioteques Arduino.

  1. Baixeu-vos el NewPing.rar a continuació
  2. Extraieu-lo al camí d'accés: biblioteques C: / Arduino

3) Pengeu el codi a la placa Arduino mitjançant un cable USB

Codi de descàrrega:

Pas 4: genial

Ara el robot està preparat per evitar qualsevol obstacle …

Estaré encantat de respondre a qualsevol pregunta que tingueu

Envieu-me un correu electrònic: [email protected]

Lloc web:

Subscriu-me al meu canal de YouTube:

Instagram:

Facebook:

Gràcies:)

Recomanat: