Სარჩევი:

Arduino Robotic Arm: 5 ნაბიჯი
Arduino Robotic Arm: 5 ნაბიჯი

ვიდეო: Arduino Robotic Arm: 5 ნაბიჯი

ვიდეო: Arduino Robotic Arm: 5 ნაბიჯი
ვიდეო: How to assemble and control a 4 DOF robot mechanical arm kit with Arduino | Step by step 2024, ნოემბერი
Anonim
Image
Image
Arduino Robotic Arm
Arduino Robotic Arm
Arduino Robotic Arm
Arduino Robotic Arm

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

ეს პროექტი არის რობოტიზირებული მკლავის შესახებ, 4 დოფით და სახელურით. ღირსეულად დაბალი ბიუჯეტით: სტრუქტურა გაწყვიტა მეგობარმა, 4 სერვისი იყო 30 €, 2 ჯოისტიკი 4 €, ჭანჭიკები და ა.) უკვე შედიოდა ჩემს სასტარტო ნაკრებში. სულ 40-45 €, რაც დაახლოებით 45-50 ამერიკული დოლარია (იგივე ფასი ხელის ნაკრები, მაგრამ ჰეი, სახალისო იყო საკუთარი ხელით აშენება (და დროდადრო რაღაცის გაფუჭება) და არ დაიცვას ინსტრუქცია, როგორც მანქანა).

ვინაიდან ეს იყო ჩემი პირველი პროექტი და სასწავლო, მე ჩავერთე "პირველად ავტორში" და რამდენიმე სხვა კონკურსში, ასე რომ, თუ მოგწონთ, მიეცით ხმა:)

ნაბიჯი 1: დიზაინი და შეკრება:

პირველად მჭირდებოდა სტრუქტურა: ეს ნამდვილად იყო ყველაზე გრძელი ნაწილი. ვინაიდან არ მინდოდა ვინმესგან პროექტის კოპირება და ჩასმა, მე ავიღე პროექტი, როგორც მე და მე (და კიდევ რამდენიმე გამოცდილი კლასელი, რომლებმაც მართლა გადამარჩინეს) დავიწყეთ მისი მოდიფიცირება ჩვენი მოთხოვნილებების შესაბამისად (სხვადასხვა სერვისი განსხვავებული ბრუნვის, წონისა და ზომების და ა.შ.). რამდენჯერმე უნდა ავაშენო, თითოეულმა მათგანმა რაღაც არასწორი აღმოვაჩინე და ჩვენ გვქონდა რამდენიმე ნაწილის გადათვლა და ხელახლა ცდა. მე დაურთე.dxf ფაილი, თუ გსურთ მისი გამოყენება. შემდეგ მე უნდა ვიყიდო ელექტრონიკა: ნაწილების უმეტესობა იყო სტანდარტული, რთული იყო სერვოების არჩევა. მე გამოვთვალე საჭირო ბრუნვის ცერა წესი, მოგვიანებით შევეცადე უფრო ზუსტი გაანგარიშება და აღმოვაჩინე, რომ შეიძლება ცოტა გადამეტვირთა. როგორც ჩანს, 6 კგ/სმ საკმარისი იქნებოდა მე -2 სერვოისთვის (ფუძიდან), და ჩემი იძლევა 9-11 კგ/სმ. ისე, ეს მაძლევს გარკვეულ უსაფრთხოებას და შანსს, რომ ჩავტვირთო 2 კგ -მდე ტვირთი (რაც შეუძლებელია, მაგრამ მე მომწონს, რომ ტექნიკურად ამის გაკეთება შემიძლია). მე ასევე შემეძლო შემეძინა სხვადასხვა სერვო, ბრუნვის შემცირებისას ბაზაზე დაშორებისას, მაგრამ ერთი და იგივე გამყიდველისგან ერთნაირი სერვისების ყიდვა იყო ყველაზე იაფი ვარიანტი. ელექტროენერგიის მიწოდება: არდუინო ნამდვილად არ იყო საკმარისი სერვოებისთვის, ვინაიდან თითოეული მგ 995 ხატავს 350mA და microservo 9g ამახვილებს 100mA, სულ 350*4 +100 = 1500mA. ასე რომ, მე გადავარჩინე დამტენი (6V 1.5A) და გავამაგრე მას ორი ჯამპერის მავთული. (თუ ზოგიერთ თქვენგანს შეიძლება დაგჭირდეთ რაიმე რეალური ინსტრუქცია, უბრალოდ ჰკითხეთ კომენტარებში და მე ყველაფერს გავაკეთებ იმისათვის, რომ შევქმნა ნაბიჯ-ნაბიჯ სახელმძღვანელო) მასალების ჩამონათვალი:- სტრუქტურა- M5x7cm ხრახნი x5, m5 ხრახნები x15 (ბაზა)- M3x16 მმ ხრახნი x18*- M3x20 მმ ხრახნი x13*- M3 ჭანჭიკები x40*- M3x8 სმ ხრახნი x3- დამჭერი (წინააღმდეგ შემთხვევაში დაეცემა)- 3 დუელი- არდუინო (ან სხვა რამე მისი გასაკონტროლებლად, მას უნდა ჰქონდეს მინიმუმ 5 PWM)- რაღაც უნდა უზრუნველყოს 5-6V და მინიმუმ 1.5A- 3x ps2 მსგავსი ჯოისტიკები- 4x TowerPro mg995 servos- 1x TowerPro 9g მიკროსერვო (სახელურისთვის) - ბევრი ჯუმბერის მავთული - პურის დაფა*(მე ვიყენებდი ჭანჭიკებს და ხრახნებს, რომ შემეძლო სწრაფად აეწყო და დაშლილიყო, თორემ თითქმის ყველა მათგანის ხის ხრახნით შეცვლას შეძლებდი)

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

იდეა არის გააკონტროლოს ყველა servo ps2– ს მსგავსი ჯოისტიკის ორი ღერძიდან ერთ – ერთი. ყველა ჯოისტიკს, როგორც ჩანს, აქვს განსხვავებული „დანარჩენი მნიშვნელობები“(მნიშვნელობა 0-1023 შორის, როცა ის ჯერ კიდევ არის) ორივე y და x ღერძზე. იყო პრობლემა, რადგან სხვაობა სულ მცირე იყო (ერთს ჰქონდა ნული y– ზე 623 – ზე) და მე მინდოდა გამომეყენებინა რუქის ფუნქცია 0-1023 – დან გრადუსზე გადასაყვანად. მაგრამ რუქის ფუნქცია ფიქრობს, რომ დანარჩენი მნიშვნელობა არის 1023/2. რამაც გამოიწვია ყველა სერვო მოძრაობა არდუინოს ჩართვისთანავე, არ იყო კარგი. მე მოვახერხე ამის გადალახვა ხელით სხვაობის კითხვის მნიშვნელობასა და დასვენების თითოეულ განსხვავებულ ღირებულებას შორის (რომელიც ცალკე გამოვთვალე ყველა ჯოისტიკზე), შემდეგ გააკეთე კოდი უფრო მოკლე და ჭკვიანი, მე მას წავეკითხე დანარჩენი მნიშვნელობები დაყენების ფუნქციაში და შევინახე ისინი რამდენიმე ცვლადში. ახალი ალგორითმი ეყრდნობა გრადუსების გაზრდის გარდაქმნას, მაგრამ მე მინდოდა ძალიან მცირე რაოდენობის ხარისხი ჩემი ზრდისთვის, ასე რომ მე უნდა გამიყო იგი მუდმივობისთვის: მე შევეცადე ბევრი მნიშვნელობა, სანამ არ მივიღე საბოლოო 200 (მე შემიძლია დავამატო პოტენომეტრი, რომ ხელით შევცვალო ეს მნიშვნელობა სასურველზე). დანარჩენი კოდი მგონი საკმაოდ სტანდარტულია, მიუხედავად იმისა, რომ შეიძლება უფრო ელეგანტური იყოს დამატებითი გაანგარიშება ცალკეულ ფუნქციაში.

ნაბიჯი 3: ელექტრონიკა:

ელექტრონიკა
ელექტრონიკა

გაყვანილობა იგივეა, რაც ნაჩვენებია სურათზე ან მოციმციმე ფაილში: servos სიგნალი ქინძისთავებზე: 5-6-9-10-11 და ჯოისტიკი ღერძი ანალოგიურ ქინძისთავებზე: A0-A1-A2-A3-A4 ძირითადი პრობლემა, რომელსაც მე წავაწყდი ის იყო, რომ ჯოისტიკებს უნდა მიეწოდებინა არდუინო, არა დამტენი, რომელსაც მე ვიყენებ სერვოებისთვის. წინააღმდეგ შემთხვევაში, სერვო უბრალოდ გაგიჟდება შემთხვევით წინ და უკან. მე ვფიქრობ, რომ ეს შეიძლება იყოს იმიტომ, რომ თუ მათ დამტენს მივაწოდებ, Arduino ვერ შეძლებს ზუსტად თქვას პოტენციური განსხვავება მათ გადაადგილებისას, მაგრამ შემდეგ ისევ: მე ძალიან ახალი ვარ ელექტრონიკაში, ასე რომ, ეს მხოლოდ ვარაუდია. Arduino- ს და დამტენის გრუნტის დაკავშირება პურის დაფაზე ხელი შეუწყო შემთხვევითი და მოულოდნელი მოძრაობების თავიდან აცილებას, ვგონებ ჯოისტიკების მიწოდების მსგავსი მიზეზით.

ნაბიჯი 4: მიმდინარე გასაუმჯობესებლად:

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

მას შემდეგ, რაც ყველა ჯოისტიკს შეუძლია გააკონტროლოს 2 servos (1 ღერძიზე), მე მჭირდება 3 servo მთელი მკლავის გასაკონტროლებლად, მაგრამ სამწუხაროდ, მე მხოლოდ 2 ცერა თითი მაქვს. ამიტომ ვიფიქრე, რომ ყველა სერვისის კონტროლის ნაცვლად, მე მხოლოდ xyz პოზიციის კონტროლი შემიძლია დაიჭირეთ და დაიხურეთ ძალაუფლება, სულ 4 ღერძი, 2 ჯოისტიკი და 2 ცერა თითი! მე აღმოვაჩინე, რომ ეს პრობლემა კარგად არის ცნობილი როგორც ინვერსიული კინემატიკა, ასევე აღმოვაჩინე, რომ ეს ყველაფერი ადვილია. იდეა წერაა (არაწრფივი) განტოლებები საბოლოო ეფექტის გათვალისწინებით თითოეული ეფექტის მდგომარეობის (კუთხეები servos- ს) მდგომარეობის დასადგენად. მე ავტვირთე ხელით დაწერილი ქაღალდი განტოლებებით და ამჟამად ვმუშაობ ახალ კოდზე მათი გამოსაყენებლად. ეს არ უნდა იყოს ძალიან რთული, მე ძირითადად უნდა წავიკითხო ჯოისტიკები, გამოვიყენო მათი კითხვები, რომ შეცვალონ ძალაუფლების xyz კოორდინატები და შემდეგ მივაწოდო ისინი ჩემს განტოლებებს, გამოვთვალო servos კუთხეები და დავწერო ისინი.

ნაბიჯი 5: მომავალი გაუმჯობესება:

ასე რომ, მე საკმაოდ კმაყოფილი ვარ მისი შედეგებით და იმის გათვალისწინებით, რომ მე სრულიად ახალი ვარ ელექტრონიკაში, რომ არ აფეთქებ რაღაცას ან საკუთარ თავს, უკვე დიდი გამარჯვება იყო. როგორც დასაწყისში ვთქვი, ნებისმიერი იდეა მომავალი გაუმჯობესებისთვის, როგორც პროგრამული უზრუნველყოფა, ასევე აპარატურა, უფრო მეტია, ვიდრე მისასალმებელი! აქამდე ვფიქრობდი: 1. ჯოისტიკების "მგრძნობელობის" შესაცვლელად პოტენომეტრი.2. ახალი კოდი, რომელიც აიძულებს მას "ჩაწეროს" ზოგიერთი მოძრაობა და განახორციელოს ისინი (შესაძლოა უფრო სწრაფი და მოკლე ვიდრე ადამიანის შეყვანა) 3. ვიზუალური/დისტანციური/ხმოვანი შეყვანა და ობიექტების მიღება ვინმეს გარეშე ჯოისტიკებით 4. გეომეტრიული ფიგურების დახატვის შესაძლებლობა რაიმე სხვა იდეა? გთხოვთ მოგერიდებათ კომენტარი ნებისმიერი წინადადებით. გმადლობთ

გირჩევთ: