Скоро праздник Пасха (4-го апреля), и к нему нужно как следует подготовиться. Не знаю как кто, а я люблю этот день. Это весенний праздник и, к тому же, на нем поедаются всякие вкусности.
Мы решили сделать специальное устройство для раскрашивания яиц.
Нам понадобится:
- энтузиазм;
- плата Марсоход;
- старый принтер – в нем два моторчика;
- старый CD привод;
- кисточки;
- краски;
- крутые яйца
Разбираем старый струйный принтер, но так, чтобы устройство горизонтальной подачи печатающей головки осталось работоспособным. Саму печатающую головку выбрасываем. При внимательном просмотре убеждаемся, что моторчик на горизонтальной подаче – двухфазный. Про управление шаговыми двигателями можно почитать на нашем сайте здесь. Моторчик подключаем к плате Марсоход.
Найдем подходящий кусок фанеры и установим платформу от принтера на нее.
На место печатающей головки устанавливаем второй моторчик от того же принтера (он стоял на подаче бумаги). Тут придется немного повозиться. Мы установили еще одну шестеренку для понижения передачи и уже к шестеренке крепим кисточку.
Платформа для вращения яйца сделана из CD привода. Возможно это самая сложная механическая часть устройства. Сложная она не по устройству, а из-за того, что пришлось много думать как соединить в единое целое множество разных деталек от разного компьютерного хлама.
На самом деле в этом узле стоит коллекторный двигатель. Он работает сразу при подаче напряжения питания. Яйцо будет устанавливаться и вращаться на четырех маленьких ролика этой платформы вот так:
Первые эксперименты мы проводим с акварельными красками медовыми. Нужно приобрести такие краски, чтобы их было не большое число и они находились в палетах в один ряд. Нужно правильно подобрать место установки красок, чтобы кисточка при подаче могла достать до всех нужных красок.
Нам нужна небольшая модификация платы Марсоход. Дело в том, что на ней установлены два разъемчика для подключения двух трехфазных шаговых двигателя. В нашем устройстве оказалось два двухфазных двигателя и их труднее подключить. Для управления двухфазным двигателем нужно иметь 4 выхода на плате, а не 3 как в случае с трехфазником. Нам не хватает еще двух «сильных» выходов. Ток через обмотку течет довольно большой, поэтому нужно объединить несколько выходов. На плате есть 8 светодиодов. Объединяем выходы led[3:0] и led[7:4] в две группы. Присоединяем к ним еще во выходу pt_right и pt_left, которые есть на плате.
На схеме проекта для платы Марсоход видно какие выходы к какой фазе двигателя подключены. Клик на картинке должен ее увеличить.
Теперь наверное само сложное. Нужно написать программу для платы Марсоход. Мы сделаем это на языке программирования аппаратуры Verilog.
Весь проект Altera QuartusII для платы можно выкачать здесь:
А вот небольшой фрагмент кода программы принтера на Verilog:
always @(*)
begin
case(prog_ptr)
8'd0: begin motor=0; dir=0; numsteps=18; end //кисть вверх
8'd1: begin motor=0; dir=1; numsteps=16; end //кисть вниз
8'd2: begin motor=1; dir=1; numsteps=96; end //до левого края
8'd3: begin motor=1; dir=0; numsteps=64; end //к стакану справа
8'd4: begin motor=0; dir=1; numsteps=10; end //кисть к стакану
8'd5: begin motor=1; dir=1; numsteps=32; end //к стакану центр
8'd6: begin motor=0; dir=0; numsteps=6; end //мыть кисть
8'd7: begin motor=0; dir=1; numsteps=3; end //мыть кисть
8'd8: begin motor=0; dir=0; numsteps=3; end //мыть кисть
8'd9: begin motor=0; dir=1; numsteps=3; end //мыть кисть
8'd10: begin motor=0; dir=0; numsteps=3; end //мыть кисть
8'd11: begin motor=0; dir=1; numsteps=6; end //мыть кисть
8'd12: begin motor=1; dir=0; numsteps=48; end //к стакану справа
8'd13: begin motor=0; dir=0; numsteps=32; end //кисть вверх
//взять желтой краски
8'd14: begin motor=1; dir=1; numsteps=96; end //до левого края
8'd15: begin motor=0; dir=1; numsteps=11; end //кисть вниз
8'd16: begin motor=1; dir=0; numsteps=2; end //вправо
8'd17: begin motor=1; dir=1; numsteps=2; end //влево
Обратите внимание, что в нашем «принтере» нет датчиков положения головки и кисточки. Тут мы немного поленились, это можно было бы сделать. С другой стороны программирование теперь не очень сложное. Двигаем головку до упора. Как упрется в препятствие дальше не идет – проскальзывает. Зато теперь знаем «точку нуля». От нее начинаем отсчет шагов для шаговых двигателей. Так делаем и для горизонтальной подачи и для подачи кисточки.
Теперь, когда все готово, можно пытаться пробовать рисовать.
Потребуются обычные куриные яйца – вареные. Нужно их предварительно прогрунтовать, например просто белой гуашью.
Мы продолжаем эксперименты теперь уже не с акварельной, а с гуашевой краской – она вроде бы поярче.
О результатах использования гуашевой краски сообщим дополнительно
Надеюсь вам понравился наш принтер для рисования на куриных яйцах.
Подробнее...