Как научиться программировать контроллеры


Советы начинающим программистам микроконтроллеров / Хабр

Очень давно хотелось поделиться своим опытом, с начинающими радиолюбителями, потому что об этом пишут очень мало и разрозненно. Мой опыт не хороший, не плохой, он такой какой есть. С некоторыми утверждениями вы в праве не согласиться и это нормально, ведь у каждого свое видение ситуации. Цель данного материала, обратить внимание читателя на некоторые вещи, что то взять на заметку и сформировать собственное мнение и видение ситуации, ни в коем случае нельзя воспринимать это как истину.

1. Многие начинающие электронщики не знают с чего начать, поэтому спрашивают совета. Большинство бывалых радиолюбителей ответят, что начни собирать какую нибудь схему. Естественно в голове любого начинающего сразу мелькает LCD дисплей с jpeg картинками, какой нибудь mp3 плеер или часы, без малейшей мысли о том, что не имея базовых знаний это неподъемная задача.

Я категорически против такого подхода. Обычно это все заканчивается — либо ничем, либо забитые форумы с мольбами помочь. Даже если кому то помогают, то в 90% он больше никогда не всплывет на сайтах по электронике. В остальных 10% он так и продолжает заливать форумы мольбами, его будут сначала пинать, затем поливать грязью. Из этих 10% отсеивается еще 9%. Далее два варианта: либо таки до глупой головы доходит и все же происходит goto к началу, либо в особо запущенных вариантах, его удел копировать чужие конструкции, без единой мысли о том как это работает. Из последних зачастую рождаются ардуинщики.

Путь с нуля на мой взгляд заключается в изучении периферии и особенностей, если это микроконтроллер. Правильнее сначала разобраться с тем как дрыгать ножками, потом с таймерами, затем интерфейсами. И только тогда пытаться поднимать свой FAT. Да это не быстро, да это потребует времени и усилий, но практика показывает, как бы вы не пытались сократить этот путь, все равно всплывут проблемы, которые придется решать и время вы потратите куда больше, не имея этой базы.

Только не нужно путать теплое и мягкое. Первое — из всех правил есть исключения, лично видел людей, которые в руках раньше не держали микроконтроллеров, но за крайне короткий срок смогли обскакать бывалых опытных радиолюбителей, их в расчет не берем. Второе — мне попадались личности, которые начинали с копирования схем и сходу разбирались, но скорее это тоже исключение из правил. Третье — и среди ардуинщиков попадаются опытные программисты, это ведь всего навсего платформа, но и это скорее исключение.

Если говорить об общей массе, то дела обстоят именно так как я описал вначале: нежелание разбираться с основами, в лучшем случае оттягивает момент того, когда придется вернуться к этим вопросам. В худшем случае, вы быстро упретесь в потолок своих знаний и все время винить в своих проблемах кого то другого.

2. Перед решением задачи, дробите ее до абсурда вплоть до «припаять резистор», это помогает, проверено. Мелкие задачи решать куда проще. Когда большая задача разбита на кучу мелких действий, то все что остается — это выполнить их. Могу привести еще один годный совет, хоть он вам и покажется бредовым — заведите блокнотик и пишите в него все что собираетесь сделать. Вы думаете, итак запомню, но нет. Допустим сегодня у меня хорошее настроение и думаю о том, как собрать плату. Запиши план действий: сходить купить резистор, подготовить провода, сделать крепление дисплея. Потом все забудешь, откроешь блокнотик и смотришь — ага сегодня настроение попилить и построгать, сделаю крепление. Или собираешь ты плату и уже осталось допаять последний компонент, но не тут то было резисторы кончились, вот записал бы перед тем как паять, то вспомнил.

3. Не пользуйтесь кодогенераторами, нестандартными фичами и прочими упрощалками, хотя бы на первых этапах. Могу привести свой личный пример. Во времена активного использования AVR я пользовался кодогеном CAVR. Меня он полностью устраивал, хотя все говорили, что он кака. Звоночки звенели постоянно, были проблемы с библиотеками, с синтаксисом, с портированием, но было тяжело от этого отказаться. Я не разбирался как это работает, просто знал где и как поставить галочки.

Кол в мой гроб был вбит с появлением STM32, нужно было обязательно переползать на них, вот тогда то и появились проблемы. Проблемы мягко сказано, фактически мне пришлось осваивать микроконтроллеры и язык Си с нуля. Больше я не повторял прошлых ошибок. Надо сказать это уже пригодилось и не один раз. С тех пор мне довелось поработать с другими платформами и никаких затруднений не испытываю, подход оправдывает себя.

По поводу всех улучшалок и упрощалок, было одно очень хорошее сравнение, что они подобны инвалидным коляскам, которые едут по рельсам, можно ехать и наслаждаться, но вставать нельзя, куда везут — туда и приедешь.

4. Изучайте язык Си. Эх, как же часто я слышу, как начинающие радиолюбители хвалятся, что хорошо знают сишку. Для меня это стало кормом, всегда люблю проконсультироваться у таких собеседников. Обычно сразу выясняется, что язык они совершенно не знают. Могу сказать, что не смотря на кажущуюся простоту, людей которые действительно хорошо бы его знали, встречал не так много. В основном все его знают на столько, на сколько требуется для решения задач.

Однако, проблема на мой взгляд заключается в том, что не зная возможностей, вы сильно ограничиваете себя. С одной стороны не оптимальные решения, которые потребуют более мощного железа, с другой стороны не читаемый код, который сложно поддерживать. На мой взгляд, читаемость и поддерживаемость кода занимает одно из важнейших мест и мне сложно представить, как можно этого добиться не используя все возможности языка Си.

Очень многие начинающие брезгуют изучением языка, поэтому если вы не будете как все, то сразу станете на две ступени выше остальных новичков. Так же не никакой разницы, где изучать язык. На мой взгляд, микроконтроллер для этого не очень подходит. Гораздо проще поставить какую нибудь Visual studio или Qt Creator и порешать задачки в командной строке.

Хорошим подспорьем будет также изучение всяких тестов по языку, которые дают при собеседованиях. Если порыться то можно много нового узнать.

5. Изучение ассемблера? Бояться его не нужно, равно как и боготворить. Не нужно думать, что умея написать программу на ассемблере, вы сразу станете гуру микроконтроллеров, почему то это частое заблуждение. В первую очередь это инструмент. Даже если вы не планируете использовать его, то все равно я бы настоятельно рекомендовал написать хотя бы пару программ. Это сильно упростит понимание работы микроконтроллера и внутреннего устройства программ.

6. Читайте даташит. Многие разработчики, пренебрегают этим. Изучая даташит вы будете на две ступени выше тех разработчиков. Делать это крайне полезно, во первых это первоисточник, какие бы сайты вы не читали, в большинстве случаев они повторяют информацию из даташита, зачастую с ошибками и недосказанностями. Кроме того, там может находиться информация, о которой вы не задумываетесь сейчас, но которая может пригодиться в будущем. Может статься так, что вылезет какая то ошибка и вы вспомните что да, в даташите об этом было сказано. Если ваша цель стать хорошим разработчиком, то этого этапа не избежать, читать даташиты придется, чем раньше вы начнете это делать, тем быстрее пойдет рост.

7. Часто народ просит прислать даташит на русском. Даташит — это то, что должно восприниматься как истина, самая верная информация. Даже там не исключены ошибки. Если к этому добавятся ошибки переводчика, он ведь тоже человек, может даже не нарочно, просто опечататься. Либо у него свое видение, может что-то упустить, на его взгляд не важное, но возможно крайне важное для вас. Особенно смешной становится ситуация, когда нужно найти документацию на не сильно популярные компоненты.

На мой взгляд, намного проще исключить заранее весь слой этих проблем, чем вылавливать их потом. Поэтому я категорически против переводов, единственный верный совет — изучайте английский язык, чтобы читать даташиты и мануалы в оригинале. Понять смысл фразы с помощью программ переводчиков можно, даже если уровень вашего языка полный ноль.

Мною был проведен эксперимент: в наличии был студент, даташит и гугл переводчик. Эксперимент №1: студенту вручен даташит и дано задание самостоятельно найти нужные значения, результат — «да как я смогу», «да я не знаю английский», «я ничего не нашел/я не понял» типичные фразы, говорящие о том, что он даже не пытался. Эксперимент №2: тому же студенту, вручен все тот же даташит и тоже задание, с той разницей, что я сел рядом. Результат — через 5 минут он сам нашел все нужные значения, абсолютно без моего участия, без знания английского.

8. Изобретайте велосипед. Например, изучаете какую то новую штуку, допустим транзистор, дядька Хоровиц со страниц своей книги авторитетно заявляет, что транзистор усиливает, всегда говорите — НЕ ВЕРЮ. Берем в руки транзистор включаем его в схему и убеждаемся что это действительно так. Есть целый пласт проблем и тонкостей, которые не описываются в книгах. Прочувствовать их можно только, когда возьмешь в руки и попробуешь собрать. При этом получаем кучу попутных знаний, узнаем тонкости. Кроме того, любая теория без практики забудется намного быстрее.

На первоначальном этапе, мне очень сильно помог один метод — сначала собираешь схему и смотришь как она работает, а затем пытаешься найти обоснование в книге. То же самое и с программной частью, когда есть готовая программа, то проще разобраться в ней и соотнести куски кода, какой за что отвечает.

Также важно выходить за рамки дозволенного, подать побольше/поменьше напряжение, делать больше/меньше резисторы и следить за изменениями в работе схемы. В мозгу все это остается и оно пригодится в будущем. Да это чревато расходом компонентов, но я считаю это неизбежным. Первое время я сидел и палил все подряд, но теперь перед тем как поставить тот или иной номинал, всегда вспоминаю те веселые времена и последствия того, если поставить неверный номинал.

9. А как бы я сделал это, если бы находился на месте разработчиков? Могу ли я сделать лучше? Каждый раз задавайте себе эти вопросы, это очень хорошо помогает продвигаться в обучении. Например, изучите интерфейсы 1wire, i2c, spi, uart, а потом подумайте чем они отличаются, можно ли было сделать лучше, это поможет осознать почему все именно так, а не иначе. Так же вы будете осознавать, когда и какой лучше применить.

10. Не ограничивайтесь в технологиях. Важно что этот совет имеет очень тонкую грань. Был этап в жизни, когда из каждой подворотни доносилось «надо бы знать ПЛИС», «а вот на ПЛИС то можно сделать». Формально у меня не было целей изучать ПЛИСины, но и пройти мимо было никак нельзя. Этому вопросу было выделено немного времени на ознакомление. Время не прошло зря, у меня был целый ряд вопросов, касаемых внутреннего устройства микроконтроллеров, именно после общения с плисинами я получил ответы на них. Подобных примеров много, все знания, которые я приобретал в том или ином виде, рано или поздно пригодились. У меня нет ни единого бесполезного примера.

Но как было сказано, вопрос технологий имеет тонкую грань. Не нужно хвататься за все подряд. В электронике много направлений. Может вам нравится аналог, может цифра, может вы специалист по источникам питания. Если не понятно, то попробуйте себя везде, но практика показывает, что вначале лучше сконцентрироваться на чем то конкретном. Даже если нужно жать в нескольких направлениях, то лучше делать это ступеньками, сначала продавить что то одно.

11. Если спросить начинающего радиолюбителя, что ему больше нравится программирование или схемотехника, то с вероятностью 99% ответ будет программирование. При этом большую часть времени эти программисты тратят на изготовление плат ЛУТом/фоторезистом. Причины в общем то понятны, но довольно часто это переходит в некий маразм, который состоит в изготовлении плат ради изготовления плат.

В интернетах практически единственный трушный путь к программированию это стать джедаем изготовления печатных плат. Я тоже прошел через этот путь, но каждый раз задаю себе вопрос зачем? С тех пор, как я приобрел себе пару плат, на все случаи жизни, каждый раз думаю о том, что мог бы спокойно прожить все это время без самодельных плат. Мой совет, если есть хоть капля сомнений, то лучше не заморачиваться и взять готовую отладочную плату, а время и средства лучше бы потратить на программирование.

12. Следующий совет, особенно болезненный, мне очень не хочется его обсуждать, но надо. Часто мне пишут, мол ххх руб за ууу дорого, где бы подешевле достать. Вроде бы обычный вопрос, но обычно я сразу напрягаюсь от него, так как зачастую он переходит в бесконечные жалобы на отсутствие денег. У меня всегда возникает вопрос: почему бы не оторвать пятую точку и не пойти работать? Хоть в тот же макдак, хоть на стройку, потерпеть месяц, зато потом можно приобрести парочку плат, которых хватит на ближайший год. Да я знаю, что маленьких городах и селах сложно найти работу, переезжайте в большой город. Работайте на удаленке, в общем нужно крутиться. Просто жаловаться нет смысла, выход из ситуации есть, кто ищет его тот находит.

13. В ту же копилку внесу очень болезненный вопрос инструмента. Инструмент должен позволять вам максимально быстро разрабатывать устройства. Почему то очень многие разработчики не ценят свое время. Типичный пример, дешевая обжимка для клемм, на которой так любят экономить многие работодатели. Проблема в том, что она даже обжимает не правильно, из-за этого провода вываливаются. Приходится производить кучу дополнительных манипуляций, соответственно тратить время. Но как известно дурак платит трижды, поэтому низкая цена кримпера возрастет во много раз, за счет затрачиваемого времени и плохого качества обжима.

Не говорю что дешевое = плохое, нет — все зависит от ситуации. Вернусь к примеру кримпера, было время когда обжимал чем попало, поэтому часто возникали проблемы. Особенно неприятно, когда заводишь плату и она не работает, после долгих поисков ошибки понимаешь что из-за плохо обжатого проводочка, обидно. С тех пор как появилась нормальная обжимка этих проблем нет. Да внутренняя жаба и квакала, и душилась от ее стоимости, но ни разу не пожалел об этом решении. Все что я хочу сказать, что поработав с нормальным инструментом, совершенно не хочется возвращаться к плохому, даже не хочется обсуждать это. Как показывает практика, лучше не экономить на инструментах, если сомневаетесь — возьмите у кого нибудь потестить, почитайте отзывы, обзоры.

14. Заведите сайт, можно писать на нем, что угодно, просто как записки. Практика показывает, что работодатели все равно его не читают, но сам факт производит большой эффект.

15. Тонкий вопрос: профильное высшее образование, нужно ли оно? Мне известны не единичные случаи, когда люди работали абсолютно без образования и по опыту и знаниям они могли дать прикурить любому дипломированному специалисту. Собственно, у меня нет профильного образования, испытываю ли я от этого дискомфорт? В определенной степени да.

Еще в самом начале, когда микроконтроллеры были для меня хобби, я много помогал с курсовыми и дипломами разных вузов, просто чтобы оценить свой уровень. Могу сказать уверенно, что уровень в целом невысок вне зависимости от имени вуза. Учиться несколько лет, для того чтобы написать такой диплом, совершенно необязательно. Достигнуть этого можно самостоятельно за весьма короткий срок. И все же зачастую бывали моменты, когда студенты знали какой то предмет, который они проходили на 2-3 курсе, а я этого не знал. Хоть все эти знания и компенсировались самообразованием, но все же лучше было бы не тратить на это время.

Вуз ради бумажки. Могу сказать, что были и такие ситуации, когда предлагали работу, которая требовала обязательного наличия образования и было обидно, что именно в тот момент бумажки не было. Но в целом, история показывает, что большинству работодателей наплевать на вашу бумажку.

Следующий момент довольно часто не учитывается, это окружение. Не забывайте, что люди, с которыми вы учитесь это ваше поколение, не исключено что вам с ними работать. Количество фирм работающих в одной отрасли сильно ограничено. Практика показывает, что даже в больших городах все и все друг о друге знают, вплоть до интимных подробностей.

Еще один момент это возможности. Зачастую у вузов есть свои возможности — оборудование, может какие то секции, может какие то программы работы за рубежом, этим нужно пользоваться, если есть хоть малейшая возможность. Если в вузе вы не видите перспективы, идите в другой, мир на каком то одном не заканчивается.

Если подытожить то совет таков: если есть хоть малейшая возможность — нужно идти учиться, обязательно по профилю, если есть хоть какие то шансы, то лезть везде, а не отсиживать штаны на задней парте. Заводить знакомства, параллельно дома самому практиковаться, развиваться.

16. Поздно ли начинать программировать в 20, 30, 40, 50 лет? Практика других людей показывает, что возраст вообще не помеха. Многие почему то не учитывают то, что есть целый пласт работы, которую молодые в силу своих амбиций не хотят делать. Поэтому работодатели предпочитают брать тех, кто будет ее тащить. Это ваш шанс зацепиться, а дальше все зависит только от вас.

И последний совет. Многие радиолюбители необщительные, сердитые и раздражительные — считайте это спецификой работы. Излучайте добро и позитив, будьте хорошим человеком.

embedded - Насколько сложно разработчику программного обеспечения научиться программировать микроконтроллер?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

c - Какой язык выучить для программирования микроконтроллеров?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. работы Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

7 важных советов для более быстрого обучения программированию

Независимо от того, получаете ли вы ученую степень в области информатики, ветеран, использующий GI Bill для выбора следующей миссии, начинающий разработчик-самоучка или студент учебного лагеря по программированию, овладение навыками программирования - это бесконечная борьба. Чтобы помочь вам в обучении - любезно предоставлено инструкторами Coding Dojo - , вот семь советов, как научиться программировать быстрее.

1. Учитесь на практике. Всегда играйте с кодом при изучении

С каждым новым предметом, чем раньше вы начнете играть с кодом, тем быстрее вы выучите данные концепции. Даже если вы пролистаете целую главу чтения и такая тема, как циклы for, кажется простой - чтобы обезьяна могла это сделать - вы все равно будете чесать голову, когда вам будет предложено реализовать код в первый раз. Вы подумаете: «Погодите, а что это был за синтаксис?» Как говорится, нужно «использовать это или потерять», потому что, несмотря на развитие технологий, эта старая пословица верна при обучении программированию.

Совет: создавайте проект по мере изучения материала.Персональный проект часто является лучшей отправной точкой.

2. Изучите основы долгосрочной выгоды

Какими бы элементарными они ни казались на первый взгляд, основы программирования всегда должны стоять на первом месте: чем лучше вы их понимаете, тем легче выучить более сложные концепции . Судя по нашему опыту в Coding Dojo, студенты, которые спешат в начале наших курсов - где мы уделяем больше внимания основам веб-разработки - часто первыми застревают, когда мы переходим к более сложным материалам, таким как внутреннее программирование.Поэтому, прежде чем вы откажетесь от первого курса по информатике 101 или пропустите первую главу онлайн-учебника, помните, что вы упускаете из виду самый важный шаг в вашем обучении.

Подсказка: прочтите эту отличную статью о 5 основных концепциях любого языка программирования

3. Код вручную. Он оттачивает мастерство, и он понадобится вам, чтобы получить работу

Компьютерные мониторы становятся тоньше, жесткие диски легче, а языки программирования - более мощными, но ручное кодирование по-прежнему остается одним из наиболее эффективных методов обучения программированию.Будь то на доске или в блокноте, ручное кодирование требует большей осторожности, точности и намерения за каждой строкой кода. Потому что, в отличие от компьютера, вы не можете запустить рукописный код на полпути, чтобы проверить правильность работы. Хотя это и требует больше времени, это ограничение превратит вас в более основательного разработчика как в классе, так и на рынке труда. Для экзаменов в колледж и технических собеседований - важного компонента процесса собеседования - вам придется писать код вручную, потому что это не только хорошо для обучения, но и общеизвестно, что это окончательный тест на квалификацию программиста. Так что начните пораньше и привыкните к этой старой школе.

4. Обратитесь за помощью. Вам понадобится

Как бы круто ни было стать следующим Стивом Джобсом в одиночку, реальность такова, что люди учатся быстрее с наставниками и отзывами коллег. То, что может показаться неподвижной ошибкой или темой, может быть быстро устранено новым взглядом или новой интерпретацией предмета. Будь то онлайн или лично, игнорируйте троллей и не бойтесь просить о помощи, потому что каждый программист раньше был на вашем месте.Кроме того, большинство разработчиков любят кодировать, и если есть что-то, что нравится увлеченным людям, так это делиться своими знаниями с другими.

Предупреждение: в Coding Dojo мы рекомендуем использовать правило 20 минут. Прежде чем обращаться за помощью, уделите хотя бы 20 минут, чтобы разобраться в чем-то самостоятельно. Велика вероятность, что ответ уже перед вами, и, кроме того, борьба делает вас в целом лучшим программистом.

Подсказка: Stackoverlfow и обучение программированию - это золотая жила для помощи в онлайн-программировании.

5. Поищите дополнительные ресурсы в Интернете. Огромное количество контента

Если определенная концепция не имеет смысла, будь то в учебнике или во время лекции в классе, сохраняйте уверенность и ищите альтернативные онлайн-ресурсы для изучения того же содержания. Все учатся по-разному, и то, что один источник не имеет смысла, не означает, что с вами что-то не так. Это означает, что вы не нажимаете на доставку материала.Онлайн-ресурсы для изучения компьютерного программирования безграничны, а в всегда есть учебные пособия или пояснения в блогах, которые сделают доступный материал кристально понятным.

Совет: не стоит недооценивать возможности поиска.

6. Не читайте просто образец кода. Повозитесь с этим!

Чтения образца кода недостаточно, чтобы понять, как он работает. Чтобы добиться истинного понимания, вам нужно запустить код и повозиться с ним.С добавлением комментариев и инструкций пример кода упаковывается для читателя; но на самом деле , довольно сложно воспроизвести с нуля. Чтение - это не то же самое, что понимание, и на самом деле попытка написать код самостоятельно или, по крайней мере, запустить его, значительно облегчит процесс обучения.

7. Делайте перерывы при отладке

При отладке легко погрузиться в кроличью нору в течение нескольких часов, и нет гарантии, что вы решите проблему.Чтобы этого избежать, лучше всего на несколько часов отойти от привычного и вернуться с новой точкой зрения. Это не только гарантированный способ решить проблему, но и сэкономит часы головной боли. Поэтому, если помощь недоступна - как мы уже упоминали ранее, - подумайте о том, чтобы сделать перерыв, чтобы очистить свой разум и вернуться позже. А пока, ошибка никуда не денется, и вы хотя бы восстановите некоторую часть рассудка, необходимого для повышения производительности.

Заключение: сохраняйте спокойствие и продолжайте кодировать

Несмотря на эти 7 советов, самый важный ингредиент для более быстрого изучения программирования - это сохранять уверенность. Для этого вам следует ожидать неоднократных неудач и быть терпеливыми в отношении своего прогресса; потому что для того, чтобы стать экспертом в чем-либо, нужно много работать и много времени. И если хоть одно сомнение когда-либо омрачает ваш разум, помните, что каждый программист проходил этот путь раньше - никому из них не суждено стать разработчиком больше, чем вам. Какой бы путь вы ни выбрали, будь то колледж или учебный лагерь по программированию, единственным препятствием на пути к успеху является ваша трудовая этика и уверенность в том, что нужно продолжать.

Почувствуйте, что быть разработчиком - это то, что вам нужно делать, и задаетесь вопросом: «Стоят ли этого учебные курсы по программированию?» Не ищите ничего, кроме Coding Dojo.Мы - единственный учебный курс, который обучит вас 3 стекам, используемым лучшими компаниями мира за 14 недель. Просто подайте заявку сейчас (это займет всего 2 минуты) - консультант по приемной комиссии свяжется с вами, чтобы узнать, подходит ли вам Coding Dojo.

,

Definitive Free Tutorial [2019]

Вы многому научились. Если вы прочитали последние 5 глав и потратили немного времени на изучение нашей шпаргалки по g-коду, вы готовы заняться некоторыми простыми программами. Вам нужно принять во внимание еще одну вещь, а именно настройку станка, которая идет рука об руку с любой программой ЧПУ.

Давайте начнем с нулевой части (также известной как программа Zero)

Мы уже обсуждали системы координат с ЧПУ в предыдущей главе, поэтому давайте поговорим о том, как настроить систему координат станка, чтобы она соответствовала детали, которую вы хотите изготовить.

Предположим, вы только что закончили рисовать деталь в своем программном обеспечении САПР и готовы сгенерировать для нее некоторый g-код. Одна из ключевых вещей, которую нужно понять, - это то, где будет Part Zero. В вашей программе CAD есть своего рода система координат, и ваша деталь позиционируется на чертеже относительно этой системы координат. Если вы никогда раньше не работали с ЧПУ, возможно, вы не обращали особого внимания на это позиционирование. Возможно, вы прикрепили деталь достаточно далеко от начала координат 0, 0, 0 в программе САПР, чтобы было легче видеть, если осевые линии не располагаются слишком близко.

Возможно, вы захотите пересмотреть эту идею, по крайней мере, до тех пор, пока не освоитесь со всеми различными системами координат, которые вы будете использовать для ЧПУ. Вместо этого вы хотите поместить свою «нулевую деталь» (на данный момент исходную точку CAD-системы или 0, 0, 0) в какое-нибудь место, которое имеет смысл, когда вы будете готовы обрабатывать материал. Когда ваша программа G-кода обращается к X0 Y0 Z0, это ваша Часть Ноль. Позже мы сможем поиграть с рабочими смещениями и другими способами преобразования координат, но когда вы впервые запускаете станок, думайте о X0 Y0 Z0 как о нулевой части.

Существует множество различных теорий о том, где разместить Part Zero, и важно, насколько простой и естественной будет ваша работа с ЧПУ.

При фрезеровании большое внимание уделяется оси Z. Когда Z = 0, где это должно быть по отношению к детали?

Согласно одной теории, Z = 0 является вершиной заготовки перед обработкой. Это позволяет узнать, когда ваш резак режет заготовку, а когда режет воздух. Конечно, когда вы начинаете делать чипы, вы также создаете воздух ниже Z = 0, но все же приятно знать, где начиналась эта исходная граница.

Другая теория предпочитает, чтобы Z = 0 было неким элементом, который не перемещается и не будет удален. Например, это может быть верхняя часть губок тисков. Это удобно, если вам по какой-то причине нужно снять деталь. Вам не нужно повторно ссылаться на машину на новый Z0. Это также удобно, если вы обрабатываете детали с немного разными размерами. Например, даже если вы делаете идентичные детали, вы можете начать с грубого распиленного материала. Точные координаты верхней части такого материала будут варьироваться от заготовки к заготовке, потому что распиловка - это неточная операция.

Cookbook Рецепт : Мне нравится использовать нулевую деталь, которая соответствует фиксированной губе моих тисков, когда я буду использовать тиски для обработки. Как только вы привыкнете создавать свои чертежи САПР с учетом этого, это означает, что вы можете подойти к машине, вставить кусок материала в тиски, загрузить программу g-кода, разработанную с этим понятием Part Zero, и немедленно начать обработка после того, как станок вернется в исходное положение. Поскольку тиски, как правило, остаются на станке, отталкивания не требуются, что значительно повышает производительность.Если мне действительно нужно переместить тиски или сменить губки, не беспокойтесь, я могу просто снова установить ноль в этом месте.

Что бы вы ни решили использовать для своей нулевой части, вы должны об этом знать, и стоит подумать о том, как выбрать нулевую часть, которая может сэкономить вам немного времени или упростить понимание.

В чем разница между машинным нулем, рабочим нулем и детальным нулем?

Нуль станка - это начало системы координат, которая соответствует перемещению оси станка.Work Zero и Part Zero - это одно и то же, и они являются источником системы рабочих координат. Другими словами, Work Zero / Part Zero устанавливает WCS, определяя его происхождение. В вашей программе CAM будет возможность указать WCS или Part Zero. При настройке задания вы будете использовать кромкоискатели или другие датчики, чтобы сообщить машине, где именно находится деталь нулевой точки.

Когда вы запускаете машину, она не обязательно ничего знает о вашей предпочтительной системе координат. Что он действительно знает, так это то, что называется «Машинные координаты».Это фиксированная система координат, встроенная в машину. Когда вы «возвращаете» машину в исходное положение или «ориентируете оси», вы заставляете ее использовать свои переключатели исходного положения для точного определения своего местоположения относительно координат машины. Если ваша машина не возвращается в исходное положение автоматически, когда вы ее запускаете, рекомендуется сначала привыкнуть к идее вернуть ее в исходное положение, прежде чем делать что-либо еще. В случае аварии или аварийной остановки также может быть хорошей идеей вернуть машину в исходное положение, чтобы она могла занять потерянное положение.

«Рабочие координаты» - это координаты, о которых вы хотите подумать.Другими словами, рабочие координаты - это те координаты, при которых станок находится в нулевой точке детали, когда на его дисплее отображается X0 Y0 Z0. По этой причине Part Zero можно также назвать Work Zero. Вы можете установить рабочие координаты разными способами. Под «установлением» я подразумеваю, что вы можете указать машине, как приравнять рабочие координаты к координатам машины.

Рабочая система координат - это то, что ваша машина будет помнить от одного вызова к другому, хотя вам, вероятно, не следует рассчитывать на это, если вы не знаете наверняка, что можете.Поскольку я использую систему Part Zero, сопоставляющую точку на моих губках тисков, я могу запустить машину и вернуть ее в исходное положение, и я знаю, что рабочие координаты - это то, что я ожидаю. У вас также есть возможность установить несколько систем рабочих координат, что удобно по многим причинам. Подробнее об использовании нескольких систем рабочих координат мы поговорим в следующей статье. А пока давайте сосредоточимся на одном.

Создание системы рабочих координат с помощью «Touch Offs» или «обнуления»

Давайте поговорим о создании системы рабочих координат с помощью Touch Offs.Мы воспользуемся моей системой тисков, чтобы сделать обсуждение конкретным, но этот принцип работает для любой системы координат работы.

Проще говоря, «Touch Off» - это место, где вы используете резак, чтобы найти Work Zero. Мы делаем это по одной оси за раз, поэтому начнем с оси Z. Есть много способов сделать Touch Off. Каждый имеет разную точность и требует от вас немного поработать над своей техникой. В методе старой школы используется бумага - бумага для скручивания сигарет была очень тонкой и общедоступной. Используйте немного масла, чтобы удерживать бумагу на месте, и медленно толкайте вращающийся нож, пока он не сдвинет бумагу.Стоп. Резак теперь расположен в нулевом положении, за исключением толщины бумаги. Пробная резка и микрометр установят, что это такое. Обязательно используйте каждый раз бумагу одного и того же типа, чтобы толщина повторялась.

Более современный и точный метод предполагает использование измерительного блока. Калибровочные блоки подвергаются прецизионной обработке с очень высоким допуском и будут включать отчет о проверке, в котором указывается, сколько ошибок в блоке.

НЕ ПЫТАЙТЕСЬ ОТКАЗАТЬ ИНСТРУМЕНТ ОТ КОНТРОЛЬНОГО БЛОКА!

Если вы используете мерные блоки, фреза не должна вращаться.Но независимо от того, вращается резак или нет, это плохо для ваших дорогих калибровочных блоков и плохо для ваших резцов. Вместо этого переместите резак вверх, остановите движение и попытайтесь вставить измерительный блок между резцом и заготовкой. В какой-то момент вы будете слишком сильно толкать тренажер и можете вернуться назад, пока не сможете скользить между ними.

Вот еще один совет от читателя (спасибо, Пол!), Если вы не хотите использовать измерительные блоки - попробуйте булавку от двигателя. Они выточены из закаленного материала, они точны, обычно имеют чистую отделку, и вы можете катать их под резаком, чтобы проверить соответствие.Фактически, со многих точек зрения форма цилиндра или шара (большие шарикоподшипники тоже точные!) Имеет большой смысл для этого измерения, поскольку они менее чувствительны к тому, является ли поверхность под ними плоской и ровной. С помощью микрометра определите диаметр булавки на запястье и убедитесь, что она не слишком изношена, если используется.

Когда вы разместили станок на одной оси в точке, которую вы хотите «обнулить», ваша система ЧПУ сможет указать ему, что это ноль для этой оси.Это важная операция, поэтому убедитесь, что вы знаете, как ее выполнять на своем контроллере. Обычно есть одна сенсорная кнопка для обнуления данной оси и, возможно, другая для обнуления всех осей.

Обратите внимание, что вам не нужно строго измерять нулевую часть. В вашем контроллере будет возможность ввести произвольное значение и сообщить ему, где в данный момент находится всплывающая подсказка. Это удобно во многих случаях, и вы будете делать это довольно часто, а также обнуление. Например, вы можете указать толщину сигаретной бумаги вместо «0.0000.»

Измерители кромок и датчики для определения рабочих координат

Вам не придется долго работать с ЧПУ, прежде чем вы захотите приобрести Edge Finder или Probe. Эти инструменты позволяют быстро и легко найти край какого-либо объекта, чтобы вы могли обнулить его. Edge Finders бывают всех форм и размеров, от простых прядильных приспособлений до причудливых, точных и простых в использовании приспособлений, таких как Haimer 3D «Taster». Да, это не опечатка, с оригинального немецкого они называют их «дегустаторами».

Вот хороший видеоурок от Тормаха о том, как использовать простой кромкоискатель:

Простой кромкоискатель…

А вот и демонстрация Haimer 3D Taster:

Haimer 3D Taster…

Датчик может быть самым удобным для выполнения таких операций обнуления. Вот датчик Renishaw для настройки рабочих смещений:

Датчик Renishaw для настройки рабочих смещений на VMC…

Каждый из этих инструментов похож по назначению, только с увеличением возможностей, автоматизации и затрат.Существует множество других инструментов для точного определения местоположения деталей и заготовок. Некоторые из них более специализированы, например, коаксиальный индикатор Блейка, который используется для определения центров отверстий.

Вам нужно, чтобы некоторые из этих устройств были закреплены в держателе инструмента и были готовы к установке в шпиндель для настройки работы.

Еще больше примеров того, как найти нулевую часть, можно найти в нашей статье, в которой описаны 8 способов найти нулевую часть.

Мы не будем тратить больше времени на такие вещи, поскольку они являются более точной частью настройки ЧПУ и общей техники измерения машиниста, чем программирование с помощью G-кода как таковое.

Еще больше способов установить нулевой уровень

8 способов найти нулевую деталь на вашем станке с ЧПУ

Упражнения

1. Возьмите руководство по эксплуатации станка с ЧПУ и выясните, как обнулить станок с ЧПУ для определения рабочих координат. Посмотрите, как читать координаты машины и рабочие координаты на панели управления.

2. Попробуйте немного коснуться вашей машины. Для начала используйте угол куска лома, застрявший в тисках, пока не научитесь.

3. Если у вас есть кромкоискатель, 3D-тестер или зонд, попробуйте его как способ точного определения нулевой точки детали.

4. Решите, каким будет ваше соглашение для Z = 0 и, возможно, нулевой части, и придерживайтесь его.

.

Смотрите также