9강 / 20강
자석 분리 — 장치 계층은 ‘90초’ 를 안다
원점복귀 · 리밋 · 타임아웃
자석은 드라이버로 보면 스테퍼 한 축일 뿐입니다(8강). 그런데 공정으로 보면 “비드를 붙잡아라” 라는 한 마디입니다. 그 사이를 메우는 것이 장치 계층입니다.
| 계층 | 아는 것 |
|---|---|
| 드라이버 | “4000 스텝, 800 sps 로 움직여라” |
| 장치 | “붙잡아라” = 원점 확인 → 자석 접근 → 90초 기다림 → 상태 보고 |
| 순서 | “정제 단계를 돌려라” |
/mech 12강에서 본 90초가 여기 들어옵니다. 그 숫자를 아는 것은
드라이버가 아니라 장치 계층입니다.
장치 계층의 일은 기다리는 법과 포기하는 법을 아는 것입니다.
Python
브라우저에서 실행
모든 동작에 ‘최대 시간’ 을 붙인다
자석뿐 아니라 모든 동작에 상한이 있어야 합니다. 이것이 19강의 진행 워치독으로 이어집니다.
- step: capture_beads
device: magnet
params: {dwell_s: 90}
max_duration_s: 150 # 90초 + 접근 + 여유. 넘으면 결함이다
“90초 기다린다” 와 “150초 안에 끝나야 한다” 는 다른 말입니다. 앞은 계획이고 뒤는 감시입니다. 둘 다 있어야 합니다.
🤔 확인 문제
“90초 기다린다” 와 “150초 안에 끝나야 한다” 의 차이는?
해설 계획만 있으면 “영원히 기다리는” 상태가 생깁니다. 상한이 있어야 “안 끝났다” 를 결함으로 인식합니다(→ 19강).
🤔 확인 문제
자석이 전원 상실 시 물러나 있게 하려면?
해설 전원이 나가면 코드도 멈춥니다. 소프트웨어가 보장할 수 없는 것은 기구로 보장해야 합니다 — 19강의 “에너지가 사라지면 안전한 상태로” 입니다.