Სარჩევი:

CNC Feed-rate საზომი ინსტრუმენტი დამზადებულია ჯართიდან: 5 ნაბიჯი
CNC Feed-rate საზომი ინსტრუმენტი დამზადებულია ჯართიდან: 5 ნაბიჯი

ვიდეო: CNC Feed-rate საზომი ინსტრუმენტი დამზადებულია ჯართიდან: 5 ნაბიჯი

ვიდეო: CNC Feed-rate საზომი ინსტრუმენტი დამზადებულია ჯართიდან: 5 ნაბიჯი
ვიდეო: Calculating Feeds and Speeds A Practical Guide | Wood CNC Router 2024, ნოემბერი
Anonim
CNC Feed- განაკვეთი საზომი ინსტრუმენტი დამზადებული ჯართი
CNC Feed- განაკვეთი საზომი ინსტრუმენტი დამზადებული ჯართი

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

ნაბიჯი 1: მასალები, ინსტრუმენტები, მოწყობილობები, რომლებიც გამოიყენება პროექტის განხორციელებისათვის

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

  • დაშლილი პრინტერის გადაზიდვის მექანიზმი
  • ხელის ინსტრუმენტები ამის შესანახად
  • soldering რკინის, solder, მავთულები
  • მულტიმეტრი
  • ოსცილოსკოპი ან ლოგიკური ანალიზატორი - ეს არ არის აბსოლუტურად აუცილებელი
  • ენერგიის წყარო
  • მიკროსკოპი
  • არდუინო ნანო + პინუტი
  • კომპიუტერი Arduino IDE– ით, Visual Studio 2008 Express + MS Charting ინსტრუმენტები დაინსტალირებული
  • (MPU6050 - მე საბოლოოდ არ გამოვიყენე ეს)
  • მზად არის დაათვალიერო ყველაფერი, რაც არ იცი როგორ გააკეთო

თავიდან ვფიქრობდი, რომ MPU6050 დაფა საშუალებას მომცემს გავზომო კვება ერთდროულად სამივე ღერძზე. აქსელერომეტრის შიგნით, დარწმუნებული ვიყავი, რომ ამაჩქარებლის მონაცემების შეჯამება მომცემს სასურველ მნიშვნელობას - სიჩქარე თითოეულ ღერძზე. Arduino სნიპეტის გადმოტვირთვისა და შეცვლის შემდეგ, რომელიც აჩვენებდა ნედლეულ მონაცემებს სერიულ მონიტორზე, Visual Studio– ში დავწერე პატარა კომპიუტერული პროგრამა, რომელიც ამუშავებდა მონაცემებს და ჩავდე სქემაში უფრო მარტივი ინტერპრეტაციისთვის. მე უნდა გადმოვწერო როგორც Visual Studio C# Express 2008, ასევე გრაფიკული ინსტრუმენტები.

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

ნაბიჯი 2: აპარატურა, რომელიც საჭირო იყო გასაკეთებლად

აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად
აპარატურა, რომელიც საჭირო იყო გასაკეთებლად

უკუ ინჟინერია

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

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

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

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

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

არდუინოს დაკავშირება

ამ ახალი "სენსორის" დაკავშირება ძალიან ადვილია. უბრალოდ შეაერთეთ სენსორის შედეგები D2 და D3 (შეწყვეტის უნარი ქინძისთავები!) და ელექტროენერგიის მიწოდების ხაზები და კოდირება შეიძლება დაიწყოს.

ნაბიჯი 3: Arduino კოდირება

არდუინოს კოდირება
არდუინოს კოდირება

Arduino კოდი საკმაოდ მარტივია. მე მივანიჭე ფუნქცია, რომელიც ასრულებს ყოველ ჯერზე, როდესაც D2 ხედავს მზარდ ზღვარს, ეს არის გასასვლელი ფუნქცია Arduino კოდიდან, რომელსაც მე ვამაგრებ. თუ გადახედავთ კვადრატული კოდირების სიგნალებს, დაინახავთ ამას:

  • ერთი მიმართულებით A ფაზა ლოგიკურია ყველა B ფაზის ამოსვლის ზღვარზე
  • სხვა მიმართულებით ფაზა A არის ლოგიკური დაბალი ყველა ფაზაზე B მზარდი ზღვარი

ეს იყო დამშიფვრის თვისება, რომლითაც მე ვისარგებლე: ვინაიდან გასვლის ფუნქცია სრულდება ყოველ ჯერზე, როდესაც D2 აქვს მზარდი ზღვარი, მე უბრალოდ დავწერე, თუ ეს გაზრდის მრიცხველს, როდესაც D3 მაღალია და მცირდება, როდესაც D3 დაბალია. ეს პირველივე ცდაზე მუშაობდა, მე გამოვაგზავნე მრიცხველის მნიშვნელობა სერიულ მონიტორზე და ვუყურე როგორ იზრდება/მცირდება, როდესაც პრინტერის თავი შახტზე გადავიტანე.

მოკლედ რომ ვთქვათ, firmware აკეთებს შემდეგს მარყუჟის ფუნქციაში:

  1. ამოწმებს სერიული მიღების ბუფერს ნებისმიერი შემომავალი მონაცემისთვის
  2. თუ არის შემომავალი მონაცემები, შეამოწმეთ არის თუ არა '1' თუ არა
  3. თუ ეს არის '1', ეს ნიშნავს, რომ კომპიუტერული პროგრამა ითხოვს მრიცხველ ღირებულებას
  4. გააგზავნეთ მრიცხველის მნიშვნელობა კომპიუტერზე სერიული საშუალებით
  5. დაიწყე 1 ზე

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

ნაბიჯი 4: Visual Studio C# პროგრამული უზრუნველყოფა

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

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

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

თუ თქვენ ვერ ხედავთ დიაგრამის კონტროლს თქვენს VS ინსტრუმენტთა კოლოფში, შეგიძლიათ google- ის პრობლემა და იპოვოთ გამოსავალი აქ (მოძებნეთ პასუხი #1): ბმული

გაზომვის პრინციპი

იმისათვის, რომ ვიპოვოთ კავშირი რიცხვების რაოდენობასა და მანძილს შორის, რომელსაც ხელმძღვანელი მოძრაობს, ჩვენ გავანათეთ დათვლის მნიშვნელობა, გადავიტანეთ პრინტერის თავი 100 მმ ხელით და დავაკვირდით რიცხვების ცვლილებას. ჩვენ საბოლოოდ მივიღეთ შემდეგი პროპორცია: 1 რაოდენობა = 0.17094 მმ.

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

არსებობს უხეში პროგრამული დრო 50ms წყალობით TMR0, მაგრამ ჩვენ შევნიშნეთ, რომ ეს ვადები არ იყო ძალიან ზუსტი. სინამდვილეში, პროგრამული უზრუნველყოფის სიჩქარის გაზომვის შემდეგ, ჩვენ აღმოვაჩინეთ, რომ დროული 50ms არ არის 50ms. ეს იმას ნიშნავდა, რომ ნიმუშები არ იყო აღებული ფიქსირებული ინტერვალით, ამიტომ სიჩქარის გამოთვლასაც არ შეეძლო ფიქსირებული დროის ბაზის გამოყენება. მას შემდეგ რაც აღმოვაჩინეთ ეს საკითხი, ადვილი იყო წინსვლა: ჩვენ ავიღეთ სხვაობა მანძილზე და სხვაობა დროში და გამოვთვალეთ სიჩქარე როგორც D_ მანძილი/D_ დრო (D- მანძილის ნაცვლად/50 ms).

ასევე, რადგანაც ჩვენი განტოლება დააბრუნებს სიჩქარეს მმ/50 წმ ერთეულებში, ჩვენ უნდა გავამრავლოთ ეს 1200 -ით, რათა მივიღოთ მანძილი, რომელსაც თავი გაივლის ერთ წუთში, [მმ/წუთში].

შენიშვნა: Mach 3 CNC წისქვილის მაკონტროლებელი პროგრამული უზრუნველყოფა განსაზღვრავს კვების მაჩვენებლებს [მმ/წუთში]

ფილტრაცია

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

დახვეწილი ცვლილებები პროგრამულ უზრუნველყოფაში

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

ნაბიჯი 5: შედეგები

შედეგები
შედეგები
შედეგები
შედეგები
შედეგები
შედეგები
შედეგები
შედეგები

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

როგორც ითქვა, როგორც ჩანს, Mach 3 მართავს ამ სიჩქარის პარამეტრებს საკმაოდ ზუსტად, მაგრამ ახლა ჩვენ ზუსტად ვიცით:)

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

Გაუმარჯოს!

გირჩევთ: