Სარჩევი:

Robotic Arm კონტროლირებადი Arduino და PC: 10 ნაბიჯი
Robotic Arm კონტროლირებადი Arduino და PC: 10 ნაბიჯი

ვიდეო: Robotic Arm კონტროლირებადი Arduino და PC: 10 ნაბიჯი

ვიდეო: Robotic Arm კონტროლირებადი Arduino და PC: 10 ნაბიჯი
ვიდეო: DIY Arduino Robotic Arm & Mecanum Wheels Robot Automatic Operation 2024, ნოემბერი
Anonim
Image
Image
თეორია პროექტის მიღმა
თეორია პროექტის მიღმა

რობოტული იარაღი ფართოდ გამოიყენება ინდუსტრიაში. იქნება ეს შეკრების ოპერაციებისთვის, შედუღება ან თუნდაც ერთი გამოიყენება ISS- ზე (საერთაშორისო კოსმოსური სადგური) დასაყენებლად, ისინი ეხმარებიან ადამიანებს სამსახურში ან სრულად ჩაანაცვლებენ ადამიანს. მკლავი, რომელიც მე ავაშენე, არის უფრო პატარა გამოსახულება რობოტული მკლავისა, რომელიც უნდა იქნას გამოყენებული მოძრავი საგნებისათვის. მას აკონტროლებს arduino pro mini, რომელსაც უკვე აქვს ჩაშენებული ბიბლიოთეკა სერვისების გასაკონტროლებლად. სერვისებს აკონტროლებს PWM (პულსის სიგანის მოდულაცია), რომლის დაპროგრამებაც არ არის რთული, მაგრამ ეს ბიბლიოთეკა ამარტივებს მას. მომხმარებელს შეუძლია გააკონტროლოს ის სერვისები პოტენომეტრებით, რომლებიც შექმნილია ძაბვის გამყოფებად ან კომპიუტერის პროგრამიდან, რომელიც იყენებს 4 სლაიდერს სერვო ძრავების გასაკონტროლებლად.

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

ნაბიჯი 1: თეორია პროექტის მიღმა

თეორია პროექტის მიღმა
თეორია პროექტის მიღმა

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

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

სერვისების გასაკონტროლებლად ვიყენებდი პოტენომეტრებს, რომლებიც მოქმედებენ როგორც ძაბვის გამყოფი. Arduino დაფებს აქვთ რამდენიმე ანალოგური/ციფრული გადამყვანი, რომელიც მე გამოვიყენე პროექტისათვის. ძირითადად arduino მონიტორინგს უწევს ძაბვას შუა პინზე პოტენომეტრზე და თუ ის ბრუნავს ერთ მხარეს ძაბვაზე არის 0 ვოლტი (მნიშვნელობა = 0) და მეორე მხარეს არის 5 ვოლტი (მნიშვნელობა = 1023). ეს მნიშვნელობა შემდეგ მცირდება დიაპაზონიდან 0 - 1023 - დან 0 - 180 - მდე და შემდეგ გადადის უკვე ნახსენები ფუნქციაზე.

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

ნაბიჯი 2: PCB- ის დიზაინი

PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი
PCB- ის დიზაინი

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

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

ნაბიჯი 3: PCB– ის დამზადება

PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება
PCB- ის დამზადება

PCB– ის შესაქმნელად გირჩევთ წაიკითხოთ ეს.

მე გამოვიყენე რკინა პრიალა ქაღალდზე და მშვენივრად გამოვიდა.

შემდეგ ნაწილები შევაერთე PCB- ზე. თქვენ ხედავთ, რომ მე გამოვიყენე arduino სოკეტი იმ შემთხვევაში, თუ მომავალში დამჭირდება.

ნაბიჯი 4: შეიმუშავეთ ხელი

ხელის დიზაინი
ხელის დიზაინი
ხელის დიზაინი
ხელის დიზაინი
ხელის დიზაინი
ხელის დიზაინი

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

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

ნაბიჯი 5: ნაწილების ბეჭდვა

ნაწილების ბეჭდვა
ნაწილების ბეჭდვა
ნაწილების ბეჭდვა
ნაწილების ბეჭდვა
ნაწილების ბეჭდვა
ნაწილების ბეჭდვა

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

ნაბიჯი 6: ყველაფერი ერთად ააწყვეთ

აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად
აყენებს ყველაფერს ერთად

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

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

მომდევნო ეტაპზე მე გავაკეთე ბრტყელი ლენტიანი კაბელი ორივე დაფის დასაკავშირებლად.

მთავარ ყუთში შევაერთე მავთულები VCC კონექტორის კონექტორიდან გადასაყვანად და შემდეგ Vcc დაფაზე და GND დაფიდან GND კონექტორზე. შემდეგ ცხელი წებოთი შემაერთებელი ადგილზე და დაფაზე სვეტებზე. კონექტორი ზუსტად ჯდება ხვრელში, ასე რომ ცხელი წებო არ არის საჭირო.

შემდეგ, ხრახნების გამოყენებით, მე დავამატე ქვედა სერვო ყუთის ბოლოში.

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

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

და როგორც საბოლოო ნაბიჯი მე დავდე რამოდენიმე ლენტი ყუთების ბოლოში, რადგან წინააღმდეგ შემთხვევაში ისინი მოცურდებოდნენ.

ნაბიჯი 7: არდუინოს დაპროგრამება

არდუინოს დაპროგრამება
არდუინოს დაპროგრამება
არდუინოს დაპროგრამება
არდუინოს დაპროგრამება
არდუინოს დაპროგრამება
არდუინოს დაპროგრამება

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

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

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

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

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

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

ნაბიჯი 8: პროგრამირება პითონში

პროგრამირება პითონში
პროგრამირება პითონში
პროგრამირება პითონში
პროგრამირება პითონში
პროგრამირება პითონში
პროგრამირება პითონში

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

პითონი გვთავაზობს უამრავ ბიბლიოთეკას, რომელთა გამოყენება უფასოა, მაგრამ ამ პროექტში მე მხოლოდ tkinter და სერიულს ვიყენებ. Tkinter გამოიყენება GUI (გრაფიკული მომხმარებლის ინტერფეისი) და სერიული როგორც მისი სახელი ამბობს გამოიყენება სერიული კომუნიკაციისთვის.

ეს კოდი ქმნის GUI– ს 4 სლაიდერებით, რომლებსაც აქვთ მინიმალური მნიშვნელობა 0 და მაქსიმალური 180. ეს შეიძლება იყოს მინიშნება თქვენთვის, რომ ის არის გრადუსებში და თითოეული სლაიდერი დაპროგრამებულია ერთი სერვოს გასაკონტროლებლად. ეს პროგრამა საკმაოდ მარტივია - ის იღებს მნიშვნელობას და აგზავნის არდუინოში. მაგრამ მისი გაგზავნის გზა საინტერესოა. თუ თქვენ აირჩევთ პირველი სერვოს მნიშვნელობის შეცვლას 123 გრადუსამდე, ის აგზავნის არდუინოს მნიშვნელობას 1123. გაგზავნილი თითოეული ნომრის პირველი ნომერი მეტყველებს იმაზე, თუ რომელი სერვო უნდა იყოს კონტროლირებული. Arduino– ს აქვს კოდი, რომელსაც შეუძლია მისი გაშიფვრა და მარჯვენა სერვისის გადატანა.

ნაბიჯი 9: ნაწილების სია

ნაწილების სია
ნაწილების სია
  • Arduino Pro Mini 1 ცალი
  • Servo FS5106B 1 ცალი
  • Servo Futaba S3003 2 ცალი
  • სათაურის სათაური 2x5 1 ცალი
  • სათაურის სათაური 1x3 6 ცალი
  • კონდენსატორი 220uF 3 ცალი
  • მიკრო სერვო FS90 1 ცალი
  • კონექტორი AWP-10 2 ცალი
  • კონექტორი FC681492 1 ცალი
  • გადამრთველი P-B100G1 1 ცალი
  • სოკეტი 2x14 1 ცალი
  • TTL-232R-5v-კონვერტორი 1 ცალი
  • პოტენომეტრი B200K 4 ცალი
  • და მრავალი სხვა ხრახნი, ბალიში და თხილი

ნაბიჯი 10: საბოლოო აზრები

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

გირჩევთ: