Სარჩევი:

როგორ გააკეთოთ წვრილმანი Arduino დაბრკოლება რობოტის თავიდან ასაცილებლად სახლში: 4 ნაბიჯი
როგორ გააკეთოთ წვრილმანი Arduino დაბრკოლება რობოტის თავიდან ასაცილებლად სახლში: 4 ნაბიჯი

ვიდეო: როგორ გააკეთოთ წვრილმანი Arduino დაბრკოლება რობოტის თავიდან ასაცილებლად სახლში: 4 ნაბიჯი

ვიდეო: როგორ გააკეთოთ წვრილმანი Arduino დაბრკოლება რობოტის თავიდან ასაცილებლად სახლში: 4 ნაბიჯი
ვიდეო: 1. რა არის Arduino? როგორ მუშაობს კომპიუტერი? 2024, ივლისი
Anonim
Image
Image

გამარჯობა ბიჭებო, ამ ინსტრუქციებში თქვენ შექმნით დაბრკოლებას რობოტის თავიდან აცილების მიზნით. ეს ინსტრუქცია გულისხმობს რობოტის შექმნას ულტრაბგერითი სენსორით, რომელსაც შეუძლია აღმოაჩინოს ახლომდებარე ობიექტები და შეცვალოს მათი მიმართულება ამ ობიექტების თავიდან ასაცილებლად. ულტრაბგერითი სენსორი მიმაგრებული იქნება სერვო ძრავაზე, რომელიც გამუდმებით სკანირებს მარცხნივ და მარჯვნივ და ეძებს საგნებს გზაზე.

ასე რომ, ყოველგვარი გატაცების გარეშე, დავიწყოთ!

ნაბიჯი 1: რა გჭირდებათ ამ პროექტში:

რა გჭირდებათ ამ პროექტში
რა გჭირდებათ ამ პროექტში
რა გჭირდებათ ამ პროექტში
რა გჭირდებათ ამ პროექტში

აქ მოცემულია ნაწილების სია:

1) არდუინო უნო

2) საავტომობილო მძღოლის ფარი

3) გადაცემათა კოლოფი, ჩარჩო და ბორბლები

4) სერვო ძრავა

5) ულტრაბგერითი სენსორი

6) Li-ion ბატარეა (2x)

7) ბატარეის დამჭერი

8) მამრობითი და მდედრობითი Jumper მავთულები

9) შედუღების რკინა

10) დამტენი

ნაბიჯი 2: სქემის დიაგრამა

Წრიული დიაგრამა
Წრიული დიაგრამა

მუშაობს:

პროექტზე მუშაობის დაწყებამდე მნიშვნელოვანია იმის გაგება, თუ როგორ მუშაობს ულტრაბგერითი სენსორი. ულტრაბგერითი სენსორის მუშაობის ძირითადი პრინციპი შემდეგია:

გარე გამშვები სიგნალის გამოყენებით, ულტრაბგერითი სენსორის Trig pin არის ლოგიკური მაღალი მინიმუმ 10µs. იგზავნება გადამცემი მოდულიდან ხმოვანი აფეთქება. იგი შედგება 8 იმპულსისაგან 40KHz.

სიგნალები ბრუნდება ზედაპირზე დარტყმის შემდეგ და მიმღები აღმოაჩენს ამ სიგნალს. Echo pin მაღალია სიგნალის გაგზავნისა და მიღების მომენტიდან. ეს დრო შეიძლება გადაკეთდეს მანძილზე შესაბამისი გამოთვლების გამოყენებით.

ამ პროექტის მიზანია განახორციელოს დაბრკოლება რობოტის თავიდან აცილების მიზნით ულტრაბგერითი სენსორისა და არდუინოს გამოყენებით. ყველა კავშირი ხდება სქემის დიაგრამის მიხედვით. პროექტის მუშაობა ქვემოთ არის აღწერილი.

როდესაც რობოტი ჩართულია, რობოტის ორივე ძრავა ნორმალურად იმუშავებს და რობოტი წინ მიიწევს. ამ დროის განმავლობაში, ულტრაბგერითი სენსორი მუდმივად ითვლის მანძილს რობოტსა და ამრეკლ ზედაპირს შორის.

ეს ინფორმაცია დამუშავებულია არდუინოს მიერ. თუ რობოტსა და დაბრკოლებას შორის მანძილი 15 სმ -ზე ნაკლებია, რობოტი ჩერდება და სკანირდება მარცხენა და მარჯვენა მიმართულებით ახალი მანძილისთვის Servo Motor და ულტრაბგერითი სენსორის გამოყენებით. თუ მარცხენა მხარეს მანძილი უფრო მეტია ვიდრე მარჯვენა, მაშინ რობოტი მოემზადება მარცხენა მოსახვევისთვის. მაგრამ ჯერ ის ოდნავ უკან იხევს და შემდეგ ააქტიურებს მარცხენა ბორბლის ძრავას პირიქით მიმართულებით.

ანალოგიურად, თუ მარჯვენა მანძილი უფრო მეტია ვიდრე მარცხენა მანძილი, რობოტი ამზადებს მარჯვენა ბრუნვას. ეს პროცესი სამუდამოდ გრძელდება და რობოტი განაგრძობს მოძრაობას ყოველგვარი დაბრკოლების გარეშე.

ნაბიჯი 3: Arduino UNO პროგრამირება

#ჩართეთ

#ჩართეთ

#ჩართეთ

# განსაზღვრეთ TRIG_PIN A1

# განსაზღვრეთ ECHO_PIN A0

# განსაზღვრეთ MAX_DISTANCE 200

# განსაზღვრა MAX_SPEED 255 // ადგენს DC ძრავების სიჩქარეს

# განსაზღვრეთ MAX_SPEED_OFFSET 20

NewPing სონარი (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor motor3 (3, MOTOR34_1KHZ);

AF_DCMotor motor4 (4, MOTOR34_1KHZ); სერვო მისერვო;

ბული მიდის წინ = ყალბი;

int მანძილი = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); დაგვიანება (2000); მანძილი = readPing (); დაგვიანება (100); მანძილი = readPing (); დაგვიანება (100); მანძილი = readPing (); დაგვიანება (100); მანძილი = readPing (); დაგვიანება (100); }

ბათილი მარყუჟი () {

int მანძილი R = 0; int მანძილი L = 0; დაგვიანება (40);

if (მანძილი <= 15) {moveStop (); დაგვიანება (100); moveBackward (); დაგვიანება (300); moveStop (); დაგვიანება (200); მანძილი R = lookRight (); დაგვიანება (200); მანძილი L = lookLeft (); დაგვიანება (200);

თუ (მანძილი R> = მანძილი ლ) {

turnRight (); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } მანძილი = readPing (); }

int lookRight () {

myservo.write (50); დაგვიანება (500); int მანძილი = readPing (); დაგვიანება (100); myservo.write (115); დაბრუნების მანძილი; }

int lookLeft () {

myservo.write (170); დაგვიანება (500); int მანძილი = readPing (); დაგვიანება (100); myservo.write (115); დაბრუნების მანძილი; დაგვიანება (100); }

int readPing () {

დაგვიანება (70); int cm = sonar.ping_cm (); თუ (სმ == 0) {სმ = 250; } დაბრუნება სმ; }

void moveStop () {

motor3.run (გათავისუფლება);

motor4.run (გათავისუფლება); }

void moveForward () {

თუ (! მიდის წინ) {

goForward = true;

motor3.run (წინ);

motor4.run (წინ); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // ნელა აწიეთ სიჩქარე, რათა თავიდან აიცილოთ ბატარეები ძალიან სწრაფად {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); დაგვიანება (5); }}}

void moveBackward () {

goForward = false;

motor3. გაშვება (BACKWARD);

motor4.run (BACKWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet += 2) // ნელა აწიეთ სიჩქარე, რათა თავიდან აიცილოთ ბატარეები ძალიან სწრაფად {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); დაგვიანება (5); }}

void turnRight () {

motor3.run (წინ);

motor4.run (BACKWARD); დაგვიანება (500);

motor3.run (წინ);

motor4.run (წინ); }

void turnLeft () {

motor3. გაშვება (BACKWARD);

motor4.run (წინ); დაგვიანება (500);

motor3.run (წინ);

motor4.run (წინ); }

1) ჩამოტვირთეთ და დააინსტალირეთ Arduino Desktop IDE

  • ფანჯრები -
  • Mac OS X -
  • Linux -

2) ჩამოტვირთეთ და ჩასვით NewPing ბიბლიოთეკა (ულტრაბგერითი სენსორის ფუნქციის ბიბლიოთეკა) ფაილი Arduino ბიბლიოთეკების საქაღალდეში.

  1. ჩამოტვირთეთ NewPing.rar ქვემოთ
  2. ამოიღეთ იგი ბილიკზე - C: / Arduino / ბიბლიოთეკები

3) ატვირთეთ კოდი Arduino დაფაზე USB კაბელის საშუალებით

გადმოტვირთვის კოდი:

ნაბიჯი 4: მშვენიერია

ახლა თქვენი რობოტი მზად არის თავიდან აიცილოს ნებისმიერი დაბრკოლება…

სიამოვნებით გიპასუხებდით ნებისმიერ კითხვაზე

ელ.ფოსტა: [email protected]

საიტი:

გამოიწერეთ ჩემი YouTube არხი:

Instagram:

ფეისბუქი:

Გმადლობთ:)

გირჩევთ: