Სარჩევი:

დახარისხების ურნა - აღმოაჩინეთ და დაალაგეთ თქვენი ნაგავი: 9 ნაბიჯი
დახარისხების ურნა - აღმოაჩინეთ და დაალაგეთ თქვენი ნაგავი: 9 ნაბიჯი

ვიდეო: დახარისხების ურნა - აღმოაჩინეთ და დაალაგეთ თქვენი ნაგავი: 9 ნაბიჯი

ვიდეო: დახარისხების ურნა - აღმოაჩინეთ და დაალაგეთ თქვენი ნაგავი: 9 ნაბიჯი
ვიდეო: Dungeons and Dragons: მე ვხსნი 30 Magic The Gathering გაფართოების გამაძლიერებლის ყუთს 2024, ივლისი
Anonim
Image
Image
Როგორ მუშაობს
Როგორ მუშაობს

გინახავთ ვინმე, ვინც არ გადამუშავებს ან აკეთებს ამას ცუდად?

ოდესმე გისურვებთ მანქანას, რომელიც გადაამუშავებს თქვენთვის?

განაგრძეთ ჩვენი პროექტის კითხვა, არ ინანებთ!

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

ამ მიზეზით, ჩვენმა გუნდმა გადაწყვიტა შეექმნა პროექტი მცირე მასშტაბით: დასალაგებელი ურნა, რომელსაც შეუძლია ნაგვის გამოყოფა სხვადასხვა მიმღებად, იმისდა მიხედვით, მასალა მეტალია თუ არამეტალი. მომავალ ვერსიებში, დასალაგებელი ურნა შეიძლება გაფართოვდეს, რაც საშუალებას იძლევა ნაგავი დაყოს სხვადასხვა სახის მასალაზე (ხე, პლასტმასი, ლითონი, ორგანული …).

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

მომდევნო სექციებში ეს პროექტი ეტაპობრივად იქნება ახსნილი.

ნაბიჯი 1: როგორ მუშაობს

Როგორ მუშაობს
Როგორ მუშაობს
Როგორ მუშაობს
Როგორ მუშაობს

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

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

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

როდესაც ყუთი ჩამოდის დარტყმის ბოლოს და ობიექტი ჩავარდება სწორ მიმღებში, ყუთი დაბრუნდება საწყის პოზიციაზე. დაბოლოს, ყუთი საწყის მდგომარეობაში, ყვითელი LED გამორთულია. დამლაგებელი მზად იქნება დაიწყოს იგივე პროცედურა. ეს პროცესი, რომელიც აღწერილია ბოლო აბზაცებში, ასევე ნაჩვენებია მე –6 საფეხურზე მიმაგრებული სამუშაო ნაკადის სქემაში: პროგრამირება.

ნაბიჯი 2: მასალების ანგარიში (BOM)

მექანიკური ნაწილები:

  • შეიძინა ნაწილები ქვედა სტრუქტურისთვის

    • ლითონის სტრუქტურა [ბმული]
    • ნაცრისფერი ყუთი [ლინკი]
  • 3D პრინტერი

    PLA ყველა დაბეჭდილი ნაწილისთვის (სხვა მასალების გამოყენებაც შესაძლებელია, მაგალითად ABS)

  • ლაზერული ჭრის მანქანა

    • MDF 3 მმ
    • პლექსიგლასი 4 მმ
  • ხაზოვანი ტარების ნაკრები [ბმული]
  • ხაზოვანი ტარების [ბმული]
  • შახტი [ბმული]
  • ლილვის დამჭერი (x2) [ბმული]

Ელექტრონული ნაწილები:

  • ძრავა

    Linear Stepper Motor Nema 17 [ბმული]

  • ბატარეა

    12 ვ ბატარეა [ბმული]

  • სენსორები

    • 2 ულტრაბგერითი სენსორი HC-SR04 [ბმული]
    • 2 ინდუქციური სენსორი LJ30A3-15 [ბმული]
  • მიკროკონტროლერი

    1 arduino UNO დაფა

  • დამატებითი კომპონენტები

    • DRV8825 დრაივერი
    • 3 LED: წითელი, მწვანე და ნარინჯისფერი
    • 1 ღილაკი
    • ზოგიერთი ხტომა მავთულები, მავთულები და soldering ფირფიტები
    • პურის დაფა
    • USB კაბელი (Arduino-PC კავშირი)
    • კონდენსატორი: 100uF

