Mündəricat:

Robotik Maşından Qaçan Maneə: 9 Adım
Robotik Maşından Qaçan Maneə: 9 Adım

Video: Robotik Maşından Qaçan Maneə: 9 Adım

Video: Robotik Maşından Qaçan Maneə: 9 Adım
Video: The French UFO Wave of 1954: The Humanoids 2024, Noyabr
Anonim
Robotlu Maşının qarşısını almaq
Robotlu Maşının qarşısını almaq
Robotlu Maşının qarşısını almaq
Robotlu Maşının qarşısını almaq

Robotdan qaçan bir maneə necə qurulacaq

Addım 1: Qara qutu

Qara qutu
Qara qutu

İlk addım robot üçün əsas olaraq qara qutudan istifadə etdim.

Addım 2: Arduino

Arduino
Arduino

Arduino bütün sistemin beynidir və motorlarımızı idarə edir

Addım 3: Arduino'yu Blackboxa bağlayın

Arduino'yu Blackboxa bağlamaq
Arduino'yu Blackboxa bağlamaq

Arduino'yu isti yapışqan istifadə edərək qara qutuya bağladım

Addım 4: Ultrasonik Sensor

Ultrasonik Sensor
Ultrasonik Sensor

Öz -özünə hərəkət edə bilən bir robot hazırlamaq üçün bir növ girişə, məqsədimizə uyğun bir sensora ehtiyacımız var. Ultrasonik sensor, ultrasəs səs dalğalarından istifadə edərək bir cisimə olan məsafəni ölçən bir cihazdır. Ultrasonik sensor, obyektin yaxınlığı haqqında məlumatı ötürən ultrasəs pulslarını göndərmək və qəbul etmək üçün bir çeviricidən istifadə edir.

Addım 5: Sensorun Arduinoya Breadboard Bağlantısı

Sensorun Arduinoya çörək taxtası bağlantısı
Sensorun Arduinoya çörək taxtası bağlantısı
Sensorun Arduinoya çörək taxtası bağlantısı
Sensorun Arduinoya çörək taxtası bağlantısı

Çörək taxtası ilə arduino arasındakı əlaqəni kəsmək üçün tel istifadə etdim.

Ping sensorunuzun fərqli bir pin planına sahib ola biləcəyinə diqqət yetirin, ancaq bir gərginlik pimi, torpaq pimi, tetik pimi və əks -səda pininə malik olmalıdır.

Addım 6: Motor Qalxanı

Motor Qalxanı
Motor Qalxanı

Arduino lövhələri DC mühərriklərini təkbaşına idarə edə bilmirlər, çünki istehsal etdikləri cərəyanlar çox aşağıdır. Bu problemi həll etmək üçün mühərrik qalxanlarından istifadə edirik. Motor qalxanı iki kanallı mühərrikin və ya 1 -in idarə edilməsinə imkan verir. pilləli motor. … Bu pinlərə müraciət edərək, işə salmaq üçün bir motor kanalı seçə, motor istiqamətini (polariteyi), motor sürətini (PWM) təyin edə, mühərriki dayandırıb işə sala və hər kanalın cari udulmasını izləyə bilərsiniz.

Addım 7: Motor Qalxanı Arduinoya bağlayın

Motor Qalxanının Arduino -ya qoşulması
Motor Qalxanının Arduino -ya qoşulması

Sadəcə olaraq, motor qalxanını sensor telləri sıxılaraq arduinoya bağlayın

Addım 8: 4 Motoru və Batareyanı Qalxana bağlayın

4 Motoru və Batareyanı Qalxana Bağlamaq
4 Motoru və Batareyanı Qalxana Bağlamaq

Hər Motor Qalxanın (ən azı) biri motor üçün, biri də enerji mənbəyi olmaqla iki kanalı vardır.

Addım 9: Robotu proqramlaşdırın

bu kodu işlədin

#daxil edin #daxil edin

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1 (1, MOTOR12_1KHZ); AF_DCMotor motoru 2 (2, MOTOR12_1KHZ); AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo xidməti;

#define TRIG_PIN A2 #ECHO_PIN A3 təyin edin #MAX_DISTANCE 150 #MAX_SPEED 100 təyin edin #MAX_SPEED_OFFSET 10 təyin edin

boolean goForward = false; int məsafəsi = 80; int speedSet = 0;

boş quraşdırma () {

myservo.attach (10); myservo.write (115); gecikmə (2000); məsafə = readPing (); gecikmə (100); məsafə = readPing (); gecikmə (100); məsafə = readPing (); gecikmə (100); məsafə = readPing (); gecikmə (100); }

void loop () {int məsafəR = 0; int məsafəsiL = 0; gecikmə (40); if (məsafə <= 15) {moveStop (); gecikmə (50); moveBackward (); gecikmə (150); moveStop (); gecikmə (100); məsafəR = baxmaqRight (); gecikmə (100); məsafəL = baxmaqLeft (); gecikmə (100);

if (məsafəR> = məsafəL) {turnRight (); moveStop (); } başqa {turnLeft (); moveStop (); }} başqa {moveForward (); } məsafə = readPing (); }

int lookRight () {myservo.write (50); gecikmə (250); int məsafəsi = readPing (); gecikmə (50); myservo.write (100); dönüş məsafəsi; }

int lookLeft () {myservo.write (120); gecikmə (300); int məsafəsi = readPing (); gecikmə (100); myservo.write (115); dönüş məsafəsi; gecikmə (100); }

int readPing () {gecikmə (70); int cm = sonar.ping_cm (); əgər (cm == 0) {sm = 200; } sm qaytar; }

void moveStop () {motor1.run (RELEASE); motor2.run (Çıxar); motor3.run (buraxın); motor4.run (buraxın); } void moveForward () {

if (! goForward) {goForward = true; motor1. qaçış (İLƏ); motor2.qoşmaq (İLƏ); motor3.qoşun (İLƏ); motor4.run (İLƏ); üçün (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); gecikmə (5); }}}

void moveBackward () {goForward = false; motor1.run (arxaya); motor2.run (arxaya); motor3.run (arxaya); motor4.run (arxaya); üçün (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); gecikmə (5); } boş dönməLeft () {motor1.run (BACKWARD); motor2.run (arxaya); motor3.qoşun (İLƏ); motor4.run (İLƏ); gecikmə (500); motor1. qaçış (İLƏ); motor2.qoşmaq (İLƏ); motor3.qoşun (İLƏ); motor4.run (İLƏ); }

boş dönüşLeft () {motor1.run (BACKWARD); motor2.run (arxaya); motor3.qoşun (İLƏ); motor4.run (İLƏ); gecikmə (500); motor1. qaçış (İLƏ); motor2.qoşma (İLƏ); motor3.qoşun (İLƏ); motor4.run (İLƏ); }

Tövsiyə: