Përmbajtje:

Si të bëni një pengesë DIY Arduino duke shmangur robotin në shtëpi: 4 hapa
Si të bëni një pengesë DIY Arduino duke shmangur robotin në shtëpi: 4 hapa

Video: Si të bëni një pengesë DIY Arduino duke shmangur robotin në shtëpi: 4 hapa

Video: Si të bëni një pengesë DIY Arduino duke shmangur robotin në shtëpi: 4 hapa
Video: MazingaZ uscita N 10 Hachette. Montaggio copertura degli occhi e delle due colonne di supporto. 2024, Korrik
Anonim
Image
Image

Përshëndetje Djema, Në këtë Udhëzues, ju do të bëni një pengesë duke shmangur robotin. Ky udhëzues përfshin ndërtimin e një roboti me një sensor tejzanor që mund të zbulojë objektet aty pranë dhe të ndryshojë drejtimin e tyre për të shmangur këto objekte. Sensori tejzanor do t'i bashkëngjitet një servo motori i cili vazhdimisht skanon majtas dhe djathtas duke kërkuar objekte në rrugën e tij.

Pra, pa zhurmë të mëtejshme, Le të fillojmë!

Hapi 1: Çfarë ju nevojitet në këtë projekt:

Çfarë ju nevojitet në këtë projekt
Çfarë ju nevojitet në këtë projekt
Çfarë ju nevojitet në këtë projekt
Çfarë ju nevojitet në këtë projekt

Këtu është lista e pjesëve:

1) Arduino Uno

2) Mburoja e shoferit të motorit

3) Motor Gear, Kornizë dhe rrota të vendosura

4) Servo Motor

5) Sensori tejzanor

6) Bateri Li-Jon (2x)

7) Mbajtës i baterisë

8) Teli bluzë për meshkuj dhe femra

9) Hekuri për saldim

10) Ngarkues

Hapi 2: Diagrami i Qarkut

Diagrami i qarkut
Diagrami i qarkut

Duke punuar:

Para se të filloni të punoni në projekt, është e rëndësishme të kuptoni se si funksionon sensori tejzanor. Parimi themelor prapa funksionimit të sensorit tejzanor është si më poshtë:

Duke përdorur një sinjal të jashtëm shkaktues, kunja Trig në sensorin tejzanor është bërë logjikisht e lartë për të paktën 10μs. Bushtë dërguar një shpërthim zanor nga moduli i transmetuesit. Ai përbëhet nga 8 impulse prej 40KHz.

Sinjalet kthehen pas goditjes në një sipërfaqe dhe marrësi zbulon këtë sinjal. Kunja Echo është e lartë nga koha e dërgimit të sinjalit dhe marrjes së tij. Kjo kohë mund të konvertohet në distancë duke përdorur llogaritjet e duhura.

Qëllimi i këtij projekti është të zbatojë një pengesë për të shmangur robotin duke përdorur sensorin tejzanor dhe Arduino. Të gjitha lidhjet bëhen sipas diagramit të qarkut. Puna e projektit shpjegohet më poshtë.

Kur roboti të ndizet, të dy motorët e robotit do të funksionojnë normalisht dhe roboti lëviz përpara. Gjatë kësaj kohe, sensori tejzanor llogarit vazhdimisht distancën midis robotit dhe sipërfaqes reflektuese.

Ky informacion përpunohet nga Arduino. Nëse distanca midis robotit dhe pengesës është më pak se 15 cm, Roboti ndalon dhe skanon në drejtimet e majta dhe të djathta për distancë të re duke përdorur Servo Motor dhe Sensor tejzanor. Nëse distanca drejt anës së majtë është më e madhe se ajo e anës së djathtë, roboti do të përgatitet për një kthesë në të majtë. Por së pari, ai mbështetet pak dhe më pas aktivizon motorin e rrotës së majtë në drejtim të kundërt.

Në mënyrë të ngjashme, nëse distanca e duhur është më e madhe se ajo e distancës së majtë, Roboti përgatit rrotullimin e djathtë. Ky proces vazhdon përgjithmonë dhe roboti vazhdon të lëvizë pa goditur ndonjë pengesë.

Hapi 3: Programimi i Arduino UNO

#përfshi

#përfshi

#përfshi

# përcakto TRIG_PIN A1

# përcakto ECHO_PIN A0

# përcakto MAX_DISTANCE 200

# përcakto MAX_SPEED 255 // vendos shpejtësinë e motorëve DC

# përcakto MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DC Motori motor4 (4, MOTOR34_1KHZ); Servo myservo;

boolean shkonPërpara = false;

int distanca = 100; int speedSet = 0;

void setup () {

myservo.tash (10);

myservo.shkruaj (115); vonesa (2000); distanca = lexoPing (); vonesë (100); distanca = lexoPing (); vonesë (100); distanca = lexoPing (); vonesë (100); distanca = lexoPing (); vonesë (100); }

lak void () {

int distancaR = 0; int distancaL = 0; vonesa (40);

nëse (distanca <= 15) {moveStop (); vonesë (100); moveBackward (); vonesë (300); moveStop (); vonesë (200); distanceR = lookRight (); vonesë (200); distanceL = lookLeft (); vonesë (200);

nëse (distancaR> = distancaL) {

Kthehu djathtas(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } distance = readPing (); }

int lookRight () {

myservo.shkruaj (50); vonesë (500); int distance = readPing (); vonesë (100); myservo.shkruaj (115); distanca e kthimit; }

int lookLeft () {

myservo.shkruaj (170); vonesë (500); int distance = readPing (); vonesë (100); myservo.shkruaj (115); distanca e kthimit; vonesë (100); }

int readPing () {

vonesa (70); int cm = sonar.ping_cm (); nëse (cm == 0) {cm = 250; } cm ktheje; }

void moveStop () {

motor3.run (LIRIM);

motor4.run (LIRIM); }

void moveForward () {

nëse (! shkon përpara) {

shkon përpara = e vërtetë;

motor3.run (PARA);

motor4.run (PARA); për (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // ngadalë ngrini shpejtësinë për të shmangur ngarkimin e baterive shumë shpejt {

motor3.setSpeed (speedSet);

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

void moveBackward () {

shkon përpara = e rreme;

motor3.run (BACKWARD);

motor4.run (BACKWARD); për (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // ngadalë ngrini shpejtësinë për të shmangur ngarkimin e baterive shumë shpejt {

motor3.setSpeed (speedSet);

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

void turnRight () {

motor3.run (PARA);

motor4.run (BACKWARD); vonesë (500);

motor3.run (PARA);

motor4.run (PARA); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (PARA); vonesë (500);

motor3.run (PARA);

motor4.run (PARA); }

1) Shkarkoni dhe instaloni ID -në e Arduino Desktop

  • dritare -
  • Mac OS X -
  • Linux -

2) Shkarkoni dhe ngjisni skedarin e bibliotekës NewPing (biblioteka e funksionit të sensorit tejzanor) në dosjen e bibliotekave Arduino.

  1. Shkarkoni NewPing.rar më poshtë
  2. Nxirrni atë në shteg - bibliotekat C: / Arduino

3) Ngarko kodin në tabelën Arduino përmes një kabllo USB

Kodi i Shkarkimit:

Hapi 4: E shkëlqyeshme

Tani roboti juaj është gati të shmangë çdo pengesë…

Do të isha i lumtur t'i përgjigjem çdo pyetjeje që keni

Emailme: [email protected]

Faqja e internetit:

Regjistrohu në kanalin tim në YouTube:

Instagram:

Facebook:

Faleminderit:)

Recommended: