Cuprins:

Cum să faci un robot Arduino pentru evitarea obstacolelor acasă: 4 pași
Cum să faci un robot Arduino pentru evitarea obstacolelor acasă: 4 pași

Video: Cum să faci un robot Arduino pentru evitarea obstacolelor acasă: 4 pași

Video: Cum să faci un robot Arduino pentru evitarea obstacolelor acasă: 4 pași
Video: Proiect Arduino, asamblare masină inteligentă 2024, Noiembrie
Anonim
Image
Image

Bună ziua, băieți, în acest instructabil, veți face un robot care să evite obstacolele. Acest instructabil implică construirea unui robot cu un senzor cu ultrasunete care poate detecta obiecte din apropiere și își poate schimba direcția pentru a evita aceste obiecte. Senzorul cu ultrasunete va fi atașat la un servomotor care scanează în mod constant stânga și dreapta în căutarea obiectelor în calea sa.

Deci, fără alte întrebări, Să începem!

Pasul 1: De ce aveți nevoie în acest proiect:

Ce aveți nevoie în acest proiect
Ce aveți nevoie în acest proiect
Ce aveți nevoie în acest proiect
Ce aveți nevoie în acest proiect

Iată lista pieselor:

1) Arduino Uno

2) Scutul șoferului motorului

3) Motor de transmisie, cadru și roți setate

4) Servomotor

5) Senzor cu ultrasunete

6) Baterie Li-ion (2x)

7) Suport baterie

8) Sârmă jumper masculină și feminină

9) Fier de lipit

10) Încărcător

Pasul 2: Diagrama circuitului

Diagrama circuitului
Diagrama circuitului

Lucru:

Înainte de a începe să lucrați la proiect, este important să înțelegeți cum funcționează senzorul cu ultrasunete. Principiul de bază din spatele funcționării senzorului cu ultrasunete este următorul:

Folosind un semnal de declanșare extern, pinul Trig de pe senzorul cu ultrasunete devine logic pentru cel puțin 10µs. Se trimite o explozie sonoră de la modulul transmițător. Acesta constă din 8 impulsuri de 40KHz.

Semnalele se întorc înapoi după ce a lovit o suprafață și receptorul detectează acest semnal. Pinul Echo este ridicat din momentul trimiterii și recepționării semnalului. Acest timp poate fi convertit la distanță folosind calcule adecvate.

Scopul acestui proiect este de a implementa un robot care evită obstacolele folosind senzor cu ultrasunete și Arduino. Toate conexiunile sunt realizate conform schemei de circuit. Funcționarea proiectului este explicată mai jos.

Când robotul este pornit, ambele motoare ale robotului vor funcționa normal, iar robotul se deplasează înainte. În acest timp, senzorul cu ultrasunete calculează continuu distanța dintre robot și suprafața reflectorizantă.

Aceste informații sunt procesate de Arduino. Dacă distanța dintre robot și obstacol este mai mică de 15 cm, robotul se oprește și scanează în direcțiile stânga și dreapta pentru a obține o nouă distanță folosind servomotorul și senzorul cu ultrasunete. Dacă distanța spre partea stângă este mai mare decât cea din partea dreaptă, robotul se va pregăti pentru o virare la stânga. Dar, mai întâi, se întoarce puțin și apoi activează motorul roții stânga în sens invers.

În mod similar, dacă distanța corectă este mai mare decât cea a distanței din stânga, robotul pregătește rotația dreaptă. Acest proces continuă pentru totdeauna și robotul continuă să se miște fără să lovească niciun obstacol.

Pasul 3: Programarea Arduino UNO

#include

#include

#include

# definiți TRIG_PIN A1

# definiți ECHO_PIN A0

# definiți MAX_DISTANCE 200

# define MAX_SPEED 255 // setează viteza motoarelor de curent continuu

# define MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo miservo;

boolean goesForward = false;

int distanta = 100; int speedSet = 0;

configurare nulă () {

myservo.attach (10);

myservo.write (115); întârziere (2000); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); distanță = readPing (); întârziere (100); }

bucla nulă () {

distanța intR = 0; int distanțaL = 0; întârziere (40);

if (distanță <= 15) {moveStop (); întârziere (100); mergi inapoi(); întârziere (300); moveStop (); întârziere (200); distanțăR = lookRight (); întârziere (200); distanțăL = lookLeft (); întârziere (200);

if (distanceR> = distanceL) {

Obligatoriu Dreapta(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distanță = readPing (); }

int lookRight () {

myservo.write (50); întârziere (500); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; }

int lookLeft () {

myservo.write (170); întârziere (500); int distanță = readPing (); întârziere (100); myservo.write (115); distanța de întoarcere; întârziere (100); }

int readPing () {

întârziere (70); int cm = sonar.ping_cm (); if (cm == 0) {cm = 250; } returnează cm; }

void moveStop () {

motor3.run (ELIBERARE);

motor4.run (ELIBERARE); }

void moveForward () {

if (! mergeForward) {

merge înainte = adevărat;

motor3.run (FORWARD);

motor4.run (FORWARD); pentru (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); întârziere (5); }}}

void moveBackward () {

merge înainte = fals;

motor3.run (BACKWARD);

motor4.run (BACKWARD); pentru (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // creșteți încet viteza pentru a evita încărcarea bateriilor prea repede {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); întârziere (5); }}

void turnRight () {

motor3.run (FORWARD);

motor4.run (BACKWARD); întârziere (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (FORWARD); întârziere (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

1) Descărcați și instalați Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Descărcați și lipiți fișierul bibliotecă NewPing (biblioteca funcției senzorului cu ultrasunete) în folderul bibliotecilor Arduino.

  1. Descărcați NewPing.rar de mai jos
  2. Extrageți-l în calea - biblioteci C: / Arduino

3) Încărcați codul pe placa Arduino printr-un cablu USB

Cod de descărcare:

Pasul 4: Super

Acum robotul dvs. este gata să evite orice obstacol …

Aș fi fericit să vă răspund la orice întrebări

Trimiteți-mi un e-mail: [email protected]

Site web:

Abonați-vă canalul YouTube:

Instagram:

Facebook:

Mulțumesc:)

Recomandat: