Სარჩევი:

UCL - ჩაშენებული - არჩევანი და ადგილი: 4 ნაბიჯი
UCL - ჩაშენებული - არჩევანი და ადგილი: 4 ნაბიჯი

ვიდეო: UCL - ჩაშენებული - არჩევანი და ადგილი: 4 ნაბიჯი

ვიდეო: UCL - ჩაშენებული - არჩევანი და ადგილი: 4 ნაბიჯი
ვიდეო: FIORENTINA - INTER 1 - 2❗️Lautaro Martinez ribalta Nico Gonzalez❗️#coppaitaliafrecciarossa 2024, დეკემბერი
Anonim
UCL - ჩაშენებული - არჩევა და ადგილი
UCL - ჩაშენებული - არჩევა და ადგილი

ეს გასაგები იქნება, თუ როგორ ხდება 2D შერჩევა და განთავსება და როგორ ხდება მისი კოდირება.

ნაბიჯი 1: კომპუნეტები

კომპუნეტები
კომპუნეტები

1x ადრიო მეგა

2x სტეპერიანი ძრავა (ჩვენ ვიყენეთ JLB Stepper Motor, მოდელი 17H1352-P4130)

2x Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC Arduino– სთვის

1x სერვო ძრავა (ჩვენ არ გვაქვს ლაქა ამ ერთზე)

3x 10k ohm რეზისტორები

2x ნეილონის ბალიში

1x 12v კვების ბლოკი

რაღაც ხე ჩარჩოსთვის

მავთულები

ნაბიჯი 2: მშენებლობა

მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა

პირველი, რაც მშენებლობის სახეზე იყო, იყო არჩევანის გაკეთება ადგილის არჩევისა და ზომისთვის

პირველ რიგში ჩვენ ვაშენებთ ძირითად ფორმის ხეს. ჩვენ ავაშენეთ ჩვენი არჩევანი და ადგილი ჩარჩო 50 სმ 25 სმ 30 სმ. ჩარჩოს, ხიდისა და ამწევი ხელის გარდა ყველაფერი ლაზერული საჭრელით იყო დამზადებული.

აქ არის ყველა ფაილის ბმული

შემდეგ ჩვენ გვინდოდა პულის სისტემა. აქ წავედით ორი 50 მმ -იანი ბეჭდით და ერთი 20 მმ -იანი ბეჭდით. შემდეგ ჩვენ დავაყენეთ პარაკორდი 20 მმ -ის გვერდით წებოთი. რის შემდეგაც ჩვენ შევიჭერით ორი 50 მმ -იანი რგოლი 20 მმ -იანი რგოლის ორივე მხარეს.

20 მმ

50 მმ

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

რომელიც შემდეგ იყო წებოვანი U ფორმაში. შემდეგ ჩვენ დავუკავშირდით ხიდს.

გვერდითი ფირფიტა

უკანა ფირფიტა

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

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

ნაბიჯი 3: კოდი

კოდი
კოდი
კოდი
კოდი
კოდი
კოდი

პროგრამირება საკმაოდ მარტივია და შედგება 5 ნაწილისგან

  1. ბიბლიოთეკების ჩართვა და ცვლადების დაყენება შიდა და IO გამოყენებისთვის
  2. ჩადეთ ჩატვირთვა Ram- ში
  3. სეკვენს, ირჩევ თქვენთვის სასურველ მოძრაობას.
  4. სტეპერი/სერვო პოზიციის კონტროლი
  5. გამოტანა მსოფლიოში

ჩვენ ფართოდ განვმარტავთ თითოეულ ნაწილს, მაგრამ გახსოვდეთ, რომ ეს არის მხოლოდ ერთი მრავალი გამოსავალიდან.

1: void setup– ში ჩვენ შევიტანეთ 2 ბიბლიოთეკა, რომელიც გვჭირდება ამ პროექტისათვის. სტეპერი და სერვო. ჩართული ბიბლიოთეკების გამოყენებით თქვენ დაზოგავთ ყველა დეტალს სტეპერ და სერვო ძრავების შესახებ.

#ჩართეთ

#ჩართეთ

const int stepsPerRevolution = 200; // შეცვალეთ ეს თქვენი ძრავისთვის რევოლუციის ნაბიჯების რაოდენობის შესაცვლელად

// სტეპერ ბიბლიოთეკის ინიციალიზაცია ქინძისთავებზე 8 -დან 11 -მდე:

სტეპერი XStepper (ნაბიჯები PerRevolution, 22, 23, 24, 25); სტეპერი YStepper (ნაბიჯები PerRevolution, 28, 29, 30, 31); სერვო გრიპერი; // servo ობიექტის შექმნა servo- ს გასაკონტროლებლად

Gripper უნდა მიიღოს ერთვის ბათილად setup

void setup () {// სერიული პორტის ინიციალიზაცია: Serial.begin (9600); გრიპერი. მიმაგრება (9); // მიმაგრებს servo პინ 9 -ზე servo ობიექტს

ამ ნაწილის დანარჩენი ნაწილი არის ცვლადი და მუდმივი.

2: პირველი, რაც Void Loop– შია, არის ყველა გამოყენებული შეყვანის ჩატვირთვა ცვლადზე. ეს კეთდება ორი მიზეზის გამო. პირველი მიზეზი არის შეზღუდოს CPU– ს შესასრულებელი ამოცანების წაკითხვისას. მეორე მიზეზი, რაც ყველაზე მნიშვნელოვანია, რათა დავრწმუნდეთ, რომ თუ შეყვანა გამოიყენება ერთზე მეტჯერ, მას ექნება იგივე მნიშვნელობა მთელი სკანირების განმავლობაში. ეს აადვილებს თანმიმდევრული კოდის წერას. ეს არის ძალიან გავრცელებული პრაქტიკა PLC პროგრამირებაში, მაგრამ ის ასევე ვრცელდება ჩაშენებულ პროგრამირებაზე.

// ------------------------- შეყვანა RAM– ში -------------------- Xend = digitalRead (34); იენდი = digitalRead (35); ენა = digitalRead (36);

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

4: სერვოს პოზიციას აკონტროლებს servo liberi და if განცხადება გრიპერისთვის ღია და დახურული.

სტეპერ კონტროლი ცოტა უფრო რთულია. ფუნქცია ადარებს Setpoint (პოზიციას, რომელზეც მკლავი უნდა წავიდეს) და მიმდინარე პოზიციას. თუ ამჟამინდელი პოზიცია უყვარს, ფუნქცია ემატება პოზიციას და სთხოვს Stepper liberi ფუნქციას გადადგას პოზიტიური ნაბიჯი. საპირისპიროა მაღალი პოზიციის შემთხვევაში. თუ პოზიცია იგივეა, რაც Setpoint, XinPos ბიტი იჯდება და სტეპერი ჩერდება.

// SP კონტროლი X

თუ (XstepCountXsp და არა მთავარი) {

XstepCount = XstepCount-1; Xstep = -1; XinPos = 0; } if (XstepCount == Xsp) {Xstep = 0; XinPos = 1; }

5: დაამატეთ კოდის ბოლო, ძრავები კონტროლდება ლიბერის ფუნქციებით.

// -------------------- გამომავალი ---------------------- // ნაბიჯი ერთი ნაბიჯი: XStepper.step (Xstep); // ნაბიჯი ერთი ნაბიჯი: YStepper.step (Ystep);

Griper.write (GripSp);

ნაბიჯი 4: დამზადებულია

casp6099 - კასპერ ჰარტუნგ კრისტენსენი

rasm616d - რასმუს ჰანსენი

გირჩევთ: