# How Code Makes Hardware Move

By Yao Jaa

Topic: Computing, AI &amp; Electronics

[Open the interactive Jig](https://ask.jig.com/j/ObZGWkBNyhGy)

## Guide

### 1. 一行代码，一次挥手

屏幕上的程序写着“把舵臂转到某个角度”，桌上的小舵机就真的转了过去。可是代码只是文字，没有一点力气。它是怎样让塑料和金属动起来的？我们沿着这条路一步步看。

舵机：一种能转到指定角度并停住的小电机组件，常用在机器人和遥控模型里。

### 2. 代码先变成数字

芯片不认识文字。电脑先把我们写的程序翻译成一串由 0 和 1 组成的数字指令，叫“机器码”，再通过数据线把它存进控制板上那块黑色的芯片里。

蓝色光点代表正在传进芯片的程序数据。

### 3. 芯片一拍一拍地执行

芯片旁边银色的晶振像一个节拍器，每秒敲 1600 万下。每敲一下，芯片就完成一小步：读一条指令、算一个数，或者拨动一个开关。一步很简单，但快得惊人。

1600 万拍每秒，相当于每 1 毫秒就有 16000 拍。

### 4. 指令只会做一件事：开或关

程序的指令最终会把芯片的某个引脚（伸出来的金属脚）设成“高”或“低”：高大约是 5 伏，低是 0 伏。代码不能直接推动东西，它能改变的只是电压。试着拨动开关。

电压可以想成电的“推力”：5 伏推得动电流，0 伏就没有推力。

### 5. 脉冲的宽度就是角度

舵机每 20 毫秒收到一个脉冲。高电平持续 1 毫秒表示 0°，1\.5 毫秒表示 90°，2 毫秒表示 180°。拖动滑块，看示波器上的脉冲变宽或变窄，舵臂跟着转到新角度。

示波器是能把电压变化画成曲线的仪器。决定角度的是脉冲有多宽，不是有多快。

### 6. 小信号指挥大力气

一个引脚只能安全地输出大约 20 毫安电流，只够点亮一个小灯，带不动电机。所以电池通过红线给舵机供电，橙色信号线只负责“下命令”。舵机里的驱动电路像电子开关，用小信号去开关大电流。

黄绿色光点是信号，橙红色光流是电池送来的电力。

### 7. 打开舵机看一看

外壳里有一个小电机、一串减速齿轮、一个电位器和一块小电路板。电机转得飞快但力气小，齿轮一级一级减速，把快速旋转变成又慢又有力的转动。

电位器是一种角度传感器：它跟着输出轴一起转，随时报告舵臂转到了哪里。

### 8. 比较、纠正、停下

电路板不停地比较“想要的角度”（脉冲告诉它的，黄绿色细杆）和“实际的角度”（电位器告诉它的，白色舵臂）。差得多，电机就转；差距变小就放慢；两者相等就停住。这就叫反馈。

只要脉冲还在送来，舵机就会一直“守住”这个角度。

### 9. 从一行代码到一个动作

写代码，翻译成数字，芯片按节拍改变引脚电压，脉冲宽度说出目标，驱动电路放出电池的力气，电机和齿轮转动，传感器再报告回来。机器人、洗衣机和电梯都用同样的思路让硬件动起来。
