PySpectrometer2|给灯光拍一张彩虹指纹

用树莓派相机,把不同灯的光拆成可保存的光谱

对着普通灯光观察光谱,比较LED与荧光灯的不同,再保存PNG和CSV。采用原作者迷你光路:口袋分光镜、M12相机和12mm镜头。需要固定光路、识别谱线和标定,适合愿意调试的爱好者;镜头现售与外壳配合仍需采购前确认。

alan000

参数信息

最低标定点
3 个

复现文档

选定迷你光路并核对采购

本页使用Pocket Spectroscope、M12相机和12mm镜头。图片中的屏幕不是必买项;先核实历史镜头是否仍可买,再下单整套。外壳和螺丝长度需要先试配。

![minispect.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/2c2a460fb1e04b6c838ed51e7ac43451.png)

![guide-1.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/5c374ad2c09a49d4a9dc1c69715f2610.jpg)

相机断电装镜头并接CSI

卸下原相机镜头后装12mm M12镜头,轻旋,不能让后端碰传感器。树莓派断电插CSI线,扣紧后再通电。先确认能看到清晰预览,排除相机接口问题。

![parts.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/a6a0107fdcec49199ce129b83a7970fa.png)

![pi.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/39fad4354dbc422191b0e13f87be2c52.png)

让相机看进分光镜

调节到相机镜头朝向分光镜出光口,微调焦点和相对角度,使彩色光谱横向铺开:蓝紫在左,红色在右。使用普通室内灯,不直接指向太阳或激光。

![minispect.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/2c2a460fb1e04b6c838ed51e7ac43451.png)

![guide-1.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/5c374ad2c09a49d4a9dc1c69715f2610.jpg)

固定光路后再开始标定

打印外壳basic的主体、支撑和盖,各1件,用3颗M3螺丝与3螺母试装。螺丝能可靠啮合且不顶碰相机才合格;不匹配则修改尺寸。镜头或分光镜移动后,原标定必须重做。

![guide-2.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/e39cc087e8024e228f98d51380c978f2.jpg)

安装第二代程序和依赖

原README面向Bullseye与Picamera2。安装python3-opencv并确认Python3能导入cv2、numpy和picamera2;[把主程序与specFunctions.py](http://把主程序与specFunctions.py)放在同一src目录。先用libcamera-hello -t 0检查预览,再运行python3 [PySpectrometer2-Picam2-v1.0.py](http://PySpectrometer2-Picam2-v1.0.py)。不要套用第一代raspistill/Tk流程。

![guide-2.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/e39cc087e8024e228f98d51380c978f2.jpg)

让峰值清楚但不饱和

选择完整正常工作的荧光灯,调整距离、调焦与增益,让谱线尖峰可区分且没有削顶。不能把亮度最大当作效果最好,也不要把不同灯的强度直接当绝对辐射功率比较。

![calibrated.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/94b013ed740c49188c11e637a062d79e.png)

选至少3条已知谱线

按h保持峰值,再按p进入像素取点。按从左到右的顺序选择已确认的谱线,至少3条,建议4—6条;记录每条的依据。NIST表的Å需要换算成nm,不能照抄数字。

![pointsadded.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/7541aaddd26b40ec852f189866ba3aa5.png)

输入波长并独立检查

按c,切换终端,逐点输入对应nm数值。3点做二阶,4点以上做三阶拟合。检查一条未参与标定的可辨谱线;拟合R²很高也不等于绝对误差很小,误认峰就清点重做。

![console.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/af557b23486e4555aac98b3ccff8d719.png)

![calibrated.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/94b013ed740c49188c11e637a062d79e.png)

保存彩虹指纹

按s保存PNG与CSV,备份caldata.txt。比较LED和荧光灯,记录灯型号、相机增益、日期和标定源;使用--waterfall可观察随时间变化。不要把未经响应校正的数据称为绝对光谱功率。

![calibrated.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/94b013ed740c49188c11e637a062d79e.png)

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/a7ee646255124358bfd01d72781e556e.jpg)

给别人看可复现的结果

提交成品照片、原始CSV、标定点与独立检验误差。头图的mini便携成品属于作者另一种屏幕集成配置,本页桌面路线不含该屏。本页没有实机测试,不承诺1nm精度。

![mini.png](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/3057a4e5c28840118096f97c4a76b14f.png)

![guide-3.jpg](https://orecord-files.oss-cn-zhangjiakou.aliyuncs.com/sbp/projects/1d8e0b5c-ffd8-4e6c-82bd-b36306a9a298/files/image/a7ee646255124358bfd01d72781e556e.jpg)