Სარჩევი:

არდუინოს კონტროლირებადი რობოტული ხელი თავისუფლების 6 გრადუსით: 5 ნაბიჯი (სურათებით)
არდუინოს კონტროლირებადი რობოტული ხელი თავისუფლების 6 გრადუსით: 5 ნაბიჯი (სურათებით)

ვიდეო: არდუინოს კონტროლირებადი რობოტული ხელი თავისუფლების 6 გრადუსით: 5 ნაბიჯი (სურათებით)

ვიდეო: არდუინოს კონტროლირებადი რობოტული ხელი თავისუფლების 6 გრადუსით: 5 ნაბიჯი (სურათებით)
ვიდეო: How to use W3230 Thermostat Heat and Cold Relay Controller AC DC 12V/24V/120/220V P1 to P8 2024, ივლისი
Anonim
არდუინომ გააკონტროლა რობოტული ხელი თავისუფლების 6 გრადუსით
არდუინომ გააკონტროლა რობოტული ხელი თავისუფლების 6 გრადუსით
არდუინომ გააკონტროლა რობოტული ხელი თავისუფლების 6 გრადუსით
არდუინომ გააკონტროლა რობოტული ხელი თავისუფლების 6 გრადუსით
არდუინომ გააკონტროლა რობოტული ხელი თავისუფლების 6 გრადუსით
არდუინომ გააკონტროლა რობოტული ხელი თავისუფლების 6 გრადუსით

მე ვარ რობოტიკის ჯგუფის წევრი და ყოველწლიურად ჩვენი ჯგუფი მონაწილეობს ყოველწლიურ Mini-Maker Faire– ში. 2014 წლიდან დაწყებული, მე გადავწყვიტე შემექმნა ახალი პროექტი ყოველწლიური ღონისძიებისთვის. იმ დროს, ღონისძიებამდე დაახლოებით ერთი თვით ადრე მქონდა რაღაცის შედგენა და წარმოდგენა არ მქონდა რისი გაკეთება მინდოდა.

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

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

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

ნაბიჯი 1: რაც გჭირდებათ - აპარატურა და ელექტრონიკა

რაც გჭირდებათ - აპარატურა და ელექტრონიკა
რაც გჭირდებათ - აპარატურა და ელექტრონიკა
რაც გჭირდებათ - აპარატურა და ელექტრონიკა
რაც გჭირდებათ - აპარატურა და ელექტრონიკა

პროექტის ორიგინალური დიზაინერი ცხოვრობდა ევროპაში და შემდგომში გამოიყენა იქ გავრცელებული მეტრული გაზომვები და მასალები. მაგალითად, პრესის დაფა, რომელიც მან გამოიყენა სხეულისთვის, იყო სტანდარტული 5 მმ სისქის. მსგავსი მასალა აქ შეერთებულ შტატებში არის 1/8 , რომლის სისქეა დაახლოებით 3.7 მმ. ამან დატოვა უფსკრული ღიობებში, რომლებიც თავდაპირველად განკუთვნილი იყო პრესის დასაყენებლად. ნახატების გამოსწორების ნაცვლად, მე უბრალოდ გამოვიყენე გორილას წებო ამ სახსრების დასაფიქსირებლად.

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

  • 22 - M3 x 0.5 x 23 მმ ჩამორჩენა
  • 15 - M3 x 15 მმ სპეისერები
  • 40 - M3 ხრახნები
  • M3 Hex თხილი
  • M3 ხრახნები 25 მმ
  • 1 - გაზაფხული
  • 3/4 "ორმხრივი სამონტაჟო ლენტი
  • 5 - SG 5010 TowerPro Servo
  • 1 - SG92R TowerPro მინი სერვო
  • 1 - SG90 TowerPro მინი სერვო
  • 2.54 მმ ერთი რიგის სწორი პინ ჰედერი
  • 1 - ნახევრად ზომის პური
  • 1 - ქალი/მამაკაცი "გაფართოების" ჯუმბერის მავთულები - 40 x 6"
  • 1 - 12 "x 24" ლურჯი აკრილის ფურცელი ან ლაზერული ნაჭრები თქვენი საყვარელი სერვისის პროვაიდერისგან
  • 2 - 3 მმ x 20 მმ + 4 მმ x 5 მმ ერთობლივი ტარების შუასადებები 3D დაბეჭდილი (იხ. ქვემოთ)
  • 1 - მართვის პანელი *იხილეთ შენიშვნა გაყვანილობის განყოფილებაში
  • 1 - დიფუზიური RGB (სამ ფერი) 10 მმ LED
  • 1 - არდუინო უნო
  • 1 - სტანდარტული LCD 16x2 + დამატებითი - თეთრი ლურჯზე
  • 1 - i2c / SPI ხასიათის LCD ზურგჩანთა
  • 1-Adafruit 16-არხიანი 12 ბიტიანი PWM/Servo Driver
  • 1 - MCP3008 - 8 არხიანი 10 ბიტიანი ADC SPI ინტერფეისით
  • 3 - JoyStick Breakout მოდულის სენსორი *იხილეთ შენიშვნა გაყვანილობის განყოფილებაში
  • DC ბარელი ჯეკი
  • AC to DC ადაპტერი
  • Servo Extension კაბელები - ასორტიმენტის სიგრძე

ამ მკლავის თითქმის ყველა ნაწილი მოჭრილი იყო 1/8 ინჩიანი აკრილისგან. თუმცა, ორი ერთობლივი ტარების შუალედი უნდა იყოს დაბეჭდილი. ასევე, ორიგინალური დიზაინი ითვალისწინებდა ორი სახსრის გამყოფი ბაზის 7 მმ სიმაღლეს ტარების ლილვამდე. როდესაც დავიწყე ზედა მკლავის შეკრება, მაშინვე გაირკვა, რომ ისინი ძალიან მაღალი იყო TowerPro servos სიმაღლის გამო. მე უნდა მქონოდა ახალი ერთობლივი საკისრები, დამზადებული მხოლოდ 3 მმ სიმაღლის ფუძით, რომელიც, სხვათა შორის, ჯერ კიდევ ძალიან მაღალი იყო, მაგრამ მართვადი. თქვენ გინდათ გაითვალისწინოთ თქვენი სერვისების შედარებითი სიმაღლე და გაითვალისწინოთ მანძილი ორ ქვედა მკლავს შორის:

სერვო სიმაღლე + სერვო რქა + ერთობლივი ტარება + ორმხრივი ლენტი = 47 მმ +/- 3 მმ.

ნაბიჯი 2: მკლავის შეკრება

მკლავის შეკრება
მკლავის შეკრება
მკლავის შეკრება
მკლავის შეკრება
მკლავის შეკრება
მკლავის შეკრება
მკლავის შეკრება
მკლავის შეკრება

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

  1. მიამაგრეთ ბაზის სერვო ზედა ბაზის ფირფიტაზე M3 25 მმ ხრახნებისა და ექვსკუთხა თხილის გამოყენებით. ნუ გამკაცრდებით!
  2. თუ თქვენ იყენებთ იმ ნაწილების ჩამონათვალს, რაც მე ზემოთ მაქვს, თქვენ მოგინდებათ შეაგროვოთ 5 ფუძის შუალედი ერთმანეთზე 2 M3 x 0.5 x 23 მმ გამობრუნებით და შემდეგ მიამაგროთ ისინი ზედა ბაზის ფირფიტაზე ექვსკუთხა თხილით.
  3. მიამაგრეთ ქვედა ბაზის ფირფიტა საყრდენებზე 5 M3 ხრახნით.
  4. მიამაგრეთ მხრის ფირფიტა ორ სერვო სამონტაჟო ფირფიტაზე აკრილის უსაფრთხო წებოს გამოყენებით. აქ გამოვიყენე გორილას წებო. შენიშვნა: თითოეულ ორ სერვო ფირფიტას აქვს ხვრელი უკანა ნაწილში, რაც საშუალებას აძლევს გამაგრების ინტერვალის ჩასმა მათ დასაკავშირებლად. დარწმუნდით, რომ ხვრელები ერთმანეთს ემთხვევა!* სანამ წებო გაქვთ მოსახერხებელი, წადით წინ და შეუერთეთ მაჯის სამონტაჟო ფირფიტა მჭიდის ძირითად ფირფიტასთან ერთად.* სურვილისამებრ, თქვენ ასევე შეგიძლიათ წებოთ მაჯის სერვო ფირფიტა მაჯის ორ სახსარში. მე არ გამიკეთებია ეს არჩევა იმის მაგივრად, რომ ეს ჩამორჩენილიყო შეფერხებებთან ერთად, როგორც ქვემოთ აღწერილია.
  5. მიამაგრეთ ახლა განკურნებული მხრის ასამბლეა ბაზის სერვოზე. მე გამოვიყენე ყველაზე ფართო რქა, რომელიც მოყვება სერვას, რომელიც იყო ექვსი ღეროვანი სამონტაჟო რქა.

  6. ქვედა მკლავის ჩარჩოს დამატება მხრის სერვისზე შეიძლება რთული იყოს. მე გირჩევთ გააგრძელოთ რქები ქვედა მკლავის ჩარჩოებამდე, სანამ გააგრძელებთ. შენიშვნა: დარწმუნდით, რომ განათავსეთ თქვენი სერვისები მხრის შეკრების წინ, სანამ მათ ჩარჩოზე მიამაგრებთ. ეს ორი სერვისი უნდა მოძრაობდეს ერთხმად და თუ ისინი არასწორად არის შერწყმული, მინიმუმამდე გამოიწვევს სერვო შოკს და, თუ საკმარისად არასწორია, შეიძლება დაზიანდეს ჩარჩო ან სერვისები. * თითოეული მხრის სერვისი დამონტაჟებულია ფრჩხილებით სამონტაჟო ფირფიტების უკანა მხარეს, ნაცვლად იმისა, რომ სერვოები გაიაროს ფირფიტებში - ეს საშუალებას მოგცემთ რქა გადააგდოთ სერვო შახტზე კუთხეზე და დაიჭიროთ ხრახნი. ჯერ არ დააფიქსირეთ სერვო სამონტაჟო ფირფიტაზე. * შემდეგი, დაამატეთ შიდა სერვო და დაამონტაჟეთ ხელი
  7. შეიკრიბეთ ზედა მკლავი ჩარჩოსა და სერვოზე, შეიზილეთ სერვოები მკლავებში არსებულ სივრცეებში და შემდეგ ჩასვით გამყოფი შუამავალი ორივე მკლავის ფირფიტებს შორის და დააფიქსირეთ M3 ხრახნით.
  8. დაამატეთ ორმაგი ცალმხრივი წებოვანი ლენტი იდაყვის სახსრის უკანა ნაწილის უკანა ნაწილზე და მორთეთ ზედმეტი.

  9. მიამაგრეთ შუამავალი სერვოს ბოლოში, რომელიც იმოქმედებს როგორც იდაყვის გამტარებელი.
  10. გადაიტანეთ ზედა მკლავის შეკრება ქვედა მკლავის შეკრების ჩარჩოში და მიამაგრეთ სერვო რქის ხრახნები.
  11. დაამატეთ გამაგრების უკუჩვენებები ორ ქვედა მკლავის ფირფიტებს შორის. ოთხივე ნაცვლად ორი გამოვიყენე წონის დასაწევად.
  12. დაამატეთ ორმაგი ცალმხრივი წებოვანი ლენტი მაჯის სახსრის უკანა ნაწილის უკანა ნაწილზე და მორთეთ ზედმეტი.
  13. მიამაგრეთ ინტერვალი სერვოს ბოლოში, რომელიც იმოქმედებს მაჯის ამაქტიურებლად.
  14. მიამაგრეთ გარე მაჯის ფირფიტა მაჯის სერვო რქაზე და მიამაგრეთ რქის ხრახნით.
  15. შეაგროვეთ მაჯის სერვო ფირფიტა მაჯის სახსრების ორი ფირფიტით და ჩამორჩენით.
  16. დაიმაგრეთ მაჯის სერვო servo ფირფიტაზე servo clamp plate.
  17. თქვენ მოგიწევთ მაჯის რქის მიმაგრება სერვოზე, სანამ მჭიდის აპარატს მიამაგრებთ რქაზე, რადგან რქის ხრახნი გახსნილია.
  18. თავისუფლად შეიკრიბეთ გრიპერის ნაწილები მორგებისთვის, სანამ გრიპერის სერვო რქას მიამაგრებთ სერვოზე. ეს საშუალებას მოგცემთ გაანადგუროთ რქა წინა საფეხურზე.
  19. მიამაგრეთ მჭიდის რქა მის სერვოზე და კიდევ უფრო გამკაცრეთ ხრახნები, რომლებიც უჭირავს მჭიდის სახსრებს. შენიშვნა: არ გაამკაცროთ ეს თხილი და ჭანჭიკები, რადგან ისინი უნდა იყოს ფხვიერი, რათა მჭიდის მოძრაობის საშუალება მისცეს.

ნაბიჯი 3: გაყვანილობა და მართვის პანელი

გაყვანილობა და მართვის პანელი
გაყვანილობა და მართვის პანელი
გაყვანილობა და მართვის პანელი
გაყვანილობა და მართვის პანელი
გაყვანილობა და მართვის პანელი
გაყვანილობა და მართვის პანელი

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

კომპონენტების 3 ჯგუფი არსებობს:

  1. შეყვანა - ეს ერთეულები იღებენ ინფორმაციას მომხმარებლისგან და შედგება ჯოისტიკებისა და mcp3008 ADC- სგან.
  2. შედეგები - ეს ერთეულები გადასცემენ მონაცემებს მსოფლიოს ან მომხმარებლის სტატუსის ჩვენებით, ან სერვისების პოზიციის მონაცემებით განახლებით. ეს ელემენტებია LCD ეკრანი, LCD ზურგჩანთა, RGB LED, Servo დრაივერის დაფა და ბოლოს სერვისები.
  3. დამუშავება - Arduino ამყარებს ბოლო ჯგუფს, რომელიც იღებს მონაცემებს შეყვანისგან და უბიძგებს მონაცემებს შედეგებზე კოდის ინსტრუქციის შესაბამისად.

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

შეყვანა

ჩვენ ვიწყებთ შეყვანებით. ჯოისტიკები არის ანალოგური მოწყობილობები - რაც იმას ნიშნავს, რომ ისინი წარმოადგენენ ცვალებად ძაბვას, როგორც არდუინოს შესასვლელს. სამი ჯოისტიკიდან თითოეულს აქვს ორი ანალოგური გამოსავალი X და Y (ზევით, ქვევით, მარცხნივ მარჯვნივ), რაც ჯამში 6 შეყვანაა არდუინოში. მიუხედავად იმისა, რომ Arduino Uno– ს აქვს 6 ანალოგური შეყვანა, ჩვენ უნდა გამოვიყენოთ ორი პინი I2C ეკრანთან და სერვო კონტროლერთან კომუნიკაციისთვის.

ამის გამო, მე ჩავრთე MCP3008 ანალოგი ციფრულ გადამყვანად (ADC). ეს ჩიპი იღებს 8 -მდე ანალოგურ შეყვანას და გარდაქმნის მათ ციფრულ სიგნალად Arduino- ს SPI საკომუნიკაციო ქინძისთავებით შემდეგნაირად:

  • MCP ქინძისთავები 1-6> ცერა ჯოისტიკების ცვლადი გამომავალი
  • MCP Pins 7 & 8> კავშირი არ არის
  • MCP პინ 9 (DGND)> გრუნტი
  • MCP პინ 10 (CS/SHDN)> Uno პინ 12
  • MCP პინ 11 (DIN)> Uno პინ 11
  • MCP პინ 12 (DOUT)> Uno Pin 10
  • MCP პინ 13 (CLK)> Uno Pin 9
  • MCP პინ 14 (AGND)> გრუნტი
  • MCP Pin 15 & 16> +5V

სქემატური ჯოისტიკი კავშირები მხოლოდ მაგალითისთვის არის ნაჩვენები. იმისდა მიხედვით, თუ რომელი ჯოისტიკი ყიდულობს და როგორ არის დამონტაჟებული, თქვენი კავშირები შეიძლება განსხვავდებოდეს ჩემგან. ჯოისტიკის სხვადასხვა ბრენდს შეიძლება ჰქონდეს განსხვავებული პინუტი და ასევე განსხვავებული X და Y ორიენტაცია. რაც მთავარია არის იმის გაგება, თუ რას წარმოადგენს თითოეული შეყვანა ADC– ში. თითოეული პინი წარმოადგენს შემდეგ კავშირს ჩემს კოდში:

  • პინი 1 - ბაზა - ამ პინზე არსებული ანალოგური მონაცემები რობოტის ყველაზე დაბალ სერვოზე ბრუნავს
  • პინ 2 - მხარი - ამ პინზე განთავსებული ანალოგური მონაცემები გადაატრიალებს ორ სერვისს ძირითად სერვოზე მაღლა
  • პინი 3 - იდაყვი - ამ პინზე არსებული ანალოგიური მონაცემები გადაატრიალებს მომდევნო სერვისს მხრის სერვისებიდან
  • Pin 4 - UP/DN Wrist - ანალოგიური მონაცემები ამ პინზე გადაატრიალებს მაჯის სერვისს, აამაღლებს და ამცირებს მჭიდის შეკრებას
  • პინი 5 - მჭიდი - ამ პინზე არსებული ანალოგური მონაცემები გახსნის და დახურავს მჭიდს
  • პინ 6 - მობრუნება მაჯის - ამ პინზე არსებული ანალოგიური მონაცემები გადაატრიალებს მჭიდს

შენიშვნა: ნაწილების სიაში მითითებული ცერა ჯოისტიკების ყიდვისას და დამონტაჟებისას, გაითვალისწინეთ, რომ მოდულების ორიენტაცია შეიძლება განსხვავდებოდეს ჩემგან, ასე რომ შეამოწმეთ x და y შედეგები ADC– თან სათანადო კავშირისთვის. ასევე, თუ თქვენ იყენებთ ჩემს 3D დაბეჭდილ მართვის პანელს, სამონტაჟო ხვრელები შეიძლება გადაინაცვლოს ჩემმა.

გამომავალი

Adafruit PWM/Servo Controller ამ პროექტს ძალიან მარტივს ხდის. უბრალოდ დააკავშირეთ Servos servo სათაურებთან და დამუშავებულია ყველა დენის და სიგნალის კავშირი. თუ თქვენ არ იპოვით სერვისს დამატებით ხანგრძლივ ლიდერებთან, თქვენ გინდათ მიიღოთ servo კაბელის გაფართოება სხვადასხვა სიგრძეში, ისე რომ ყველა თქვენი servo კაბელი მიაღწიოს თქვენს კონტროლერის დაფას.

სერვოები დაკავშირებულია შემდეგნაირად:

  • პოზიცია 0 - ბაზის სერვო
  • პოზიცია 1 - მხრის სერვო (Servo Y კაბელი)
  • პოზიცია 2 - იდაყვის სერვო
  • პოზიცია 3 - მაჯის 1 სერვო
  • პოზიცია 4 - Gripper Servo
  • პოზიცია 5 - მაჯის 2 სერვო

გარდა ამისა, VCC და V + ორივე დაკავშირებულია +5 ვოლტთან და GND უკავშირდება მიწას.

შენიშვნა 1: ერთი დიდი შენიშვნა აქ: მიწოდების ძაბვა მთელი პროექტისთვის შემოდის დენის ტერმინალის ბლოკის მეშვეობით, Servo Control Board- ში. V+ პინი სერვო კონტროლერზე ფაქტობრივად ამარაგებს ენერგიას ტერმინალური ბლოკიდან დანარჩენ წრედ. თუ გჭირდებათ Uno– ს დაპროგრამება, გირჩევთ გათიშოთ V+ პინი, სანამ Uno– ს თქვენს კომპიუტერს დაუკავშირდებით, რადგან სერვისებიდან მიმდინარე გათამაშებამ შეიძლება დააზიანოს თქვენი USB პორტი.

შენიშვნა 2: მე ვიყენებ 6V AC to DC კედლის ადაპტერს პროექტის გასაძლიერებლად. მე გირჩევთ ადაპტერს, რომელსაც შეუძლია უზრუნველყოს მინიმუმ 4A დენი ისე, რომ როდესაც ერთი ან მეტი სერვისი შეკრული იყოს, დენის უეცარი მატება არ გაანათებს თქვენს სისტემას და არ გადატვირთავს თქვენს Arduino- ს.

16X2 LCD ეკრანი უკავშირდება Adafruit LCD Backpack– ს, რათა ისარგებლოს I2C ინტერფეისით, რომელსაც უკვე იყენებს Servo Controller. SCL სერვო კონტროლერზე და CLK ზურგჩანთაზე ორივე დაკავშირებულია პინ A5– თან Uno– ზე. ანალოგიურად, SDA Servo Controller– ზე და DAT ზურგჩანთაზე ორივე დაკავშირებულია Uno– ს Pin A4– თან. გარდა ამისა, 5V უკავშირდება +5 ვოლტს და GND უკავშირდება მიწას. ზურგჩანთაზე LAT არაფერთან არის დაკავშირებული.

დაბოლოს, RGB LED უკავშირდება პინებს 7 (RED), 6 (მწვანე) და 5 (ლურჯ) Uno– ზე. LED- ის მიწისქვეშა ფეხი დაკავშირებულია გრუნტთან 330Ohm რეზისტორის საშუალებით.

დამუშავება

ბოლოს და ბოლოს, არდუინოს დანარჩენი კავშირები, რომლებიც ზემოთ არ არის ჩამოთვლილი, არის შემდეგი: Pin 5V უკავშირდება +5 ვოლტს და GND უკავშირდება მიწას.

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

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

კოდი
კოდი

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

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

ძირითადი ოპერაცია

ქვემოთ მითითებულ ნაწილში ჩამოთვლილი კოდი საკმაოდ მარტივია. მასივი თვალყურს ადევნებს 6 სახსარს min, max extensions, home position და მიმდინარე პოზიციით. როდესაც მკლავი იკვებება, გაშვების ფუნქცია განსაზღვრავს ბიბლიოთეკებს, რომლებიც საჭიროა MCP3008– თან, LCD ზურგჩანთასთან (და შემდგომ ეკრანთან) დასალაპარაკებლად და განსაზღვრავს LED ქინძისთავებს. იქიდან ის ატარებს ძირითად სისტემურ შემოწმებას და მიდის სახლში. სახლის ფუნქცია იწყება მჭიდით და მიემართება ძირამდე ისე, რომ ის მინიმუმამდე ამცირებს ნორმალურ პირობებში შეკავშირების შანსს. თუ მკლავი სრულად არის გაშლილი, მაშინ უმჯობესია, ხელით მოათავსოთ ხელი, სანამ ის გააქტიურდება. მას შემდეგ, რაც ზოგადი სერვისები არ გვაწვდიან უკუკავშირს მისი პოზიციის შესახებ, ჩვენ უნდა განვათავსოთ თითოეული მათგანი წინასწარ განსაზღვრულ ადგილას და თვალყური ვადევნოთ რამდენად გადაადგილებულია თითოეული მათგანი.

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

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

ნაბიჯი 5: ბმულები და რესურსები

მხარის ცნობები

  • პოსტი, რომელმაც შთააგონა ეს პროექტი
  • ორიგინალური დიზაინერების ბლოგის პოსტები ჩემი საკუთარი რობოტული მკლავი ჩემი მინი სერვო დამჭერები და დასრულებული რობოტული მკლავი რობოტული მკლავისა და ელექტრონიკის გამრავლება
  • Thingiverse მკლავი
  • Thingiverse Mini Servo Gripper

პროგრამული უზრუნველყოფის ბიბლიოთეკები

  • Adafruit PWM/Servo Controller Resources
  • MCP3008 ბიბლიოთეკა
  • MCP3008 მონაცემთა ცხრილი

მართვის პანელი და კოდი

  • პანელის Tinkercad ნახატი, რომელიც მე გავაკეთე
  • მიმდინარე კოდის საცავი

გირჩევთ: