Სარჩევი:

Arduino: Precision Lib for Stepper Motor: 19 საფეხური
Arduino: Precision Lib for Stepper Motor: 19 საფეხური

ვიდეო: Arduino: Precision Lib for Stepper Motor: 19 საფეხური

ვიდეო: Arduino: Precision Lib for Stepper Motor: 19 საფეხური
ვიდეო: welding robot arm & pick and place robot|compete with ABB Fanuc Yaskawa Kuka etc|how to choose robot 2024, ივლისი
Anonim
Image
Image
გლობალური ცვლადები
გლობალური ცვლადები

დღეს მე გაჩვენებთ ბიბლიოთეკას სრულსაფეხურიანი ძრავის მძღოლისათვის ლიმიტის გადამრთველებით და ძრავის მოძრაობით აჩქარებით და მიკრო ნაბიჯებით. ეს Lib, რომელიც მუშაობს როგორც Arduino Uno- ზე, ასევე Arduino Mega- ზე, საშუალებას გაძლევთ გადაადგილოთ ძრავები არა მხოლოდ საფეხურების რაოდენობაზე, არამედ მილიმეტრზეც. და ის ასევე საკმაოდ ზუსტია.

ამ ბიბლიოთეკის მნიშვნელოვანი მახასიათებელია ის, რომ ის გაძლევთ საშუალებას შექმნათ თქვენი საკუთარი CNC მანქანა, რომელიც არ არის მხოლოდ X, Y, არამედ მონაკვეთის გადამრთველიც, მაგალითად, რადგან ეს არ არის მზა GRBL, არამედ ის პროგრამირება საშუალებას გაძლევთ გააკეთოთ იდეალური მანქანა თქვენთვის.

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

ნაბიჯი 1: StepDriver ბიბლიოთეკა

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

მათთვის, ვინც უყურებდა ვიდეოს 1 და 2 ნაწილს Step Motor with Acceleration and End of Stroke, გადმოწერეთ ეს ახალი ბიბლიოთეკა, რომელიც დღეს არის ხელმისაწვდომი, რადგან მე შევიტანე ცვლილებები ამ პირველ ფაილში მისი გამოყენების გასაადვილებლად.

ნაბიჯი 2: გლობალური ცვლადები

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

ნაბიჯი 3: ფუნქციები - დრაივერის ქინძისთავების დაყენება

ფუნქციები - დრაივერის ქინძისთავების დაყენება
ფუნქციები - დრაივერის ქინძისთავების დაყენება

აქ მე აღწერს რამდენიმე მეთოდს.

მე გამოვიყვანე Pinout პარამეტრი და Arduino ქინძისთავები.

ნაბიჯი 4: ფუნქციები - მძღოლის ძირითადი ფუნქციები

ფუნქციები - მძღოლის ძირითადი ფუნქციები
ფუნქციები - მძღოლის ძირითადი ფუნქციები

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

ნაბიჯი 5: ფუნქციები - საავტომობილო ნაბიჯის დაყენება

ფუნქციები - საავტომობილო ნაბიჯის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის დაყენება

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

ნაბიჯი 6: ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება

ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება
ფუნქციები - საავტომობილო ნაბიჯის რეჟიმის დაყენება

ეს ცხრილი აჩვენებს ძრავის საფეხურის რეჟიმის პარამეტრებს. Აი ზოგიერთი მაგალითი.

ნაბიჯი 7: ფუნქციები - ლიმიტის კონცენტრატორების დაყენება

ფუნქციები - ლიმიტის გადამრთველების დაყენება
ფუნქციები - ლიმიტის გადამრთველების დაყენება

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

ნაბიჯი 8: ფუნქციები - ლიმიტის კონცენტრატორების კითხვა

ფუნქციები - ლიმიტის კონცენტრატორების კითხვა
ფუნქციები - ლიმიტის კონცენტრატორების კითხვა
ფუნქციები - ლიმიტის კონცენტრატორების კითხვა
ფუნქციები - ლიმიტის კონცენტრატორების კითხვა
ფუნქციები - ლიმიტის კონცენტრატორების კითხვა
ფუნქციები - ლიმიტის კონცენტრატორების კითხვა

ეს ნაწილი განსხვავდება იმ ლიბისგან, რომელიც მე გასულ კვირას გამოვაქვეყნე. რატომ შევცვალე? ისე, მე შევქმენი eRead სხვათა შესაცვლელად. აქ, eRead წაიკითხავს LVL, digitalRead (pin) და დააბრუნებს TRUE. ეს ყველაფერი უნდა შესრულდეს მაღალ დონეზე. მომდევნო მუშაობა აქტიურ გასაღებთან იქნება დაბალ დონეზე. მე მას აქ გამოვიყენებ, რათა გაჩვენოთ "სიმართლის" ცხრილი.

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

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

და ბოლოს, მე ვაჩვენებ იმავე მოძრაობას, მაგრამ საპირისპირო მიმართულებით.

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

ნაბიჯი 9: ფუნქციები - მოძრაობის დაყენება

ფუნქციები - მოძრაობის დაყენება
ფუნქციები - მოძრაობის დაყენება

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

ნაბიჯი 10: ფუნქციები - მოძრაობის ფუნქცია

ფუნქციები - მოძრაობის ფუნქცია
ფუნქციები - მოძრაობის ფუნქცია

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

ნაბიჯი 11: ფუნქციები - მოძრაობის ფუნქცია - ცვლადები

ფუნქციები - მოძრაობის ფუნქცია - ცვლადები
ფუნქციები - მოძრაობის ფუნქცია - ცვლადები

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

ნაბიჯი 12: ფუნქციები - მოძრაობის ფუნქცია - აჩქარება

ფუნქციები - მოძრაობის ფუნქცია - აჩქარება
ფუნქციები - მოძრაობის ფუნქცია - აჩქარება
ფუნქციები - მოძრაობის ფუნქცია - აჩქარება
ფუნქციები - მოძრაობის ფუნქცია - აჩქარება

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

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

ნაბიჯი 13: ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე

ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე
ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე
ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე
ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე

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

ნაბიჯი 14: ფუნქციები - მოძრაობის ფუნქცია - შენელება

ფუნქციები - მოძრაობის ფუნქცია - შენელება
ფუნქციები - მოძრაობის ფუნქცია - შენელება
ფუნქციები - მოძრაობის ფუნქცია - შენელება
ფუნქციები - მოძრაობის ფუნქცია - შენელება

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

ნაბიჯი 15: ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე

ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე
ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე
ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე
ფუნქციები - მოძრაობის ფუნქცია - უწყვეტი სიჩქარე

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

ნაბიჯი 16: ფუნქციები - ფუნქციის გადატანა - მოტრიალებების გადატანა

ფუნქციები - ფუნქციის გადატანა - გადატრიალება
ფუნქციები - ფუნქციის გადატანა - გადატრიალება

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

ნაბიჯი 17: მოძრაობის სქემა - პოზიციის სიჩქარე

მოძრაობის სქემა - პოზიციის სიჩქარე
მოძრაობის სქემა - პოზიციის სიჩქარე

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

ნაბიჯი 18: მოძრაობის სქემა - პოზიცია vs. პოზიცია

მოძრაობის სქემა - პოზიცია Vs. პოზიცია
მოძრაობის სქემა - პოზიცია Vs. პოზიცია

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

ნაბიჯი 19: მოძრაობის სქემა - სიჩქარე Vs. მომენტი

მოძრაობის სქემა - სიჩქარე Vs. მომენტი
მოძრაობის სქემა - სიჩქარე Vs. მომენტი

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

გირჩევთ: