Урок 1. Плоттер и пульт
В картинкахПосле этого урока рядом с Apple ][ стоит плоттер: две оси с шаговыми моторами, головка с чёрным пером и лист бумаги. Компьютер пока не нужен — плоттером управляет пульт, как у настоящего: стрелки двигают перо, кнопка PEN UP/DOWN опускает и поднимает его, красная лампа ERROR горит, если каретка упёрлась.
1.1. Идея: две оси — любая точка листа
Перо плоттера ходит по двум осям. Ось X лежит вдоль листа, на её каретке едет ось Y — поперёк. Каретка Y везёт головку с пером. Сдвинь X на 120 шагов и Y на 60 — перо в точке (120, 60). Так рисуют все плоттеры и станки с ЧПУ.
Каждую ось двигает шаговый мотор. У оси две входные ноги и три выходные:
STEP— шаг: от 0 к 1 (фронт) каретка сдвигается ровно на один шаг;DIR— куда: 1 — от мотора (вправо, вниз), 0 — к мотору;L0— каретка у мотора,L1— у торца (концевики);STALL— шаг не получился: каретка упёрлась.
1.2. Идея: стрелка — это шаги от генератора
Мотор шагает только по фронту. Пока держишь стрелку, нужны фронты один за другим — их даёт генератор 60 Гц (CKL): 60 шагов в секунду. Что хотим для оси X:
| LEFT, RIGHT | STEP оси X | DIR оси X |
|---|---|---|
| обе отпущены | 0 — стоит | не важно |
| RIGHT | такт CKL | 1 — вправо |
| LEFT | такт CKL | 0 — влево |
Отсюда формулы:
- «нажата стрелка по X»:
LR = LEFT ИЛИ RIGHT— вентиль ИЛИ (CD4071); - шаги:
LXS = CKL И LR— вентиль И (CD4081): такт проходит, только пока стрелка нажата; - направление:
DIR = RIGHT— отдельного вентиля не нужно: нажата RIGHT — 1, нажата LEFT — 0.
По Y — так же: UD = UP ИЛИ DOWN, LYS = CKL И UD, DIR = DOWN.
1.3. Идея: PEN UP/DOWN — одна кнопка, два положения
Кнопка даёт 1, только пока её держишь, а перу надо помнить: опущено или поднято. Помнит триггер. У D-триггера CD4013 по фронту на CL выход Q становится равным D. Заведём на D его же инверсный выход QN:
| Было Q | D = QN | После нажатия Q |
|---|---|---|
| 0 (поднято) | 1 | 1 (опущено) |
| 1 (опущено) | 0 | 0 (поднято) |
Каждое нажатие переворачивает Q — это триггер-переключатель (T-триггер). Его выход LPEN — нога DOWN пера. R1 = RST: при сбросе машины перо поднимается.
1.4. Идея: ERROR
Каретка дошла до конца рельса, а стрелку держат — мотор шагает, каретка стоит, ось выдаёт STALL = 1. Лампа ERROR должна гореть, если упёрлась любая из осей: ERROR = XSTALL ИЛИ YSTALL — ещё один вентиль ИЛИ той же CD4071.
1.5. Сборка
Открой машину Apple ][ (кнопка DEMO) — плоттер ставим рядом с ней, на тот же холст: в уроке 3 он подключится к ней платой. Питание (VCC, GND) и сброс RST — уже есть у машины. Метка на ноге — двойной клик по ноге, ввести имя.
Шаг 1. Микросхемы в библиотеку
Если в библиотеке ещё нет папки Plotter: кнопка импорта в библиотеке → файл набора plotter-chips.json. Встанет папка с микросхемами на весь набор (TI CD4013B, TI CD4017B, TI CD4019B, TI CD4069UB, TI CD4070B, TI CD4071B, TI CD4072B, TI CD4081B).
Шаг 2. Механика
Детали — из кнопки «Механика». Ось X поставь справа от машины. Ось Y поверни на 90° и тяни за оранжевую гайку к каретке оси X — защёлкнется. Поворотный стол (Turntable) — так же на каретку оси Y, перо — в отверстие d0 стола. Бумагу подвинь так, чтобы перо стояло у её левого верхнего угла.
| Деталь | Нога / действие | Метка / куда |
|---|---|---|
| Linear axis — ось X | длина (ручка) STEP DIR L0 L1 STALL место | 400 LXS RIGHT XL0 XL1 XSTALL чёрное перо — у левого верхнего угла бумаги, в 30 точках от краёв |
| Linear axis — ось Y | длина (ручка) поворот STEP DIR L0 L1 STALL посадить | 300 на 90° — каретка едет вниз LYS DOWN YL0 YL1 YSTALL на car (каретка оси X) |
| Turntable — головка | — посадить | ноги — в уроке 2 на car (каретка оси Y) |
| Pen — чёрное | цвет (Alt/⌘+щелчок) DOWN посадить | чёрное LPEN на d0 (отверстие d0 стола) |
| Paper (бумага) | размер (ручка в углу) место | 460 × 360 справа от машины, где свободно |
Шаг 3. Пульт
Clock — щелчками по корпусу до 60Hz. Надпись на кнопке — двойной клик по ней.
| Деталь | Нога / действие | Метка / куда |
|---|---|---|
| Clock 60Hz | выход | CKL |
| Button (кнопка) «LEFT» | выход | LEFT |
| Button (кнопка) «RIGHT» | выход | RIGHT |
| Button (кнопка) «UP» | выход | UP |
| Button (кнопка) «DOWN» | выход | DOWN |
| Button (кнопка) «PEN UP/DOWN» | выход | PENB |
Шаг 4. Микросхемы
| Деталь | Нога / действие | Метка / куда |
|---|---|---|
| TI CD4071B | A B J C D K E F L G H | LEFT RIGHT LR UP DOWN UD XSTALL YSTALL ERROR GND GND |
| TI CD4081B | A B C D E F L G H M | GND GND GND GND CKL LR LXS CKL UD LYS |
| TI CD4013B | S1 R1 D1 CL1 Q1 QN1 S2 R2 D2 CL2 | GND RST NLPEN PENB LPEN NLPEN GND GND GND GND |
Не подключать: M у CD4071B; J, K у CD4081B; Q2, QN2 у CD4013B.
Шаг 5. Лампы
Цвет лампы — Alt/⌘+щелчок по ней.
| Деталь | Нога / действие | Метка / куда |
|---|---|---|
| LED, зелёная | вход | VCC |
| LED, красная | вход | ERROR |
1.6. Проверка
- Режим Turbo, включи питание. Машина загружается, как обычно; плоттер работает рядом с ней. Горит зелёная
POWER. - Держи RIGHT — каретка X едет вправо, 60 шагов в секунду; LEFT — обратно. DOWN и UP — каретка Y.
- PEN UP/DOWN — перо опускается; стрелками веди его по бумаге — рисует чёрным. Ещё раз — поднимается.
- Доведи каретку до упора и держи стрелку — горит красная
ERROR: мотор шагает, а каретка стоит. Лампа горит, пока не отъедешь стрелкой в другую сторону.
| Нажата | Плоттер |
|---|---|
| RIGHT / LEFT | каретка X вправо / влево, 60 шаг/с |
| DOWN / UP | каретка Y вниз / вверх |
| PEN UP/DOWN | перо опускается / поднимается |
| стрелка у упора | горит ERROR |
Вставка урока 1 (Cmd+I)
Вставлять в машину Apple ][ (кнопка DEMO). Ставит всё: механику, бумагу, пульт, микросхемы и лампы.
# Урок 1 — плоттер и пульт: оси X и Y, головка с чёрным пером, стрелки и PEN UP/DOWN (без компьютера).# Вставка: Cmd+I в машину Apple ][ (кнопка DEMO). Питание VCC/GND и сброс RST — машины.# ---------- механика: ось X, ось Y на её каретке, головка на каретке Y, чёрное перо, бумага ----------maxis ax{len=400}(STEP=LXS, DIR=RIGHT, L0=XL0, L1=XL1, STALL=XSTALL)maxis ay{len=300, ang=90}(STEP=LYS, DIR=DOWN, L0=YL0, L1=YL1, STALL=YSTALL)mount(ay, ax.car)mtable ttmount(tt, ay.car)mpen k0{color=black}(DOWN=LPEN)mount(k0, tt.d0)mpaper p{w=460, h=360}at(p, 0, 0)at(ax, p, -41, -138)# ---------- пульт: генератор шагов, стрелки, PEN UP/DOWN ----------clock{rt=60}(CKL)button{label="LEFT"}(LEFT)button{label="RIGHT"}(RIGHT)button{label="UP"}(UP)button{label="DOWN"}(DOWN)button{label="PEN UP/DOWN"}(PENB)# ---------- CD4071: нажата стрелка по X, по Y; ERROR — каретка упёрлась ----------"TI CD4071B"(A=LEFT, B=RIGHT, J=LR, C=UP, D=DOWN, K=UD, E=XSTALL, F=YSTALL, L=ERROR, G=GND, H=GND)# ---------- CD4081: шаги — такт 60 Гц, пока нажата стрелка ----------"TI CD4081B"(A=GND, B=GND, C=GND, D=GND, E=CKL, F=LR, L=LXS, G=CKL, H=UD, M=LYS)# ---------- CD4013: PEN UP/DOWN — триггер-переключатель ----------"TI CD4013B"(S1=GND, R1=RST, D1=NLPEN, CL1=PENB, Q1=LPEN, QN1=NLPEN, S2=GND, R2=GND, D2=GND, CL2=GND)# ---------- лампы POWER и ERROR ----------led{color=green}(VCC)led{color=red}(ERROR)Не получается? Что-то не работает →