Мазмуну:

Сынактан жасалган CNC Feed-ченөө куралы: 5 кадам
Сынактан жасалган CNC Feed-ченөө куралы: 5 кадам

Video: Сынактан жасалган CNC Feed-ченөө куралы: 5 кадам

Video: Сынактан жасалган CNC Feed-ченөө куралы: 5 кадам
Video: Ұстаз Ерлан Ақатаев көп күнә қателік жасап қойған құлдарыма айт 2024, Июль
Anonim
Сынактан жасалган CNC Feed-ченөө куралы
Сынактан жасалган CNC Feed-ченөө куралы

Кимдир бирөө CNC станогунда чыныгы тоют ылдамдыгын өлчөгүсү келгенби? Балким, жок, фрезердик бөлүктөр CNC жумушунан кийин бүтүн болгонго чейин … бирок алар үзгүлтүксүз үзүлө баштаганда, балким, иликтөө убактысы келип жетти. Бул көрсөтмөдө сиз CNC машинасынын реалдуу азыктандыруу ылдамдыгын аныктоо боюнча тапшырманы аткарсаңыз болот. Бул принтердин арт-инженердик бөлүгүн, arduino программасын, компьютердик программаны жана кесиптештеримдин жардамы менен алган жыйынтыктарымды жана кенчке айланган таштандыларды камтыйт.

1 -кадам: Долбоорду ишке ашыруу үчүн колдонулган материалдар, шаймандар, түзмөктөр

Мен бул боюнча иштей баштаганда, биз керектүү нерселердин кыска тизмесин ойлодум:

  • принтердин ташуу механизми ажыратылган
  • муну өзгөртүү үчүн кол куралдары
  • ширетүүчү, ширетүүчү, зымдар
  • мультиметр
  • осциллограф же логикалык анализатор - бул таптакыр зарыл эмес
  • электр камсыздоо
  • микроскоп
  • Arduino nano + pinout
  • PC Arduino IDE, Visual Studio 2008 Express + MS Charting куралдары менен орнотулган
  • (MPU6050 - Мен муну колдонбой калдым)
  • кантип жасоону билбегендин бардыгын издөөгө даяр

Башында, мен MPU6050 тактайы мага бир убакта бардык үч огу боюнча ылдамдыкты өлчөөгө мүмкүндүк берет деп ойлогом. Ичинде акселерометр бар, мен акселерометрдин маалыматтарын жыйынтыктоо мага каалаган бааны - ар бир ог боюнча ылдамдыкты берерине ишенгем. Сериялык монитордо чийки маалыматтарды көрсөткөн Arduino үзүндүнү жүктөп жана өзгөрткөндөн кийин, Visual Studioдо маалыматтарды иштеткен кичине компьютер программасын жаздым жана аны чечмелөө үчүн диаграммага түшүрдүм. Бул үчүн Visual Studio C# Express 2008ди да, диаграмма куралдарын да жүктөп алышым керек болчу.

Бир аз убакыттан кийин коддоп, сериялык байланыш үчүн керектүү нерселердин бардыгын издеп тапкандан кийин, мен баалуулуктарды ойлоп таптым, бирок мен эмне кылсам да, ал колдонууга жарабады. Чакан, бирок күтүлбөгөн кыймылдар чоң чукулдарга алып келет, ал эми узак саякат диаграммада көрүнбөйт. MPU6050 сабагандан эки күн өткөндөн кийин, мен акыры багынып, башка нерсеге кайрылдым - демонтаждалган принтердин позициясын кайтаруу механизми.

2 -кадам: Жасалышы керек болгон жабдыктар

Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар
Жасалышы керек болгон жабдыктар

Reverse Engineering

Албетте, принтердин механизминде анын так касиеттерин аныктоо үчүн колдоно турган бөлүк номери жок болчу, биз каалаган жерге жетүү үчүн бир аз тескери инженерия керек болчу. Механизмди жана электрониканы кылдат изилдеп чыккандан кийин, мен биринчи кезекте оптикалык сенсор казыктарын аныктоо керек деп чечтим. Бул нерсенин баарын Arduino менен байланыштыруу үчүн жасалышы керек болчу. Мен кара пластикалык бөлүгүн ажыратып, ПХБны чыгарып, сенсорду карадым: анын үстүндө ROHM RPI-2150 жазылган. Бул мени бактылуу кылды, маалымат барагын табам деген үмүт чоң болчу. Тилекке каршы, бул же эски, же ыңгайлаштырылган бөлүк - интернеттин эч бир жеринде табылуучу маалымат барагы жок болчу. Бул мен өз колума алуум керек дегенди билдирет: бул сенсорлордо көбүнчө инфракызыл диод жана эки фото-транзистор бар экенин билип, мен мультиметрди кармап диоддун өлчөө режимине койдум жана казыктардын ортосунда өлчөй баштадым.

Электр казыктарын табуу оңой - аларда конденсаторлор болот жана алар адатта ПХБнын кең издери менен байланышкан. Жердин издери көбүнчө жакшыраак ызы -чууну четке кагуу үчүн бир нече төшөмөлөргө туташтырылган.

Киргизүү жана чыгаруу пиндери анча деле маанилүү эмес. Диод боюнча өлчөөдө, эсептегич бир багытта өзүнүн алдыга чыңалуусун көрсөтөт, ал эми экинчи жагында ашыкча жүктөө (чексиз). Мен казыктардын ортосундагы төрт диодду аныктай алдым, мен төртүнчү диод кандайдыр бир зенер же TVS диод болушу керек деген тыянакка келдим, анткени бул компоненттин кубаткычтарынын ортосунда болгон. Инфракызыл эмитентти табуу оңой эле, аны менен катар 89R каршылыгы бар болчу. Калган эки казыкта эки диоддун өлчөөсү калды, алар эки кабыл алгыч болуш керек эле.

Эскертүү: Бул сенсорлордо импульстарды эсептөө менен позицияны аныктоодон тышкары кыймылдын багытын аныктоо үчүн эки кабылдагыч бар. Бул эки чыгуунун толкун формалары 90 ° фазадан тышкары, бул саноо же кайра эсептөө импульсун чыгаруу үчүн колдонулат. Бул импульстардын санын ээрчүү менен, басып чыгаруучу баштын так ордун аныктоого болот.

Эмитент менен эки ресивер жайгашканда, мен зымдарды алардын казыктарына ширеттим, ошондуктан сенсорду Arduino менен байланыштыра алам. Муну жасоодон мурун мен сенсорго 3.3В менен жеткирип, сенсордун ортосундагы тилкени бир нече жолу тартып, чыгуулардагы төрт бурчтуу толкунду байкадым. Квадрат толкунунун жыштыгы кыймылдын ылдамдыгына жараша өзгөрүп турган, мен өлчөө системасы азыр Arduino менен туташууга даяр деген жыйынтыкка келдим.

Arduino туташуу

Бул жаңы "сенсорду" туташтыруу абдан оңой. Жөн эле сенсордун чыгууларын D2 жана D3кө (үзгүлтүккө учуроочу казыктарга!) Туташтырыңыз, жана электр менен камсыздоо линиялары жана кодировка башталышы мүмкүн.

3 -кадам: Arduino коддоо

Arduino Coding
Arduino Coding

Arduino коду абдан жөнөкөй. Мен D2 өсүп бараткан четин көргөн сайын аткаруучу функцияны дайындадым, бул тиркелген Arduino кодунан өткөн функция. Эгерде сиз квадраттык коддогучтун сигналдарын карап көрсөңүз, муну көрөсүз:

  • бир багытта А фазасы ар бир В фазасынын көтөрүлүүчү четинде логика жогору
  • башка багытта А фазасы логиканын төмөндүгү, ар бир фазанын В көтөрүлүүчү четинде

Бул мен колдонгон кодердин менчиги болчу: өтүү функциясы D2 өсүп келе жаткан сайын аткарылгандыктан, мен D3 бийик болгондо эсептегичти көбөйтөт, ал эми D3 төмөн болгондо аны азайтат деп жаздым. Бул биринчи аракетте иштеди, мен эсептегичтин баасын сериялык мониторго жибердим жана принтердин башын валга жылдырганда анын көбөйүп/азайышын көрдүм.

Кыскача айтканда, камтылган программа цикл функциясында төмөнкүлөрдү кылат:

  1. келген маалыматтардын сериялык алуу буферин текшерет
  2. кирүүчү маалыматтар болсо, анын '1' же жокпу, текшериңиз
  3. эгер бул '1' болсо, анда бул компьютердин программасы эсептегичтин маанисин сурап жатат дегенди билдирет
  4. эсептегичтин баасын сериялык аркылуу ЖКга жөнөтүү
  5. 1ден баштаңыз.

Муну менен, топ азыр ПКнын программалык короосунда. Келгиле, буга кирели!

4 -кадам: Visual Studio C# Программалык камсыздоо

VS C# программасынын максаты эсептөө жүгүн Arduinoдон ЖКка которуу болгон. Бул программа Arduino берген маалыматтарды алат, эсептейт жана график түрүндө ылдамдыгын көрсөтөт.

Биринчи кылганым Googleга C #де сериялык байланышты кантип жасоо болду. Мен MSDN.comдо жакшы мисал менен бирге көптөгөн жакшы маалыматтарды таптым, анан мага кереги жок нерселерди ыргытып жибердим - негизинен окуу бөлүгүнөн башкасынын баары. Мен COM портун жана ылдамдыгын Arduino менен дал келүү үчүн койдум, андан кийин ага бир нече аракет кылдым жана сериялык портко келгендердин бардыгын көп саптуу текст кутусуна таштадым.

Маанилер окулган соң, мен readto & split функцияларын колдонуп, бир өлчөөнү бири -биринен жана бөлүүчү белгилерден бөлүп алчумун. Булар Диаграмма контролуна чийилип, баалуулуктар экранда пайда боло баштады.

Эгерде сиз VS инструменттер кутусунда Диаграмма көзөмөлүн көрө албасаңыз, анда көйгөйдү гуглдан чечип, бул жерден чечүүнү таба аласыз (жоопту #1ден издеңиз): шилтеме

Өлчөө принциби

Саноолордун саны менен башчы басып өткөн аралыктын ортосундагы байланышты табуу үчүн, биз эсептөөнүн маанисин нөлгө түшүрдүк, принтердин башын колго 100 мм жылдырдык жана сандардын өзгөрүшүн байкадык. Биз акыры төмөнкү пропорцияга келдик: 1 эсептөө = 0.17094мм.

Биз аралыкты сурай алгандыктан жана үлгүлөрдүн ортосундагы убакытты өлчөй алганыбыз үчүн, позициянын жылышынын ылдамдыгын эсептей алабыз - ылдамдыгын эсептей алабыз!

TMR0 жардамы менен болжол менен 50 мс программалык камсыздоо убактысы бар, бирок биз бул убакыт өтө так эмес экенин байкадык. Чынында, кээ бир программалык ылдамдык өлчөөлөрдөн кийин, биз 50ms такыр 50ms эмес экенин таптык. Бул үлгүлөр белгиленген интервалда алынбаганын билдирет, ошондуктан ылдамдыкты эсептөө да белгиленген убакыт базасын колдоно албайт. Бул маселени тапкандан кийин, алдыга жылуу оңой болду: биз аралыктын айырмасын жана убакыттын айырмасын алып, ылдамдыкты D_distance/D_time (D-расстояние/50см ордуна) деп эсептедик.

Ошондой эле, биздин теңдеме ылдамдыкты мм/50см бирдик менен кайтарып берердиктен, башты бир мүнөттө [мм/мүнөт] ичинде басып өтүүчү аралыкты алуу үчүн муну 1200гө көбөйтүшүбүз керек.

Эскертүү: Mach 3 CNC тегирменин көзөмөлдөөчү программалык камсыздоо [мм/мүнөт] бирдигинде азыктандыруу ылдамдыгын аныктайт.

Чыпкалоо

Ушул учурдан тартып, өлчөөлөр абдан так көрүндү, бирок өлчөнгөн сигналда кандайдыр бир ызы -чуу болду. Биз бул валдагы механикалык карама -каршылыктардан улам келип чыккан деп шектендик, валдын кошулуусу ж.б.

Программалык камсыздоого жакшы тууралоолор

Тандоо ылдамдыгын жана чыпкалоо ылдамдыгын иштөө убагында өзгөртүү үчүн, жылдыруу тилкелери кошулду - ар бири үчүн. Ошондой эле, участокторду жашыруу мүмкүнчүлүгү да киргизилген.

5 -кадам: Жыйынтыктар

Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар

Аппараттык жана программалык бөлүктөр даяр болгондон кийин, биз mach 3 + менин программам менен үч өлчөө топтомун иштеттик, сиз тиркелген сүрөттөрдөгү жыйынтыктарды көрө аласыз. Кийинки эксперименттер жакшырган тактыкты көрсөттү, экөө тең чыпка жана үлгүлөрдүн ылдамдыгы жогорулады. Сюжеттер өлчөнгөн ылдамдыкты кызыл түстө, ал эми орточо сызык чекит көк менен көрсөтөт.

Бул айтылгандай, Mach 3 бул ылдамдык орнотууларын так иштетет окшойт, бирок азыр биз так билебиз:)

Тескерисинче инженерия жана сууну шарапка айландыруу боюнча бул кыска нускама сизге жакты деп ишенем!

Ура!

Сунушталууда: