Talaan ng mga Nilalaman:

Paano Gumawa ng DIY Arduino Obstacle na Pag-iwas sa Robot sa Bahay: 4 na Hakbang
Paano Gumawa ng DIY Arduino Obstacle na Pag-iwas sa Robot sa Bahay: 4 na Hakbang

Video: Paano Gumawa ng DIY Arduino Obstacle na Pag-iwas sa Robot sa Bahay: 4 na Hakbang

Video: Paano Gumawa ng DIY Arduino Obstacle na Pag-iwas sa Robot sa Bahay: 4 na Hakbang
Video: МАСТЕР-КЛАСС по Arduino | Полный семинар по программированию за 90 минут! 2024, Hulyo
Anonim
Image
Image

Hello Guys, Sa Instructable na ito, gagawa ka ng isang balakid sa pag-iwas sa robot. Ang Instructable na ito ay nagsasangkot ng pagbuo ng isang robot na may isang ultrasonic sensor na makakakita ng kalapit na mga bagay at baguhin ang kanilang direksyon upang maiwasan ang mga bagay na ito. Ang sensor ng ultrasonic ay ikakabit sa isang servo motor na kung saan ay patuloy na pag-scan ng kaliwa at kanan na naghahanap ng mga bagay sa kanyang paraan.

Kaya, nang walang karagdagang pagtatalo, Magsimula tayo!

Hakbang 1: Ano ang Kailangan mo sa Project na Ito:

Ano ang Kailangan mo sa Project na Ito
Ano ang Kailangan mo sa Project na Ito
Ano ang Kailangan mo sa Project na Ito
Ano ang Kailangan mo sa Project na Ito

Narito ang Listahan ng Mga Bahagi:

1) Arduino Uno

2) Motor Driver Shield

3) Itakda ang Gear Motor, Frame at gulong

4) Servo Motor

5) Ultrasonic Sensor

6) Li-ion Battery (2x)

7) May-hawak ng Baterya

8) Lalaki at Babae Jumper wire

9) Panghinang na Bakal

10) Charger

Hakbang 2: Diagram ng Circuit

Diagram ng Circuit
Diagram ng Circuit

Nagtatrabaho:

Bago magtrabaho sa proyekto, mahalagang maunawaan kung paano gumagana ang ultrasonic sensor. Ang pangunahing prinsipyo sa likod ng pagtatrabaho ng ultrasonic sensor ay ang mga sumusunod:

Gamit ang isang panlabas na signal ng pag-trigger, ang Trig pin sa ultrasonic sensor ay ginawang mataas ang lohika nang hindi bababa sa 10µs. Ang isang sonik na pagsabog mula sa module ng transmitter ay ipinadala. Binubuo ito ng 8 pulso ng 40KHz.

Ang mga signal ay bumalik pabalik pagkatapos ng pagpindot sa isang ibabaw at nakita ng tatanggap ang signal na ito. Ang Echo pin ay mataas mula sa oras ng pagpapadala ng signal at pagtanggap nito. Ang oras na ito ay maaaring mai-convert sa distansya gamit ang naaangkop na mga kalkulasyon.

Ang layunin ng proyektong ito ay upang ipatupad ang isang balakid sa pag-iwas sa robot gamit ang ultrasonic sensor at Arduino. Ang lahat ng mga koneksyon ay ginawa ayon sa diagram ng circuit. Ang pagtatrabaho ng proyekto ay ipinaliwanag sa ibaba.

Kapag ang robot ay pinapagana, ang parehong mga motor ng robot ay tatakbo nang normal at ang robot ay sumusulong. Sa oras na ito, patuloy na kinakalkula ng sensor ng ultrasonic ang distansya sa pagitan ng robot at ng mapanimdim na ibabaw.

Ang impormasyong ito ay naproseso ng Arduino. Kung ang distansya sa pagitan ng robot at ng balakid ay mas mababa sa 15cm, ang Robot ay tumitigil at ini-scan sa kaliwa at kanang direksyon para sa bagong distansya gamit ang Servo Motor at Ultrasonic Sensor. Kung ang distansya patungo sa kaliwang bahagi ay higit pa sa kanang bahagi, maghahanda ang robot para sa isang kaliwang pagliko. Ngunit una, ito ay back up ng kaunti at pagkatapos ay buhayin ang Left Wheel Motor sa baligtad sa direksyon.

Katulad nito, kung ang tamang distansya ay higit pa sa kaliwang distansya, ang Robot ay naghahanda ng tamang pag-ikot. Ang prosesong ito ay magpapatuloy magpakailanman at ang robot ay patuloy na gumagalaw nang hindi tumatama sa anumang balakid.

Hakbang 3: Programming Arduino UNO

# isama

# isama

# isama

# tukuyin ang TRIG_PIN A1

# tukuyin ang ECHO_PIN A0

# tukuyin ang MAX_DISTANCE 200

# tukuyin ang MAX_SPEED 255 // nagtatakda ng bilis ng mga DC motor

# tukuyin ang MAX_SPEED_OFFSET 20

NewPing sonar (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); Servo MyServo;

boolean goesForward = false;

int distansya = 100; 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 distansyaR = 0; int distansyaL = 0; pagkaantala (40);

kung (distansya <= 15) {moveStop (); pagkaantala (100); ilipatBackward (); pagkaantala (300); ilipatStop (); pagkaantala (200); distanceR = lookRight (); pagkaantala (200); distansyaL = lookLeft (); pagkaantala (200);

kung (distansyaR> = distansyaL) {

lumiko pakanan(); ilipatStop (); } iba pa {turnLeft (); ilipatStop (); }} iba pa {moveForward (); } distansya = readPing (); }

int lookRight () {

myservo.write (50); pagkaantala (500); int distansya = readPing (); pagkaantala (100); myservo.write (115); distansya ng pagbabalik; }

int lookLeft () {

myservo.write (170); pagkaantala (500); 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 = 250; } bumalik cm; }

walang bisa moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

walang bisa moveForward () {

kung (! goesForward) {

goesForward = totoo;

motor3.run (FORWARD);

motor4.run (FORWARD); para sa (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // dahan-dahang dalhin ang bilis upang maiwasan ang pag-load ng masyadong mabilis sa mga baterya {

motor3.setSpeed (speedSet);

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

walang bisa moveBackward () {

goesForward = false;

motor3.run (BACKWARD);

motor4.run (BACKWARD); para sa (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // dahan-dahang dalhin ang bilis upang maiwasan ang pag-load ng masyadong mabilis sa mga baterya {

motor3.setSpeed (speedSet);

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

void turnRight () {

motor3.run (FORWARD);

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

motor3.run (FORWARD);

motor4.run (FORWARD); }

void turnLeft () {

motor3.run (BACKWARD);

motor4.run (FORWARD); pagkaantala (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

1) I-download at I-install ang Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) I-download at i-paste ang NewPing library (Ultrasonic sensor function library) na file sa folder ng Arduino libraries.

  1. I-download ang NewPing.rar sa ibaba
  2. I-extract ito sa path - C: / Arduino / mga aklatan

3) I-upload ang code sa Arduino board sa pamamagitan ng isang USB cable

I-download ang Code:

Hakbang 4: Mahusay

Handa na ang iyong robot upang maiwasan ang anumang balakid …

Masaya akong sasagot sa anumang mga katanungan mo

Emailme: [email protected]

Website:

Mag-subscribe sa aking Channel sa YouTube:

Instagram:

Facebook:

Salamat:)

Inirerekumendang: