上篇说接圈的时候留了个尾巴:接圈加到焦距的五分之一以上,我就开始考虑换微距。这篇接着聊倍率上去以后的事。
现场挺常见的一种需求:连接器针脚端面、芯片引脚、FPC 金手指这种小东西,视野就几毫米到十几毫米,要看几微米到十几微米的缺陷。很多人第一反应是拿手上的 25 mm 镜头加一摞接圈凑,凑出来图是能看,但亮度不够、景深薄得像纸,产品稍微翘一点就糊。问题不在镜头好坏,而是倍率上去以后,好几个前面习惯用的近似都不成立了。
倍率过了 0.3,哪些式子要改
先说视野比例法。远距离拍的时候,大家习惯用f≈β⋅WDf \approx \beta \cdot WDf≈β⋅WD这种比例关系估焦距,背后的前提是物距远大于像距。薄透镜的精确关系是:
u=f(1+1β),f=β u1+β u = f\left(1+\frac{1}{\beta}\right),\qquad f = \frac{\beta\,u}{1+\beta}u=f(1+β1),f=1+ββu
说白了,比例法估出来的焦距会偏大(1+β)(1+\beta)(1+β)倍。倍率 0.07 的时候只差 7%,没人在意;到 0.3 差 30%;到 1 倍直接差一倍。1 倍放大、25 mm 镜头,物距像距都是 50 mm,物到像总共 100 mm,这时候拿比例法去算,会得出要 50 mm 镜头的结论,完全不对。
第二个是亮度。光圈那篇讲过工作 F 数:
Fw=(1+β) F F_w = (1+\beta)\,FFw=(1+β)F
像面照度跟Fw2F_w^2Fw2成反比。1 倍放大的时候FwF_wFw是刻度值的两倍,亮度只剩 25%,等于平白少了两档光。2 倍放大剩 11%,三档多。所以小视野项目光源经常要往大了配,曝光时间也比你预想的长,做飞拍的话这一点要提前算进去。顺带说一句,有些微距镜头前后结构不对称,严格的式子里还要带一个光瞳放大率,手册上写了工作 F 数的话直接用手册的,别自己硬套。
第三个就是景深。还是那个近似式:
DOF≈2 Fw cβ2 \mathrm{DOF} \approx \frac{2\,F_w\,c}{\beta^2}DOF≈β22Fwc
分母是β2\beta^2β2,分子里的FwF_wFw又跟着(1+β)(1+\beta)(1+β)涨,两头一夹,倍率上去景深是断崖式往下掉的。上面那张图就是 F4、容许弥散圆取两个像元算出来的,倍率 0.07 的时候景深 11.9 mm,0.21 倍 1.5 mm,到 1 倍只剩 0.11 mm。
例题:1 倍放大看 8 mm 视野
还是那台 2448×2048、3.45 µm 的相机,靶面 8.45×7.07 mm。用 1 倍镜头,视野就是 8.45×7.07 mm,物方一个像素 3.45 µm,看 10 µm 左右的缺陷有 3 个像素,够用。
光圈开到 F4,Fw=8F_w=8Fw=8,景深:
DOF≈2×8×0.006912≈0.11 mm \mathrm{DOF} \approx \frac{2\times 8\times 0.0069}{1^2} \approx 0.11\ \mathrm{mm}DOF≈122×8×0.0069≈0.11mm
再看衍射。艾里斑2.44λFw2.44\lambda F_w2.44λFw,绿光 0.55 µm 算出来 10.7 µm,已经比两个像元的 6.9 µm 大了。也就是说 1 倍放大的时候,刻度上 F2.6 左右就碰到衍射的线了,F4 已经在吃衍射的亏,你再往小了关,换来的景深是用清晰度买的。
现在假设产品高度方向有 0.3 mm 的波动,用衍射那篇的最佳光圈式子:
Fw,opt=βΔ2.44 λ=1×3002.44×0.55≈15.0 F_{w,\mathrm{opt}} = \beta\sqrt{\frac{\Delta}{2.44\,\lambda}} = 1\times\sqrt{\frac{300}{2.44\times 0.55}} \approx 15.0Fw,opt=β2.44λΔ=1×2.44×0.55300≈15.0
刻度大概 F7.5,这时候离焦加衍射合起来的光斑是 28 µm,8 个多像素。看 10 µm 的缺陷基本没戏。
这里有个挺反直觉的结论,我也是算了好几个项目才注意到的:把那个最小光斑折回物方,结果是2×2.44λΔ\sqrt{2\times 2.44\lambda\Delta}2×2.44λΔ,跟倍率没关系。0.3 mm 的高度波动,物方最好也就糊到 28 µm 左右,用 0.5 倍还是 1 倍都一样。想看清比这更小的东西,只能把Δ\DeltaΔ压下去,光换镜头解决不了。
脚本放这,换自己的参数跑:
importmath p,lam=3.45,0.55# 像元 µm、波长 µmbeta,F=1.0,4.0# 倍率、光圈刻度Fw=(1+beta)*F c=2*pprint(f"Fw={Fw:.1f},景深≈{2*Fw*c/beta**2/1000:.3f}mm,艾里斑{2.44*lam*Fw:.1f}µm,亮度剩{(1+beta)**-2:.0%}")forDin[100,200,300]:# 高度波动 µmFo=beta*math.sqrt(D/(2.44*lam))b=math.hypot(beta**2*D/Fo,2.44*lam*Fo)print(f"Δ={D}µm:最佳 Fw≈{Fo:.1f}(刻度 F{Fo/(1+beta):.1f}),光斑{b:.1f}µm ≈{b/p:.1f}px,物方{b/beta:.1f}µm")微距、远心还是显微物镜
这三类在小视野里都会碰到,我自己大致这么分。
工业上说的微距镜头,很多其实是固定倍率的,0.5×、1×、2× 这种,工作距离也是定死的,买来装上就是那个视野,调焦靠移动相机。好处是专门为近距离优化过,边缘比接圈凑出来的干净得多,价格也还能接受。做外观、看字符、看焊点,我一般先考虑它。
远心镜头前面单独写过,小视野做测量还是首选,倍率不随物距变,高度有点波动尺寸也不跳。代价是贵、个头大,而且远心也不会多给你景深,上面算的那套照样成立。
显微物镜是再往上走,5×、10× 这种。注意它标的是物方数值孔径 NA,换成像方工作 F 数大约是Fw≈β/(2 NA)F_w \approx \beta/(2\,\mathrm{NA})Fw≈β/(2NA)。比如 5× NA0.14,FwF_wFw大概 17.9,景深按同样的式子算下来就 10 µm 左右,视野 1.7×1.4 mm。这种基本只能拿来看平面上的东西,而且很多是无限远校正的,要配管镜,别以为拧上相机就能用。
景深不够时的土办法
真碰上景深不够,先别急着改光学,看看能不能让产品高度别那么乱。治具做个定位面、真空吸平、限位块压一下,把 0.3 mm 压到 0.1 mm,比换任何镜头都管用,0.1 mm 时物方光斑能降到 16 µm 左右。
压不下来的,可以加一个 Z 轴或者液体镜头做多焦面拍摄,拍三五张做景深合成,代价是节拍。还有一种是先用测距或者粗定位拿到高度,再动 Z 轴拍一张,比盲拍一摞要快。
再说个现场细节:高倍率的时候机构稍微有点振动就很明显,1 倍放大下 10 µm 的振幅就是 3 个像素。气缸一动、旁边冲床一响,图就虚了,有时候大家查半天光学,最后是相机支架太单薄。我现在高倍率的工位,支架都要求做厚一点,曝光前留一点延时让机构稳住。
下篇进入光源,先从明场、暗场和背光这三种最基本的照明说起。