简介面向电子工程、自动化与机器人入门学习者的山东大学崇新学堂EECSdesignlab7实验报告围绕为机器人构建可循光并转动颈部追踪光源的头部任务系统整理电路原理、仿真验证与硬件搭建要点。文档从电路原型工具、万用表与电源箱的使用讲起延伸到分压器、电位器和电路仿真工具的操作再结合光敏电阻组成的光感电路说明机器人“眼睛”的信号采集与转颈追踪思路并给出机械结构与电路联调的实验记录。压缩包仅含1个docx文档约578KB内容集中、便于按实验环节查阅。已有98人学习适合用作课程实验预习、过程复盘和报告撰写参考也可帮助读者建立从基础测量、电路仿真到光感系统实现的完整认识并训练基本的动手能力与工程思维。1. 一只会追光的机器人头这套 EECS design lab 真正要交的是什么如果你拿到的 EECS 入门实验题目是「让机器人头部用两只眼睛找到光再转过去追它」第一反应多半是去写控制代码。但真正卡住人的往往不是代码而是那只眼睛在环境光下只输出 3.68V、灯一照变成 5.93V中间只有 2.25V 的摆幅连个像样的阈值都划不出来。这套 design lab 的交付物其实是一条从电路仿真到实物标定的完整链路先在 CMax 里把分压器、电位器、光敏电阻电路跑通再在原型板上用万用表逐个节点核对最后把左右两路电压送进机器人的模拟输入用旋转扫描出来的数据反推转向策略。它适合正在做电路与传感方向课程设计、需要一份能照着复现的完整流程的人也适合带实验的助教拿去当检查清单。2. 实验链路与工具链从 CMax 仿真到原型板的四段推进这套实验看着是「搭个电路让机器人追光」实际上四段之间的产物是层层消费的关系前一段的读数不准后一段的曲线就没有解释价值。我一般会先把整条链路的边界画清楚再去动烙铁和面包板否则很容易出现「仿真很漂亮、实物一塌糊涂但不知道从哪一段开始错的」这种局面。2.1 供电基准与原型板接线先把 10V 固定下来第一步不是画电路是建立供电基准。电源面板上标着 15V 和 GND 的两个端子用鳄鱼夹引到独立原型板的两条电源轨上。鳄鱼夹和原型板之间用短于 1 英寸的硬导线过渡导线拉太长会引入接触电阻后面测 100 Ω 负载电压时误差就藏在这段线里。电源那一头不用拧螺丝直接把夹子的一个「颚」插进端子中心孔就行反复拧端子容易把塑料件拧裂。万用表打到直流电压档表笔同样经短导线接到两条电源轨开机后调正电源旋钮把读数压到 10.0V。这个数值不是随便定的后面所有分压公式的分母都以它为基准包括光敏电阻电路里期望的 3.68V 和 5.93V。电源飘到 10.3V所有读数按 3% 等比偏移你会在两小时后花大量时间去找一个「仿真 5.93V、实测 6.1V」的伪问题。注意调完电压后确认旋钮已经锁住每换一次板子布局就复测一次轨电压。这一步看着多余但它是后面所有对照表能不能成立的前提。2.2 CMax 仿真先拿一个已知答案的样例校准工具CMax 的启动方式有两种在带图形界面的环境里打开 CMax.py 直接 Run Module在 Linux 或 macOS 上进入 CMax.py 所在目录执行python CMax.py。启动之后先按 CtrlA弹出窗口会显示版本号 1.5.2。看版本这一步不要跳元件库和探针的默认行为在版本之间会有差异拿旧界面对照新菜单会浪费很多时间。然后 File Open 打开 mystery.cmax照着窗口里的电路把原理图画一遍把两个探针分别夹在接地轨和 J42 节点上再选 Sim Run Simulation弹窗会给出这两个节点之间的电压。手算很简单两个 1 kΩ 电阻串联跨在 10V 上中点对地就是 5V。仿真给出的也是 5V两边对上。这一步的价值不在算对 5V而在于你先在一个有标准答案的样例上验证了工具本身。CMax 对初学者就是一个黑匣子你不确认它算得对不对后面它吐出任何数字你都只有「信」和「不信」两个选项没有第三个选项叫「知道为什么」。2.3 四段推进与交付物边界把整条链路切成四段之后每一段都有明确的通过标准出了问题能立刻定位到段而不是全盘重来。下面这张表是我带这类实验时贴在墙上的版本阶段主要输入产出通过标准A 工具链校准电源、万用表、CMax 1.5.210.0V 轨电压、mystery.cmax 的 5V 读数手算与仿真差值为 0B 分压与电位器1 kΩ / 100 Ω / 10 kΩ 电阻、5 kΩ 电位器级联分压实测值、电位器带载对照表实测与理论偏差小于 5%C 光传感设计与布局两只光敏电阻、两个 8 针连接器VL、VR、VL−VR 三条仿真曲线曲线随光源横移单调变化D 实物与数据采集机器人、soar、eyeDataBrain三条实测曲线、一套转向策略实测曲线与仿真趋势一致A 段和 B 段是纯电路失败了可以重来代价是几分钟。C 段和 D 段牵扯机械安装和机器人通信失败一次要重新拆装头部代价是半小时。所以合理的顺序是把所有电路问题在 A、B 段解决干净C、D 段只留机械和软件的变量。3. 分压器与电位器级联失效和负载效应的两笔定量账分压器是这套实验里唯一一个「公式一行、坑一大堆」的模块。课本上写 Vo Vin × R2/(R1 R2)看起来人畜无害但只要你想把两个分压器串起来用或者把电位器当成可调电压源去带负载读数立刻就不听话了。这两件事背后的原因其实是同一个你把一个有内阻的节点当成了理想电压源。3.1 二分压级联为什么拿不到四分之一先用 10V 供电、两个 1 kΩ 电阻做一级分压中点对地是 5V这没问题。直觉上再串一组 1 kΩ 和 1 kΩ就应该得到 2.5V。实际搭出来量一下是 2.0V。差的那 0.5V 不是万用表坏是第二级「看见」的不只是 5V还看见了第一级的输出阻抗。把第一级从中间节点往左看等效成一个 5V 电压源串联一个电阻这个电阻就是两个 1 kΩ 并联的结果500 Ω。第二级的两个 1 kΩ 串起来挂在中间节点和地之间输入阻抗是 2 kΩ。500 Ω 对上 2 kΩ只差 4 倍远谈不上「远大于」于是第二级一边取电压一边把第一级的中点往下拽。# 两级二分压级联的真实输出验证「不能简单乘 1/4」 V_IN 10.0 R1 R2 R3 R4 1_000.0 # 第一级R1 在上、R2 在下取中间节点电压 v_mid V_IN * R2 / (R1 R2) # 从中间节点往左看的戴维南等效内阻 R1 与 R2 并联 r_th R1 * R2 / (R1 R2) # 第二级 R3 串 R4 接在中间节点与地之间注意 r_th 要一起参与分压 v_out v_mid * R4 / (r_th R3 R4) print(f第一级中点 {v_mid:.2f} V输出阻抗 {r_th:.0f} Ω级联后 {v_out:.2f} V) # 输出第一级中点 5.00 V输出阻抗 500 Ω级联后 2.00 V运行结果是 5.00V、500Ω、2.00V。理想情况的四分之一应该是 2.50V实际偏低 20%偏差全部来自那 500 Ω 的输出阻抗。这个数字很重要如果老师问「级联能不能得到四分之一」答案是不能而且你能报出偏离多少。想让级联近似成立第二级的输入阻抗至少要到第一级输出阻抗的十倍以上也就是 5 kΩ 起步、50 kΩ 更稳。把电阻全换成 100 kΩ 当然可以但阻值一大万用表和板子的漏电流就开始说话。工程上的标准答案是加一级缓冲用运放做电压跟随器把输出阻抗压到接近零这就是后面课程里运放登场的前置伏笔。3.2 电位器的 α 与负载电阻的拉扯电位器是三端器件两端分别接 10V 和地中间抽头对地的电压由轴角决定。设抽头位置比例为 α那么抽头到地的电阻是 α·R_pot抽头到电源端的电阻是 (1−α)·R_pot空载时输出就是 10 × α。手上这只蓝色电位器标称 5 kΩ把抽头调到对地 2.0V对应的 α 就是 0.2此时下半段 1 kΩ、上半段 4 kΩ。麻烦出现在带负载的时候。保持 α 0.2 不动在抽头与地之间挂一个 100 Ω 电阻量出来的电压只有 0.21V而不是 2.0V。换成一个 10 kΩ 电阻读数变成 1.81V掉得不多但也没回到 2.0V。这两个数字都能用手算复现关键在于先算戴维南等效内阻1 kΩ 与 4 kΩ 并联是 800 Ω。# 电位器带载后的实际输出先求戴维南等效再算分压 V_OPEN 2.0 # 空载时调到的抽头电压 R_LOW 1_000.0 # 抽头到地α × 5kα 0.2 R_HIGH 4_000.0 # 抽头到电源端(1-α) × 5k r_th R_LOW * R_HIGH / (R_LOW R_HIGH) # 输出阻抗 800 Ω for r_load in (100.0, 10_000.0): v V_OPEN * r_load / (r_th r_load) print(f负载 {r_load:6.0f} Ω - 理论 {v:.3f} V) # 负载 100 Ω - 理论 0.222 V # 负载 10000 Ω - 理论 1.852 V理论值和实测的对照如下偏差在 5% 以内主要来自电位器实际阻值公差和万用表两位小数精度负载情况理论输出实测输出相对偏差空载2.00 V2.00 V0接 100 Ω0.22 V0.21 V约 -4.5%接 10 kΩ1.85 V1.81 V约 -2.2%100 Ω 那行的塌陷幅度值得多看两眼负载阻值只有输出阻抗的八分之一等于把抽头直接短路掉大半。这是电位器最经典的翻车场景——空载调得好好的一接负载就废。经验规则是负载阻值至少要比输出阻抗大一个数量级读数才具备参考价值。后面设计光敏电阻电路时这条规则会反复用到。4. 光敏电阻眼睛电路从阻值表到 3V 摆幅的选型、布局与追光策略前面两章都是单点电路验证的是你对手算和仿真的信任度。从这一章开始电路、机械、软件三条线要同时推进光敏电阻装在头部电机轴上电路板通过两个 8 针连接器跟机器人对接采集程序又要在旋转过程中同步记录两路电压。任何一个环节错位最后那三条曲线都画不出来。4.1 两轮光照阻值实测先承认器件的一致性误差拿到头部之后第一件事不是焊电路是量电阻。两只光敏电阻已经装在电机轴的支架上大致成 90 度夹角。把一个 8 针连接器插进空的原型板当转接座万用表打电阻档分别在三种光照条件下量左右两只的阻值光照条件左眼阻值右眼阻值环境光3.0 kΩ3.3 kΩ灯距近约 0.3 m1.2 kΩ1.17 kΩ灯距远约 0.9 m1.97 kΩ2.03 kΩ数据本身已经说明了光敏电阻的工作方式光越强阻值越小。但更值得注意的是两只管子之间的差异——环境光下差了 0.3 kΩ接近 10%。这不是接错线是器件离散性同型号同批次也避免不了。这个 10% 会一路传到最后的转向策略里。假设分压电阻取 1.75 kΩ环境光下左眼输出 3.68V、右眼 3.46V光是对称环境下两路就有 0.22V 的固有偏差。如果追光策略里的死区阈值设得比 0.22V 还小机器人就会在灯正前方左右横跳永远停不下来。所以死区阈值的下限不是拍脑袋定的是从这张阻值表推出来的。4.2 定值电阻选型3V 指标能不能靠纯电阻做到题目要求是用一只光敏电阻加若干固定电阻在 10V 供电下做出一个「亮时电压高、暗时电压低」的输出并且开关灯时输出变化至少 3V。拓扑很直接——光敏电阻接上端、固定电阻接下端取固定电阻上的压降Vo 10 × R_f / (R_photo R_f)亮的时候 R_photo 小分母小Vo 大暗的时候反过来。方向对了剩下的事就是选 R_f。很多人凭感觉试几个值就交了其实这一步可以直接扫描出上限# 扫描固定电阻取值看「开关灯」的输出摆幅最大能到多少 V_SUPPLY 10.0 R_BRIGHT 1.2e3 # 灯在近处正对时的阻值 R_DARK 3.0e3 # 环境光下的阻值 def v_out(r_photo, r_fixed): 光敏电阻在上端、固定电阻在下端取固定电阻上的压降 return V_SUPPLY * r_fixed / (r_photo r_fixed) best max( ((r, v_out(R_BRIGHT, r) - v_out(R_DARK, r)) for r in range(200, 12001, 50)), keylambda item: item[1], ) print(f最优固定电阻 {best[0]:.0f} Ω摆幅 {best[1]:.2f} V) # 输出最优固定电阻 1900 Ω摆幅 2.25 V扫描结果是最优固定电阻约 1.9 kΩ解析解是 √(1.2k × 3.0k) ≈ 1.9 kΩ此时暗态 3.88V、亮态 6.13V摆幅 2.25V。这个 2.25V 不是「还没调好」而是无源分压的结构性上限——分母里两个电阻相加光敏电阻的变化量被固定电阻稀释掉了无论怎么选都突破不了。实际实验里取的是 1.75 kΩ 附近对应下面这组期望值光照条件左眼 R左眼 Vo右眼 R右眼 Vo环境光3.0 kΩ3.68 V3.3 kΩ3.46 V灯距近1.2 kΩ5.93 V1.17 kΩ5.99 V灯距远1.97 kΩ4.70 V2.03 kΩ4.63 V手算验证一行就够左眼近距时 10 × 1.75/(1.2 1.75) 5.93V和表里一致。左眼摆幅 5.93 − 3.68 2.25V右眼 5.99 − 3.46 2.53V都够不到 3V。结论必须如实写进报告纯电阻网络做不到 3V 指标这是数学上限而不是调试失误。想达标只有两条路——加一级同相放大增益至少 3/2.25 ≈ 1.34或者用惠斯通电桥配差分放大。这就是这个 lab 最后为什么要把运放引出来的原因把「我做不到」变成「我知道为什么做不到、以及下一步该怎么补」答辩时是完全不同的两种评价。4.3 CMax 布局与引脚映射两个连接器不要混设计定下来之后先在 CMax 里做布局。布局里要加两个连接器Robot Connector 接收机器人过来的黄色电缆提供电源和地Head Connector 通过红色电缆接头部把两只光敏电阻引到板子上。规矩很硬电路板的电源必须从 Robot Connector 取不许另接一台电源否则仿真和实物的供电拓扑就分家了。引脚分配是这套实验最容易串的地方先列表再接线连接器引脚信号说明机器人连接器2本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?