Принтер своими руками + Arduino. Можно ли использовать датчик положения? Многопоточность?
Я пытаюсь сделать управляемый компьютером плоттер/рисовальщик/ЧПУ, что-то вроде этого, из старого неисправного принтера... Я добрался до рабочего моторного щита, который может двигать скользящую тележку вперед и назад, запуская постоянный ток на короткое время и управляя шаговым двигателем, который будет «подавать бумагу». Но сейчас это просто несколько шестеренок и роликов.
1: Предположим, что я могу прикрепить механизм подачи бумаги к платформе, чтобы перемещать его в обоих направлениях X и Y, все еще нет способа сделать код Arduino многопоточным? В поисках этого я нашел результаты в некоторых очень старых руководствах/форумах, в которых говорилось, что это невозможно, но вы можете подделать это, сделав одно, а затем другое. Я хотел бы, чтобы последовательная команда отправляла Arduino команду «начать 3 мм вправо» и при этом запускала «3 мм вперед», например, для диагональной линии. Я запускал это только для команд, которые выполняются с перерывами и могут блокироваться, пока команда выполняется вот так.
2: Есть прозрачная «лента» с линиями на ней, которая проходит через скользящую тележку, и есть лента, выходящая из скользящей тележки, которая, как я предполагаю, является ссылкой, указывающей, что она находится на расстоянии x мм от конца, что позволяет принтеру видеть, как долго двигаться. Возможно ли будет провести обратную разработку этого типа устройства для использования в этом пользовательском приложении? Можно ли это сделать с помощью выхода осциллографа, подключенного к контактам на ленте?
@NoBugs, 👍-1
Обсуждение0
- Как использовать SPI на Arduino?
- Как создать несколько запущенных потоков?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Вам действительно стоит изучить, как прошивки 3D-принтеров на базе Arduino (большинство из которых имеют открытый исходный код) решают эту проблему. Лента, которую вы описываете, является *инкрементальным* энкодером, поэтому она даст вам положение только в том случае, если вы посчитаете все изменения при движении от начального положения, определяемого чем-то другим, например, концевым выключателем., @Chris Stratton
Вы также можете рассмотреть возможность использования Grbl, программного обеспечения для управления в стиле ЧПУ. Это может помочь вам управлять вашими двигателями, поскольку оно будет работать с общим g-кодом, вместо того, чтобы изобретать язык самостоятельно., @computercarguy