ნაბიჯი 3: მექანიკური დიზაინი

Image
Image
მექანიკური დიზაინი
მექანიკური დიზაინი
მექანიკური დიზაინი
მექანიკური დიზაინი

წინა სურათებში ნაჩვენებია შეკრების ყველა ნაწილი.

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

ლაზერული ჭრის ნაწილები:

  • MDF 3 მმ

    • სვეტები
    • ზედა ფირფიტა
    • ულტრაბგერითი სენსორების მხარდაჭერა
    • ინდუქციური სენსორების მხარდაჭერა
    • ნაგვის ყუთი
    • ბატარეის მხარდაჭერა
    • Breadboard და Arduino მხარდაჭერა
  • პლექსიგლასი 4 მმ

    Პლატფორმა

3D ბეჭდვის ნაწილები:

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

თითოეული ამ ნაწილის წარმოებისთვის,. STEP ფაილები უნდა იყოს იმპორტირებული სწორი ფორმატით, იმისდა მიხედვით, თუ რომელი აპარატი იქნება გამოყენებული ამ მიზნით. ამ შემთხვევაში.dxf ფაილები გამოიყენება ლაზერული ჭრის დანადგარისთვის და.gcode ფაილები 3D პრინტერისთვის (Ultimaker 2).

ამ პროექტის მექანიკური შეკრება შეგიძლიათ იხილოთ. STEP ფაილში, რომელიც თან ერთვის ამ ნაწილს.

ნაბიჯი 4: ელექტრონიკა (კომპონენტის არჩევანი)

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

Arduino UNO დაფა (როგორც მიკროკონტროლი):

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

ძრავა (ხაზოვანი სტეპერიანი ძრავა Nema 17):

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

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

DRV8825 მძღოლი:

ეს დაფა გამოიყენება ბიპოლარული სტეპერი ძრავის გასაკონტროლებლად. მას აქვს რეგულირებადი დენის კონტროლი, რომელიც საშუალებას გაძლევთ დააყენოთ მაქსიმალური მიმდინარე გამომუშავება პოტენომეტრით, ასევე ექვსი განსხვავებული ნაბიჯის გარჩევადობა: სრული ნაბიჯი, ნახევარ საფეხური, 1/4 საფეხური, 1/8 საფეხური, 1/16- ნაბიჯი და 1/32-საფეხურიანი (ჩვენ საბოლოოდ გამოვიყენეთ სრული ნაბიჯი, ვინაიდან ჩვენ არ აღმოვაჩინეთ საჭიროება მიკროსტეპინგზე წასვლა, მაგრამ ის მაინც შეიძლება გამოყენებულ იქნას მოძრაობის ხარისხის გასაუმჯობესებლად).

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

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

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

ინდუქციური სენსორები:

ფარადეის კანონის საფუძველზე, ის მიეკუთვნება უკონტაქტო ელექტრონული სიახლოვის სენსორის კატეგორიას. ჩვენ მოვათავსეთ ისინი მოძრავი ყუთის ბოლოში, პლექსიგლასის პლატფორმის ქვეშ, რომელიც მხარს უჭერს ობიექტს. მათი მიზანია განასხვავონ ლითონისა და არამეტალური ობიექტის ციფრული გამომუშავება (0/1).

LED- ები (მწვანე, ყვითელი, წითელი):

მათი მისიაა მომხმარებელთან ურთიერთობა:

-მწვანე შუქნიშანი ჩართულია: რობოტი ელოდება ობიექტს.

-წითელი LED: მანქანა მუშაობს, თქვენ არ შეგიძლიათ გადააგდოთ რაიმე ობიექტი.

-ყვითელი LED: ობიექტი გამოვლენილია.

12V ბატარეა ან 12V კვების წყარო + 5V USB ძალა:

ძაბვის წყარო საჭიროა სენსორების და სტეპერ ძრავის დასაყენებლად. არდუინოს კვებისათვის საჭიროა 5 ვ ენერგიის წყარო. ეს შეიძლება გაკეთდეს 12 ვ ბატარეის საშუალებით, მაგრამ უმჯობესია გქონდეთ ცალკე 5 ვ კვების წყარო Arduino– სთვის (როგორიცაა USB კაბელი და ტელეფონის ადაპტერი, რომელიც დაკავშირებულია ენერგიის წყაროსთან ან კომპიუტერთან).

საკითხები, რომლებიც აღმოვაჩინეთ:

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

    • კვადრატული პლატფორმის სენსორებით დაფარული ტერიტორია წარმოადგენს მის 50% -ზე ნაკლებს (ასე რომ, პატარა ობიექტის გამოვლენა შეუძლებელია). მისი გადასაჭრელად ჩვენ გირჩევთ გამოიყენოთ 3 ან 4 ინდუქციური სენსორი, რათა უზრუნველყოთ ტერიტორიის 70% -ზე მეტი დაფარული.
    • სენსორების გამოვლენის მანძილი შემოიფარგლება 15 მმ -ით, ასე რომ ჩვენ აღმოვჩნდით იძულებულნი გამოვიყენოთ კარგი პლექსიგლასის პლატფორმა. ეს ასევე შეიძლება იყოს უცნაური ფორმის საგნების გამოვლენის კიდევ ერთი შეზღუდვა.
  • ულტრაბგერითი გამოვლენა: ისევ და ისევ, კომპლექსურად ფორმირებული საგნები წარმოქმნიან პრობლემებს, რადგან სენსორების მიერ გამოყოფილი სიგნალი ცუდად აისახება და სენსორზე უფრო გვიან ბრუნდება.
  • ბატარეა: ჩვენ გვაქვს გარკვეული საკითხები, რომლებიც აკონტროლებენ ბატარეის მიერ მოწოდებულ დენს და მის მოსაგვარებლად ჩვენ საბოლოოდ გამოვიყენეთ კვების წყარო. თუმცა, სხვა გადაწყვეტილებები, როგორიცაა დიოდის გამოყენება, შეიძლება შესრულდეს.

ნაბიჯი 5: ელექტრონიკა (კავშირები)

ელექტრონიკა (კავშირები)
ელექტრონიკა (კავშირები)
ელექტრონიკა (კავშირები)
ელექტრონიკა (კავშირები)

ამ ნაწილში ნაჩვენებია სხვადასხვა კომპონენტის გაყვანილობა. ის ასევე აჩვენებს Arduino– ს რომელ პინთან არის დაკავშირებული თითოეული კომპონენტი.

ნაბიჯი 6: პროგრამირება

პროგრამირება
პროგრამირება

ეს განყოფილება განმარტავს პროგრამირების ლოგიკას Bin დახარისხებელი მანქანის უკან.

პროგრამა დაყოფილია 4 საფეხურად, რომლებიც შემდეგია:

  1. სისტემის ინიციალიზაცია
  2. შეამოწმეთ ობიექტების არსებობა
  3. შეამოწმეთ არსებული ობიექტის ტიპი
  4. გადაადგილების ყუთი

თითოეული ნაბიჯის დეტალური აღწერა იხილეთ ქვემოთ:

ნაბიჯი 1 სისტემის ინიციალიზაცია

LED პანელი (3) - მითითებული კალიბრაციის LED (წითელი) მაღალი, მზა LED (მწვანე) LOW, ობიექტის წინამდებარე (ყვითელი) LOW

შეამოწმეთ სტეპერიანი ძრავა საწყის მდგომარეობაშია

  • ჩაატარეთ ულტრაბგერითი სენსორის ტესტი, რომ გაზომოთ მანძილი გვერდიდან ყუთის კედლამდე

    • საწყისი პოზიცია == 0 >> განაახლოთ მზა LED HIGH და კალიბრირებული LED LOW -> ნაბიჯი 2
    • საწყისი პოზიცია! = 0 >> ულტრაბგერითი სენსორების ციფრული წაკითხვის მნიშვნელობა და სენსორის მნიშვნელობებზე დაყრდნობით:

      • განაახლეთ საავტომობილო მოძრავი LED HIGH.
      • გაუშვით გადაადგილების ყუთი სანამ ორივე ულტრაბგერითი სენსორის მნიშვნელობა <ბარიერია.

საწყისი პოზიციის = 1 >> განახლებული ღირებულების LED Ready HIGH და საავტომობილო მოძრაობს LOW და Calibrating LOW >> ნაბიჯი 2

ნაბიჯი 2

შეამოწმეთ ობიექტების არსებობა

გაუშვით ულტრაბგერითი ობიექტის გამოვლენა

  • Object present == 1 >> Object present LED HIGH ღირებულების განახლება >> ნაბიჯი 3
  • ობიექტი აწმყო == 0 >> არაფერი გააკეთო

ნაბიჯი 3

შეამოწმეთ არსებული ობიექტის ტიპი

გაუშვით ინდუქციური სენსორის გამოვლენა

  • inductiveState = 1 >> ნაბიჯი 4
  • inductiveState = 0 >> ნაბიჯი 4

ნაბიჯი 4

გადაადგილების ყუთი

გაუშვით საავტომობილო ოპერაცია

  • ინდუქციური სახელმწიფო == 1

    განაახლეთ საავტომობილო მოძრავი LED HIGH >> გააკეთეთ ძრავა მარცხნივ, (განაახლეთ საწყისი პოზიცია = 0) დააყოვნეთ და გადაუხვიეთ მარჯვნივ >> ნაბიჯი 1

  • inductiveState == 0

    განაახლეთ ძრავის მოძრავი LED HIGH >> გააკეთეთ საავტომობილო მოძრაობა მარჯვნივ, (განაახლეთ საწყისი პოზიცია = 0), დააყოვნეთ და გადაადგილდით მარცხნივ >> ნაბიჯი 1

ფუნქციები

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

მე -4 ნაბიჯის შემდეგ, პროგრამა სრულად არის შესრულებული და კვლავ დაუბრუნდება 1 საფეხურს, სანამ ისევ გაუშვებთ.

ძირითად ორგანოში გამოყენებული ფუნქციები განსაზღვრულია ქვემოთ.

ისინი შესაბამისად არიან:

  • ინდუქციური ტესტი ()
  • moveBox (ინდუქციური სახელმწიფო)
  • ულტრაბგერითი ობიექტის ამოცნობა ()

// შეამოწმეთ ობიექტი მეტალიკია თუ არა

bool inductiveTest () {if (digitalRead (inductiveSwitchRight) == 1 || digitalRead (inductiveSwitchLeft == 0)) {დაბრუნება true; სხვა {დაბრუნება ყალბი; }} void moveBox (bool inductiveState) {// ყუთი მიდის მარცხნივ, როდესაც ლითონი გამოვლენილია და inductiveState = true თუ (inductiveState == 0) {stepper.moveTo (ნაბიჯები); // შემთხვევითი პოზიცია ბოლომდე შესამოწმებლად stepper.runToPosition (); დაგვიანება (1000); სტეპერი. გადატანა (0); stepper.runToPosition (); დაგვიანება (1000); } else if (inductiveState == 1) {stepper.moveTo (-steps); // შემთხვევითი პოზიცია ბოლომდე შესამოწმებლად stepper.runToPosition (); დაგვიანება (1000); სტეპერი. გადატანა (0); // შემთხვევითი პოზიცია ბოლომდე შესამოწმებლად stepper.runToPosition (); დაგვიანება (1000); }} boolean ultrasonicObjectDetection () {long duration1, distance1, durationTemp, distanceTemp, averageDistance1, mediumDistanceTemp, averageDistanceOlympian1; // განსაზღვრეთ გაზომვების რაოდენობა შორ მანძილზე მაქსიმალური = 0; საქალაქთაშორისო მინიმალური = 4000; საქალაქთაშორისო სულ = 0; for (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("Sensor1 maxDistance"); Serial.print (distanceMax); Serial.println ("მმ"); Serial.print ("სენსორი 1 წთ მანძილი"); Serial.print (distanceMin); Serial.println ("მმ"); // აიღეთ საშუალო მანძილი წაკითხვისგან averageDistance1 = distanceTotal/10; Serial.print ("სენსორი 1 საშუალო მანძილი 1"); Serial.print (საშუალო მანძილი 1); Serial.println ("მმ"); // ამოიღეთ გაზომვების უმაღლესი და დაბალი მნიშვნელობები, რათა თავიდან იქნას აცილებული მცდარი კითხვები საშუალოDistanceTemp = distanceTotal - (distanceMax+distanceMin); საშუალოDistanceOlympian1 = საშუალოDistanceTemp/8; Serial.print ("სენსორი 1 საშუალო მანძილი ოლიმპიური 1"); Serial.print (საშუალო მანძილი ოლიმპიური 1); Serial.println ("მმ");

// ტემპერატურის მნიშვნელობების გადატვირთვა

distanceTotal = 0; distanceMax = 0; distanceMin = 4000; ხანგრძლივი ხანგრძლივობა 2, მანძილი 2, საშუალო მანძილი 2, საშუალო მანძილი ოლიმპიური 2; // განსაზღვრეთ გაზომვების რაოდენობა (int i = 0; i distanceMax) {distanceMax = distanceTemp; } if (distanceTemp <distanceMin) {distanceMin = distanceTemp; } distanceTotal+= distanceTemp; } Serial.print ("Sensor2 maxDistance"); Serial.print (distanceMax); Serial.println ("მმ"); Serial.print ("სენსორი 2 წთ მანძილი"); Serial.print (distanceMin); Serial.println ("მმ"); // აიღეთ საშუალო მანძილი წაკითხვისგან averageDistance2 = distanceTotal/10; Serial.print ("სენსორი 2 საშუალო მანძილი 2"); Serial.print (საშუალო მანძილი 2); Serial.println ("მმ"); // ამოიღეთ გაზომვების უმაღლესი და დაბალი მნიშვნელობები, რათა თავიდან იქნას აცილებული მცდარი კითხვები საშუალოDistanceTemp = distanceTotal - (distanceMax+distanceMin); საშუალოDistanceOlympian2 = საშუალოDistanceTemp/8; Serial.print ("Sensor2 averageDistanceOlympian2"); Serial.print (საშუალო მანძილი ოლიმპიური 2); Serial.println ("მმ"); // ტემპერატურის მნიშვნელობების გადატვირთვა distanceTotal = 0; distanceMax = 0; distanceMin = 4000; if (averageDistanceOlympian1 + averageDistanceOlympian2 <emptyBoxDistance) {დაბრუნდება true; } else {დაბრუნება false; }}

ძირითადი სხეული

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

გაფრთხილება

ბევრი ტესტი ჩატარდა მუდმივების საპოვნელად: ცარიელი დისკი, ნაბიჯები და მაქსიმალური სიჩქარე და დაჩქარება კონფიგურაციაში.

ნაბიჯი 7: შესაძლო გაუმჯობესება

შესაძლო გაუმჯობესება
შესაძლო გაუმჯობესება

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

ულტრაბგერითი გამოვლენის შედეგად აღმოჩენილი საკითხების გამო, ჩვენ შეგვიძლია ვიპოვოთ ამ ფუნქციის ალტერნატივა: KY-008 ლაზერული და ლაზერული დეტექტორი (სურათი), ტევადობის სენსორები.

ნაბიჯი 8: ფაქტორების შეზღუდვა

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

ულტრაბგერითი სენსორების დაკალიბრება

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

Კვების წყარო

სტეპერ ძრავის დრაივერისთვის DRV8825 საჭირო სიმძლავრეა 12V და 0.2 -დან 1 Amp- მდე. არდუინოს ასევე შეუძლია იკვებებოდეს მაქსიმუმ 12 ვ და 0.2 ამპერით, არდუინოს ჯეკის შეყვანის გამოყენებით. განსაკუთრებული სიფრთხილეა საჭირო, თუ ერთსა და იმავე ენერგიის წყაროს იყენებთ როგორც არდუინოსთვის, ასევე სტეპერიანი მძღოლისთვის. თუ ის იკვებება ჩვეულებრივი კვების ბლოკიდან, მაგალითად, 12V/2A AC/DC ადაპტერის დენის წყაროს გამოყენებით, უნდა არსებობდეს ძაბვის რეგულატორი და დიოდები წრეში, სანამ დენი არდუინოს და სტეპერ ძრავის დრაივერში არ შევა.

ონლაინ თამაში Homing ყუთი

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

სტეპერ დრაივერი DRV8825 Tuning

სტეპერის დრაივერი მოითხოვს რეგულირებას სტეპერ ძრავასთან მუშაობისთვის. ეს ხდება ექსპერიმენტულად, პოტენომეტრის (ხრახნი) გადახვევით DRV8825 ჩიპზე ისე, რომ შესაბამისი რაოდენობის დენი მიეწოდოს ძრავას. ამრიგად, ოდნავ გადაატრიალეთ პოტენომეტრის ხრახნი, სანამ ძრავა არ მუშაობს მჭლედ.

ნაბიჯი 9: კრედიტები

ეს პროექტი გაკეთდა მეჩატრონიკის კურსის ფარგლებში 2018-2019 სასწავლო წლის განმავლობაში Bruface Master for Université Libre de Bruxelles (ULB) - Vrije Universiteit Brussel (VUB).

ავტორები არიან:

მაქსიმე დეკლერი

ლიდია გომესი

მარკუს პოდერი

ადრიანა პუენტესი

ნარჯისე სნუსი

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

გირჩევთ: