[uquote="AlexGM",url="/forum/viewtopic.php?p=3731422#p3731422"]
Ogura.org.ua писал(а):Оно то и так но придется слишком много переписывать то что автор на forth накатал придется все переписывать под микроконтроллер.
Кроме разработки автора есть альтернативная. Есть возможность сохранить образ платы в виде готового изображения. Так что переписывать нужно в основном прошивку контроллера, на С. Задачи, выполняемые прошивкой не очень сложны - при поступлении импульса от оптопары выдать импульс на лазер. Можно запросто выдать импульс на несколько лазеров - вопрос только, откуда данные взять. Вариант простой - взять камень с большим объемом памяти (особых изменений программы не потребуется, совместимость даже по выводам) и доработать вывод на несколько лазеров. Вариант правильный - переписать логику контроллера и считывать данные с подготовленного образа на SD карте (SPI и DMA аппаратные), изображение можно заранее подготовить с учетом смещений лазеров на установке для упрощения. Написать костыль для корректировки изображения и поправить прошивку STM вполне по силам.
Ставить несколько контроллеров неоправданно - значительное усложнение схемы, программного обеспечения.[/uquote]
Разберемся по порядку.
1. Автору разработал ПО состоящее с двух частей. Часть написана на forth и выполняется на компьютере другая же часть написана на C и выполняется на микроконтроллере. Очевидно что автор пошел по пути наименьшего сопротивления, и сделал как можно проще.
2. Часто написанная на forth надлежащим образом производит форматирование битовой последовательности, а также позиционирование координат смещений, с учетом настроек пользователя.
3. Часть на микроконтроллере, вообще не содержит никаких оперативных настроек. И предназначена только для минимального но в месте с тем достаточного управления в реальном времени.
Я думаю, Вы согласитесь с выше приведенными тезисами.
Как следствие из них, если битовую последовательность разместить на каком либо носителе, то будет не рационально сложно построить взаимодействие с программой на компьютере, да и не удобно. Если выполнить всю функциональность которая выполняется на компьютере на микроконтроллере, то придется слижком много переписывать.
Но если в 20 килобайт помещается 2 линии, то может это и достаточно. (По крайней мере в оригинальной конструкции в схеме предполагалось применить именно 4 лазера с микроконтроллером с 20kb кода.) Хотя из 4 лазеров был установлен только 1, потому что автор не смог решить проблему их взаимного позиционирования. Мое предложение состоит именно в том чтобы вместо лазеров позиционировать именно битовую последовательность, под фактическое взаиморасположения лазеров.
Теперь еще одна тонкость если использовать 2 микроконтроллера, то можно использовать буфера обоих, да и гальваническую развязку сделать будет гораздо легче. Один из микроконтроллеров просто будет выполнять функции интерфейса с буфером, и еще ничего не мешает дописать функции USB-hub, для камеры. На том же железе. Таким образом чтобы подключившись и запустив микроконтроллеры с компьютера было видно и камеру и
собственно принтер.
Добавлено after 19 minutes 24 seconds:
[uquote="Altium",url="/forum/viewtopic.php?p=3731958#p3731958"]Ogura.org.uа, есть соседная ветка для обсуждения всякие другиe (в большинство нереальнйе) идеи:
https://www.radiokot.ru/forum/viewtopic ... 8&t=143471
Пожалуйста пиши своие идеи толко в нее, здесь они не приложимьйе.
Здесь обсуждаем только авторская конструкция от AlphaCrow.[/uquote]
Господин подписывающийся как Altium, есть соседняя ветка, где обсуждаются конструкции такие как ваша "идеа" отличается от изначальной конструкции AlphaCrow, и поэтому ваши идеи не "приложимьйе", по Вашим же правилам. Как-то устранение драйверов с опто-парами, которые пользователь AlphaCrow, применил в своей конструкции, а в вашей подборке куда-то делся.
Хотя я согласен это все, что здесь написано, вычитать очень сложно. Действительно надо бы как-то выделить рациональное зерно.