Линейная интерполяция

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем jr.Bush, 10 янв 2021.

  1. jr.Bush

    jr.Bush Нерд

    Зрааствуйте уважаемые форумчане, уже несколько месяцев бьюсь над проблемой управления шаговых двигателей при линейной интерполяцией. Суть проекта управление сложным 3д принтером, и соответственно задача программы читать Gcode, производить расчеты и отправлять импульсы на соответствующие пины приводов. Если с технической стороны все более менее понятно то с программной , не все так гладко, так как не получается даже найти правильное направление, если проблемы с ускорением сложно но возможно решить (об этом отдельно) то интерполяция даже линейна не дает покоя, ведь нужно синхронизировать поток по нескольким каналам.
     
  2. jr.Bush

    jr.Bush Нерд

    Когда давно пытался написать такую программу для фрезерного станка, суть была в том что бы сравнивать задания по осям и брать ведущую ось которая долна была проехать меньшее растояние относительно других, и посылать в еденицу времени на оси которые должны проехать большее растояние - кратное большее количество импульсов. Например: X100 Y50, значит в еденицу времени Y делает один импульс, а X два импульса, стоит ли продолжать в этом направлении,
     
  3. jr.Bush

    jr.Bush Нерд

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

    parovoZZ Гуру

    Ищи на гите исходники Wi-Fi Duet - там всё это есть.