分类目录归档:电子技术

创客音乐频谱彩灯

对已有的DIY项目进行升级

老早我就用面包板和电子元器件搭建出了一个最简化版本的音乐频谱彩灯,使用LED 代替传统彩色风琴使用的白炽灯。

即便电路如此简单,此电路也能正常工作。然而我觉得这个电路方案应该进一步完善。所以我翻看了原有的电路原理图,并分析改进了。

会有什么改进呢?让我们一起来看看视频。

第一步:需求与电路方案

Picture of The Problems & the Solutions

问题

它存在几个问题。电路中晶体管的偏置电压与供电电压有关,当然也与器件有关—换句话说,如果电压过高或过低,或者晶体管特性有差异,那么电路也许就不能正常工作。

再者,滤波器的性能参数也不是特别好——几个通频带之间有重合,通频带以外的频率信号衰减不够。

解决方案

首先,我将初始增益阶段从单晶体管设计改为双晶体管设计。它是一个基本的A类共发射极放大器,后面接一个射极跟随器。它们是直接耦合的,以此获得最佳性能,以及减少元器件数量(对于我来说,用最少的元件来设计电路是很重要的)。添加射极跟随器使得低输出阻抗的滤波器也能良好工作。偏置电路也被修改为更少的元件和电压依赖。

其次,对滤波器进行改进,以获得更好的分频效果。滤波器的输入和输出阻抗匹配得更好,从而达到更好的效果。

第三,LED的驱动电路被赋予给另一个晶体管。实际上,在最初的设计中,输出缓冲器和LED的驱动是由同一个晶体管担当的。现在,滤波器输出由射极跟随器进行缓冲,然后滤波了的音频信号在进入LED驱动器之前被整流。

这些改进帮助很大。为了获得更好的性能 ,我精心地调整了元件的值,还增加了灵敏度调节控制。

与早期版本相比,有许多额外的部件,但结果是完全值得的。现在LED灯对音乐响应非常好。

第二步:电路

Picture of Circuit
Picture of Circuit
Picture of Circuit

这是电路的原理图,物料清单,以及PCB的布局图,同时给出了滤波器的响应图。请记住,图形更多是定性的,而不是严谨的。

该电路是在许多老式电路的基础上做一些改进。

输入缓冲增益阶段具有低的输出阻抗,这对于后面的筛选阶段非常重要。这个阶段也被设计为给予高增益和最大的输出信号水平。因为过滤器是无源元件,所以会丢失一些信号。(我花了最多时间来设计这个放大阶段,我尝试了很多拓扑和参数。我认为我找到了简单,稳定和性能这三者之间的最佳平衡。与运算放大器不同,用晶体管设计放大器是一种折中的艺术。)

我最初的想法是把射极跟随器当作整流器使用。(Q3,5和7)结合偏置点集(由R8,9等)在点的正下方。LED 驱动器打开手机这个彩色风琴对低音量的音频输入非常敏感,同时消除了这里通常使用的二极管。

物料清单

  • 3x 47 欧姆 – R4,17,20
  • 6x 150 欧姆 – R10,15,16,16b,21,21b
  • 2x 270 欧姆 – R11,11b
  • 1x 470欧姆 – R6
  • 2x 1k 欧姆 – R1,2
  • 2x 4.7k欧姆 – R7,12
  • 4x 10k欧姆 – R3,9,14,19
  • 3x 270k 欧姆 – R8,13,18
  • 1x 1.2M 欧姆 – R5
  • 1x 10k 欧姆 电位器- VR1
  • 1x 4.7nF (0.0047uF) – C9
  • 2x 22nF (0.022uF) – C6,7
  • 1x 0.22uF EC – C3
  • 1x 1uF EC – C4
  • 3x 4.7uF EC – C5,8,10
  • 1x 10 uF EC 16V或 更高 – C2
  • 1x 47uF EC 16V或更高 – C1
  • 8x MPS2222A 或等效 – Q1-8
  • 6x Red LED (推荐超亮型) – D1-6
  • 6x Green LED (推荐超亮型) – D7-12
  • 6x Blue LED (推荐超亮型) – D13-18
  • 1x 3.5mm音频座- CN1
  • 1x 直流电源插座

所有电阻均为1/8W(或更高)碳膜型,精度为5%,小型电容为薄膜型,0.22uF及以上为额定电压为16V及以上的电解型。

部分替换

这类模拟电路往往对零件的值很挑剔,所以不要随便改变电阻阻值等,除非你知道你在做什么。

电阻和电容的类型不是很关键,所以你可以使用任何类型。例如,用陶瓷电容代替薄膜是可以的。

我使用的是MPS2222A 型晶体管,它可以被许多类型规格的通用三极管所代替。我测试的是2N4400, 2N4401, 和2N3904。

Q1比这个电路中的其他晶体管都重要,偏置是hfe在200左右的晶体管调整的。如果你使用不同的晶体管,你可能想要检查Q1集电极的电压——当时用的是12伏的电源电压时,这里的电压应该在4.5到6伏之间。如果它太高或太低,可调整R5或尝试不同的电阻器。

PCB布局
PCB布局是提供给PCB制造商的pdf。这是一个单层设计,所以应该很容易做出自己的。

工具包 和PCBs
这个项目的工具包和pcb都可以在 我的网站上找到。(链接:available at my website.)

第三步;装配

Picture of Assembly
Picture of Assembly

这里有8个晶体管,许多电阻,电容和发光二极管,但组装是非常直接的,因为他们都是插件元件(没有IC芯片)。在某种程度上,彩色风琴三重豪华版||是建立在70年代的电路上。如果你像我一样,你会欣赏所有离散组件设计的现代复古感觉。

我建议先焊接低的元器件,然后再转移到更高的部分。我按照下面的焊接顺序安排了BOM表。

焊接顺序

  • 电阻(弯曲引线) (reference on color code)
    • 3x 47 欧姆(黄, 紫, 黑,金) – R4,17,20
    • 6x 150 欧姆 (棕, 绿,棕,金) – R10,15,16,16b,21,21b
    • 2x 270 欧姆 (红,紫,棕,金) – R11,11b
    • 1x 470 欧姆 (黄,紫,棕,金) – R6
    • 2x 1k 欧姆 (棕,黑,红,金) – R1,2
    • 2x 4.7k 欧姆 (黄,紫,红,金) – R7,12
    • 4x 10k 欧姆 (棕,黑,橙,金) – R3,9,14,19
    • 3x 270k 欧姆 (红,紫,黄,金) – R8,13,18
    • 1x 1.2M 欧姆 (棕,红,绿,金) – R5
  • 1x 3.5mm 立体声插孔 – CN1
  • 电容 (观察电解电容的极性-长引脚插入PCB上带“+”符号的孔内
    • 1x 4.7nF (0.0047uF) 薄膜电容 – C9
    • 2x 22nF (0.022uF) 薄膜电容 – C6,7
    • 1x 0.22uF 电解电容* – C3
    • 1x 1uF 电解电容* – C4
    • 3x 4.7uF 电解电容* – C5,8,10
    • 1x 10 uF 电解电容* – C2
    • 1x 47uF 电解电容r* – C1
  • 晶体管 (极性 – 确保它们的方向与印刷在PCB上的形状一致)
    • 8x MPS2222A 或等效的- Q1-8
  • LED灯 (极性 – 确保它们的方向与印刷在PCB上的形状一致
    • 6x 红LED – D1-6
    • 6x 绿LED – D7-12
    • 6x蓝 LED – D13-18
  • 1x 直流电源插座
  • 1x 10k (50k) 欧姆电位器 – VR1

焊锡松香/助焊剂的注意事项

有些松香/助焊剂是能够导电的。(松香或助焊剂在焊锡丝内,帮助焊料粘附在烙铁头上)彩色风琴的某些部位对松香/助焊剂引起的微小漏电非常敏感。如果没有任何声音信号进来,彩色风琴的LED灯一直亮着,你需要清洁PCB,去除松香/助焊剂。

“无需清洁”型助焊剂不会造成任何问题(顾名思义),但是典型的松香助焊剂会造成大量泄露,可能需要清洗。你可以用酸刷或旧牙刷浸泡外用究竟清晰PCB板的背面,将刷子洗净,再次用酒精浸湿,再擦洗一到两遍,直到所有的松香残渣都消失。在连接电源之前,请确保PCB板完全干燥。

第四步:使用

Picture of Use
Picture of Use
Picture of Use

彩色风琴是设计有12V直流电源运行。不过,在9V电源下也可以正常运行。然而,不建议使用 9V电池作为电源,因为它的电流相对较高(空闲时约为25mA)

最好是连接12V直流稳压电源。如果你想使用典型的墙壁插座,要小心——他们的输出电压比额定电压高得多,有时高达18V,而不是12V。彩色风琴可以安全运行时在15V以内(如果你想使用非调节的交流适配器,尝试一个额定电压为9V的–它们通常产生约13V的电压。)

音频源可以是音频设备的任何“线电平”输出,也可以是计算机声卡和ipod/MP3播放器的耳机输出。如果你想听音乐的同时欣赏彩色风琴,你可能需要一根分频线。

连接彩色风琴到您选择的音频源,并给它播放我选择的有着良好节拍的音乐。根据音量调节电位器(灵敏度水平),以提供最好的效果。

LED灯以一种非常线性的方式对音乐进行反应,就像彩色风琴将声音转换成光一样。

LED发出的光非常亮,您可以使用彩色风琴作为洗墙——将光线投射到墙壁或天花板上,并调暗房间的灯光

你将会发现听音乐是一种新的乐趣。

KiCad视频基础教程

1.Kicad视频基础教程第一部分:印制电路板是如何制造的

在本系列的第一部分中,Shawn讨论了如何制造PCB以及利用KiCad作为设计工具的好处。 KiCad是一个免费的开源平台,非常适合学习如何制作自己的PCB,同时还具有足够强大的功能来完成更复杂的设计工作。

 

2.Kicad视频基础教程第二部分:创建原理图符号

在第二部分中,Shawn提供了在KiCad中创建自定义原理图符号的详细演示。使用555定时器的数据表作为参考,创建Pins,分配Pin标签,并根据他的项目将它们布局。并非每个部件都需要自定义符号创建,并且通过使用Digi-Key的符号和封装库,您可以更快地创建原理图并布局电路板。

 

3.Kicad视频基础教程第三部分:创建原理图

KiCad简介”的第三部分让在Schematic Capture中展示完整的555电路。大多数基本元件都可以在默认的KiCad库中找到。当你遇到一个需要的元件未包含在默认库中时,Digi-Key符号和封装库将为您提供帮助。为此,Shawn展示了下载和安装Digi-Key定制库的方法。

 

4.Kicad视频基础教程第四部分:创建脚本

在KiCad简介的第四部分,Shawn向我们展示了如何创建自己的自定义脚本。 Shawn还提供了有关查找示例脚本的提示。创建脚本与创建符号密切相关

 

5.Kicad视频基础教程第五部分:关联封装并生成网表

KiCad简介的第5部分让Shawn解释了如何将自定义封装与附带的原理图符号相关联。要做到这一点,他必须生成一个网表;告诉KiCad哪个组件终端连接到哪个其他组件终端的文件。

 

6.Kicad视频基础教程第六部分:放置零件并定义轮廓

在Digi-Key的第6部分KiCad系列简介中,Shawn带着pcbnew引导我们完成了电路板布局阶段。 Shawn将向我们展示如何导入网表,排列零件,绘制电路板轮廓以及建立跟踪连接。

 

7.Kicad视频基础教程第七部分:电路板布局图

KiCad系列简介的第7部分在元件之间绘制了Shawn绘图,以显示电路板布局图在电路板上留下器件连接的位置。Shawn带领我们绘制并提供了一些很好的提示和技巧。

 

8.Kicad视频基础教程第八部分:生成Gerbers文件和订单板

在KiCad系列简介的第8部分中,Shawn讨论了Gerber文件。虽然一些电路板公司接受用于PCB制造的KiCad文件,但了解Gerber文件格式非常重要,因为这是一种更通用的PCB制造格式。 KiCad有一个用于检查Gerber文件的工具,称为GerbView。

 

 

9.Kicad视频基础教程第九部分:生成BOM表和订单器件

KiCad简介的第9部分Shawn解释了如何创建物料清单(BOM),然后从Digi-Key Electronics订购零件。

 

10.Kicad视频基础教程第十部分:焊接元件到PCB

KiCad简介的最后一部分是Shawn(PCB和Digi-Key的元件在手)焊接和测试他的PCB,以确保它按预期运行。

Arduino寄存器操作

很多人都在向我询问关于如何直接使用Arduino中断的问题。要搞清楚这方面的事情,需要先了解Arduino使用的单片机ATmega328的内部寄存器。

要搞清楚这个问题,我们需要先获得一份ATmega328的Datasheet(数据手册),这是一款采用AVR架构的8位单片机。Datasheet是一份长达400多页的文档,告知了关于如何使用这款单片机的方方面面。

当我们使用PDF阅览器查看左侧的目录索引,我们先找到AVR CPU Core部分,查看概览Overview,我们能找到该款CPU的内部模块结构示意图。其中的ALU(算术和逻辑运算单元)部分,是用于算术和逻辑运算的核心部分,如加减乘除、位与或非运算等等。运算的数值来自23个8位的通用功能寄存器,也可将结果存放于这些寄存器中。8bit(8位)也就是1byte(一字节),还有其它的一些寄存器如Instruction Register指令寄存器等等。此外与8位Data Bus数据总线相连的还有I/O Module(输入/输出端口模块)。

你可以将Processer(处理器)想像成厨房,ALU(算术和逻辑运算单元)就像是大厨,根据instruction指令来准备晚餐。他是执行指令并采取响应的责任主体,大厨根据菜谱的步骤来开展工作,就像是编程过程中的程序代码。而厨房中的锅碗瓢盆等容器就是Register(寄存器),用于存放等等烹饪的食物,在处理器中也就是数据。

然而,当我将这些输入写入特殊功能寄存器SFR(sprcial function register)之中,它就可能直接导致控制器的某些引脚的电压从0V上升到5V。好,让我们待会就来试试。特殊功能寄存器SFR用来控制引脚的功能和输入输出,设置中断,发送或者接收串行信号等等。你需要知道的是,寄存器的种类数量以及名称是与处理器架构密切相关的,譬如你在ATMega328P控制器上做开发,当你迁移到ESP32控制器上时,你需要重新记忆一系列新的寄存器。

ATMega328P有三各分别编址的存储器,第一个是程序存储器(Program Memory),这里存储着你所编写的代码,当你编写代码,被编译后成为机器代码,就被存储在这里。这是一系列的操作指令,就像是菜谱一样,大厨操作时必须遵循的。第二个是SRAM(static random-access memory)静态随机存储器,有趣的是,我们上面所提及的通用寄存器和特殊功能寄存器都在这里的前256个存储单元中。所以,当我需要写入特殊功能寄存器数据时,我们需要先找到其在SRAM中的相应地址,然后配置好我们需要写入的数值。SRAM剩余的部分用于存储数值,如你在程序中所命名的变量等。请注意,当你的处理器重启或者断电后,SRAM中的所有数据将被清除,你将丢失所有存储于此的数据。最后第三个,就是EEPROM(elecrtically erasable programmable read-only memory)电可擦除只读存储器,它通常不被认为是处理器中的部分,由于其往往在另外的总线上与处理器进行通信,它的读取和写入速度也远较其它存储器慢。但它对于需要在断电后启动仍需保存使用的数据非常有用。

如果我们看一下I/O port章节部分,我们就可以知道一般数字输入输出端口的内部电气结构。在ATMega328P处理器中,所有I/O端口均可被配置为数字输入或输出端口,但是有些端口同时还可以被配置为通用串行收发端口、外部中断端口、模拟数字转换端口。

查看一下Pin Configurations章节,可以看一下DIP封装芯片的引脚分布,这就是Arduino UNO上所使用的处理器。你可以看到I/O端口命名以字母P开头,名字为B、C、D再加上一个端口数字。举例来说,我们可以向触发一个端口控制LED亮灭,该端口为PD5。需要使用一个引脚作为数字输入输出,我们需要配置3个寄存器PORT、DDR、PIN。让我们再导览到I/O Ports Register Description小节,了解更深入的信息。首先,我们需要配饰DDR(Data Direction Register)寄存器用于定义该端口的功能是输入R还是输出W。把DDRD中相应的端口位的值置位为1,意味着告诉处理器该位对应端口我们将用作输出功能,反正重置该位为0则告知处理器该对应端口将用作输入功能。接下来就是PORT寄存器,不要困惑,我们现在要操作的是D端口,那么对应的寄存器当然是PORTD,在前面配置了端口为输出功能后,将该寄存器对应位设置为0则该引脚输出0V电压,设置为1则该引脚输出5V电压。如果之前的DDR寄存器将该位对应端口设置为输入,则PORT寄存器对应位设置为1表示内部上拉电阻有效,设置为0表示内部上拉电阻无效。最后PIND寄存器相应位只能读取不能写入,它表示对应端口配置为输入时盖输入位引脚电平的高低。

我们待会就要实际演示 一下具体如何操作,不过,让我们先看看这些相关寄存器在SRAM中的分布位置和对应地址。导览到register summary一节,在表头我们可以看到每个寄存器的相应地址。

 

构建AA NiMH和NiCd电池的USB充电器

构建AA NiMH和NiCd电池的USB充电器

我总是在抱怨旅行时需要随身携带的所有的充电器和墙壁疣。而这个项目,可以使用笔记本电脑的USB端口,以一对AA镍氢(NiMH)或镍镉(NiCd)电池为电源充电,这就可以解决了一部分问题。(顺便说一句,如果你想减轻笔记本电脑的负担,请看一下MoGo鼠标。)

任何USB端口都可以提供高达500mA的5V电压。USB标准规定,在协商使用500mA的权利之前,设备可能不会使用超过100mA的电流,但显然没有USB端口强制执行该要求,这使得USB端口成为此电源等设备的便捷充电器。

市面上有USB AA充电解决方案,但它们都有一些缺点:

这个USBCell有一块1300mAh的AA镍氢电池和一个可移动的顶部,允许其直接插入任何USB端口而不需要单独的充电器。不幸的是,电池容量非常低(目前大多数NiMH AA电池都是2500mAh),而且每个电池都需要自己的端口。

有一种双电池USB供电的AA充电器,以各种各样的名称出售,但它以100mA的极低速率充电。经销商将其称为“隔夜充电器”,但在100mA时,2500mA电池充电需要约40小时(由于低电流充电效率低,因此需要40个而不是25个)。

我找到了一个可以通过USB端口,自动适配器或者墙壁疣供电的2/4电池充电器,但它与我试图更换的壁式充电器一样大。这些各种各样的充电器到处都是,但这些都需要10到12个小时才能为2500mAh电池充满电。

2007年12月更新: 三洋为其Eneloop电池推出了USB供电充电器。该充电器没有上面列出的任何缺点,并且将在大约5小时内为一对2000mAh电池充电,或者在一半时间内对单个电池充电。虽然设计用于Eneloops,但它也适用于常规的NiMH细胞。]

这个项目中的充电器设计用于为任何容量的两节AA NiMH或NiCd电池充电(只要它们相同),电流约为470mA。它将在约1.5小时内充满电700mAh NiCds电池,在约3.5小时内充满电1500mAh NiMH电池,在约5.5小时内充满电2500mAh NiMHs电池。充电器包含了一个基于电池温度的自动充电切断电路,电池可以在切断后一直留在充电器中。

产品规格

此充电器具有以下规格:

  • 尺寸:3.8“L×1.2”W×0.7“H(9.7cm×3.0cm×1.5cm)。
  • 电池:两个AA,NiMH或NiCd
  • 充电电流:470mA
  • 充电终止方法:电池温度(33°C)
  • 涓流电流:10mA
  • 电源:台式机,笔记本电脑或集线器USB端口
  • 工作条件:15°C至25°C(59°F至77°F)

电路

这款充电器的核心是Z1a,是LM393双电压比较器的一半。输出(引脚1)可以处于两种状态之一,高或低。充电时,内部晶体管将输出拉低,通过Q1和R5吸收约5.2mA的电流。Q1具有大约90β,因此大约有470mA电流从充电的两个AA电池中流出。这将在短短5个多小时内为一对2500mAh电池充满电。

USB供电AA充电器原理图。

USB供电AA充电器原理图。

在充电期间,R1,R2和R4形成三路分压器,在Z1a的非反相输入端(引脚3,Vref)产生约1.26V的电压

TR1是热敏电阻,与被充电的电池直接接触。它在25°C(77°F)时具有10kΩ的电阻,每1C°(1.8F°)与温度成反比约3.7%。R3和TR1形成分压器,其值应用于反相输入(引脚2,Vtmp)。在20°C(68°F)的温度下,TR1约为12kΩ,这使得Vtmp约为1.76V。

一旦电池完全充满电,充电电流就会以热量的形式浪费掉,电池温度就会升高。随着电池温度升高,TR1的电阻就会下降。在33°C(91°F)时,电阻约为7.4kΩ,这使Vtmp约为1.26V,等于Vref电压。

电池电压与时间的关系 当电压达到峰值时,电池充满,此后不久充电器就会关闭。

电池电压与时间的关系 当电压达到峰值时,电池充满,此后不久充电器就会关闭。

当温度升至33°C以上时,Vtmp将小于Vref,Z1a的集电极开路输出将浮动。因为它此时受到R1,R2和R4的限制,因此,流过R5的电流将大大减少。结果就是,流过Q1和电池的电流会降低到10mA的涓流充电速率。

此外,由于R4现在通过R5和Q1连接到+ 5V,而不是通过Z1a保持在0.26V,因此Vref电压变为大约2.37V。这可以保证随着电池温度的下降,充电器不会重新开启。为了使Vtmp达到2.37V,TR1必须达到约20kΩ,相当于约6°C(43°F)的温度,这在室温环境中永远不会担心。

Z1b是LM393芯片上的另一个比较器,仔细观察原理图可以知道它正在执行与Z1a相同的作用。然而,它不是驱动充电晶体管,而是驱动指示充电正在进行中的LED灯。R6将LED的电流限制在10mA左右。通过从它自己的比较器运行LED(无论我们是否使用它,它都在芯片上),LED电流对Vref没有影响。

最后,C1用于确保在插入一对电池时开始充电。没有电池并且充电器关闭,C1的电压约为1.9V(5V – 0.7V – Vref)。一旦插入两个电池中的第二个,C1的正侧突然被迫下降到电池电压(大约2.4V)。这立即迫使负极低于此值1.9V,达到约0.5V。由于它连接到Vref,Z1a的输出变低,然后充电就会开始。几毫秒后,C1调整到一侧R1,R2和R4以及另一侧单元施加的新电压差,不再影响电路。

施工

该电路最好建立在印刷电路板上。请参阅关于此主题的文章,制作优秀的印刷电路板。这是印刷电路布局:

铜方面。 实际尺寸为3.8“x 1.2”(9.7cm x 3.0cm)。 点击放大。

铜方面。实际尺寸为3.8“x 1.2”(9.7cm x 3.0cm)。

首先安装所有电阻器和电容器。电阻器应平放安装。安装LED1,确保定向,使负极端子连接到Z1b的引脚7。

元件放置图。 点击放大。

元件放置图。点击放大。

接下来安装Z1,确保引脚1(由IC的一个角上的小点或标识表示)的方向如放置图所示。如果您愿意,可以使用Z1插座。

晶体管Q1安装在小型散热器上。首先将引线向后弯曲90°,使它们开始变窄。不要太弯曲它们否则它们可能会断裂。将Q1插入其引线孔,然后将散热器滑到下面。在焊接引线的同时用夹子将所有东西固定到位。在夹具仍然就位的情况下,钻出散热器螺栓的孔。

安装所有电子元件的充电器。 请注意,散热器Q1下方有空间。 电池座所在的电路板区域已被磨损,以帮助粘附。

安装所有电子元件的充电器。请注意,散热器Q1下方有空间。电池座所在的电路板区域已被磨损,以帮助粘附。

下一步是安装电池座。我使用了一个2芯电池座,它是通过从一个并排的4芯电池座上切下两个外部电池的位置而制成的。你当然可以买一个2芯电池架,但是当我去零件店时,没有一个可用。我的方法具有额外的优点,即电池更容易插入和移除,因为支架的侧面不会在电池方向上内弯曲。在安装支架之前,拆下中央分隔器的1/4长部分,为热敏电阻腾出空间。还要将一些引线焊接到电池座端子上。将支架粘贴在电路板上的适当位置,与电路板的侧面和末端齐平。胶水干燥后,钻出电路板上的TR1孔,在电池座上形成匹配的孔。如果你认真地去做了所有的事情,这两个孔应该在中心线上,就在你移除了分隔线的地方。

将热敏电阻插入孔中,然后将一对AA电池放入支架中。从铜侧向上推热敏电阻,使其与电池牢固接触,然后将其焊接到位。然后取下电池,将电池座引线连接到放置图上标有B +和B-的孔。

完成充电器,一个电池到位。 通过切割4个电池座的外部位置来制造2个电池座。 注意如何安装热敏电阻,以便与正在充电的电池进行物理接触。 一个小型散热片让Q1保持凉爽。

完成充电器,一个电池到位。通过切割4个电池座的外部位置来制造2个电池座。注意如何安装热敏电阻,以便与正在充电的电池进行物理接触。一个小型散热片可以让Q1保持凉爽。

最后一步是连接USB电源线。要么购买电缆,要么从丢弃的USB设备(例如损坏的鼠标)上切下一根电缆。将电缆切割成所需的长度,并从末端剥去约1英寸的外壳。回到屏蔽上,找到+ 5V和GND线。它们通常分别是红色和黑色。剥去外壳并将它们的末端镀锡,然后将它们焊接到充电器的USB + 5V和USBGND端子上。

测试

在将充电器连接到电源之前,请仔细检查您的工作。确保所有组件都正确定向(特别是Q1,LED1,Z1和电池座)。

对于初始测试,我使用USB集线器供电。 电池和触点之间的一对#11爱好刀片让我连接电压监视器。

对于初始测试,我使用USB集线器供电。电池和触点之间的一对#11爱好刀片让我连接电压监视器。

对于初始测试,我建议您使用有源USB集线器。通过使用集线器,可以确保充电器不会从计算机中获取电量,就不会因为充电器中的缺陷而损坏电源。但请注意,除非集线器连接到计算机,否则大多数有源集线器都不会输出任何电源。或者,您可以使用稳压5V电源,暂时连接到电路板上的+ 5V和GND走线。

接通电源后,检查LED是否熄灭。如果它打开,请使用330Ω电阻瞬间将TR1短路(这使得电路认为电池已经非常热)。如果LED没有熄灭,那就有问题了。

关闭LED,测量GND和Vref(Z1的引脚3)之间的电压。这应该约为2.37V。它可能有点多或少,具体取决于确切的电源电压和电阻值的变化。还要检查Vtmp(引脚2)的电压。在室温下,这应该在1.60V至1.85V的范围内,具体取决于温度。

现在插入一对匹配的AA NiMH电池,最好是部分或完全放电的电池。插入第二个电池后,LED应该亮起。再次测量Vref电压; 它现在应该是大约1.26V。由于电源上的负载引起电源电压下降,Vtmp也可能有一点变化。

充电器现在正在充电,电池端子的电压应该增加。过了一会儿,增长率应该放缓。当电池达到约75%的电荷时,增加的速度将再次加速。最后,当电池达到100%充电时,电压将开始下降,电池将开始变热。15至20分钟后,充电器应关闭。如果电池变得不舒服并且充电器没有关闭,那就有问题了。

它也值得测量充电电流。最简单的方法是在一个电池和电池座触点之间插入两个薄的导电条,例如黄铜垫片,由绝缘体隔开就行了。然后将电流表连接到两个条带,使充电电流流过仪表。仪表读数应介于450和490mA之间。如果它更高,您将超过USB电流供应规格,因为充电器本身使用额外的10mA(主要用于LED)。

如果测得的电流 太高或太低,请根据以下公式用不同的电阻值替换R5:

R5 = 1.6× I

使用最接近的标准值。例如,如果测量510mA的电流,则用820Ω电阻代替R5。如果测得的电流为420mA,请使用680Ω电阻。

附件

在我写这篇文章的时候,我还没有为这个电路构建一个外壳,但是计划在不久的将来这样做,因为裸板不够强,不能在旅途中扔进笔记本电脑包。侧面和底部的外壳将由1/16的塑料或飞机胶合板制成,电路就放在半透明塑料面板上。电池盒将保持打开状态。应变消除将防止USB引线在连接到电路板的位置断开。为了冷却,我计划在散热器区域的侧面和顶部钻孔。

使用充电器

使用充电器很容易。只需将其插入USB端口并插入要充电的两个电池即可。当LED熄灭时,充电完成。大致充电时间如下:

细胞类型 充电时间
700mAh NiCd 1.5小时
1100mAh NiCd 2.5小时
1600mAh NiMH 3.5小时
2000mAh NiMH 4.5小时
2500mAh NiMH 5.5小时

重要的是带电的两个电池具有相同类型和相同的放电水平。如果电池不匹配,则一个电池将在另一个电池之前充满电。当温度达到33°C时,充电器将关闭。如果第二个电池比第一个电池需要的电流大约多200mAh,那它不就会充满电。

 这款充电器具有合适的外壳,非常适合旅行时使用笔记本电脑为充电器供电。 应插入笔记本电脑以避免电池耗尽。

这款充电器具有合适的外壳,非常适合旅行时使用笔记本电脑为充电器供电。应插入笔记本电脑以避免电池耗尽。

通常,如果在单个设备(数码相机,GPS等)中可以一起使用两个电池,则它们将保持同步,并且可以一起充电。

充电完成后,充电器将切换到10mA涓流充电。这足以克服电池的自然自放电率,而且足够低以至于电池可以一直留在充电器中。但是,除非将充电器插入已通电的USB端口,否则请勿将电池留在充电器中。否则,电池将为电路供电并在此过程中耗尽。

在任何计算机上使用此充电器时,请确保计算机未设置为关闭USB端口电源的省电模式。如果发生这种情况,充电将会停止,正在充电的电池将会放电。当使用笔记本电脑作为电源时,最好插入笔记本电脑的电源,因为充电器使用了大量的电量,并且可能需要更长的时间来完成笔记本电池的使用。

如果用USB集线器为此充电器供电,请务必使用有源集线器。无源集线器将无法向充电器提供足够的电流,因为它必须与集线器中的端口(通常为4个)共享来自计算机的500mA电流。额外的电缆长度也会降低到达充电器的电压。

为AAA电池充电

如果电池座中的弹簧足够长,充电器也可用于为一对AAA电池充电。然而,必须在电池和电池座的侧面之间插入垫片,以确保电池保持与热敏电阻接触。仅为现代AAA电池充电,容量为700mAh或更高。

零件清单

有些部件可以在Radio Shack获得,但像Digi-Key这样的大型电子供应商更有可能存放所需的所有部件。

部分 描述
R1 56kΩ¼W,5%电阻
R2 27kΩ¼W,5%电阻
R3 22kΩ¼W,5%电阻
R4 47kΩ¼W,5%电阻
R5 750Ω¼W,5%电阻
R6 220Ω¼W,电阻器
TR1 10kΩ@ 25°C热敏电阻,约。3.7%/ C°NTC
Radio Shack#271-110(已停产
C1 0.1μF10V电容
Q1 TIP32C PNP晶体管,TO-220外壳
Z1 LM393双电压比较器IC,DIP
LED1 红色,绿色或黄色LED,10mA
其他 2芯AA电池座
USB电缆
小型散热器

   请注意,Radio Shack热敏电阻已停产。虽然我没有尝试过任何一种,但也有其他类似的热敏电阻,如Vishay#2381 640 54103(Digi-Key#BC2298-ND)。温度系数略有不同(约4.6%/ C°),但在我们感兴趣的范围内,足够接近。使用此热敏电阻,截止和开启温度分别约为32°C(89°F)和10°C(50°F)。

或者,您可以使用下面的电阻值和Vishay热敏电阻将截止温度提高到33°C,同时将开启温度降低到3°C(37°F)。

部分 用于
Vishay的替代电阻值#2381 640 54103热敏电阻
R1 82kΩ¼W,5%电阻
R2 33kΩ¼W,5%电阻
R3 27kΩ¼W,5%电阻
R4 39kΩ¼W,5%电阻

我没有测试过这个组合,但是使用我用来计算与Radio Shack热敏电阻一起使用的值的相同程序来计算这些值。请勿从这个表上面列出的那些值混合匹配值。如果将任何值更改为此表中的值,请更改所有值。

如果有人找到Radio Shack热敏电阻的备用资源,请留言告诉我。

KiCad基础教程

Introduction简介

If you’re like me and you’ve decided to take the plunge from EAGLE PCB to KiCad it can be really jarring. EAGLE had many quirks and rough edges that I’m sure I cursed when I first learned it back in 2005. Since then EAGLE has become a second language to me and I’ve forgotten all the hard bits. So as you migrate to KiCad remember to take breaks and breathe (and say ‘Key-CAD’ in your head). You’ll be dreaming in KiCad in no time!

如果你像我一样,决定从EAGLE PCB转到KiCad,那么这篇分享一起入门经验的教程就应该可以帮助你。这背后的原因可能很多,我们另文讨论。 当我在2005年第一次学习EAGLE时,EAGLE画图过程中有很多奇怪和粗糙的边缘,对此我当时也是颇有怨言的。但从那以后,EAGLE成为我的第二语言,我很快克服了所有的困难适应了这个环境。 因此,当您迁移到KiCad时,请记住同样的道理,人总有先入为主的思维惯性,对于改变的不适应觉得别扭,但正如老话说,工具上手了就没有好坏之分, 你很快就会在KiCad开展你新的工作!

 

KiCad Logo

This tutorial will walk you through a KiCad example project from schematic capture to PCB layout. We’ll also touch on library linking, editing, and creation. We’ll also export our PCB to gerbers so the board can be fabricated.

本教程将引导您完成从原理图画图到PCB布局的KiCad项目范例。 我们还将涉及元件库的链接,编辑和创作。 我们还将PCB导出成gerbers文件,因此可以制造电路板。

While this tutorial is aimed at beginners I am going to use terms such as ‘schematic components’ and ‘polygon pours’. If something doesn’t make sense that’s ok, just take a moment to do a quick search. If you really get stuck please use the comments section on the right. We always want to improve our tutorials to make them easier.

虽然本教程针对的是初学者,但我将使用“原理图元件”和“多边形覆铜”等术语。 如果你觉得有不理解的名词,可以进行快速搜索Google获得相关概念的解释。 如果你发现在学习过程中卡在某些位置了,请在教程下方的评论告知我们。 我们总是希望改进我们的教程使它们更易上手。

KiCad Project Window

KiCad项目窗口

Download and Install KiCad

下载并安装KiCad

Let’s get started! Head over to KiCad’s download page and download the latest version of the software for your specific platform:

DOWNLOAD KICAD FOR YOUR OPERATING SYSTEM/DISTRIBUTION

备注:

 

Run KiCad

运行KiCad

Once installed, run KiCad. A main navigation window will display where you will be able to open all the periphery programs like schematic capture and PCB layout.

安装完成后,运行KiCad。 将显示一个导航主窗口,您可以在其中打开所有附加程序,如原理图绘制和PCB布局。

KiCad main Project Window

点击上图可以看到更清晰完整的截图

The KiCad project window looks quite empty and sad. Let’s open an example!

KiCad项目窗口看起来很空白。 让我们开始创建一个范例吧!

Setting Up a Project

设置项目

The ZOPT2201 UV sensor designed originally in SparkX is a great I2C UV Index sensor and will serve as our starting example for this tutorial. Download the ZOPT220x UV Sensor Breakout designs for KiCad and unzip the four files into a local directory:

最初在SparkX实验室中设计的ZOPT2201紫外线传感器是一款出色的I2C紫外线指数传感器,将作为本教程的起始示例。 点击下面链接下载KiCad的ZOPT220x UV传感器电路板模块设计,并将这四个文件解压缩到本地目录:

ZOPT220X UV SENSOR BREAKOUT KICAD BOARD FILES

Once the four files are located in a local directory (try looking in your downloads folder for …\ZOPT220x_UV_Sensor_Breakout-Tutorial), click File -> Open Project and open the ZOPT220x UV Sensor Breakout.profile.

当这四个文件已下载并解压到本地目录中(尝试在下载文件夹中查找… \ ZOPT220x_UV_Sensor_Breakout-Tutorial),单击File -> Open 并打开ZOPT220x UV传感器Breakout.profile。

Main Project Window

点击上图可以看到更清晰完整的截图

Click the image for a closer look

What are all these files?

  • *.pro – Main project file to keep track of the file structure.
  • *.cmp – Defines which footprints go with which schematic components.
  • *.kicad_pcb – The PCB layout.
  • *.sch – The schematic.

这些文件分别是什么?

  • *.pro – 用于跟踪文件结构的主项目文件。
  • *.cmp – 定义原理图元件的封装与原理图元件的关联。
  • *.kicad_pcb – PCB布局。
  • *.sch – 原理图。

These four files are all you need to share a KiCad design with a fellow collaborator. You may also need to share a footprint file, which will be explained more later on in this tutorial.

这四个文件是发布KiCad设计所需的全部文件。 您可能还需要发布一个封装文件,稍后将在本教程中对此进行说明。

You may have had your first critical-judgment-eye-squint. Why is there a file to define which footprints go with which schematic components? This is fundamental to KiCad and is very different from how EAGLE works. It’s not a bad thing, just different.

你可能已经开始感到困惑。 为什么有一个文件来定义哪些脚印与哪些原理图元件一起使用? 这是KiCad的基础,与EAGLE的工作方式截然不同。 这没有好坏之分,只是不同的处理方式而已。

Setting Up Schematic Component Libraries

设置原理图元件库

Double click on the schematic file with Kicad’s Eeschema schematic editor. You’ll probably get an error:

使用Kicad的Eeschema原理图编辑器双击原理图文件。 可能会弹出一个错误:

Library Error

Ignore this for now. Click ‘Close’.

暂时忽略这个问题。点击“关闭”。

Component Question Marks

The schematic will load with lots of components with question marks (i.e.??). KiCad is missing the link to the devices within this schematic. Let’s get them linked!

原理图将加载许多带有问号的元件(即?? ??)。 KiCad缺少此原理图中元器件的关联。 让它们关联起来吧!

Linking Component Libraries w/ Eeschema

链接具有Eeschema的组件库

From within EeSchema, click on Preferences -> Component Libraries. This will open a new window. In the image below you can see that the project file contains information about where it should look for “Component library files”. Each project has its own connections to different file structures. We need to tell this project where to find the symbols for this schematic.

在EeSchema中,单击Preferences – > Component Libraries。 这将打开一个新窗口。 在下图中,您可以看到项目文件包含有关“元件库文件”的查找位置的信息。 每个项目都有自己与不同文件结构的连接。 我们需要告诉这个项目在哪里找到这个原理图的符号。

Linking KiCad Library

We will need the SparkFun_SchematicComponents.lib file. Download and store it in a local directory:

DOWNLOAD “SPARKFUN_SCHEMATICCOMPONENTS.LIB”

我们需要SparkFun_SchematicComponents.lib文件。 下载并将其存储在本地路径中:

下载 “SPARKFUN_SCHEMATICCOMPONENTS.LIB”

From the KiCad window, click the top ‘Add’ button. We’ll show you how to create your own schematic symbols in a bit.

在KiCad窗口中,单击顶部的“Add”按钮。 我们将展示如何创建自己的原理图符号。

Add SparkFun Schematic Component Libray

Navigate to the directory where you stored the SparkFun_SchematicComponents.lib file and click ‘Open’. This file contains all the schematic components.

导航到存储SparkFun_SchematicComponents.lib文件的路径,然后单击“Open”。 该文件包含所有原理图元件。

Once you’ve added the SparkFun schematic components library file, you should see it added to the list.

一旦添加了SparkFun原理图元件库文件,您应该看到它已添加到列表中。

Component Library Files with SparkFun Schematic Component Library

The astute will note the slightly different directory structure in the window:

细心观察的你可能会注意到窗口中的路径略有不同:

C:\Users\Nathan…

C:\Users\nathan.seidle…

That’s the difference between my home PC and my work PC. To avoid future errors when opening this schematic, let’s remove the entry from the active library files. Highlight the C:\Users\Nathan… entry from the list and click on the ‘Remove’ button.

这是我的家用电脑和我的工作电脑之间的区别。 为了避免将来打开此原理图时出现错误,我们将从活动库文件中删除该条目。 从列表中突出显示C:\ Users \ Nathan …条目,然后单击“删除”按钮。

Click on ‘OK’ to close out the Component Libraries manager. Now close and re-open the schematic to refresh.

单击“确定”关闭元件库管理器。 现在关闭并重新打开原理图以刷新。

Schematic without ??

Congrats! No more ?? boxes. For more information about using schematic component libraries across multiple computers, check the next subsection about the “user defined search path.” Otherwise, let’s start editing the schematic!

恭喜你! 再也没有??框。 有关在多台计算机上使用原理图元件库的更多信息,请查看有关“用户定义的搜索路径”的下一小节。另外,让我们开始编辑原理图!

User Defined Search Path: Using Component Libraries on Multiple Computers

用户定义的搜索路径:在多台计算机上使用元件库

The schematic component libraries are assigned using KiCad’s Component Library Manager. If you’re like me and have schematic libraries shared across multiple computers, adding a “User defined search path” is helpful:

使用KiCad的元件库管理器分配原理图元件库。 如果您像我一样并且在多台计算机之间共享原理图库,则添加“用户定义的搜索路径”会很有帮助:

User Defined Search Path

In the image , I have “..\..\SparkFun-KiCad-Libraries” defined. This is the local relative path to a Dropbox folder. These component library paths are specific to this project and *.pro file. When I open this project on my laptop, it will first look for the files in the “C:\Users\nathan.seidle…” location. It will fail and then search the relative path of “ ..\SparkFun-KiCad-Libraries” and find the files. It allows me to share libs between computers and between GitHub repos without having to reassign the libraries every time I open the project on a different computer.

在上图中,我定义了“.. \ .. \ SparkFun-KiCad-Libraries”。 这是Dropbox文件夹的本地相对路径。 这些元件库路径特定于此项目和* .pro文件。 当我在笔记本电脑上打开这个项目时,它将首先在“C:\ Users \ nathan.seidle …”位置查找文件。失败了,然后搜索“.. \ SparkFun-KiCad-Libraries”的相对路径并找到文件。 它允许我在计算机之间和GitHub repos之间共享库,而不必每次在另一台计算机上打开项目时重新分配库。

For now, you should continue with the tutorial. In the future, you may want to revisit this if you use KiCad across multiple computers.

现在,您应该继续学习本教程。 将来,如果您在多台计算机上使用KiCad,则可能需要重新浏览这里所说的路径范例。

Editing a Schematic

编辑原理图

If I get you to do nothing else, I will get you to learn the keyboard shortcuts! Yes, you can click on the equivalent buttons. However, the speed and efficiency of KiCad really shines when muscle memory kicks in so start memorizing. Here are the keyboard shortcuts in KiCad’s Eeschema that we will be using frequently in this tutorial:

如果我没有说明该如何操作,我就会让你学习如何使用快捷键完成! 是的,您可以单击等效的图形按钮。 然而,当完整记忆快捷键开始时,KiCad的速度和效率真的很高,所以还是尽快开始记一下吧。 以下是我们将在本教程中经常使用的KiCad Eeschema中的快捷键:

  • a – To add component.
  • c – Copy a component when the cursor is over another component.
  • w – To wire components.
  • v – Edit component value.
  • Esc – Escape mode or whatever command in progress and return to normal pointer mode.
  • ctrl+z – Undo. Use liberally to undo any mistakes.
  • ctrl+s – To save. Make sure to save often!
  • a – 添加元件。
  • c – 当光标位于另一个元件件上时复制元件。
  • w – 连接元件件。
  • v – 编辑元件值。
  • Esc – 转义模式或正在进行的任何命令并返回正常指针模式。
  • ctrl+z – 撤消。 使用自由来消除任何错误。
  • ctrl+s – 保存。 一定要经常保存!

This breakout board needs a larger 4.7uF decoupling cap (because I say so). Let’s add it!

Adding Component to Schematic

将元件添加到原理图

Press ‘a’ to add a device to the schematic. This will open the component window. (If you are using a different tool you may need to click on the schematic as well):

按’a’将设备添加到原理图中。 这将打开元件窗口。 (如果您使用的是其他工具,则可能还需要单击原理图):

Choose Component

There are hundreds of components (668 items according to the title bar). Feel free to dig around but to quickly find what we need type ‘cap’ into the field Filter:. Select the device labeled as C_Small from the device library. Then hit enter or click ‘OK’.

有数百个元件(根据标题栏所示共有668项)。 随意翻找,但为了更快速找到所需元件,我们需要输入’cap’到字段到查询过滤器Filter。 从设备库中选择标记为C_Small的器件。 然后按Enter键或单击“确定”。

select C_Small

Place it on the schematic next to the 0.1uF cap.

将其放在原理图上0.1uF电容旁边。

Place in Schematic

After you place the capacitor, you’ll notice you’re still in placement mode. Hit the ‘Esc’ button on your keyboard to return to normal pointer mode. I find myself hitting escape twice a lot just to be sure I’m back in default state.

放置电容器后,你会注意到仍处于放置模式。 按键盘上的“Esc”按钮返回正常指针模式。 为了确保我恢复到默认状态,我自己经常两次按“Esc”。

Copying Component复制元件

Once in default state put your mouse pointer on top of the 3.3V marker on the 0.1uF cap. Press ‘c’ to copy that device and place it above the new capacitor.

处于默认状态时,将鼠标指针放在0.1uF上方的3.3V标记处。 按’c’复制该标记并将其放在新电容上方。

Copy C_Small

Do the same for the ground marker. Press ‘ctrl+s’ to save your work.

对GND标记执行相同操作。 按’ctrl + s’保存您的工作。

Wiring Components元件连线

Now let’s wire them together. You guessed it, press ‘w’ but here’s the catch: have your mouse pointer over one of the bubbles before you press ‘w’.

现在让我们将元件连线, 你猜对了,按’w’。请注意:在你按’w’之前先将鼠标指针放在其中一个气泡上。

Wiring Schematic Components

Move your mouse to the other bubble and left click on the mouse to complete the wiring for GND. Remember if you mess up, press ‘Esc’ once or twice to return to default. Then move your mouse pointer to the bubble you want to connect and press ‘w’ and begin wiring 3.3V. The shortcut ‘w’ stands for wire.

将鼠标移动到另一个气泡,然后左键单击鼠标以完成GND的接线。 请记住,如果出现问题,按“Esc”一次或两次返回默认状态。 然后再将鼠标指针移动到要连接的气泡上,按“w”键开始接线3.3V。 快捷键“w”代表接线。

Did something go wrong? Use ‘ctrl+z’ liberally to undo any mistakes.

出了什么问题? 大胆地使用’ctrl + z’来撤销任何误操作。

Connected Capacitor

Power and ground are now connected to our capacitor.

我们的电容器现在连接到电源和接地标记上了。

Changing a Component Value更改元件值

Let’s change the value from C_Small to 4.7uF. Hover the mouse pointer over C_Small and press ‘v’ (for value change). Change C_Small in the Text field by typing 4.7uF. Then hit enter or click ‘OK’.

让我们将值从C_Small更改为4.7uF。 将鼠标指针悬停在C_Small上并按“v”(进行值更改)。 通过键入4.7uF更改文本字段中的C_Small。 然后按Enter键或单击“确定”。

Change Capacitor Value

Congrats! You’ve just wired up your first schematic component. Press ctrl+s to save your work.

恭喜! 您刚刚连接了第一个原理图的元件。 按ctrl + s保存您的工作。

Annotate Schematic Components原理图元件标注

But what about the C? designator?! Don’t worry about it! One of the many benefits of KiCad is the ability to auto-annotate a schematic.

但那C?标志呢? 别担心! KiCad的众多优点之一是能够自动注释原理图。

Click on Annotate Schematic Button

 

Click on the Annotate schematic components button.

单击Annotate schematic components按钮。

Annotate Schematic Button

Use the default settings and simply click on Annotate button to confirm.

使用默认设置,只需单击“Annotate”按钮进行确认。

KiCad confirming annotation

KiCad confirming annotation

KiCad确认标注

KiCad will ask you if you’re sure, simply press return or click ‘OK’ again.

KiCad会询问您是否确定,只需按回车键或再次点击“OK”即可。

Updated Schematic Value and Designator

Capacitor with correct value and designator! We are all set. Time to edit the PCB.

电容器具有正确的值和标注! 我们都准备好了。 是时候编辑PCB了。

Editing a PCB Layout编辑PCB布局

Before we start editing the PCB, here are the keyboard shortcuts in KiCad’s Pcbnew that we will be using frequently in this tutorial:

  • + – Press to switch next layer.
  •  – Press to switch to previous layer.
  • m – Move item.
  • b – Update ground polygon pours.
  • Delete – Remove a trace or component.
  • x – Route new track.
  • v – Add through via.
  • n – Next grid size. Use with caution. There will be tears if you use a grid outside of 50mils or 25 mils.
  • Page Up – Return to the top copper layer.
  • Esc – Escape mode or whatever command in progress and return to normal pointer mode.
  • ctrl+z – Undo. Use liberally to undo any mistakes.
  • ctrl+s – To save. Make sure to save often!

在我们开始编辑PCB之前,先罗列在本教程中经常使用的KiCad Pcbnew中的键盘快捷键:

  • + – 按下切换下一层。
  •  – 按下切换到上一层。
  • m – 移动项目。
  • b – 更新接地多边形覆铜区域。
  • Delete – 删除迹线或元件。
  • x – 添加新迹线.
  • v – 添加过孔.
  • n – 下一种网格大小。 谨慎使用。 如果你使用50密耳或25密耳以外的网格会有走线泪滴产生。
  • Page Up – 返回顶部铜层。
  • Esc – 退出转义模式或正在进行的任何命令并返回正常指针模式。
  • ctrl+z – 撤消。 使用返回上一个状态来消除任何错误。
  • ctrl+s – 保存。 一定要经常保存!

Generate Netlist生成网表

We’ve got our schematic, now let’s get the new 4.7uF cap placed on the board. From the schematic, click on the ‘Generate netlist’ button.

我们已经获得了原理图,现在让我们将新的4.7uF电容放在电路板上。 从原理图中,单击“Generate netlist”按钮。

Generate Netlist Button

You’ll see the following window:

您将看到以下窗口:

Netlist Window

KiCad is powerful. And with this power, comes an overwhelming number of options. Lucky for us, we are just scrapping the surface so we don’t need to fiddle with any of these options. Simply press enter or click ‘Generate’ to confirm this screen. KiCad will ask you where you want to save the netlist as a *.net file with the default location being the project folder. Again, press enter or click ‘Save’ to confirm.

KiCad很强大。 基于这种强度功能,就有了大量的选项可供选择。 对我们来说幸运的是,我们只使用最基本的功能,所以我们不需要配置任何这些选项。 只需按Enter键或单击“Generate”即可完成此对话框。 KiCad会询问您要将网表保存为* .net文件的位置,默认位置为项目文件夹。 再次按enter键或单击“Save”进行确认。

Configuring Layer Colors配置图层颜色

Return to the main project window and double click the *.kicad_pcb file.

返回主项目窗口并双击* .kicad_pcb文件。

KiCad_PCB File

Welcome to PCB editing. Of all the differences between EAGLE and KiCad it was the look within PCB layout that threw me off the most. Under the View menu you will find three other views: DefaultOpenGL, and Cairo. I prefer OpenGL. Lets switch Canvas to OpenGL for now.

欢迎来到PCB编辑。 在EAGLE和KiCad之间的所有差异中,PCB布局中的外观让我花了最多时间去摸索。 在“视图”菜单下,您将找到其他三个视图:Default,OpenGL和Cairo。 我更喜欢OpenGL。 让我们暂时将Canvas切换到OpenGL。

Your mouse wheel does what you expect: Zoom In/Out and Pan by Clicking.

您的鼠标滚轮如您习惯的思维:放大/缩小并通过单击进行平移。

I don’t like the layer colors! Ya, me either. To change the layer colors, on the right side menu use your mouse wheel to click on the green square next to B.Cu (bottom copper layer). I prefer the following layer colors:

你不喜欢这图层颜色! 对,我也是。 要更改图层颜色,请在右侧菜单中使用鼠标滚轮单击B.Cu旁边的绿色方块(底部铜层)。 我更喜欢以下图层颜色:

  • Red 2 (Default) for F.Cu (Top Copper)
  • Blue 4 for B.Cu (Bottom Copper)
  • White for F.SilkS (Front Silk Screen)
  • Yellow 3 for B.SilkS (Bottom Silk Screen)
  • Gray 3 for Edge.Cuts (a.k.a board outline or dimensional layer in EAGLE)
  • Gray 2 (Default) for F.CrtYd (Denotes the total board space required on the top layer for the component)
  • Red 2 (Default) 表示 F.Cu (Top Copper顶层铜走线)
  • Blue 4 表示 B.Cu (Bottom Copper底层铜走线)
  • White 表示 F.SilkS (Front Silk Screen正面丝印)
  • Yellow 3 表示 B.SilkS (Bottom Silk Screen底层丝印)
  • Gray 3 表示 Edge.Cuts (如字面意思板子的外轮廓,就像Eagle中的dimensional层)
  • Gray 2 (Default) 表示 F.CrtYd (表示顶层元件所需总空间)

Layer Colors

Pressing ‘+’ and ‘-’ will switch between top and bottom copper layers. This is useful when you need to view a certain layer.

按“+”和“ – ”将在顶部和底部走线之间切换。 当您需要查看某个图层时,这非常有用。

PCB Layers Colored

It’s all cosmetic but these layer colors make it easier for me to see what’s going on.

这些都是表面上的,但这些层颜色让我更容易看到发生了什么。

Be sure to poke around the Render tab (next to the Layer tab), namely the Values and References check boxes.

请务必在“渲染”选项卡(“图层”选项卡旁边)中查看,即“值和参考”复选框。

Value and References

I find the Values and References extremely distracting when turned on so I leave them OFF. Many designers live and die by these values, so use as needed.

我发现数值和参考在开启时非常分散注意力,所以我将它们关闭。 许多电路板设计者工作中严重依靠这些数值,死活离不开,因此按需决定开启还是关闭。

Adding a Footprint添加封装

Aren’t we here to add a 4.7uF cap to the board? Where is it? It’s nowhere, sorry.

我们不是要在电路板上添加4.7uF电容吗? 它在哪里? 没有

What’s going on? We failed to assign a footprint to the capacitor we added in the schematic. Remember, KiCad does not link schematic components to footprints the same way EAGLE does. We have to specifically connect a footprint to each schematic component that was added.

这是怎么回事? 我们未能为原理图中添加的电容分配封装。 请记住,KiCad不会像EAGLE那样将原理图组件链接到封装。 我们必须专门将封装连接到添加的每个原理图元件。

Navigate to back to schematic and click on the ‘Run CvPcb’ button to associate components and footprints:

导航回原理图并单击“Run CvPcb”按钮以关联元件和封装:

Run CvPcb

If this is the first time you’ve run CvPcb you’ll get this warning:

如果这是您第一次运行CvPcb,您将收到此警告:

CvPcb Warning

Simply click through it.

只需点击它即可。

CVPcb Manager

Depending on how many libraries you have installed, this may take up to 30 seconds. We will make this better later in the tutorial but for now, be patient.

根据您安装的库数量,这可能需要30秒。 我们将在本教程后面说明如何能运行得更快,但是现在,请耐心等待。

In the left column is all the footprint libraries that KiCad ships with. In the middle is the list of components in your schematic. On the right is any footprint that may work with the highlighted component in the middle. Your job is to double click on the footprint on the right that goes with the component in the middle.

在左栏中是KiCad附带的所有封装库。 中间是原理图中的元件列表。 右侧是可以与中间突出显示的元件一起使用的任何封装。 你的工作是双击右边的封装,中间的元件。

To make life easier click on the ‘View selected footprint’ button.

为了让一切操作更简单,请点击“View selected footprint”按钮。

View Selected Footprint

Now you can preview the footprint as you click down the list in the right.

现在,您可以单击右侧列表时预览封装。

Preview Footprint Window

In Windows, I press and hold the Windows button and press the left arrow and release. This will lock the CvPcb window on one side. Then select and lock the Footprint Preview Window to the right. This allows us to flip through footprints in the left window while seeing the preview on the right.

在Windows中,我按住Windows按钮并按向左箭头并松开。 这将锁定一侧的CvPcb窗口。 然后选择并将“封装预览窗口”锁定到右侧。 这使我们可以在左侧窗口中翻阅脚印,同时在右侧看到预览。

Highlight C2 in the middle column. Then double click the Capacitors_SMD:C_0603 in the right column. C2 should now be assigned a footprint.

突出显示中间列中的C2。 然后双击右栏中的Capacitors_SMD:C_0603。 现在应该为C2选择封装。

Assign Schematic with Footprint

Re-Generate Netlist重新生成网表

Close the CvPcb window and click ‘Save and Exit’. We need to re-export the Netlist. Remember how to do that? Click the ‘Generate netlist’ button again, press enter twice. Open to the PCB editor either from the schematic or from the project window.

关闭CvPcb窗口,然后单击“保存并退出”。 我们需要重新导出网表。 还记得怎么做吗? 再次单击“生成网表”按钮,按两次Enter键。 从原理图或项目窗口打开PCB编辑器。

Reopen PCB Editor

Hey! It’s still missing! We changed things, so we need to import the netlist! Remember how? Click on the ‘Read netlist’ button and you should see this window:

嘿! 它仍然缺失! 我们改变了一些东西,所以我们需要导入网表! 记得怎么样? 点击“Read netlist”按钮,您会看到此窗口:

Read Netlist Window

Click ‘Read Current Netlist’ and ‘YES’ to confirm. You can also hit enter twice. You should see the new capacitor near the board.

单击“Read Current Netlist”和“YES”进行确认。 您也可以按两次输入。 您应该在电路板附近看到新的电容。

Added Footprint Capacitor Near PCB

This is a decoupling cap so let’s put it next to the 0.1uF cap that is already there. Start by hovering over the new cap and press ’m’ for move.

这是一个去耦电容,所以我们把它放在已经存在的0.1uF电容旁边。 首先将鼠标悬停在新电容上,然后按“m”移动。

Capacitor Footprint Moved

Left click to place the capacitor. Now press ’m’ over the 0.1uF cap in the way by moving it to the left.

左键单击放置电容器。 现在按下“m”在0.1uF电容元件上,将其向左移动。

Capacitor 2 Footprint Moved

Press ‘b’ to update the GND polygon pours.

按’b’更新GND多边形覆铜。

Updated Polygon Pours

We’ve got some traces to fix but this isn’t too bad. Hover over the bits of traces that you want to remove and press ‘Delete’. Let’s delete the trace and via that is under the capacitor’s +3v3 terminal. If your pointer is over multiple items (as shown in the image below with the cursor over both the trace and capacitor), KiCad will pop up a menu to clarify your selection. This is basically asking you to pick which one you want to operate on.

我们有一些修复的迹线,但这并不算太糟糕。 将鼠标悬停在要删除的迹线上,然后按“Delete”。 让我们删除电容器的+ 3v3端子下的走线和通孔。 如果您的指针位于多个项目上(如下图所示,光标位于迹线和电容上),KiCad将弹出一个菜单以确定您的选择。 这要求您选择要操作的对象。

Clarify Selection

If you ever run into a problem press ‘Esc’ to return to default pointer mode. If you ever delete something wrong press ‘ctrl+z’.

如果您遇到问题,请按“Esc”返回默认指针模式。 如果您删除了错误的内容,请按’ctrl + z’。

Deleted Trace Via

Once you’ve removed most of the offending traces, you can begin routing by pressing ‘x’.

删除大部分叠交的错误迹线后,您可以按“x”开始走线。

为什么我添加的0603封装和板上的封装不匹配? 多年来,我们已经调整了多次PCB上元件封装的焊盘以适应我们的制造工艺。 这包括贴片工艺以及自动光学检查。 它没有什么神奇之处; 我们发现我们稍微大一点的0603焊盘最适合我们的设置。 我们使用了KiCad和我们自己的焊盘组合的焊盘尺寸混合。 出于本教程的目的,请不要担心它。 这个焊盘可以正常工作。

Single click on the pad that has the gray air-wire and drag it to the pad that it needs to connect to. Single click again to lock the wire in place. Press ‘b’ to update the polygons.

单击具有灰色鼠迹线的待连接焊盘并将其拖动到需要连接的焊盘。 再次单击以将导线锁定到位。 按’b’更新多边形。

Connect 3V3

In the image below, KiCad is trying to route this trace in an odd way. If we place the trace here it will create an acute angle which is generally bad (read up on “acid traps”). We want the trace to be a T intersection. We need to change the grid.

在下图中,KiCad试图以奇怪的方式走线。 如果我们在这里放置迹线,它将产生一个通常电气性能和工艺较差的锐角。 我们希望轨迹是T交点。 我们需要改变网格。

Odd Trace Routing

Well that’s annoying!

那太烦人了!

Press ‘n’ to go to the next grid size. I needed to hit ‘n’ only once to go to the 0.25mil grid to get this nice intersection, you may need to get to a finer grid. You can also find this in the menu options under “Grid: 0.0635mm (2.5mils).”

按’n’转到下一个网格大小。 我只需要点击’n’一次就可以到达0.25mil网格来获得这个漂亮的交叉点,你可能需要更精细的网格。 您也可以在“网格:0.0635毫米(2.5密耳)”下的菜单选项中找到它。

我强烈建议您不要使用50密耳25密耳以外的网格。 否则,以后走线上会有泪滴形过渡圆角。 所有元件,过孔,走线和电路板轮廓必须50或25密耳的网格上。 (丝网印刷不是一个相同的情况)

T Intersection

Nice T intersection!

不错的T交叉口!

In the image below, I am routing the GND air wires. This is not really needed because the polygon pour connects the two pads but it does illustrate how good the ‘magnetic’ routing assistance is in KiCad. It’s very quick and easy to go from pad to pad.

在下图中,我正在布置GND走线。 这不是真正需要的,因为多边形覆铜连接了两个焊盘,但它确实说明了KiCad中“磁性”布线辅助的好坏。 从焊盘到焊盘都非常快速给力。

Route Ground Air Wires

We have two air-wires left. To get these we’ll need to place vias down to the bottom layer. Start by pressing ‘x’ and clicking on the start of the capacitor’s air wire for GND again.

我们还剩下两根走线。 为了完成这些走线,我们需要将过孔放到底层。 首先按“x”并再次点击电容灰色鼠迹线的起点再次接地。

Routing Ground Air Wire Again

Bring the trace out.

带出走线。

GND Trace

When you’ve reached open ground press ‘v’ to create a via. Single click to place the via and KiCad will automatically start routing on the bottom layer. Press ‘Esc’ to stop laying down traces; the polygon pour will take it from here. Pressing ‘Page Up’ will take you back to the top layer.

当你到达空地时,按’v’创建一个通道。 单击以放置通道,KiCad将自动开始在底层布线。 按’Esc‘停止产生走线; 多边形覆铜将从此处产生。 按“Page Up”将返回顶层。

GND Via

One air wire left!

留下一根辅助鼠迹线!

To get this last air wire, you can try clicking on the GND pad of the 0.1uF cap but annoyingly KiCad won’t start routing?! Why?! It’s actually a good thing: the SDA trace is too close (overlapping actually) to the GND pad on the 0.1uF cap. By not letting you start routing KiCad is saying that trying to put a trace here would violate the DRC rules. What to do? Rip up the SCL and SDA lines to make some room.

要获得最后一根辅助鼠迹线,您可以尝试点击0.1uF电容的GND焊盘,但令人恼火的是KiCad不会开始布线?! 为什么?! 这实际上是一件好事:SDA走线与0.1uF电容上的GND焊盘相距太近(实际上重叠)。 不让你开始布线KiCad说,试图在这里设置跟踪会违反DRC规则。 该怎么办? 撤销SCL和SDA走线以腾出空间。

Delete SCL and SDA Trace

Aha! Much better. Press ‘x’, click on the capacitor’s GND terminal, bring the trace out, and press ‘v’ to drop a via in this area. Hit escape to stop routing (let the polygon take care of it). Finally, press ‘Page Up’ to return to the top layer view.

啊哈! 好多了。 按’x‘,单击电容器的GND端子,将走线移出,然后按’v’在此区域放置一个通孔。 点击转义以停止路由(让多边形处理它)。 最后,按“Page Up”返回顶层视图。

Capacitor 2 Via

Use the ‘Delete’ and ‘x’ buttons to re-route the SDA and SCL lines to finish up this board. Then press ‘b’ to update the polygons. The board should look similar to the image below.

使用“Delete”和“x”按钮重新布线SDA和SCL线以完成此板。 然后按’b‘更新多边形覆铜。 该板应类似于下图。

Routed PCB

Routed with no air wires!

路线没有辅助鼠迹线!

Congrats! We have finished routing the footprints. Now let’s run the DRC to see if we’re legal.

恭喜! 我们已经完成了器件引脚的布线。 现在让我们运行设计规则检查,看看我们是否符合。

How to Remove a Component’s Footprint from a PCB Layout

如何从PCB布局中删除元器件引脚占用的空间

Before we continue let’s go over the process for modifying or removing a component from a PCB layout. For example, let’s say that you wanted to remove an extra capacitor or resistor from a design. You would do all the regular steps:

在我们继续之前,让我们回顾一下从PCB布局修改或删除器件的过程。 例如,假设您想从设计中移除多余的电容器或电阻器。 你会做所有常规步骤:

  1. Delete device from the schematic.
  2. Export the netlist by clicking the generate netlist button.
  3. Import the netlist into PCB Layout by clicking on the read netlist button.
  1. 删除电路原理图中的器件。
  2. 按generate netlist按钮导出网表。
  3. 按read netlist按钮导出网表。

The difference is a few import settings:

不同的是一些导入设置要修改:

Delete Footprint from Netlist

During the netlist import the default settings are to ‘Keep’ exchange footprint and to ‘Keep’ extra footprints.

在网表导入期间,默认设置是“Keep”交换引脚且“Keep”额外的引线。

Here, we need to change two things:

在这里,我们需要改变两件事:

  • Exchange Footprint -> Change: This will allow footprints to change
  • Extra Footprints -> Delete: This will remove any extra footprints that remain
  • Exchange Footprint -> Change: 此项操作将允许引脚变更
  • Extra Footprints -> Delete: 此项操作将去掉多余的引脚

You may also want to ‘Delete’ unconnected tracks to clean up any left over tracks from the component you removed.

您可能还想“Delete”未连接的迹线,以清除您删除的元件中的任何剩余迹线。

Running Design Rule Check运行设计规则检查

Click on the ladybug with the green check mark on it to open the Design Rule Check (DRC) window.

单击绿色瓢虫复选标记的图标,打开设计规则检查(DRC)窗口。

DRC

注意:所有DRC设置均以毫米为单位。 如果您希望以英寸为单位查看设置,请关闭此窗口。 在PCB布局窗口的左侧工具菜单中,单击“in”按钮。 这会将所有单位更改为英寸。 重新打开DRC窗口,您现在可以使用英制单位更改设置。

Let’s take a moment to talk trace width, trace spacing, and vias. In general, SparkFun designs boards with:

我们花点时间谈谈走线宽度,走线间距和过孔。 一般来说,SparkFun设计板具有:

  • 10mil 走线宽度
  • 10mil 走线间隔
  • 20mil 过孔直径

We go smaller than this on many designs but if you’re designing your first PCB, do not design it with 4mil traces and 8mil vias. You shouldn’t need to go that small on your first board.

我们在许多设计上比这更小,但如果你正在设计你的第一块PCB,不要设计4mil走线和8mil过孔。 初学者在未熟悉操作和工艺要求时采用更精细的设计容易出错。

Why design in 10mil trace/space when a fab house allows 8mil or smaller for the same price?

当制造商允许8mil或更小的尺寸单价格相同,为什么在设计中使用10mil的走线/间隔?

Making PCBs is tricky and for each increment of tolerance you remove you increase the chances that the PCB (proto or not) will be fabricated with an error. And those errors can be hard to identify. We design with 10mil trace/space in order to insure and reduce the probability that we’ll see PCBs with errors on the production floor. There’s nothing worse than troubleshooting a faulty product and asking yourself: “I’ve tried every rework and soldering trick in the book, is it the PCB that’s bad?”

PCB生产工艺繁复精密,每增加一个误差,就会增加PCB(原型或非原型)制造缺陷的可能性。 而这些缺陷很难确定。 我们设计了10mil的迹线/空间,以确保并降低我们在生产车间看到PCB问题的可能性。 没有什么比对故障产品进行故障排除更糟糕的事了。

That stated, we are seeing many PCB fab houses charge low prices for 7mil trace/space and 12mil vias. If you’ve got a complex board with tight layout challenges, it’s better use the smaller trace/space and vias. Save yourself the layout time and rely on the PCB fab house to correctly fabricate your board.

这就是说,我们看到许多PCB制造商的以低价格提供密度高于7mil走线/间隔和12mil过孔。 如果您的复杂电路板存在严峻的布局挑战,那么确实该使用较小的走线/间隔和过孔。 这可以节省布局时间,但需要确认PCB制造工厂的工艺水平和能力能达到要求。

We generally use the KiCad defaults of:

我们通常使用KiCad默认值:

  • Clearance: By Netclass
  • Min Track Width: 0.2mm = 0.0079mil
  • Min Via Size: 0.4mm = 0.0157mil

Press enter again to run the DRC with the default settings.

再次按Enter键以使用默认设置运行DRC。

ErrType(): Via near track

ErrType()错误类型:通过近轨道

Aw shucks! What’s wrong with my board? The vias marked with red arrows are too close to the traces near by. The error message will show up in the window as an error indicating: “Via near track.” Fix them by ripping up (press ‘Delete’) any traces near the vias and re-route them (press ‘x’).

哎呀! 我的电路板有什么问题? 标有红色箭头的过孔太靠近附近的走线。 错误消息将在窗口中显示为错误,指示:“Via near track。”通过取消走线(按“Delete”)过孔附近的任何迹线并重新布线(按“x”)来修复它们。

DRC Errors

After adjusting the traces causing the issues, re-run the DRC. These three flags should disappear.

在调整导致问题的迹线后,重新运行DRC。 这三个标志应该消失。

Fixed DRC Markers

DRC markers have been cleared

DRC标记已被清除

Congrats! You’ve fixed those “Via near track” issues.

恭喜! 你修复了那些“Via near track”的问题。

ErrType(): Pad near pad

ErrType()错误类型:焊盘过于靠近

But wait, we are not done yet! There are still two DRC error arrows left with the error indicating: “Pad near pad”. KiCad is trying to tell us the pads on this solder jumper are too close together. SparkFun has used this footprint for years and is comfortable with the design so let’s change the Netclass clearance constraint.

但是等等,我们还没有完成! 仍然有两个DRC错误箭头,错误指示:“Pad near pad”。 KiCad试图告诉我们这个用于焊料跳线的焊盘太靠近了。 SparkFun已经使用了这个引脚间距多年,并且设计可以确保不会造成问题,所以让我们改变Netclass的间隔约束。

More DRC Errors

Open the DRC rules from the Design Rules menu.

从“设计规则”菜单中打开DRC规则。

Design Rules

Here is where you can create specific rules for specific traces and classes of traces. The problem that we are running into is the Default Clearance is 0.079mil (0.2mm). If we decrease this to 7mil (0.01778mm), click ‘OK’, and re-run the DRC…

您可以在此处为特定走线和走线间距创建特定规则。 我们遇到的问题是Default Clearance为0.079mil(0.2mm)。 如果我们将其降低到7mil(0.01778mm),请单击“OK”,然后重新运行DRC …

Clearance Defaults

DRC errors resolved! Now reducing the DRC clearances in order to get your board to pass DRC is not an ideal solution. We want the pads on the solder jumper to be close enough to be easily jumpered with solder so increasing the distance between the pads on the footprint would be counterproductive. In general, you should set your DRC rules and stick to them.

DRC错误已解决! 现在减少DRC间隙以使您的电路板通过DRC并不是一个理想的解决方案。 我们希望焊料跳线上的焊盘足够接近,以便能够容易地用焊料跳线,因此增加焊盘上焊盘之间的距离会适得其反。 通常,您应该设置DRC规则并坚持使用它们。

Cleared DRC Markers

Watch Your Airwires!

看你的辅助鼠迹线!

One last note about DRC: Leaving airwires on your PCB is a sure fire way to generate coasters (bad, unusable PCBs).

关于DRC的最后一个注意事项:在PCB上留下未走线的辅助鼠迹线是产生悲剧(错误的,坏的,无法使用的PCB)的必然原因之一。

List Unconnected

From the DRC window there is a ‘List Unconnected’ button. This will show you the location of any unconnected traces (I had to rip up the SDA trace on the bottom right side of the PCB to show this error). It’s very important that you check for airwires before ordering your PCBs. As you progress through your layout, I recommend focusing on the ‘Unconnected’ count at the bottom of the screen (circled in pink). If you think you are done routing a board but still show a few unconnected wires that you can’t find, the DRC window will help you locate them.

在DRC窗口中有一个“List Unconnected”按钮。这将显示任何未连接迹线的位置(我必须取消PCB底部右侧的SDA迹线以显示此错误)。在订购PCB之前检查走线是非常重要的。当您逐步完成布局时,我建议您关注屏幕底部的“未连接”计数(以粉红色圈出)。如果您认为已完成布线板但仍显示一些您无法找到的未连接线路,则DRC窗口将帮助您找到它们。

Press ‘ctrl+s’ to save your work.

按’ctrl + s’保存您的工作。

Well done. You’ve made it through design rule checking! Now it’s time to order boards.

做得好。 你已经通过设计规则检查了! 现在是外发生产电路板的时候了。

Exporting Gerbers

导出Gerber文件

We added a component to the schematic, we modified the PCB layout, and we checked for errors. Now we are confident and ready to have our boards made! Time to export the gerber files.

我们在原理图中添加了一个元件,我们修改了PCB布局,并检查了错误。 现在我们有信心并准备好制作我们的电路板! 是时候导出gerber文件了。

Generate Drill and Gerber Files生成Drill和Gerber文件

Gerber files are the ‘artwork’ or the layers that the PCB fabrication house will use to construct the board. We’ve got a great tutorial on the different layers of a PCB so be sure to read up if all this is new to you.

Gerber文件是PCB制造商用于构建电路板的“图形”或层的数据。 我们在PCB的基础知识有一个很棒的教程,所以如果这些对你来说都是不熟悉的,请务必阅读。

Click on the ‘Plot’ button next to the printer icon in the top bar to open the ‘Plot’ window.

单击顶部栏中打印机图标旁边的“Plot”按钮,打开“Plot”窗口。

Plotter Button and Plot Window

In general, there are 8x layers you need to have a PCB fabricated:

通常,制造PCB需要8x层:

  • Top Copper (F.Cu)+ Soldermask (F.Mask) + Silkscreen (F.SilkS) 顶层铜走线+顶层阻焊+顶层丝印
  • Bottom Copper (B.Cu) + Soldermask (B.Mask) + Silkscreen (B.SilkS)底层铜走线+底层阻焊+底层丝印
  • Board outline (Edge.Cuts) 电路板外轮廓
  • Drill file 钻孔文件

In the Plot window with the Plot format set for Gerber, be sure these Layers are checked:

在Plot窗口中为Gerber设置Plot格式,请确保选中这些图层:

  • ☑ F.Cu
  • ☑ B.Cu
  • ☑ B.SilkS
  • ☑ F.SilkS
  • ☑ B.Mask
  • ☑ F.Mask
  • ☑ Edge.Cuts

Additionally, click on ‘Generate Drill File’ button. You can use the defaults here as well. More on the PTH vs. NPTH check box in a minute. For now just click ‘Drill File’ or press enter to generate the drill file.

此外,单击“Generate Drill File”按钮。 您也可以在此处使用默认值。 更多关于PTH与NPTH复选框的信息。 现在只需单击“Drill File”或按Enter键生成钻孔文件。

Drill File Generation

Click on ‘Close’ in the ‘Drill Files Generation’ window.

单击“Drill Files Generation”窗口中的“Close”。

Click ‘Plot’ to generate the gerber files for the layers and then click ‘Close’.

单击“Plot”以生成各层的gerber文件,然后单击“关闭”。

Time to Review Your Gerbers是时候复习你的Gerbers了

This is the last chance to catch any errors before paying real money. Reviewing the gerber layers often shows you potential errors or problems before you send them off to fab.

这是在支付真金白银前发现任何错误的最后机会。 在将它们发送到电路板制造商之前,检查gerber层通常能发现潜在的错误或问题。

GerbView

Return to the main KiCad project window and open up GerbView by clicking on the button.

返回主KiCad项目窗口,单击按钮打开GerbView。

注意:有许多gerber查看软件可用。 我喜欢使用Gerbv,但KiCad的内置Gerber查看器也不赖,这就是我们将要讨论的内容。

Once KiCad’s GerbView is open, click on File -> Load Gerber File. Select all the files shown and click Open.

一旦KiCad的GerbView打开,File -> Load Gerber File。 选择显示的所有文件并单击“Open”。

Load Gerber File

Next, click File -> Load EXCELLON Drill File. Load your drill files by selecting the all the drill files shown and click ‘Open’. They should be in the same directory.

接下来,单击File -> Load EXCELLON Drill File。 通过选择显示的所有钻取文件加载钻取文件,然后单击“Open”。 它们应该在同一目录中。

Drill Files

The layout looks very different but this is a good thing. You’ve been staring at your design for hours and it’s hard for your brain to see issues. I generally do not change the layer colors unless I have to. I want the gerber review to be jarring and different from my layout practices so that I’m more likely to catch issues.

布局看起来非常不同,但这是一件好事。 你已经盯着你的设计好几个小时,你的大脑很难看到问题。 除非必须,否则我通常不会更改图层颜色。 我希望gerber复查能发现和我设计意图不同的地方,这样我就更容易发现问题。

From this view, turn off all the layers but the Top Copper (layer 5). Additionally from the Render menu, turn off the Gridand DCodes. This will make the review less cluttered.

从该视图中,关闭所有层,但 Top Copper (layer 5)。 此外,从“Render”菜单中,关闭Grid和DCode。 这将使复查起来不那么混乱。

Top Copper Layer

Now step through the different layers by toggling them on and off. You’re looking for irregularities and things that look out of place. Here are some things I look for:

现在通过打开和关闭它们来逐步完成不同的层。 你正在寻找不合理和看起来不正确的东西。 以下是我要重点关注的一些潜在问题:

  • Do any traces have weird routing that could be improved?
  • Do the vias line up with the top copper where they should?
  • Does the top solder mask make sense with the SMD IC’s footprint?
  • Are the via’s covered in soldermask (also called ‘tented vias’) or are they exposed?
  • Does the top silkscreen look good? Make sense? Everything aligned the way I want it? Are pin 1 indicators clear?
  • 有任何走线有奇怪的路径可以改善?
  • 过孔是否与顶部铜走线对齐?
  • 顶部阻焊层是否与SMD IC的占位与面积相关?
  • 过孔盖油(也称为“接通过孔”)是否覆盖过孔或是否暴露在外?
  • 顶层丝网印刷看起来正确吗? 合理吗? 一切都按我想要的方式调整? 针脚1指示灯是否清晰?

Turn On and Off Layers

Now turn everything off and repeat for the bottom layers.

现在关闭所有内容并重复底层。

Did you catch it? There are a handful of things wrong with this example.

你懂了吗? 这个例子有一些问题。

  1. The bottom silkscreen is missing the GND indicator.
  2. The top GND silkscreen indicator is in italics.
  3. There are two drill files for some reason.
  1. 底部丝网缺少GND指示。
  2. 顶部GND丝网印刷标识以斜体显示。
  3. 出于某种原因,有两个钻取文件。

Leaving a silkscreen indicator off won’t break your board but it’s small defects like this that the gerber review is meant to catch.

没有丝网印刷标识不会破坏您的电路板,但这样的小缺陷是Gerber复查希望发现的。

Missing GND on Bottom

Whoops! Bottom silkscreen for GND is missing!

哎呦! GND的底部丝网印刷缺失!

Homework:

家庭作业:

Take a moment and return to the PCB layout window to edit the make these corrections.

花一点时间返回到PCB布局窗口,编辑进行这些修正。

  • Add the a silkscreen to the bottom layer for GND. To do this, select the bottom silk layer (B.SilkS) in Pcbnew. Click on Place -> Text, type “GND” in the Text: field, and click ‘OK’. You can also copy text on the bottom silkscreen layer by right clicking it, selecting Duplicate, and placing text next to the GND pad. Make sure to change text to GND by right clicking the text, selecting Properties, changing the text, and clicking ‘OK’.
  • Change the top GND indicator so it’s not italics. To do this, edit the text properties and change the Style: to Normal.
  • Plot new gerber files.
  • Review your work in GerbView to verify the fixes.
  • 将丝网添加到底层以获得GND。 为此,请在Pcbnew中选择底部丝印层(B.SilkS)。 单击Place -> Text,在Text:字段中键入“GND”,然后单击“OK”。 您还可以通过右键单击底部丝层复制文本,选择Duplicate,然后将文本放在GND焊盘旁边。 通过右键单击文本,选择“Properties”,更改文本,然后单击“OK”,确保将文本更改为GND。
  • 更改顶层GND标识,使其不是斜体。 为此,请编辑文本属性并将Style:更改为Normal。
  • 导出新的gerber文件。
  • 查看您在GerbView中的工作以验证修复情况。

Now, we need to deal with the two drill files.

现在,我们需要处理这两个钻取文件。

PTH vs NPTH

PTH和NPTH

When generating the drill file for this design two files where generated:

为此设计生成钻取文件时,生成两个文件:

  • *.drl – The standard EXCELLON drill file you need to send to PCB fab house.
  • *-NPTH.drl – The non-plated through hole drill file.
  • *.drl – 您需要发送到PCB fab house的标准EXCELLON钻孔文件。
  • *-NPTH.drl – 非电镀通孔钻孔文件。

Non-plated through holes are holes on your PCB that do not have copper covering the vertical walls of the hole. This is sometimes required for advanced designs where thorough electrical isolation is needed. However, it is rare. While plated through holes (PTH) are common and cheap, NPTH requires an extra step in the PCB fabrication process and will often cost extra.

非镀通孔是PCB上的孔,没有铜覆盖孔的垂直壁。 对于需要彻底电气隔离的高级设计,有时需要这样做。 但是,这种情况很少见。 虽然镀通孔(PTH)很常见且价格便宜,但NPTH需要在PCB制造过程中额外增加一步,并且通常需要额外费用。

We don’t need NPTH for this design, so what happened? The ‘STAND-OFF’ footprint (i.e. used for the drill holes top of the board for mounting holes) was imported from the SparkFun Eagle library and KiCad seems to think it is a non-plated hole for some reason.

我们这个设计不需要NPTH,那么发生了什么? ‘STAND-OFF’占地面积(即用于安装孔的钻孔顶部)是从SparkFun Eagle库导入的,KiCad似乎认为它是出于某种原因的非镀层孔。

To correct this go back to the PCB layout, click on the Plotter, click ‘Generate Drill File’ and select the box that says ‘Merge PTH and NPTH holes into one file’. In a later section, we’ll go over how to edit the ‘STAND-OFF’ footprint to use a regular PTH hole.

要更正这一点,请返回PCB布局,单击绘图仪,单击“Generate Drill File”,然后选择“Merge PTH and NPTH holes into one file”框。 在后面的部分中,我们将讨论如何编辑’STAND-OFF’引脚以使用常规PTH孔。

Solder Paste Stencils焊锡膏钢网模板

Are you doing SMD reflow? Need to order a stencil to apply the solder paste to your board? Turn on F.Paste in the Plot window to generate the top paste layer.

你在做SMD回流焊吗? 需要订购钢网模板才能将焊膏涂在电路板上? 在Plot窗口中打开F.Paste以生成顶部焊锡膏钢网印刷层。

This *.gtp file is sent to a stencil fabricator to create the stainless steel or mylar solder paste stencil. If you’re unfamiliar with stenciling solder paste we have a fabulous tutorial.

此* .gtp文件被发送到模板制造商,以创建不锈钢或聚酯薄膜焊膏钢网。 如果您不熟悉模板焊膏,我们有一个很棒的教程。

We use OSHStencils for our proto stencils. The top paste layer is not needed to fabricate a PCB.

我们将OSHStencils用于我们的原型模板。 制造PCB不需要顶部焊膏层。

Order Your Board!下单订购你的电路板!

If you’re happy with your layout, let’s order some PCBs! Every fab house understand and works with gerber files, so navigate to the directory on your computer where your KiCad project resides.

如果您对电路图布局感到满意,那就让我们订购一些PCB吧! 每个工厂都了解并使用gerber文件,因此请进入到计算机上KiCad项目所在的路径。

Gerber Files to ZIP

Select and zip the following 8x files:

选择并压缩以下8x文件:

  • *.drl – Drill file
  • *.gbl – Gerber Bottom Layer
  • *.gbs – Gerber Bottom Soldermask
  • *.gbo – Gerber Bottom Silkscreen (Overlay)
  • *.Edge.Cuts.gm1 – Board Outline (Gerber Mechanical 1)
  • *.gtl – Gerber Top Layer
  • *.gts – Gerber Top Soldermask
  • *.gto – Gerber Top Silkscreen (Overlay)
  • *.drl – 钻孔文件
  • *.gbl – Gerber底层铜走线
  • *.gbs – Gerber底层阻焊层
  • *.gbo – Gerber底层丝印层
  • *.Edge.Cuts.gm1 – 电路板轮廓层
  • *.gtl – Gerber顶层铜走线
  • *.gts – Gerber顶层阻焊层
  • *.gto – Gerber顶层丝印层

You could zip all the files in the directory and send them off to your fab house but I don’t recommend it. There are a tremendous number of PCB layout software packages generating all sorts of different file names and formats. It’s often difficult to tell if *.cmp is a gerber file or something else. Does the customer care about the *.gtp file or is that just extra? It’s better to give the fab house only what you want fabricated.

您可以压缩目录中的所有文件并将它们发送到您的工厂,但我不推荐它。 有大量的PCB布局软件包生成各种不同的文件名和格式。 通常很难判断* .cmp是否是一个gerber文件或其他东西。 客户是否关心* .gtp文件或仅仅是额外的? 最好只为工厂提供你想要的东西。

The final step? Order your boards! The gerbers are the universal way to communicate with a PCB vendor. There are hundreds if not thousands of PCB vendors out there. Shop around!

最后一步? 订购你的电路板gerber文件是与PCB供应商沟通的通用方式。 网上有数百家,甚至数千家PCB供应商。 到处逛逛看!

In addition to your gerbers, you’ll need to specify via email or the PCB vendor’s website various elements of the PCB:

除了你的gerbers,你还需要通过电子邮件或PCB供应商的网站指定PCB的各种参数:

  • What thickness PCB? 1.6mm is standard but 0.8mm is just as rigid and may help with 50 ohm trace impedance matching.
  • What color soldermask? Green is default but red looks awesome.
  • What color silkscreen? White is most common but other colors are available.
  • How many layers? This example is a 2x layer board meaning there is just a top copper and bottom copper. However, some designs need to have 4x, 10x, and even 16x layers to route the board. Additional layers increase the cost significantly.
  • PCB的厚度? 1.6mm是标准配置,但0.8mm也是可以的,并且可能有助于50欧姆的走线阻抗匹配。
  • 阻焊层颜色? 绿色是默认的,但红色看起来很棒。
  • 丝印颜色? 白色最常见,其它可选,需与阻焊层颜色有较大区分才能显得清晰。
  • 电路板层数? 这个例子是一个2x层板,意味着只有顶部铜和底部铜。 但是,有些设计需要4x,10x甚至16x层来布线电路板。 附加层显著地增加了成本,对供应商的制造能力也提出了更高的要求。

The Soldermask Looks Big

阻焊层看起来很大

If you had a look at the soldermask on this PCB and wondered why it looked odd, you’re not alone. Let’s compare the PCB’s soldermask for KiCad (as shown in green) and Eagle (as shown in pink). You should notice two things:

如果你看一下这块PCB上的焊接层并想知道为什么它看起来很奇怪,不止你这么觉得。 让我们比较用于KiCad(如绿色所示)和Eagle(如粉红色所示)的PCB焊接层。 你应该注意两件事:

  1. In the KiCad design, I have a pad on the main sensor that looks like it’s slightly mis-placed. Pad 1 doesn’t line up with the other pads. Weird. It’s a problem that needs to be fixed, but the error won’t kill the board.
  2. More importantly, the soldermask on the Eagle design has gaps between the pins on the connector and the sensor IC. This will help reduce solder bridging between pins. In the KiCad version, the mask apertures look too big.
  1. 在KiCad设计中,我在主传感器上有一个焊盘,看起来有点错位。 焊盘1不与其他焊盘对齐。 奇怪的。 这是一个需要修复的问题,但错误不会导致失败。
  2. 更重要的是,Eagle设计上的阻焊层在连接器上的引脚和传感器IC之间存在间隙。 这将有助于减少引脚之间的连锡。 在KiCad版本中,阻焊区看起来太大了。

KiCad Soldermask

KiCad Soldermask

KiCad的阻焊

Eagle Soldermask

Eagle Soldermask

Eagle 的阻焊

In the image below, we can see the SMD Qwiic connector within Eagle. The default soldermask clearance is 0.1mm per side in Eagle.

在下图中,我们可以看到Eagle中的SMD Qwiic连接器。 Eagle的默认焊接掩模间隙为每边0.1mm。

Soldermask Clearance for Qwiic Connector

In KiCad’s Pcbnew, open the ZOPT220x Breakout and click on Dimensions -> Pads Mask Clearance. KiCad’s solder mask clearance has a default of 0.2mm per side. We recommend you change this value to 0.1mm. Most fab houses will use 0.1mm as their default as well. You will then need to re-export your gerbers and load them back into GerbView.

在KiCad的Pcbnew中,打开ZOPT220x Breakout并点击Dimensions – > Pads Mask Clearance。 KiCad的阻焊区间隙默认为每边0.2mm。 我们建议您将此值更改为0.1毫米。 大多数电路板制造商也将使用0.1mm作为默认值。 然后,您需要重新导出Gerber并将其加载回GerbView。

KiCad Pad Mask Clearance

Making the clearance smaller than 0.1mm will cause difficulties for the fab house to get the registration correct.

使间隙小于0.1mm将导致电路板制造商难以定位。

什么是定位? 它是不同层的对齐方式。 如果阻焊层偏离铜层2mm,则需要焊接的SMD焊盘将被阻焊层覆盖。电路板制造商必须以高精度对齐这些层才能制成正确功能的电路板。 将间隙减小到0.1mm以下使得电路板制造商必须具备较强的误差控制能力并且可能导致延迟交期或增加制造成本。

Creating a Custom KiCad Footprint Library创建自定义KiCad封装库

This section will show you how to create your own local custom footprints so that you can use them and connect them to schematic components using CvPcb. We’re going to assume you’ve already been through the previous sections of this tutorial; you should have KiCad downloaded and installed.

本节将向您展示如何创建自定义封装,以便您可以使用它们并使用CvPcb将它们连接到原理图元件。 我们假设您已经完成了本教程的前几部分; 你应该下载并安装KiCad。

Open KiCad’s project manager and then click on the PCB footprint editor button.

打开KiCad的项目管理,然后单击PCB footprint editor按钮。

PCB Footprint Editor

You may get the warning. That’s ok, just click through it. This is KiCad’s way of telling you it’s going to create the default table of libraries that link to KiCad’s extensive GitHub repos.

你可能会得到警告。 没关系,只需点击它即可。 这是KiCad告诉你它将创建链接到KiCad广泛的GitHub上默认存储。

Warning

Click Preferences -> Footprint Libraries Manager. This will open the list of all the footprint libraries now accessible to you.

单击Preferences -> Footprint Libraries Manager。 这将打开您现在可以访问的所有封装库的列表。

Footprint Libraries Manager

This is a tremendous list of libraries! Click ‘OK’ to close the manager.

这是一个巨大的元件库! 单击“OK”关闭管理窗口。

PCB Footprint Libraries Tables

Let’s poke around these libraries. Click on ‘Load footprint from library’ button and then ‘Select by Browser’. This is a handy tool for perusing the available footprints.

让我们来看看这些库。 单击“Load footprint from library”按钮,然后单击“Select by Browser”。 这是一个用于细读可用封装的便利工具。

Load Footprint from Library

Navigate to the LEDs -> LED_CREE-XHP50_12V footprint. Here is an example footprint in LEDs library. Double click on this footprint to open it up in the editor.

导航至LEDs -> LED_CREE-XHP50_12V封装。 以下是LED库中的示例封装。 双击此封装可在编辑器中将其打开。

Library Browser

Note the title bar of the editor window has changed. The active library is now LEDs and it is read only. Obviously KiCad wants to control their libraries; not just anyone can save to their repos. If we want to edit this footprint we need our own local copy.

请注意编辑器窗口的标题栏已更改。 活动库现在是LED,它是只读的。 显然KiCad想控制他们的封装库; 不只是任何人都可以保存修改到他们的线上库。 如果我们想要编辑这个封装,我们需要在本地创建副本。

Open Example Footprint

Let’s create a local directory to keep all our local footprints. For this tutorial, please create a local folder called ‘C:\KiCadLibs\’ (or your platform’s equivalent).

让我们创建一个本地目录来保留我们所有的本地封装。 在本教程中,请创建一个名为“C:\ KiCadLibs”的本地文件夹(或您的平台等效文件夹)。

Now click on File->Save Footprint in New Library.

现在单击New Library中的File-> Save Footprint。

Save Footprint in New Library

I recommend using different directory names for different sets of footprints (resistors, connectors, LEDs, etc). Select the ‘KiCadLibs’ folder that was created and then type ‘\LEDs’. KiCad will create the new ‘LEDs.pretty’ directory with a file ‘C:\KiCadLibs\LEDs.pretty\LED_CREE-XHP50_12V.kicad_mod’. And we’re off to the races. Except, not quite yet.

我建议为不同的封装组(电阻器,连接器,LED等)使用不同的目录名称。 选择已创建的“KiCadLibs”文件夹,然后键入“\ LEDs”。 KiCad将使用文件‘C:\ KiCadLibs \ LEDs.pretty \ LED_CREE-XHP50_12V.kicad_mod’创建新的’LEDs.pretty’目录。 而我们正在参加比赛。 除了,还没有。

Save Footprint to Different Directory

Notice the title bar in the Footprint Editor still states the active library is LEDs and is read only. We need to switch the active directory to our local folder. I’m going to head you off: File->Set Active Directory doesn’t work as it only gives you the list of libraries that KiCad ships with. Oh KiCad!

请注意,“封装编辑器”中的标题栏仍指出活动库是LED并且是只读的。 我们需要将活动目录切换到本地文件夹。 我要告诉你:File->Set Active Directory 不起作用,因为它只提供了KiCad附带的库列表。

Before we can set our new footprint directory as active, we need to make KiCad aware of it. Re-open the Preferences -> Footprint Libraries Manager.

在我们将新的封装路径设置为活动之前,我们需要让KiCad知道它。 重新打开Preferences -> Footprint Libraries Manager

Add Footprint Libraries Wizard

Click on the ‘Append with Wizard’ button. You’ll be asked to locate the directory you want to add. In this case, we want to add the ‘Files on my computer’. Click on the ‘Next >’ button, select the directory we created (i.e. ‘C:\KiCadLibs\LEDs.pretty’. Click on ‘Next >’ a few times. When prompted ‘Where do you wish the new libraries to be added’, select ‘To Global library configuration (visible to all projects)’ and click ‘Finish’.

单击“Append with Wizard”按钮。 系统会要求您找到要添加的目录。 在这种情况下,我们要添加“我的计算机上的文件”。 单击“Next>”按钮,选择我们创建的目录(即’C:\KiCadLibs\LEDs.pretty‘。点击’下一步>’几次。出现提示’你希望在哪里添加新库 ‘,选择’To Global library configuration(对所有项目都可见)’并单击’Finish‘。

KiCad may throw an error because the ‘LEDs’ nickname is used twice. I renamed mine to ‘LEDs-Custom’ then click on ‘OK’ to close out the Footprint Libraries Manager.

KiCad可能会抛出错误,因为“LED”昵称被使用了两次。 我将我的名字重命名为’LEDs-Custom‘,然后点击’OK‘关闭Footprint Libraries Manager。

Add Footprint Libraries Wizard Error

If you inspect the Footprint Editor tool bar again, you’ll see the LEDs library is still active and read only. Now we can click on ‘File->Set Active Library’. Here is where KiCad shines – the Filter works well. Type LED and select the LEDs-Custom library.

如果再次检查“封装编辑器”工具栏,您将看到LED库仍处于活动状态且只读。 现在我们可以点击’File->Set Active Library‘。 这是KiCad的一大亮点 – 过滤器效果很好。 键入LED并选择LED-Custom库。

Active Local Library

At last! We have an active local library. Now when you click ‘Save footprint in local library’ or press ‘ctrl+s’ KiCad will prompt you with a Save Footprint window with Name (annoyingly every time). Press enter and your modifications will be saved.

最后! 我们有一个激活的本地库。 现在,当您单击“在本地库中保存足迹”或按“ctrl + s”时,KiCad将提示您使用名称保存封装窗口(每次都很烦人)。 按enter键,您的修改将被保存。

 警告:KiCad不会给您一个覆盖警告。 因此,如果您已经拥有一个名为“1206 LED”的足迹,但创建一个新的足迹并将其保存为“1206 LED”,KiCad将覆盖旧的足迹而不会检查。

Now you can explore creating and editing footprints using the Footprint Editor.

现在,您可以使用“封装编辑器”探索创建和编辑引脚封装。

After you’ve created your first footprint or two be sure to read KiCad’s KiCad Library Conventions (KLC). It’s a well documented system for creating community share-able footprints. Left to our own devices we will all create things a little differently; the KLC tries to get us all on the same page and SparkFun follows it.

在您创建了第一个或第二个封装之后,请务必阅读KiCad的KiCad库约定(KLC)。 它是一个记录良好的系统,用于创建社区可共享的封装。 留给我们自己的设备,我们都会创造一些不同的东西; KLC试图让我们所有人都遵循同一标准,SparkFun也会遵循。

In the future, if you’re creating a lot of footprints consider using git repo to manage the changes. At SparkFun, we use the following structure:

将来,如果您要创建大量封装,请考虑使用git repo来管理更改。 在SparkFun,我们使用以下结构:

  • \SparkFun-KiCad-Libraries – A git repo directory containing all KiCad schematic component files (*.lib)
  • \SparkFun-KiCad-Libraries\Footprints – Contains directories of footprints
  • \SparkFun-KiCad-Libraries\Footprints\LEDs.pretty – Directory containing all the LED footprints (*.kicad_mod)
  • \SparkFun-KiCad-Libraries\Footprints\Sensors.pretty – Directory containing all the sensor footprints (*.kicad_mod)
  • etc.
  • \SparkFun-KiCad-Libraries – 包含所有KiCad原理图元件文件(* .lib)的git repo目录
  • \SparkFun-KiCad-Libraries\Footprints – 包含封装目录
  • \SparkFun-KiCad-Libraries\Footprints\LEDs.pretty – 包含所有LED封装的目录(* .kicad_mod)
  • \SparkFun-KiCad-Libraries\Footprints\Sensors.pretty – 包含所有传感器封装的目录(* .kicad_mod)
  • 以此类推…

By using a git repo, SparkFun engineers and our users can contribute schematic components and footprints.

通过使用git repo,SparkFun工程师和我们的用户可以提供原理图元件和封装。

Paring Down the KiCad Libraries削减KiCad库

When opening CvPcb to assign footprints to the schematic components, it can take a very long time to load. This is because KiCad is pinging all the KiCad github repos and pulling down 93 libraries. To make this faster, we recommend removing the libraries that are either deprecated or libraries that you will never use.

打开CvPcb以将封装分配给原理图元件时,可能需要很长时间才能加载。 这是因为KiCad正在检索所有KiCad github repos并拆除93个库。 为了加快速度,我们建议您删除不推荐使用的库或永远不会使用的库。

Remove Libraries Deprecated or Never Used

It’s quick and easy to remove a library: select a row in the Footprint Libraries Manager and click the ‘Remove Library’ button. If something goes wrong, don’t panic! Simply click ‘Cancel’ in the manager window and the library manager will close without saving changes. If things go really wrong, you can always delete the ‘fp-lib-table’ file and restart KiCad. This will cause it to create the footprint table with the KiCad defaults.

删除库快速简便:在Footprint Libraries Manager中选择一行,然后单击“Remove Library”按钮。 如果出现问题,请不要惊慌! 只需在管理器窗口中单击“取消”,库管理器将关闭而不保存更改。 如果出现问题,您可以随时删除’fp-lib-table’文件并重启KiCad。 这将导致它使用KiCad默认值创建封装表。

The footprint libraries table file (on Windows 10) is located in your AppData. It should look similar to: ‘C:\Users\Nathan\AppData\Roaming\kicad\fp-lib-table’ .

封装库文件(在Windows 10上)位于AppData中。 它应该类似于:’C:\ Users \ Nathan \ AppData \ Roaming \ kicad \ fp-lib-table‘。

注意:AppData是一个隐藏目录,因此您需要使隐藏文件夹可见。

Contents of fp-lib-table

The contents of ‘fp-lib-table’

‘fp-lib-table’的内容

Removing the deprecated libraries brings the default count down to 75 and CvPcb still takes an annoyingly long time to load. This is where you’ll have to make some tough decisions. Do you plan to ever need the ‘Shielding-Cabinets’ library? Perhaps. Perhaps not. If I ever do need an RF shield for a design, it will most likely be a custom part or a part that is notin the library. So that one gets the toss.

删除已弃用的库会将默认数降低到75,并且CvPcb仍然需要花费很长时间才能加载。 这是你必须做出一些艰难决定的地方。 你打算永远需要’Shielding-Cabinets’库吗? 也许是,也许不是。

SparkFun is taking a blended approach. We’re becoming very familiar with the default KiCad libraries and using their footprints wherever it makes sense. When we find or use a package we like, we copy it over to the SparkFun-KiCad-Libraries GitHub repo. At the same time, we’re continuing to leverage all our custom Eagle footprints that we’ve been using and creating for over a decade. We know and trust these footprints. I have had many PCBs ruined because I trusted someone else’s footprint so I tend to be very paranoid. Use the community where you can but be very rigorous about checking them for correctness.

SparkFun采用混合方式。 我们对默认的KiCad库非常熟悉,并在任何有意义的地方使用它们的封装。 当我们找到或使用我们喜欢的软件包时,我们将其复制到SparkFun-KiCad-Libraries GitHub repo。 与此同时,我们将继续利用我们十多年来一直使用和创造的所有定制Eagle封装。 我们了解并信任这些封装。 我已经损坏了许多PCB,因为我相信别人的封装,所以我往往非常偏执。 尽可能使用社区,但要非常严格地检查它们的正确性。

If you’re needing a generic 2×5 pin male header, check the KiCad libraries. It should work fine. However, if you’re using a more eclectic part, you may be better off creating the footprint from scratch. Even if the KiCad libraries contain the part, you’ll want to check it against the datasheet very closely and do a one to one test print.

如果您需要通用的2×5针公头,请检查KiCad库。 它应该工作正常。 但是,如果您使用的是更特殊的元件,那么最好从头开始创建封装。 即使KiCad库包含该部件,您也需要非常仔细地检查数据表并进行一对一的打印测试。

Using Eagle Footprints in KiCad

在KiCad中使用Eagle Footprints

If you’re familiar with Eagle, it can be scary to think all the time spent creating footprints will be lost when switching to KiCad. Don’t fear! KiCad inherently reads Eagle footprints! Yep, it’s built right in. Now don’t get too excited. KiCad can’t read your Eagle schematic components but we have a solution for that in a later section.

如果您熟悉Eagle,那么在切换到KiCad时,可能会觉得创建的所花费时间封装都会浪费。 别怕! KiCad可以可靠继承地读取Eagle的封装! 是的,它是内置的。先别太兴奋。 KiCad无法读取您的Eagle原理图元件,但我们在后面的部分中提供了解决方案。

Eagle Footprint

The approach we are taking at SparkFun is to link to a local copy of all our classic Eagle Librarie Anytime we need one of the Eagle footprints, we copy and paste it into a modern KiCad library. We don’t have to re-create the footprint but by moving it over to a KiCad library. We are able to then edit the footprint as needed. Furthermore, any new footprints are created from scratch and saved to the appropriate SparkFun KiCad library.

我们在SparkFun采用的方法是链接到我们所有经典Eagle Librarie的本地副本。任何时候我们需要一个Eagle封装,我们将其复制并粘贴到现代的KiCad库中。 我们不必重新创建封装,而是将其移动到KiCad库。 然后我们可以根据需要编辑封装。 此外,任何新的封装都是从头开始创建的,并保存到相应的SparkFun KiCad库中。

You should have already opened the PCB Footprint Editor at least once by now. This will have created a ‘fp-lib-table’ file that we will be editing shortly. Now to get started, be sure that KiCad is closed.

您应该至少已经打开了PCB封装编辑器一次。 这将创建一个我们将很快编辑的’fp-lib-table’文件。 现在开始,确保KiCad关闭。

Download the SparkFun Eagle Libraries from GitHub.

从GitHub下载SparkFun Eagle Libraries。

SPARKFUN EAGLE LIBRARY GITHUB REPOSITORY

Unzip them into a local directory of your choice. I store our Eagle libraries in a DropBox folder so both my desktop and laptop can access the same set of files.

将它们解压缩到您选择的本地路径中。 我将Eagle库存储在DropBox文件夹中,因此桌面和笔记本电脑都可以访问同一组文件。

You could use the Footprint Libraries Manager located in the footprint editor but adding or removing many libraries becomes tedious; it’s easier to edit the table file directly.

您可以使用封装编辑器中的封装库管理器,但添加或删除许多库变得乏味; 直接编辑表文件更容易。

fp-lib-table

The contents of fp-lib-table

p-lib-table的内容

The ‘fp-lib-table’ tells KiCad where to find all the various libraries and what types of libraries they are (KiCad, github, EAGLE, etc).

‘fp-lib-table’告诉KiCad在哪里可以找到所有各种库以及它们是什么类型的库(KiCad,github,EAGLE等)。

We are going to edit this file to add in the SparkFun libraries as well as remove the deprecated libraries and libraries that SparkFun doesn’t use.

我们将编辑此文件以添加到SparkFun库中,以及删除SparkFun不使用的已弃用的库和库。

Here are the files of importance:

以下是重要文件:

  • original fp-lib-table – This is what KiCad creates by default. You don’t really need to download it. It’s just for reference.
  • sparkfun fp-lib-table – The list of SparkFun libraries. You don’t need to download it, just for reference.
  • combined fp-lib-table – This is the combination of the original table, with extraneous libraries removed and SparkFun libraries added.

Download the ‘combined fp-lib-table’ to a local folder. Rename it to ‘fp-lib-table’. Now move the file to where KiCad expects it. The footprint libraries table file (on Windows 10) is located in the AppData folder similar to: ‘C:\Users\Nathan\AppData\Roaming\kicad\fp-lib-table’. You’ll want to overwrite the file that is there.

将’combined fp-lib-table’下载到本地文件夹。 将其重命名为’fp-lib-table’。 现在将文件移动到KiCad指定的路径。 封装库表文件(在Windows 10上)位于AppData文件夹中,类似于:’C:\ Users \ Nathan \ AppData \ Roaming \ kicad \ fp-lib-table‘。 你会想要覆盖那里的文件。

Once the file is in place, re-open KiCad, open the PCB footprint editor, and finally the Footprint Libraries Manager. You should see a long list of libraries including the new SparkFun libraries.

注意:AppData是一个隐藏目录,因此您需要使隐藏文件夹可见。
文件到位后,重新打开KiCad,打开PCB封装编辑器,最后打开Footprint Libraries Manager。 您应该看到一长串库,包括新的SparkFun库。

Included SparkFun Libraries

The last step is to tell KiCad the local path to the SparkFun libraries. Currently it’s a variable called SFE_LOCAL. We need to assign this to something. Close the Library Manager window, click on Preferences -> Configuration Paths. Click the ‘Add’ button. Edit the Name and Path fields.

最后一步是告诉KiCad SparkFun库的本地路径。 目前它是一个名为SFE_LOCAL的变量。 我们需要将其分配给某些东西。 关闭Library Manager窗口,单击Preferences – > Configuration Paths。 单击“Add”按钮。 编辑名称和路径字段。

In the image below, you can see I’ve set the ‘SFE_LOCAL’ variable to a local path of ‘C:\Users\nathan.seidle\Dropbox\Projects\SparkFun-Eagle-Libraries\’. Set this variable to wherever you locally stored the SparkFun Eagle Libraries.

在下图中,您可以看到我已将’SFE_LOCAL‘变量设置为’C:\Users\nathan.seidle\Dropbox\Projects\SparkFun-Eagle-Libraries\‘的本地路径。 将此变量设置为本地存储SparkFun Eagle Libraries的位置。

Local Path Configuration

Congratulations! You can now see, use, and copy all the SparkFun Eagle libraries.

恭喜! 您现在可以查看,使用和复制所有SparkFun Eagle库。

Included SparkFun Eagle Libraries

Creating Custom KiCad Schematic Components创建自定义KiCad原理图元件

Once you’ve learned to create your own schematic parts and custom footprints, you become unlimited by what technologies you can play with. Let’s get started!

一旦您学会了创建自己的原理图元件和自定义封装,您就可以通过您可以自由的使用该软件了。 让我们开始吧!

From the main project window start the Schematic library editor.

从主项目窗口启动Schematic库编辑器。

Schematic Library Editor

This process is similar to how we started a custom footprint library. First, let’s find a schematic symbol we want to start our custom library with. The photocell is just as common as it gets. Let’s pull in the ‘R_PHOTO’ schematic component from the device library and use it to start our new custom schematic component library.

此过程类似于我们启动自定义封装库的方式。 首先,让我们找一个我们想要启动自定义库的原理图符号。它就像光敏电阻一样普遍。 让我们从设备库中提取“R_PHOTO”原理图组件,并使用它来启动我们新的自定义原理图元件库。

Start by clicking on the ‘Selecting working library’ (i.e. book) icon located in the upper left corner. Then select ‘device’to set the working library.

首先单击位于左上角的“Selecting working library”(即书籍)图标。 然后选择“device”以设置工作库。

Select Device

Click on the ‘Load component to edit from current library’ button and type r_photo in the filter to quickly locate the photoresistor component. When located, click ‘OK’.

单击“Load component to edit from current library”按钮并在过滤器中键入r_photo以快速定位光敏电阻元件。 找到后,单击“OK”。

Load Component

Click on ‘Save current component to new library’ button

单击“Save current component to new library”按钮

Save Current Component to New Library

I recommend you store this *.lib file in the same ‘C:\KiCadLibs\’ directory we stored the footprint library within. I called my lib file ‘CustomComponents.lib’ so that I know these are mine.

我建议你将这个* .lib文件存储在我们存储封装库的同一个’C:\ KiCadLibs \’目录中。 我调用了我的lib文件’CustomComponents.lib‘,以便我知道这些是我的。

Save Custom Component

Once you click ‘Save’, a warning will pop up. This is just KiCad’s polite way of letting you know that you can’t access your library until you link to it. So let’s do that.
单击“Save”后,将弹出警告。 这只是KiCad礼貌的方式,让您知道在链接到您的库之前无法访问您的库。 所以,让我们这样做。

Warning

Click on Preferences -> Component Libraries to view the current set of libraries. In the image below, we can see the stock schematic component libraries that ship with KiCad. Next to the ‘Component library files,’ click ‘Add’.

单击Preferences – > Component Libraries查看当前的库集。 在下图中,我们可以看到KiCad附带的库存原理图元件库。 在“Component library files”旁边,单击“Add”。

Component Libraries

Navigate to your ‘C:\KiCadLibs’ directory and then open ‘CustomComponents.lib’. It should now appear at the bottom of the Component library files list. Click ‘OK’ to return to the library editor.

导航到“C:\KiCadLibs”目录,然后打开“CustomComponents.lib”。 它现在应该出现在元件库文件列表的底部。 单击“OK”返回库编辑器。

Again, click on the ‘Select working library’ button but this time either scroll to your custom list or type ‘Custom’ to find the ‘CustomComponents’ library. Click ‘OK’.

再次单击“Select working library”按钮,但这次要么滚动到自定义列表,要么键入“Custom”以查找“CustomComponents”库。点击“OK”。

Select Working Library

Then click on ‘Load component to edit from the current library’ button and we should see only the photoresistor schematic component. Double click on R_PHOTO to begin editing it.

然后单击“Load component to edit from the current library”按钮,我们应该只看到光敏电阻原理图元件。 双击R_PHOTO开始编辑。

R_PHOTO

Now at this point, we can add new symbols from scratch to our library and we can also copy from one library to another.

现在,我们可以从头开始向我们的库添加新符号,我们也可以从一个库复制到另一个库。

How to Copy a Component to Your Custom KiCad Library如何将元件复制到自定义KiCad库

KiCad is always changing and they’ve made leaps and bounds improvements but copying a schematic component from one library to another is still a bit wild.

KiCad总是在变化,他们已经实现了跨越式的改进,但是将原理图元件从一个库复制到另一个库仍然有点疯狂。

For example, let’s copy the CP2104 from the silabs library into our custom library. Start by setting the active library to the one that contains the part you want to copy by clicking on the ‘Select working library’ button. In our example, we want to set silabs as the active library.

例如,让我们将CP2104从silabs库复制到我们的自定义库中。 首先将活动库设置为包含要复制的部分的库,方法是单击“Select working library”按钮。 在我们的示例中,我们希望将silabs设置为活动库。

Selecting silabs library into custom library

Load the CP2104 component by clicking on the ‘Load component to edit from the current library’ button.

通过单击“Load component to edit from the current library”按钮加载CP2104元件。

Now set the active library to the library we want to copy the CP2104 into. For this example, that means that we need to click on the ‘Select working library’ button and set the active library to ‘CustomComponents’.

现在将活动库设置为我们要将CP2104复制到的库。 对于此示例,这意味着我们需要单击“Select working library”按钮并将活动库设置为“CustomComponents”。

Custom Components

Click on the ‘Update current component in current library’ button to save the component in CustomComponents.lib. The ‘Save current library to disk’ button will become enabled and you can save this component to your custom library.

单击“Update current component in current library”按钮,将元件保存在CustomComponents.lib中。 “Save current library to disk”按钮将变为启用状态,您可以将此元件保存到自定义库中。

Load Component to Edit

To verify it’s now in the library click on the ‘Load component to edit from the current library’ button. You should see your new shiny CP2104 in the list.

要验证它现在在库中,请单击“Load component to edit from the current library”按钮。 您应该在列表中看到新的闪亮CP2104。

How to Delete a Component from Your Custom KiCad Library如何从自定义KiCad库中删除元件

Bad CP2104! Bad component.

错误的CP2104! 错误的元件。

To remove a component, be sure you’ve set your custom library as the active one. Let’s try removing the component that we just added in our custom library CustomComponents.lib. If you have not already, click on ‘Select working library’ to set the active library to CustomComponents. Click on the ‘Delete component in current library’ (i.e. the trash can) button. You’ll be prompted for which component you want to remove. Select CP2104 from the list.

要删除元件,请确保将自定义库设置为活动库。 让我们尝试删除我们刚刚在自定义库CustomComponents.lib中添加的组件。 如果您还没有,请单击“Select working library”以将活动库设置为CustomComponents。 单击“Delete component in current library”(即垃圾箱)按钮。 系统将提示您输入要删除的元件。 从列表中选择CP2104。

Delete a Component from Custom Library

Click ‘OK’ and then ‘Yes’ to delete the component from the library. Click the ‘Current library to disk’ button and ‘Yes’ to save.

单击“OK”,然后单击“Yes”从库中删除组件。 单击“Current library to disk”按钮,然后单击“‘Yes”进行保存。

Shout out to Joan_Sparky! He is the best! (No relation)

向Joan_Sparky喊道! 他是最棒的! (没关系)

KiCad Library Convention

KiCad库的约定

Be sure to check KiCad’s KiCad Library Convention once you get comfortable creating components. These conventions take into account a heap of industry specialized knowledge that we can all benefit from.

一旦您熟悉元件,请务必查看KiCad的KiCad库的约定。 这些惯例考虑了我们都可以从中受益的一系列业界专业知识。

Resources and Going Further相关资料和更多详情

Congratulations! That was a big tutorial and you made it through.

恭喜! 这是一个很长的教程,你已经完成了它。

For more information related to KiCad, check out the resources below:

有关KiCad的更多信息,请查看以下资源:

Now that you’ve learned how to modify schematics, PCB layouts, and libraries, it’s time to try out your skills on your own custom project. We recommend using the ZOPT220x UV Sensor Breakout KiCad files as the starting point for your next project. From this example project, you can delete or add devices as you need rather than starting from a blank canvas.

现在您已经学会了如何修改原理图,PCB布局和库,现在是时候在自己的自定义项目上尝试自己的技能了。 我们建议使用ZOPT220x UV Sensor Breakout KiCad文件作为下一个项目的起点。 在此示例项目中,您可以根据需要删除或添加元件,而不是从空白画布开始。

Also, check out SparkFun’s Enginursday blog post about KiCad.

另外,查看SparkFun的关于KiCad的Enginursday博客文章。

Enginursday: KiCad and Open-Source Design

Enginursday:KiCad和开源设计

FEBRUARY 25, 2016

Eagle to KiCad

Eagle到KiCad

If you are an EAGLE guru starting to get your feet wet with KiCad, be sure to checkout Lachlan’s Eagle to KiCad converter for converting your Eagle PCB layouts to KiCad. It’s not perfect but Lachlan has done a tremendous amount of groundwork.

如果你是一个EAGLE熟手开始尝试使用KiCad,请务必检查Lachlan的Eagle到KiCad转换器,将Eagle PCB布局转换为KiCad。 这并不完美,但拉克兰已经做了大量的基础工作。

Thanks for reading and if you have any comments or questions please ask them in the comments section.

感谢阅读,如果您有任何意见或问题,请在评论部分留下高见。


cc

原始文章采用CC BY-SA 4.0,您可以自由地:

  • 演绎 — 修改、转换或以本作品为基础进行创作
  • 在任何用途下,甚至商业目的。
  • 只要你遵守许可协议条款,许可人就无法收回你的这些权利。

本文由翻译美国开源硬件厂商Sparkfun(火花快乐)的相关教程翻译,原始教程采用同样的CC BY-SA 4.0协议,为便于理解和方便读者学习使用,部分内容为适应国内使用场景稍有删改或整合,这些行为都是协议允许并鼓励的。

原始文章及相关素材链接:

https://learn.sparkfun.com/tutorials/beginners-guide-to-kicad/introduction

介绍

对任何电子产品修补工具来说,光的操纵是非常有用的技能。从照明到红外数据传输,光以无数有用的方式桥接电子和物理。

波长

光束的关键定义特征是其波长。光作为波在空间中传播,两个波峰之间的距离是该光束的波长。在人类的认知中,波长决定了光束的颜色。替代文字

因为物理学中没有任何东西可以简单,光束也可以表现为粒子流或光子(masochists可以参考本文关于光的波/粒子二元性)。波长较短的光每个光子具有更多能量。

强度

光束的另一个特征是其强度。辐射强度通过能量与冰淇淋圆锥顶部的圆圈所界定的球体表面相交的速率来测量,单位为瓦特每立体弧度。要理解这一点,想象一个球体中心有一颗小小的星星,光从各个方向均匀地从恒星散开。现在,添加一个冰淇淋圆锥,其尖端位于恒星的中心,延伸到球体表面。锥体底部的角度是一个弧度(圆圈中有2π弧度;一个弧度约为57.3°)。由这个假想的冰淇淋圆锥体定义的区域称为球面度

替代文字

一个steradian的图形描述。一束光的辐射强度由光束的​​瓦特数除以该表面区域来描述(图片由维基媒体公共图片提供)

可见光与不可见光

当我们谈论光时,我们通常意味着可见光 – 就像彩虹和阳光的这些美妙的东西。然而,光可以跨越非常宽的波长范围。这被称为电磁波谱。

电磁波谱

(全谱的电磁辐射。可见光是一个很小的部分!图片由Philip Ronan创作)

在一端,有伽马射线和X射线,它们是令人讨厌的高能电离电磁辐射,从根本上与生命不相容。另一方面,非常低频的长波无线电波携带的信息跨越很远的距离,让人们可以看到宇宙本身的起源。

在这篇文章中,我们会谈到可见光和最接近它的区域:红外线和紫外线。从紫外线到远红外线,光的表现与我们以前用可见光看到的非常相似:阴影投射,镜头可以聚焦它,它可以通过,例如白纸等,进行漫反射。一旦波长变得越来越短,事情就会开始变得奇怪,让我们继续讨论这个问题。

我们将讨论三种不同的光:紫外线,可见光和红外线。紫外线是光,其波长略短于可见光; 红外线,稍微长一些。在这三组中,可见光和红外线在电子设备中更有用和常见,我们会相应地谈论它们更多时间。

紫外光线

紫外线是在10nm和400nm之间的光,将其置于X射线和可见光之间。紫外线对生命形式非常有害 – 你可能最熟悉的是,它会把人晒伤。

紫外光谱

紫外线-A

UVA(315nm至400nm波长)是紫外光的最低能量带。人类几乎都可以看到它,许多昆虫,甚至一些鸟类都可以看到这个光带。白色荧光灯泡和白色LED就是通过将材料暴露于UVA光来工作的。而UVA光吸收UVA光子并发射可见光谱中的光子,我们看到就是白色的。

UVA也经常用于检测伪造文件; 作为防止伪造的对冲工具,很多文本(护照,驾驶执照和银行纸币,仅举几例)在UVA辐射下会产生发光的水印。Blacklight海报是另一个对UVA光有反应的例子,漂白剂,肥皂和许多生物材料在暴露于UVA时也会发光。而阳光中的大多数UVA光可以到达地球表面。

替代文字

400nm UVA LED显示出20美元的防伪功能。

紫外线-B

UVB(280nm至315nm)是比UVA更高的能级光。它存在于阳光中,不仅造成晒伤或·皮肤癌的皮肤损伤,而且还会阻碍人体内维生素D的合成。焊枪也会产生这种光的, 即使短时间接触焊枪的火炬,哪怕在合理的距离,如果观察者没有受到保护,也会造成严重的眼睛损伤。

焊枪火炬

焊炬产生大量UVB和UVC光。焊工必须尽量减少暴露,以避免晒伤和眼睛损伤(图片由维基百科提供)

普通窗玻璃可以很好地阻挡UVB光; 这就是为什么从敞开的车窗中伸出一只手臂会导致该手臂晒伤。理查德费曼(诺贝尔奖获得者和着名的邦戈音乐家)使用皮卡车的挡风玻璃观察三位一体的核试验爆炸,以保护自己免受爆炸产生的紫外线辐射。

只有大约10%的太阳发出的UVB光到达地球表面; 另外90%被大气吸收(主要是臭氧层)。

紫外线-C

对于我们来说,UVC(100nm到280nm)往往是有趣的紫外线的极限。太阳的UVC几乎没有一个到达地球表面,大气层非常有效地将其阻挡在外。

在过去的一段糟糕的时期,在EEPROM存储器和闪存(可以电子擦除和重写)出现之前,唯一的非易失性,非磁性电子数据存储方式是EPROM。一旦写完EPROM,它就只能通过暴露在强大的UVC光源下20-30分钟来消除。对于一个业余爱好者来说,很长一段时间才能确定您对代码所做的更改是否修复了错误!

紫外可擦除微芯片

一种旧的可紫外擦除的PIC16C765微控制器。模具上的窗口由石英制成,因为普通玻璃对紫外线不透明。

可见光

可见光是(约)380nm至740nm范围内的光。这是可以变化的,因为有些人的眼睛能够检测出比这更低或更高波长的光,但一般来说,大多数人的眼睛都对这个区域很敏感。

可见光谱

人眼

人眼感知光的方式有两个特点:我们的眼睛对不同波长的不同强度的光敏感,我们的眼睛以对数而不是线性的方式感知光强度。

对颜色的感知

正如您在此图表中所看到的,我们的眼睛以不同的效率感受到不同波长的光,混合感知的强度以产生我们称之为“颜色”的光。此外,您还可以看到,在低光照水平下,我们对颜色的感知会变得偏斜。

人眼的亮度曲线

人眼的暗视和明视光度曲线。假设光源的辐射强度都相等,这些曲线显示了波长对光源的感知强度。

因此,开发了一种特殊的光强度单位坎德拉。坎德拉根据其颜色对光源的强度进行加权; 无论波长如何,人眼都会感觉到一个坎德拉光源与另一个坎德拉光源具有相似的亮度。LED的亮度是在毫坎德拉的术语(MCD)典型地给出,并且跨越颜色的感知强度差的巨大的示范可以考虑一个RGB的强度的LED,例如当可以看出这一个:800mcd用于蓝色,4000mcd为绿色,和900mcd的红色。我在下面的图表上标记了这三种颜色(467.5nm,520nm和625nm)的波长。

RGB LED标记在明视曲线上

在该明视曲线上标记了三色LED中的蓝色,绿色和红色LED的相对强度。比较相对强度(红色为.15,绿色为.7,蓝色为.3)与LED数据表(800mcd,4000mcd和900mcd)给出的三种颜色的毫安德拉等级。比率不准确,曲线上具有更高毫克级别的颜色也更高。

眼睛可以被愚弄到通过混合不同波长检测不存在的光的波长; 大多数彩色显示器都是按照这个原则工作的。实际上只有三种颜色(某种形式的红色,绿色和蓝色); 通过混合不同强度的三种浅色,可以模拟绝大多数自然色(至少就我们的眼睛而言)。

颜色混合图

红色,绿色和蓝色光源的颜色混合。通过调整光照水平,可以模拟大量其他光色。

对强度的感知

我们自然倾向于将光视为线性现象。给定两个光源,我们可以合理地认为一个光源的亮度是另一个光源的两倍。我们已经看到了它会如何受到颜色的影响; 现在让我们考虑一种颜色的光的强度相对于我们对它的感知。LED的强度随着用于驱动它的电流线性变化。

LED电流与强度

通过将LED指向光电二极管并从0-25mA线性地线性增加LED驱动电流来收集实际数据。

我们做一个小实验。如果您有Arduino,面包板,电阻器,LED和按钮,请启动此电路,下载代码,然后将代码烧录到Arduino上。

替代文字

这个电路非常简单:按下按钮一次,LED就会亮起。按下并按住它,LED将开始变亮。释放它,LED将停止变亮,Arduino将通过串行端口打印出当你停止它比它开始时更亮时,LED的亮度是多少。当它的亮度是启动时的两倍时,试着去停住LED。你会发现很难办到。

为什么这么难?LED的光输出是线性的,因此可以通过LED的电流加倍使其发出的光能量增加一倍。但是,您的眼睛不会以线性的方式感应,它会以对数的方式去感应。原因很简单:我们的眼睛需要在从星光到日光的各种照明条件下为我们提供有用的信息。在满月下无云的夜晚,光线强度只有阳光灿烂的一天的1/44000,但我们的眼睛必须在这两个极端和两者之间的任何地方运作良好!这使得判断线性光源的相对亮度非常困难。

色盲

顾名思义,色盲并不能简单地感知颜色。事实上有很多种色盲, 最常见的是红绿色盲,在一定程度上影响了近10%的男性人口。

色盲可以通过简单的测试来诊断,其中要求受试者识别由相同尺寸的点的背景的不同颜色的点产生的图案或符号。

石原试板

来自Ishihara色盲测试的测试板。色觉正常的人会看到数字74; 色盲人员可能会看到21号或根本没有号码,具体取决于存在的缺陷类型。

作为对我们这些有色盲的人的善意,请尽量不使用颜色来传达信息。有些糟糕的设计比如改变颜色以表示条件的LED(绿色表示“好”,红色表示“失败”),使用一系列颜色映射以将数值连接到区域,以及除白色之外的文本颜色 – 黑色或黑白色。

红外线

红外光是波长比可见光长的光,但波长比微波短。它的波长可以是从700nm到1mm(1,000,000nm)的任意值,使其成为比紫外或可见光更大的光谱段。从太阳到达地球表面的光有55%是红外线。

红外光谱

近红外

近红外线是电子产品中非常感兴趣的区域:这是红外遥控器,物体传感器和距离探测器工作的区域。它仅略高于可见范围,并且使用固态技术创建和检测非常容易。

红外发射器/探测器对

SparkFun匹配的红外发射器/探测器对。价格低廉,但极易受到环境中可见光和红外光的干扰。

近红外波段延伸至1400nm。共发射极波长为850nm950nm。我们周围都有大量的近红外光,很大可能是干扰红外信号和传感。大多数红外信号系统(例如红外遥控器)通过以固定频率调制光束解决这个问题,而不是试图滤除那些不是所需波长的光。

替代文字

调制IR接收器模块。这款小型IC可以寻找以38kHz脉冲的红外光,并尝试将其解释为数据信号。

数码相机也能很好地检测到近红外线。事实上,大多数数码相机都有一个物理过滤器来阻挡检测到的红外波长。可以移除此滤镜,从而在红外范围内提供更高的灵敏度。可以使用35mm胶片底片制作一个简单的滤光片,可以让红外光通过但阻挡可见光,胶卷的标签末端没有照片,非常适合这种情况。

红外图像与可见图像

同一场景的两张照片。左边的图像是在一个黑暗的房间里拍摄的,这个房间里有一个廉价的网络摄像头,它的红外滤光片已被取下并被胶片底片取代,右边的图像是用标准的傻瓜相机拍摄的。

长波红外线

长波红外是8000nm-15000nm范围内的光。这是热成像区,所有这些惊人的假色图像都详细说明了事物的相对温度。

假彩色红外图像

可见光谱中的相同场景和长波红外线。请注意,塑料袋对可见光是不透明的,但对红外线几乎是透明的(NASA Spitzer红外望远镜团队提供)。

人们误解近红外成像和长波红外成像之间的差异是一个很常见的错误。近红外成像非常容易实现 – 标准CMOS和CCD成像芯片可以轻松检测近红外区域的光。长波红外需要特殊的传感器,因为光束的波长是近红外线的1000倍,这就需要传感器元件中相应更大的几何形状。

长波红外温度传感器

长波红外温度传感器。较长的波长需要比可见或近红外应用更大的感应区域。

该区域的另一种日益熟悉的用途是激光蚀刻和切割。大多数激光切割机依靠CO 2激光管产生波长为10640nm的激光束。

microbit入门教程

MicroPython语言介绍

 

MicroPython是专为微控制器开发的基于Python编程语言的开源解释性语言。在这个实验指南中,我们将向您展示如何开始使用MicroPython和流行的micro:bit板和我们的micro:bit。

注意:本文假定您有编程经验。如果您以前从未使用过编程语言,那么我们建议您看看这个指南的MakeCode版本。MakeCode是一个拖放编辑器,它对所有年龄段的初学者都很有帮助。

当你完成了这个指南,你就知道如何用开始用MicroPython对micro:bit编程,来创建自己的项目和实验!

使用MicroPython

MicroPython只是一种编译语言,所以它不包含写和编辑代码的空间。幸运的是,我们可以使用一个编辑器来编写Python代码。在开始之前,您需要下载Mu。Mu是一个简单的代码编辑器,适合在Windows, OSX, Linux和Raspberry Pi上运行。

使用MicroPython的一个主要的优点是交互式的REPL。REPL(read-evaluate-print loop)代表读取﹣求值﹣输出循环,此中技术背后的原理一言难尽,有兴趣的读者可以参考维基百科相关介绍,REPL对于学习一门新的编程语言具有很大的帮助,因为它能立刻对初学者做出回应。这意味着你可以马上执行代码,查看结果,而无需先经过编译然后上传的繁琐步骤。要让REPL在Windows上工作,您需要安装mbed的串口驱动程序。

Python的应用程序非常广泛,使用Python拥有优于其他编程语言的优势,包括与其他语言和平台、第三方模块、广泛的支持库、用户友好的数据结构进行交流,当然,它是开源的。

目前一些已知的使用Mu和micro:bit的问题,是不能导入第三方模块,不能使用中断,也不能用一种合适的方式将一个范围的数字映射到另一个范围。由于不支持导入第三方模块,所以我们将在当前的Mu MicroPython文件中复制和粘贴源代码。和学习任何新的语言一样,Python需要时间、耐心、自学和大量的例子!坚持下去,我们会在路上帮助你。

项目文件

 

要下载跟随所有实验所需的所有文件,请点击下面的按钮。

DOWNLOAD THE PROJECT FILES!下载项目文件

选择软件

 

要使用MicroPython和micro:bit,有几个不同的选择。

建议阅读

 

如果您以前从未使用过电子产品,我们建议您对以下教程中的概念略作了解:

 

  • 电压、电流、电阻和欧姆定律——电子和电气工程中最基本的概念。熟悉这些概念,因为它们将在你的电子产品探索中使用到。
  • 电路是什么?——在本指南中,我们将构建各种电路。理解这意味着什么,对于理解发明者的工具包是至关重要的。
  • 如何使用面包板——第一次使用面包板?请查看本教程!它将帮助您理解为什么breadboard对于原型设计和如何使用非常有用。

实验:你好,micro:bit

 

Hello World你好,世界:程序员的第一个程序

在micro:bit上的“你好世界”有点不同。在大多数微控制器上,这个程序将使用串行终端执行。您可以使用内置的LED阵列来与您的微处理器进行交互,而不是使用串行终端。所以,micro:bit的“Hello World”是用LED阵列来绘制的!

 

让我们先从REPL运行程序,然后我们将构建一个.py脚本并将其上传到micro:bit。打开Mu,并确保你的micro:bit通过USB数据线连接到你的电脑上。

 

打开REPL,单击图标,您应该会看到第二个窗口出现在底部。输入help(),看看会发生什么。

 

 

The colon is how Python blocks code the way Arduino uses a set of curly brackets. Everything indented under a colon will execute as a block of code.

Type the program above in your Mu editor, or download all the programs from this GitHub Repository. Save it, then click the Flash icon to program your micro:bit.

Let’s display an image next instead of text.

点击任何一个图像来进一步观察。

在REPL输入 display.scroll("Hello World")观察你的micro:bit的5×5 LED阵列。现在通过单击REPL图标关闭REPL。

对于第一个MicroPython脚本,我们将介绍如何添加注释、如何导入模块以及如何创建将永久运行的循环。在程序的顶端,你会看到三条注释。注释是使用#符号和一个空格创建的。你可以使用 from 和import访问模块。这些单词告诉解释器要从哪些模块中导入。在这种情况下,我们从micro:bit导入所有内容。while True:是关于如何在Python中创建一个永久循环。冒号是Python如何用一组花括号来阻塞代码。在冒号下缩进的所有内容都将作为代码块执行。

在您的Mu编辑器中输入程序,或者从这个GitHub存储库下载所有程序。保存它,然后点击Flash图标来为你的微处理器编程。

让我们接下来显示一个图像而不是文本。

 

当键入display.show(Image...)时,让这个有用的信息框显示你所构建的图像。然后尝试编写自己的自定义映像。

实验一:眨眼睛的LED

介绍

This is experiment 1 – blinking an LED. We get to the fun stuff: adding hardware and constructing circuits.

这是实验一 ——一个闪烁的LED。我们得到了有趣的东西:添加硬件和构造电路。

需要的东西

你将会使用到以下部分:

  • 1x Breadboard面包板
  • 1x micro:bit板
  • 1X micro:bit Breakout with Headers
  • 1x LED
  • 1x 100Ω Resistor电阻
  • 1x Jumper Wires杜邦线跳线

Didn’t Get the SIK for micro:bit?

如果你正在进行这个实验并没有得到发明者的工具包,我们建议使用以下部分:

Suggested Reading建议阅读

在继续进行这个实验之前,我们建议您熟悉以下教程中的概念:

  • Light-Emitting Diodes — Learn more about LEDs!
  • 发光二极管——知道更多关于LED的知识!

Introducing the micro:bit Edge Connector介绍micro:bit ???

edge connector

We also broke out ground and VCC (3.3 volts) for your convenience.

为了扩展micro:bit的功能,我们开发了一个面包板适配器。这个适配器板使得在micro:bit上使用所有可用的引脚更加方便。为了您的方便,我们还为您提供了地面和VCC(3.3伏特)。

The adapter board lines up with the pins of a breadboard. We recommend using a full-sized breadboard with this breakout to give you enough room to prototype circuits on either end of the breadboard.

适配器板与面包板的插脚相连。我们建议使用一个全尺寸的面包板,这个突破可以给你足够的空间,让你可以在面包板的两端建立电路原型。

介绍LED

alt text

发光二极管(LED)只会让电流通过一个方向。把一个LED当作单行道。当电流流过LED灯时,灯就亮了!当你看着LED的时候,你会发现它的引线是不同的长度。较长的引线,“阳极”,是电流进入LED的地方。这个引线应该始终连接到电源。更短的引线,“阴极”,是电流的出口。短的引线应该一直连接到地面上。

当谈到你对它们的应用时,led是很讲究的。太大的电流会导致烧坏的LED。为了限制通过LED的电流,我们使用电阻器与电源和LED的长引脚连接;这叫做限流电阻器。为了使用micro:bit,你应该使用100欧姆的电阻。就为了这个原因,我们已经在工具包里放了一袋这种电阻!

硬件连接

 

准备好开始连接了吗?看看下面的接线图和连接表,看看它们是如何连接的。

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

marked with a flat edge.

请注意:请密切注意LED。LED的反面是短引脚,用平边标记。

LED drawing

有些组件,比如电阻,为了适应面包板的插槽,需要腿弯曲成90°角。你也可以缩短引脚的长度,让它们更容易在面包板上工作。

Bent resistor

实验电路图

alt text

看电路有困难吗?在接线图上点击查看。

运行脚本

alt text

编程时要注意:

pin0.write_digital(1) and pin0.write_digital(0)

除了第8和第10行,你会发现这和之前的实验没有太大区别除了第8和第10行。

pin0.write_digital(1) sends a HIGH value, ON or a voltage of 3.3V to pin 0 on the micro:bit.

发送一个高值,或电压为3.3V,在micro:bit板上输入0位。

pin0.write_digital(0) sends LOW value, OFF or 0V to pin 0 of the micro:bit.

发送一个低值,或电压为0V,在micro:bit板上输入0

你应该看到的现象

 

你应该在看到你的LED以一秒的间隔闪烁。如果没有,请确保您已经正确地组装了电路,并验证并将代码上传至您的micro:bit,或者查看故障排除部分。改变 sleep()的次数,并使用LED闪烁频率。

故障排除

LED不闪烁

确保你把它正确地连接在一起,并正确地将针固定在地面上。记住,短针落地;长针信号。

仍旧未能成功

 

断了电路是没有乐趣的。给我们发邮件,我们会尽快回复你:techsupport@sparkfun.com。

实验二:阅读电位计

介绍

在这个电路中,你将使用电位器。您将学习如何使用一个电位器来控制LED的亮度,并通过读取一个传感器并将其0-1023的值存储为一个变量,然后使用它作为LED的亮度级别。

所需部分

你将会需要用到以下几部分:

  • 1x 面包板
  • 1x micro:bit
  • 1x LED
  • 1x 100Ω 电阻
  • 7x 杜邦线
  • 1x 10kΩ Potentiometer电位计

Didn’t Get the SIK for micro:bit?

如果你正在进行这个实验并没有得到发明者的工具包,我们建议使用以下部分:

建议阅读

在继续进行这个实验之前,我们建议您熟悉以下教程中的概念:

Introducing the Potentiometer电位计介绍

alt text

电位器是一种基于电阻的模拟传感器,它根据旋钮的转动来改变其内部电阻。电位器有一个内部的分压器,使你可以用微控制器(micro:bit)读取中心引脚上电压的变化。为了连接电位器,将两个外引脚连接到电源电压(该电路的5V)和接地。只要一个连接到电源,另一个连接到地面,哪个连接在哪里都无关紧要。然后将中心引脚连接到一个模拟输入插脚,这样micro:bit就可以测量电压的变化。当你转动旋钮时,感应器读数将会改变!

注意:工具箱中包含的电位器上有三个标记,可以帮助你弄清楚插针的位置。

硬件连接

准备好开始连接了吗?看看下面的接线图和连接表,看看它们是如何连接的。

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.特别注意组件的标记,指示如何将其放置在面包板上。偏振分量只能在一个方向上与电路相连。

实验接线图

alt text

看到电路有困难吗?可以在接线图上点击查看。

 

注:全尺寸的面包板动力轨道中间有一个断裂。如果你使用的是下半部分的电力轨道,你将需要在上端和下端之间跳跃。

运行脚本

alt text

编码注意事项

pin2.read_analog()

 

在这个程序中,你正在读取电位器的电压,电位器的电压是0到3.3伏在引脚2上。micro:bit将值作为一个10位数字读取,该值的值范围从0到1023,调用代码 pin2.read_analog()。我们将这个数字保存到一个名为potVal的变量中。

pin0.write_analog()

与模拟读取一样,模拟写处理的是一系列的值,但不是将一个引脚作为输入,而是将一个模拟值 pin0.write_analog() 输出到一个引脚上。我们把它看作是一个亮度范围的LED,但是它可以是一个蜂鸣器的音调,一个电机的速度,等等。我们把模拟输出设置为我们储存电位器的变量。

“变量”是在代码中可能更改的值的占位符。您可以通过输入一个名称并设置它等于您想要的值来创建一个变量。Python是一种动态类型语言。这意味着变量的类型是在运行时确定的。所以您不必担心声明变量类型。

你应该看到的现象

 

你应该拧一下电位器。你会注意到LED会根据电位器的位置变得更亮或更暗。如果你把电位器转到一个方向,它就会完全打开,另一端就会完全关闭。

故障排除

间断工作

这很可能是由于与电位器的引引脚有轻微的接触。通常可以通过将电位器压低或将电位器电路移到面包板上的其他地方来解决。

不工作

Make sure you haven’t accidentally connected the wiper (center pin), the resistive element in the potentiometer, to a wrong pin!

确保你没有意外地连接到电位器的电阻元件,到一个错误的针!

LED没有被点亮

LED只能在一个方向上工作。再次检查你的连接。

Experiment 3: Reading a Photoresistor实验三:理解光敏电阻

介绍

在实验2中,你需要使用一个电位器,它会根据一个旋钮的转动来改变电阻,反过来,也会改变模拟输入所读取的电压。在这个电路中,你将使用一个光敏电阻,它会根据传感器接收到的光的多少来改变电阻。你会读到房间的光值,如果是暗的,就会打开LED灯,如果灯是亮的就关掉。就是这样;你要造一个夜灯!

所需部分

你将会需要用到以下部分:

  • 1x 面包板
  • 1x micro:bit
  • 1X micro:bit Breakout with Headers
  • 1x LED
  • 1x 100Ω电阻
  • 7x 杜邦线
  • 1x 光敏电阻
  • 1x 10kΩ 电阻

Didn’t Get the SIK for micro:bit?

If you are conducting this experiment and didn’t get the Inventor’s Kit, we suggest using these parts:

光敏电阻介绍

alt text

光敏电阻根据所暴露的光改变其电阻。要用这个micro:bit,你需要用一个10k欧姆电阻器来建立一个分压器,就像这个实验的接线图。micro:bit不能读出电阻上的变化,只能读出电压的变化。分压器允许你将电阻的变化转换成相应的电压值。

To learn more about resistors in general, check out our tutorial on resistors and also our tutorial on voltage dividers

分压器允许在基于电压的系统中使用像光敏电阻这样的基于电阻的传感器。当你探索不同的传感器时,你会发现更多的基于电阻的传感器,像光敏电阻一样只有两个引脚。用你的micro:bit来使用它们:你需要在这个实验中建立一个像这样的分压器。要了解更多关于电阻的知识,请参阅我们的电阻器教程,以及关于分压器的教程。

注意:要确保在你的分压器中使用的是10k欧姆电阻和这个工具包中的传感器。否则,你会得到奇怪而不一致的结果。

硬件连接

准备好开始连接了吗?看看下面的接线图,看看所有的东西是如何连接的。

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.特别注意组件的标记,指示如何将其放置在面包板上。偏振分量只能在一个方向上与电路相连。

实验布线图

alt text

 

看到电路有困难吗?在接线图上点击查看。

.注:全尺寸的面包板动力轨道中间有一个断裂。如果你使用的是下半部分的电力轨道,你将需要在上端和下端之间跳跃。

Running Your Script运行脚本

alt text

编码注意事项

if 和 else

如果在永久循环中不断更新的光值变量小于校准值- 50,那么它是黑的,LED应该打开。if语句的(-50)部分是一个敏感值。值越高,电路就越不敏感;值越低,光照条件越敏感。

ifelse语句是设置永久循环的控制流的简单方法。如果绑定到If语句的逻辑语句是正确的(True),那么它将执行在冒号下缩进的代码。如果该语句是假的(False),它将跳到下一个语句,也就是else语句。在这种情况下,如果陈述是真实的(True)(房间是暗的),那么micro:bit将会打开引脚16;否则(如果房间是亮的),它将使用前面提到的write_digital命令来关闭LED。

校准器calibrationval是一个校准变量。你的micro:bit在进入永久循环之前,需要对光传感器进行一次读取,并使用该值与永久循环中的lightVal变量进行比较。在进入永久循环之前,这个值不会在永久循环中发生变化。要更新这个值,你可以在你的微处理器的背面按下RESET按钮:bit或重启。

你将会看到的现象

当micro:bit运行程序时,它将从光传感器中读取一个读数,并将其作为房间“正常”状态的校准值。当你把你的手放在光传感器上或者把灯关掉时,LED灯就会打开。如果你把灯打开或打开灯感应器,LED灯就会关闭。

故障排除

LED仍旧不亮

You may have been leaning over the light sensor when the code started. Make sure the light sensor is reading the normal light in the room at startup. Try resetting the micro:bit.当代码开始时,您可能已经在光线传感器上倾斜了。确保光传感器在启动时在房间里感受正常光线。尝试重置micro:bit。

仍然不工作

再次检查你的信号插头接线;有时,你会错过一整排面包板的连接。

实验四:操作驱动RGB LED

介绍

你知道什么比眨眼睛更有趣吗?用一个LED改变颜色!在这个电路中,您将学习如何使用RGB LED来创建独特的颜色组合。根据每个二极管的亮度,显示几乎任何颜色都是可能的!

所需部分

你将会需要用到以下部分:

  • 1x 面包板
  • 1x micro:bit
  • 1X micro:bit Breakout with Headers
  • 1x Common Cathode RGB LED
  • 3x 100Ω 电阻
  • 5x 杜邦线

Didn’t Get the SIK for micro:bit?

如果你正在进行这个实验并没有得到发明者的工具包,我们建议使用以下部分:

Introducing the Red/Green/Blue (RGB) LED

alt text

红/绿/蓝(RGB) LED是一种发光二极管。RGB有四个引脚,每三个引脚控制一个单独的颜色:红色,绿色或蓝色。RGB的更长的引脚是常用的地脚。你可以通过将不同颜色的不同颜色组合在一起来创建一个定制的LED。例如,如果你打开红色的引脚和绿色的引脚,RGB就会变成黄色。

But which pin is which color? Pick up the RGB so that the longest pin (common ground) is aligned to the left as shown in the graphic below. The pins are Red, Ground, Green and Blue — starting from the far left

但是哪个针是哪个颜色呢?拿起RGB,让最长的引脚(接地)与左边对齐,如下图所示。引脚是红色的、地面的、绿色的和蓝色的——从最左边开始。

注意:当连接RGB时,每个有色的引脚仍然需要一个电流限制的电阻器,与micro:bit的I/O 相连,那么你就能用来控制它,和任何标准的LED一样。

硬件连接

准备好开始连线了吗?看看下面的接线图和连接表,看看它们是如何连接的。

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.特别注意组件的标记,指示如何将其放置在面包板上。偏振分量只能在一个方向上与电路相连。

实验布线图

alt text

看电路有困难吗?在接线图上点击查看

运行脚本

alt text

编码注意事项

使用随机模块

 

MicroPython附带了一个随机random模块,用于在程序中引入一些未知的内容。有几种方法可以使用随机模块,而不是在这个实验中将它作为随机数生成器使用。要查看文档,请阅读random模块上的官方文档

In this experiment we are using random to generate a random number between 0 and 255在这个实验中,我们使用一个随机生成的、0到255之间的随机数。

button_a.is_pressed() 和 button_b.is_pressed()

button_a and button_b represent the left and right buttons on the micro:bit respectively. There are three built-in functions that can be attached to button_a or button_b:

button_a 和 button_b分别代表micro:bit上的左右按钮。有三个内置函数可以附加到

button_a或者 button_b:

 

  • is_pressed() — Will return True if the button specified is pressed. If the specified button is not pressed, it will return False.如果按下指定的按钮,将返回True。如果指定的按钮没有被按下,它将返回False
  • was_pressed() — Will return True or False depending on whether the specified button was pressed since start-up or since the last time this statement (method) was called.将返回TrueFalse,这取决于自启动时指定的按钮是否被按下,或者自上次调用该语句(方法)以来。
  • get_pressed() — Will return the number of times the specified button has been pressed since the device started or since the last time the statement (method) was used. Once the method is used, it will reset to zero.将返回自设备启动以来按指定按钮的次数,或者自上次使用语句(方法)以来。一旦使用该方法,它将重置为零。

elif

elif语句允许您检查可能为正确(True)的多个表达式。在这个实验中,我们想要做不同的事情,即按下按钮是正确的True还是按按钮B是正确的True

你应该看到的现象

你应该看到你的LED灯变红了。如果你按下micro:bit的按钮,颜色会变成绿色,如果你按下B键,颜色就会变成蓝色。

故障排除

LED仍旧不亮或者亮着不正常的颜色

由于LED的四个引脚挨在一起,有时容易放错其中一个。需要仔细检查每根针的位置。

看到红色

RGB LED内的红色二极管可能比另外两个要亮一些。为了使你的颜色更加平衡,要使用更高的欧姆电阻。

实验五:理解单刀双掷开关

介绍

在这个实验中,你将使用你的第一个数字输入:一个开关。SPDT(单刀双掷)开关是在两个选项之间进行选择的一种简单方式,特别是在与“if”状态配对时。您将使用该开关来选择两个led中的哪一个会闪烁。

所需部分

你将会需要用到以下部分:

  • 1x Breadboard面包板
  • 1x micro:bit
  • 1x micro:bit Breakout with Headers
  • 2x LEDs (1红,1黄)
  • 2x 100Ω电阻
  • 8x 跳线
  • 1x 单刀双掷开关

 

Didn’t Get the SIK for micro:bit?

如果你正在进行这个实验并没有得到发明者的工具包,我们建议使用以下部分:

建议阅读

Before continuing with this tutorial, we recommend you be somewhat familiar with the concepts in these tutorials:

Introducing the Single-Pole, Double-Throw (SPDT) Switch

alt text

单刀双掷(SPDT)开关在中间有一个公共引脚,然后根据开关的位置有两个其他引脚连接到公共(中心)引脚。为了以类似于按钮的方式读取开关,您将公共引脚连接到micro:bit的数字通用输入/输出(GPIO)引脚,其他引脚连接到3.3V并接地。哪个引脚是哪个并不重要。当您移动开关时,公共引脚将为高电平(连接至3.3V)或低电平(接地)。

硬件连接

准备开始把所有东西都勾起来?查看下面的接线图和连接表,了解各种连接方式。

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

实验连线图

alt text

Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.

注意:全尺寸的面包板电源导轨有中间断开的情况。如果您最终使用电源导轨的下半部分,则需要在上端和下端之间跳转。

运行脚本

alt text

编程注意

pin0.read_digital()

就像write_digital()语句打开(1)或关闭(0)引脚一样,write_digital()语句确定引脚的状态,即HIGH(1)或LOW(0)。通过建立一个连接3.3V或接地的电路,我们可以检测到开关是否被触发或按下了按钮。

你应该看到的现象

根据开关的状态,不同的LED将闪烁。如果您移动开关将信号引脚连接至3.3V(HIGH),则连接至引脚P15的LED将闪烁。如果您拨动开关并将信号引脚接地,则引脚P16上的LED将开始闪烁,并且LED 1将关闭。

故障排除

Light Not Turning On

开关的电线紧挨​​着。确保信号位于外部引脚上的电压和地线的中间。如果你连接接地和电压,你的电路板将短路并关闭。

确保您的电源指示灯亮起。如果它关闭,请拉动信号线并查看是否有任何改变。如果您将micro:bit电路短路,它将自动关闭以保护电路。

Underwhelmed

 

别担心;这些电路都是非常精简的,以便轻松玩游戏组件,但一旦将它们放在一起,天空才是它们的极限。

Experiment 6: Reading a Button Press

Introduction

到目前为止,我们主要关注输出。现在我们要走到频谱的另一端,并连同输入一起玩。在实验二中,我们使用模拟输入来读取电位器。在这个实验中,我们将通过使用数字输入来读取最常见和最简单的输入之一 – 按钮。我们将使用它来循环RGB上的不同颜色。

Parts Needed

You will need the following parts:

  • 1x Breadboard
  • 1x micro:bit
  • 1x micro:bit Breakout with Headers
  • 1x RGB LED
  • 3x 100Ω Resistors
  • 8x Jumper Wires
  • 1x Push Button
  • 1x 10kΩ Resistor

Didn’t Get the SIK for micro:bit?

If you are conducting this experiment and didn’t get the Inventor’s Kit, we suggest using these parts:

Suggested Reading

Before continuing with this experiment, we recommend you be somewhat familiar with the concepts in these tutorials:

Introducing the Push Button

alt text

 

瞬时按钮仅在按下时关闭或接通电路。按钮有四个引脚,分成两组两个引脚。当你按下按钮并获得一个很好的“咔嗒”声时,按钮桥接两组引脚,并允许电流流过电路。

How do you know which pins are paired up? The buttons included in this kit will only fit across the breadboard ditch in one direction. Once you get the button pressed firmly into the breadboard (across the ditch), the pins are horizontally paired. The pins toward the top of the breadboard are connected, and the pins toward the button of the breadboard are connected.

你怎么知道哪个引脚配对?此套件中包含的按钮仅适用于一个方向上的面包板沟。一旦将按钮牢固地按入面包板(穿过沟渠),这些引脚就会水平配对。面向面包板顶部的引脚已连接,面向面包板按钮的引脚已连接。

注意:并非所有按钮都共享此引脚格式。请参考您特定按钮的数据表以确定哪些引脚配对。

Hardware Hookup

Ready to start hooking everything up? Check out the wiring diagram and hookup table below to see how everything is connected.

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

Wiring Diagram for the Experiment

alt text

Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.

Note: The full-sized breadboard
注意:全尺寸的面包板电源导轨有中间断开的情况。如果最终使用电源导轨的下半部分,则需要在上端和下端之间跳转。

Run Your Script

alt text

Code to Note

 

micro:bit上的引脚为低电平有效,这意味着外部按钮应连接到引脚并接地以通过按钮触发事件。这在MicroPython中无法更改,因为它可以在MakeCode中进行更改。我们还发现,MicroPython的中断时间非常困难,并且一次只能运行多个线程。使用MakeCode,可以运行多个线程。

pass

 

由于中断在MicroPython中非常困难,我们决定使用pass

pass是一种处理来自while 循环的外部触发器而不影响while 循环的方式。在这种情况下,外部触发器是否按钮已被按下。这是使用中断的一种欺骗手段。我们可以连续检查micro:bit上的引脚16,以查看按钮是否被按下。

iter

 

iter()_方法创建一个对象,可以一次迭代或增加一个元素,直到指定的结束。在迭代结束时,会引发异常:“StopIteration”。

try and exceptiterator

tryexcept允许程序捕捉意外(或在这种情况下预期)错误,并处理错误,除非程序员想要。在这种情况下的错误将是iter 函数如何让程序知道它已经超过了最后的可迭代值。iter 方法引发的异常是“StopIteration”。我们正在“尝试”下一个异常,直到意外出现。一旦意外出现,我们退出尝试并移至except,这将再次启动迭代器。

What You Should See

 

当你按下按钮时,RGB将变成一种颜色。当再次按下时,颜色会改变,而另一次按则会再次改变颜色。再按一次,它会关闭。每次按下按钮,它都会增加一个变量,然后我们检查它以设置颜色。如果变量超过2的值,我们将它重置为0,这是关闭的。

Troubleshooting

Light Not Turning On

 

按钮是方形的,正因为如此,很容易出错。给它一个90度的扭曲,看看它是否开始工作。

Underwhelmed

 

别担心;这些电路都是非常精简的,以便轻松玩游戏组件,但一旦将它们放在一起,天空才是极限。不过请记住,这些都是钢铁侠套装的基石。

Experiment 7: Reading the Temperature Sensor

介绍

 

温度传感器正是它听起来像 – 用于测量环境温度的传感器。在此实验中,您将读取温度传感器的原始0-1023值,计算实际温度,然后通过micro:bit上的LED阵列打印出来。

Parts Needed

You will need the following parts:

  • 1x Breadboard
  • 1x micro:bit
  • 1x micro:bit Breakout with Headers
  • 3x Jumper Wires
  • 1x TMP36 Temperature Sensor

Didn’t Get the SIK for micro:bit?

If you are conducting this experiment and didn’t get the Inventor’s Kit, we suggest using these parts:

Introducing the TMP36 Temperature Sensor

alt text

 

TMP36是一款低电压精密摄氏温度传感器。它提供与摄氏温度成线性比例的电压输出。它也不需要任何外部校准来提供+ 25°C时±1°C和-40°C至+ 125°C温度范围内±2°C的典型精度。使用10 mV /°C的比例因子,输出电压可以轻松转换为温度。

 

如果您正在查看带有文字的一面,中心引脚是信号引脚,左侧引脚是电源电压(本教程中为3.3V),右侧引脚接地。

专业提示:TMP36看起来很像一个晶体管。在TMP36的顶部放一个指甲油抛光点,这样能很容易找到。

硬件连接

Ready to start hooking everything up? Check out the wiring diagram below to see how everything is connected.

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

请注意:温度传感器只能连接到一个方向的电路。请参阅下面的温度传感器引脚 – TMP36。

实验连线图

alt text

Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.

运行脚本

alt text

编程注意

str

 

我们已经介绍了display.show() ,但是我们需要在将数字(温度)转换为字符串(类型)之前将其显示到micro:bit 5×5 LED阵列。 MicroPython中的类型转换是一个简单的str,它放置在保持类型编号温度的变量前面。

挑战:你如何修改这段代码来获得华氏度的温度?

你将会看到的现象

当您的micro:bit打开时,TMP36温度传感器的温度读数将显示并在LED阵列上滚动。

故障排除

温度值不变

用手指捏住传感器加热,或者用一个冰袋将其冷却。

温度传感器真的很热!

你已经把它连接到后面!立即拔下你的micro:bit,让传感器冷却下来,然后仔细检查你的接线。如果您足够快地发现,您的传感器可能没有受到损坏,并且可能仍然有效。

实验八:使用伺服电机

介绍

本实验是对您介绍伺服电机,该电机是一种智能电机,您可以将其旋转到特定的角度位置。您将其编程为旋转到一系列位置,然后扫过整个运动范围,然后重复。

Parts Needed

You will need the following parts:

  • 1x 面包板
  • 1x micro:bit
  • 1x micro:bit Breakout with Headers
  • 1x 伺服电机
  • 3x 杜邦线

Didn’t Get the SIK for micro:bit?

If you are conducting this experiment and didn’t get the Inventor’s Kit, we suggest using these parts:

建议阅读

Before continuing with this experiment, we recommend you be familiar with the concepts in the following tutorial:

介绍伺服电机

alt text

 

与大多数电机不断旋转的动作不同,伺服电机可以旋转并保持特定的角度,直到它被告知旋转到不同的角度。您可以通过发送一个PWM(脉宽调制)脉冲串来控制伺服的角度; PWM信号被映射到从0到180度的特定角度。

伺服内部有一个齿轮箱连接到驱动轴的电机。还有一个电位器,用于反馈伺服机构的旋转位置,然后与输入的PWM信号进行比较。伺服相应地进行调整以匹配两个信号。

 

在这个实验中,伺服电源通过红线上的3.3伏电源和黑线上的地线供电;白线连接到引脚P0。

硬件连接

Ready to start hooking everything up? Check out the wiring diagram below to see how everything is connected.

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

 

连接3x跳线到伺服器上的3针插座。这将使面包板伺服更容易接入。

实验电路图

alt text

Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.

运行脚本

alt text

编程注意

 

在micro:bit中使用MicroPython的主要缺点之一是无法导入第三方模块。或者至少,我们没有任何运气将两个Python文件闪存到micro:bit。这段代码似乎很长,因为我们必须将Servo Class代码粘贴到我们的脚本中。忽略伺服类代码,让我们看看永久循环内发生了什么。

range

范围函数生成一个数字列表。在这个实验中,我们正在生成一个从0-90增加5的列表。

Servo(pin0).write_angle()

 

伺服类在引脚0作为参数的语句中调用。.write_angle()函数是伺服移动的方式 – 通过括号中指定的数字映射到伺服电机上的度数。

你应该看到的现象

通电后,您应该看到伺服器移动到一个位置(0度),然后开始前后扫动180度,直到关闭或告诉它转到不同的角度。

挑战:你将如何修改这个代码来让按钮A上的伺服扫动到180度?

故障排除

伺服不扭转

即使使用彩色电线,向后插入伺服器仍然非常容易。这可能是这种情况。

仍然不工作

我们犯了一个或两个错误,只是忘记将电源(红色和黑色线)连接到3.3伏和地(GND)。

实验九:使用蜂鸣器

介绍

在这个实验中,我们将再次填补数字世界和模拟世界之间的差距。我们将使用压电式蜂鸣器,当您施加电压时会产生一个小的“咔嗒”声(尝试!)。本身并不令人兴奋,但如果每秒打开和关闭电压数百次,压电式蜂鸣器将产生一个音调。如果你把一串音调串在一起,你就获得了音乐!这个电路和一组代码块将创建一个简单的声音机器。

Parts Needed

You will need the following parts:

  • 1x 面包板
  • 1x micro:bit
  • 1x micro:bit Breakout with Headers
  • 1x Piezo Buzzer
  • 2x Momentary Push Buttons
  • 7x 杜邦线

Didn’t Get the SIK for micro:bit?

If you are conducting this experiment and didn’t get the Inventor’s Kit, we suggest using these parts:

 介绍蜂鸣器

alt text

 

蜂鸣器是一个小部件,其中有一块金属片,当您在其上施加电压时会移动。这个动作会产生一个很小的声音,或者“咔嗒”。如果您打开和关闭电压足够快,您会听到不同的嘟嘟声,尖叫声,啁啾声和嗡嗡声。您将使用PWM来控制打开和关闭压电的速度 – 反过来,蜂鸣器发出的音频。调整PWM可让您从蜂鸣器中获得合理的音符。

alt text

 

如果您将蜂鸣器翻转过来并看向底部,您会看到一个针脚旁边有一个(+)。该引脚连接到来自P0引脚的信号。另一个引脚应该接地。

硬件连接

Ready to start hooking everything up? Check out the wiring diagram below to see how everything is connected.

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

实验连线图

alt text  ??

Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.

注意:全尺寸的面包板电源导轨有中间断开的情况。如果最终使用电源导轨的下半部分,则需要在上端和下端之间跳转。

运行脚本

alt text

编程注意

music

MicroPython有一个很棒的音乐和声音模块。我们花了几个小时在REPL中产生音调和写歌。当你学会在micro:bit上创作你自己的音乐时,我们强烈建议使用REPL来熟悉所有的声音 – 在你想要看到(听到)你能做什么时,额外的help()将会很棒。

音乐模块内置21种旋律。要查看列表,请在Mu编辑器中键入music.play(_... ,然后弹出列表。

 

要获得有关音乐模块的深入教程,请单击此处

music.play()

 

要弹奏乐曲,您需要指定一个音符(A,C#,F),一个八度(0-8)和一个持续时间(音符将播放多长时间)。例如,如果按下引脚15上的按钮,则八度音阶4中的音符C将播放持续时间为8。

你应该看到的现象

 

你应该看到 – 呃,什么都没有!你应该听到 – 每个按钮都有自己的调子。享受您的音响设备,随时更换您选择的歌曲和曲调。添加更多按钮和播放语句以制作自定义钢琴!

 

再试一次,但这次用真正的扬声器。在按下按钮时,您可以播放葬礼进行曲,生日快乐或带有更好音频的Nyan Cat主题!

故障排除

没有声音

 

鉴于压电式蜂鸣器的尺寸和形状,很容易错过面包板上的正确孔。尝试双重检查其位置。

另外,请仔细检查以确保按钮连接正确。如果你误接线了,那么无论你是否按下按钮,电路都不会通路。

实验十:使用加速度计

介绍

在本实验中,您将结合使用micro:bit上的加速度计来测量micro:bit的方向并使用它来控制伺服器的角度。

 

准备摇动,拨动和滚动?

Parts Needed

You will need the following parts:

  • 1x面包板
  • 1x micro:bit
  • 1x micro:bit Breakout with Headers
  • 1x Hobby Servo
  • 3x 杜邦线

Didn’t Get the SIK for micro:bit?

If you are conducting this experiment and didn’t get the Inventor’s Kit, we suggest using these parts:

介绍加速度传感器

 

加速度传感器是您在套件袋中找不到的组件。为什么?因为它在micro:bit上本身!在micro:bit的背面你可以看到一些小芯片。其中之一是加速度计。

Accel closeup

 

加速度计是一种传感器,用于测量在芯片X,Y和Z轴的所有三个维度上的重力。

alt text

 

加速度计不仅可以测量拉动芯片和芯片所在物体的原始力量,还可以检测具有特定模式的步骤,抖动和其他运动。最重要的是,您可以使用加速度计来简单检测设备的方向。你有没有想过当你将手机从肖像转为风景时,你的手机是如何知道的?这完全是因为手机中的加速度计!

硬件连接

Ready to start hooking everything up? Check out the wiring diagram below to see how everything is connected.

Pay special attention to the component’s markings indicating how to place it on the breadboard. Polarized components can only be connected to a circuit in one direction.

实验接线图

alt text

Having a hard time seeing the circuit? Click on the wiring diagram for a closer look.

运行脚本

alt text

编程注意

 

再次忽略伺服类代码,我们有一些新的东西!

accelerometer.get_x()

The accelerometer.get_x() statement will return the acceleration measurement on the x-axis as a number between -1024 and 1024, depending on the direction.

加速度计模块具有五个内置功能并可识别11个手势。要查看完整文档,请单击此处accelerometer.get_x() 语句会根据方向将x轴上的加速度测量返回为-1024和1024之间的数字。

由于存储在num 中的值需要在-1024到1024之间的范围内转换为0-180之间的角度,因此需要对其进行缩放。将比例值加90将为0-89的负加速度计值和90-180的正加速度计值设置一系列角度。

你将会看到的现象

在程序开始时,伺服应该移动到0度,然后对micro:bit的方向作出反应。如果您将micro:bit平放,伺服将处于90度。然后,如果将伺服器向左倾斜,它将朝向0值移动小于90度。如果将其移动到右侧,伺服器将向180移动。

故障排除

这看起来很落后

 

您可能会以不同的方向保持micro:bit。翻转它并再试一次!

伺服不工作

 

仔细检查你的接线!记住,红色到3.3伏,黑色接地面,白色接信号。

Resources and Going Further

资源和进一步发展

 

MicroPython是开始您的Python编程之旅的有趣和令人兴奋的方式。这里有更多的资源可以帮助你。

我们生产了许多其他套件和载板,您可以将它们连接到micro:bit,以帮助您将项目提升到一个新的水平。这里有一些进一步的阅读,可以帮助你更多地了解电子世界。

 

 

micro:climate套件实验指南

气象站套件建立在便宜,易用的micro:bit和Microsoft MakeCode之上。

micro:bot工具包实验指南

开始使用moto:bit,这是micro:bit的载板,可让您控制电机,并使用micro:bot套件的实验指南创建您自己的机器人。

micro:arcade 街机套件实验指南

我们爱游戏!我们喜欢写游戏,制作游戏,甚至建立游戏控制台。所以我们想向你介绍微型的micro:arcade套件!

micro:bit Breakout Board连接指南

How to get started with the micro:bit breakout board.如何开始使用micro:bit???

开源!

 

我们所有的实验和指南均根据知识共享署名 – 相同方式共享4.0 Unported许可协议进行许可。随意混合并重用我们的工作。但是,请分享这份爱,给我们辛勤工作得到归属!

要查看许可证的副本,请访问此链接,或写信至:Creative Commons,171 Second Street,Suite 300,San Francisco,CA 94105,USA。


 


cc

原始文章采用CC BY-SA 4.0,您可以自由地:

  • 演绎 — 修改、转换或以本作品为基础进行创作
  • 在任何用途下,甚至商业目的。
  • 只要你遵守许可协议条款,许可人就无法收回你的这些权利。

本文由翻译美国开源硬件厂商Sparkfun(火花快乐)的相关教程翻译,原始教程采用同样的CC BY-SA 4.0协议,为便于理解和方便读者学习使用,部分内容为适应国内使用场景稍有删改或整合,这些行为都是协议允许并鼓励的。

原始文章及相关素材链接:

https://learn.sparkfun.com/tutorials/getting-started-with-micropython-and-the-sparkfun-inventors-kit-for-microbit/all#experiment-2-