Talaan ng mga Nilalaman:

Sagabal Pag-iwas sa Robotic Car: 9 Mga Hakbang
Sagabal Pag-iwas sa Robotic Car: 9 Mga Hakbang

Video: Sagabal Pag-iwas sa Robotic Car: 9 Mga Hakbang

Video: Sagabal Pag-iwas sa Robotic Car: 9 Mga Hakbang
Video: The Doctrine of Repentance | Thomas Watson | Christian Audiobook 2024, Hulyo
Anonim
Sagabal Pag-iwas sa Robotic Car
Sagabal Pag-iwas sa Robotic Car
Sagabal Pag-iwas sa Robotic Car
Sagabal Pag-iwas sa Robotic Car

Paano Bumuo ng Isang Obstacle na Pag-iwas sa Robot

Hakbang 1: Itim na Kahon

Itim na Kahon
Itim na Kahon

ang unang hakbang na ginamit ko ang isang itim na kahon bilang batayan para sa aking robot.

Hakbang 2: Arduino

Arduino
Arduino

Ang Arduino ay utak ng buong system at binubuo ang aming mga motor

Hakbang 3: Ang paglakip ng Arduino sa Blackbox

Ang paglakip ng Arduino sa Blackbox
Ang paglakip ng Arduino sa Blackbox

Inilakip ko ang arduino sa blackbox gamit ang mainit na pandikit

Hakbang 4: Ultrasonic Sensor

Ultrasonic Sensor
Ultrasonic Sensor

Upang makagawa ng isang robot na maaaring ilipat sa pamamagitan ng sarili nitong kailangan namin ng isang uri ng isang input, isang sensor na umaangkop sa aming layunin. Ang isang ultrasonic sensor ay isang instrumento na sumusukat sa distansya sa isang bagay gamit ang mga ultrasonic sound wave. Ang isang ultrasonic sensor ay gumagamit ng isang transducer upang magpadala at tumanggap ng mga ultrasonic pulses na nagpapasa ng pabalik na impormasyon tungkol sa kalapitan ng isang bagay

Hakbang 5: Koneksyon sa Breadboard ng Sensor sa Arduino

Ang Koneksyon ng Breadboard ng Sensor kay Arduino
Ang Koneksyon ng Breadboard ng Sensor kay Arduino
Ang Koneksyon ng Breadboard ng Sensor kay Arduino
Ang Koneksyon ng Breadboard ng Sensor kay Arduino

Gumamit ako ng mga wire sa lalaki ang koneksyon sa pagitan ng breadboard at arduino.

Bigyang pansin na ang iyong sensor ng ping ay maaaring may iba't ibang layout ng pin ngunit dapat itong magkaroon ng boltahe na pin, ground pin, trig pin at isang echo pin.

Hakbang 6: Motor Shield

Motor Shield
Motor Shield

Ang mga board ng Arduino ay hindi maaaring makontrol ang mga dc motor sa pamamagitan ng kanilang sarili, sapagkat ang mga alon na binubuo nila ay masyadong mababa. Upang malutas ang problemang ito ginagamit namin ang mga kalasag sa motor. Ang motor na kalasag ay mayroong 2 mga channel, na nagbibigay-daan sa kontrol ng dalawang DC motor, o 1 stepper motor. … Sa pamamagitan ng pagtugon sa mga pin na ito maaari kang pumili ng isang motor channel upang simulan, tukuyin ang direksyon ng motor (polarity), itakda ang bilis ng motor (PWM), itigil at simulan ang motor, at subaybayan ang kasalukuyang pagsipsip ng bawat channel

Hakbang 7: Pagkonekta sa Motor Shield sa Arduino

Pagkonekta sa Motor Shield sa Arduino
Pagkonekta sa Motor Shield sa Arduino

Ikabit lamang ang kalasag ng motor sa arduino na may mga sensor ng wire na naka-cr in

Hakbang 8: Pagkonekta sa 4 Mga Motors at Baterya sa Shield

Pagkonekta sa 4 Mga Motors at Baterya sa Shield
Pagkonekta sa 4 Mga Motors at Baterya sa Shield

Ang bawat Motor Shield ay mayroong (hindi bababa sa) dalawang mga channel, isa para sa mga motor, at isa para sa isang mapagkukunan ng kuryente, Ikonekta ang mga ito na may paggalang sa bawat isa

Hakbang 9: I-program ang Robot

patakbuhin ang code na ito

# isama ang # isama

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor1 (1, MOTOR12_1KHZ); AF_DCMotor motor2 (2, MOTOR12_1KHZ); AF_DCMotor motor3 (3, MOTOR34_1KHZ); AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo MyServo;

#define TRIG_PIN A2 #define ECHO_PIN A3 #define MAX_DISTANCE 150 #define MAX_SPEED 100 #define MAX_SPEED_OFFSET 10

boolean goesForward = false; int distansya = 80; int speedSet = 0;

walang bisa ang pag-setup () {

myservo.attach (10); myservo.write (115); pagkaantala (2000); distansya = readPing (); pagkaantala (100); distansya = readPing (); pagkaantala (100); distansya = readPing (); pagkaantala (100); distansya = readPing (); pagkaantala (100); }

void loop () {int distanceR = 0; int distansyaL = 0; pagkaantala (40); kung (distansya <= 15) {moveStop (); antala (50); ilipatBackward (); pagkaantala (150); ilipatStop (); pagkaantala (100); distanceR = lookRight (); pagkaantala (100); distansyaL = lookLeft (); pagkaantala (100);

kung (distansyaR> = distansyaL) {turnRight (); ilipatStop (); } iba pa {turnLeft (); ilipatStop (); }} iba pa {moveForward (); } distansya = readPing (); }

int lookRight () {myservo.write (50); pagkaantala (250); int distansya = readPing (); antala (50); myservo.write (100); distansya ng pagbabalik; }

int lookLeft () {myservo.write (120); pagkaantala (300); int distansya = readPing (); pagkaantala (100); myservo.write (115); distansya ng pagbabalik; pagkaantala (100); }

int readPing () {pagkaantala (70); int cm = sonar.ping_cm (); kung (cm == 0) {cm = 200; } bumalik cm; }

void moveStop () {motor1.run (RELEASE); motor2.run (RELEASE); motor3.run (RELEASE); motor4.run (RELEASE); } walang bisa moveForward () {

kung (! goesForward) {goesForward = true; motor1.run (FORWARD); motor2.run (FORWARD); motor3.run (FORWARD); motor4.run (FORWARD); para sa (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); antala (5); }}}

void moveBackward () {goesForward = false; motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (BACKWARD); motor4.run (BACKWARD); para sa (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) {motor1.setSpeed (speedSet); motor2.setSpeed (speedSet); motor3.setSpeed (speedSet); motor4.setSpeed (speedSet); antala (5); } void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (FORWARD); motor4.run (FORWARD); pagkaantala (500); motor1.run (FORWARD); motor2.run (FORWARD); motor3.run (FORWARD); motor4.run (FORWARD); }

void turnLeft () {motor1.run (BACKWARD); motor2.run (BACKWARD); motor3.run (FORWARD); motor4.run (FORWARD); pagkaantala (500); motor1.run (FORWARD); motor2.run (FORWARD); motor3.run (FORWARD); motor4.run (FORWARD); }

Inirerekumendang: