分类目录归档:Arduino小组

魔方破解机器人教程

拿到套件后,第一件事情就是清点一下零件数量是否有缺,部分消耗品或配件(如USB连接线、白乳胶、镊子)外观可能因不同批次有所差异,并不影响使用,部分易得选配件(如电池)可能不会附赠。

序号 名称 数量 功能 备注
1 木板A 1 搭建魔方破解机器人主体,支撑固定其他零件
2 木板B 1 搭建魔方破解机器人主体,支撑固定其他零件
3 木板C 1 搭建魔方破解机器人主体,支撑固定其他零件
4 木板D 1 搭建魔方破解机器人主体,支撑固定其他零件
5 木板E 1 搭建魔方破解机器人主体,支撑固定其他零件
6 扩展板 1 引出主控板连线,便于与舵机直接连接
7 主控板 1 接收电脑动作信号并转换为舵机运动指令
8 塑料舵机 1 用于带动旋转魔方基底的运动 与舵盘连接处白色
9 金属舵机 1 用于保持、释放和翻转魔方 与舵盘连接处黄色
10 电池盒 1 用于存放3节五号电池并给舵机供电 仅凭USB数据线来自电脑主板的供电无法使两个舵机正常运转,使用过程中
11 螺丝螺母收纳纸盒 1 收纳用于固定舵机和主控板与木板支架的螺丝和螺母
12 高质量魔方 1 高质量魔方 低质量魔方不能容忍旋转角度误差,旋转不到位,翻动到另一个面旋转时会卡住
13 USB数据线 1 用于给主控板烧录程序以及与电脑通信接受
14 五号电池 3 用于给舵机供电 不用依靠电脑供电,舵机会因供电不足而卡顿
15 十字螺丝刀 1 用于安装螺丝螺母和电池盒与拓展板之间的供电线连接
16 镊子 1 用于不便于手伸入的位置夹持和安装螺母,尤其是带尼龙圈的紧固螺母
17 白乳胶 1 没有热熔胶时使用用于木板间连接,但固化需要数小时之久,且不可加热拆卸,容易损坏木板 推荐使用热熔胶

 

结构拼装

魔方托盘

魔方卡手

主体安装

主体安装完成后,即可参考以下照片完成安装,有旋转部位的螺丝需要使用尼龙防松螺母,保证运转过程中不会因震动而松脱。

逐步安装过程拍照:

 

舵机接线参考

G V S

端口号

5

6

电池盒接线参考

VCC

电池盒红线

GND

电池盒黑线

打开设备管理器

在“我的电脑”或者计算机,右键它弹出菜单表,点击“管理”;(仅限于win7系统的用户)

在计算机管理页面左侧列表,可以找到“设备管理器”双击它,中间会显示硬件和设备是否正常的信息。有黄色感叹号就代表者有问题。

如果您的电脑买安装此驱动,需要参考以下网址,安装CH340驱动后,电脑即可与Arduino通讯

win7 http://www.arduined.eu/files/CH341SER.zip

win8 http://www.arduined.eu/files/windows8/CH341SER.zip

Mac http://kig.re/downloads/CH341SER_MAC.ZIP

Mac https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver

点击[INSTALL],就可以完成驱动程序安裝。

确保驱动程序已经安装后,即可烧录Arduino程序

打开上述文件夹后

打开

程序运行

点击Upload

成功安装后,运行上位机

下列界面显示表示已经成功和Arduino通信

填上魔方颜色后,点击SOLVE,获得解答步骤后,点击SEND,即可

主控板烧录程序成功后,开机时魔方的基座旋转舵盘会归位,翻转手臂会自动翻转魔方一次。可视此过程为开机自检。如果此过程不正常,则需要重新剥离舵盘和舵机,以调整初始位置。

基座塑料舵机初始位:与翻转手轴线平行

翻转卡手舵机初始位:应远离魔方,卡在图中红色圈相应位置

 

如魔方运转过程中卡顿,请检查电池盒开关是否打开,电池盒与扩展板接线是否牢靠?

 

提示:上位机程序看上去魔方的正面是以翻动魔方手臂的方向看去为前方,即下图所示

程序调试部分支持信息提示:

 

先简单介绍一下舵机的基本知识。舵机简单的说就是集成了直流电机、电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。能够利用简单的输入信号比较精确的转动给定角度的电机系统。

舵机除电源外,只要一根信号线即可;使用PPM(脉冲比例调制)信号控制;所谓“PPM”,是一个周期约20ms,其间有个宽度在2ms 左右的脉冲控制信号。一般是以1.5ms 为基准,此时舵机居中,小于1.5ms 舵机左转,大于1.5ms,舵机右转;至于角度和脉冲宽度关系各个产品不同,例如:0.5ms 对应左转90 度,2.5ms 对应右转90 度。

 

由于使用不同的舵机采用的具体脉冲不同,即便是同一型号的舵机也因为死区不一致性,初始位置安装误差等,导致原始程序在部分用户安装的魔方破解机器人上不能正常工作。现根据我们所选用的舵机(塑料舵机:Futaba S3003、金属舵机:TowerPro MG995)上图图示情况进行简单的说明。

1ms(毫秒)=1000us(微秒),所以对应的情况是

500us =  0°

1000us = 45°

1500us = 90°

2000us = 135°

2500us = 180°

变化区间2000us内涵盖角度0-180°,由此可见脉宽每增加或减少约11us,舵机摆动角度相应改变1°。

想要了解更多知识,请参考http://www.i-element.org/servo/

 

现在我们来分析上下位机中对应的需要调整的程序参数。在控制板烧录完程序以后,每次上电启动,魔方破解机器人都会进行一次魔方翻转运动,由此时,你可以观察魔方是否被正确顺滑翻转。你也可以在上位机传送命令F(Flip)翻转,让机器人执行此指令,如下图所示

此外,上位机发送的全部指令一共就三种F(Flip)、H(Hold)、T(Turn)指令默认用空格隔开,对于一段魔方解答的结果就是由这三种指令的结果组成。(为了让部分有兴趣了解其算法的朋友能深入学习,后续我们将继续补充教程,针对此结果产生的算法进行讨论)目前我们仅讨论舵机参数需要调整以确保上诉3个动作能够完整的运行。

手臂舵机(armservo)总的来说有三个位置,对应3种指令

F(flip)翻转指令必须要保证手臂和魔方高度匹配,在中间黑色示意的导向区必须保证翻转动作后能自由落下到卡位,所以两块三角形导向板之间的连接螺丝必须保持适当的松紧度。

H(hold)把持指令执行时,手臂运动到此位置时,必须保证魔方的上两层被抓手握住,在魔方基底旋转时,魔方能被正确旋拧90度。

T(turn)旋转指令执行时,手臂必须退到导向板卡槽处附近,并向上倾斜约45度,手臂在此位置时,魔方基底旋转不会被手臂任何部位所阻碍。

接下来,我们看一下,在程序中,以上三个位置对应的参数

显然,

OFF对应T指令时的位置

HOLD对应H指令时的位置

PUSH对应F指令时的位置

你可以通过上述舵机的基本知识得到相应的关系去调整此3个参数,并重新烧录程序到Arduino控制板,获得手臂位置的微调。

需要注意的是,当上位机正在运行并与控制板通信时,烧录新程序将失败,因为两个程序竞争,只有能一个程序获得通过串口与控制板通信的权利。

也部分读者可能会问,为什么不是if-else语句中if下的3个参数,那是因为我们舵机可以正反安装,当反向安装时,上面的3个参数对应的位置才有效,否则默认执行else语句下的三个参数。

基底舵机(baseservo)总的来说有四个位置,分别在指令H和T中起作用

仔细观察的读者可能已经发现,放置魔方的基底托盘并不是刚好能放下魔方,而是比魔方略大,大概宽出3-4mm。这是多方面的原因导致的,但最直接的原因就是因为翻转魔方时需要空间,同时需要兼容导向板等可能产生的误差,这个道理同样适用于卡爪上,手臂最前端的卡爪也不能是恰恰好能卡住魔方而不多留一点剩余的空间。

这种容乃误差的做法,同样会给魔方扭转过程带入其它的新问题,如卡爪和底座都有空间,那么当卡爪把持魔方,底座完全旋转90°时,问题就出现了。由于空隙的存在,魔方往往不能恰好转到90°的位置。当一个位置扭不到准确的90°时,翻转或者旋转90°再扭时,魔方将会卡壳,甚至是损坏。由于我们选配了可以容错的高质量魔方(超过20元一个,而不是那种几块钱的魔方),这个问题其实已经可以容纳非常宽松的偏差,扭不到位的魔方在侧面再拧时会自动修复不到位的一面,目测10°以内不会有问题。即便如此,我们还是希望利用程序中的修正参数,把这个问题说清楚。

 

在魔方基底旋转的过程中,有原位和90°旋转位两个基本位置。几乎是同理加上了后缀词(over)。也就是说,当魔方基底选择时,先转到over位,然后再回到基本位,利用过转的这个超调量,克服每次动作时卡爪和基底的空隙带来的魔方90°旋转不到位。

基于上述的理论,你就会知道,当每次执行H(hold)指令后,如果魔方扭不到90°的正确位置,那么你就应该要尝试调整上面的4个参数咯。

学习,理解,锻炼,在充分思考后动手,我相信这次DIY的成功一定会磨炼出你的耐心和细心,创客精神与你我一同砥砺前行吧!

接线端子和各类连接器的基础知识

引言

接线端子用于将分开的电路连接到一起。通常这些连接器用于常需要切换和断开的场合,如连接电源,连接外围电路,或者需要更换的扩展部分。

该教程涵盖内容

在本教程中,我们将介绍下面主题

  • 关于接线端子的常见术语
  • 将接线端子进行区别分类
  • 介绍上述分类之间的区别
  • 介绍如何使用极性防反的接线端子
  • 介绍如何使用极性防反的接线端子

建议先阅读

在您开始阅读本文之前,请确保您已经知道或者学习了以下教程中所罗列的内容:

接线端子术语

在我们开始讨论一些常用的连接器之前,让我们来探讨用于描述接线端子的术语。

公母端子Gender – 接线端子的公母性说明了它是用来插入还是被插入的。(哈哈,如果你还是单纯的孩子,更详细的解释估计你得去问问你父母)遗憾的是,有些被称为公头的端子,实际上是按照母头的端子来使用的。在接下来的示例中,我们将将说明这些缘由。

Male and female 2.0mm PH series JST connectors

左边公右边母的 2.0mm PH系列的JSP接线端子

极性-大多数接线端子有约定的极性方向。这种特性使得接线端子可以防止接反。

North America wall plug

有极性的美规墙上插头。 通过为插头叶片两种不同的宽度,插头只能单向进入插座

触点-触点是接线端子真正起作用的功能部分。 它们是彼此接触的金属部件,形成电气导通的连接。 这里也往往是导致连接不良的地方:触点可能变脏或氧化、或者金属弹片的弹性随时间蠕化变小而将导致触点松脱或连接不可靠。

ADH8066 mating connector

该连接器上的触点清晰可见。

间距 – 许多连接器由重复排列的一组触点组成。 连接器的间距是从一个触点的中心到下一个触点的中心的距离。这一点很重要,因为有许多接线端子外观和触点看起来非常相似,但间距可能不同,所以往往一个型号系列的端子仅仅因为这个参数不同而不同,因此在不知道此参数情况下,很容易在购买了不能配对连接端子。 

 

.1" pin header connector examples

标准Arduino上标题的引脚间距为0.1英寸。

插拔次数 – 接线端子的使用寿命都是有限的,每次接上和断开接线端子都会导致部分磨损。 数据表通常以插拔次数这一指标来表示其使用寿命,使用不同技术的接线端子插拔次数差别很大。 USB连接器可能具有数千或数万次插拔的寿命,而设计用于消费电子产品内部的板对板连接器可能会被限制为数十次插拔的寿命。 选择适合应用场景寿命的接线端子非常重要。

Connector for GS406 GPS module

GS406 GPS模块的匹配连接器。 该连接器的数据表显示该零件的插拔次数是50次。

安装方法 – 这个可能会让人有些困惑。 术语“安装”指以下几种情况:连接器如何在使用中安装(安装在面板上,自由悬挂着,电路板安装),连接器相对于其附件的角度(直角或直角),它如何机械连接(焊片焊接,表面贴片焊接,通孔焊接)。 我们将用示例对接线端子中的安装方法进一步讨论。Comparison of different mounting methods for barrel-type connectors

比较三种相同管连接器的不同安装方法:(从左到右)电路板板安装,内联电缆安装和板面安装。

抗弯折延伸部分(用于减缓应变) – 当连接器安装在电路板或电缆上时,线材拐弯处的连接往往有点脆弱。 通常提供某种类型的抗弯折延伸部分用于减缓应变,以将作用于该连接器的任何应变传递到更多更合理的结构上。 后面还有这类型的例子。

1/8" Headphone jack showing strain relief

这个1/8英寸耳机插孔带有一个应力消除”靴子“,滑过电缆以防止电缆上的力量直接传输到电气接头。

USB连接器

USB连接器有两种类型:主机和从机。 在USB标准中,两者有所不同,电缆和设备上的连接器反映了这一点。 但是,所有USB连接器都有一些共同之处

  • 极化 – USB连接器只能按正确一面插入。 从不对的方向无法插入,强行插入连接器不会工作,并可能导致其损坏。
  • 四个触点 – 所有USB连接器至少有四个触点(尽管有些可能有五个,而USB 3.0连接器有更多)。
  • 这些用于电源,接地和两条数据线(D +和D-)。 USB连接器是设计用于传输5V,高达500mA电流的连接器。
  • 屏蔽 – USB连接器是自带屏蔽的,外部包围了不属于电路的金属外壳。 这对于在具有大量电流“噪音”的环境中保持信号完好无损很重要。
  • 强大的电源连接 – 电源引脚在数据线之前先完成连接这点非常重要,以避免试图通过数据线供电。 所有USB连接器的设计都考虑到了这一点。
  • 减缓应变 – 所有USB电缆都在连接器上进行塑料包覆成型,以防止电缆上出现可能损坏电气连接的应变。

Labeled image of USB extension cable

USB延长线,标有USB连接器的一些常见功能。

USB-A接口

USB-A母头是标准的“主机”连接器类型。 这可以在计算机,集线器或任何打算将外围设备上找到。 也可以在另一端找到带有A型连接器和A型连接器的延长电缆。

USB-A ports on a laptop computer.

笔记本电脑侧面的女性USB-A端口。 蓝色连接器符合USB 3.0标准。

USB-A公头是标准的连接外围扩展设备的连接器。 大多数USB电缆的一端将以USB-A公头连接器终结,而许多设备(例如键盘和鼠标)将具有内置电缆端接有USB-A公头连接器。 也可以找到可安装在板上的USB-A公头连接器,适用于U盘等设备。

USB-A male connector examples

两种类型的USB-A公头接口,SparkFun Cerberus电缆和AVR Stick开发板。

USB-B接口

USB-B母头是外围设备的标准。 它体积稍大,但坚固耐用,所以在不限制尺寸的应用场景中,它是为USB连接提供可移动连接器的首选方法。 它通常是通孔板安装的连接器,以获得最大的可靠性,但也有板面安装的方式。

USB-B connector on an Arduino Uno

由于其低成本和耐用性,包括Uno在内的Arduino主板早已使用了USB-B母头连接器。

USB-B公头多数位于电缆的末端。 USB-B电缆无处不在,价格低廉,这也有助于USB-B连接的普及。

Male USB-B connector

SparkFun Cerberus电缆末端的USB-B公头连接器

USB-mini接口

USB-Mini连接是第一个用于较小设备的USB接口尺寸标准的尝试。 通常在较小的外围设备(MP3播放器,旧手机,小型外置硬盘驱动器)上可以找到USB-Mini母头,通常是表面贴装连接器,具有较大的尺寸稳定性。 USB-Mini逐渐被逐渐淘汰,转而使用USB-Micro连接器。

USB-Mini female connector

Protosnap Pro Mini上的USB-Mini母头接口。

USB-Mini公头是另一种仅有线缆的连接器。 与USB-B一样,它非常常见,几乎可以在任何地方以便宜的价格找到此连接线。

USB-Mini male connector

SparkFun Cerberus电缆末端的USB-Mini公头接口。

USB微型连接器

USB-Micro是USB连接器系列的新增产品。与USB-Mini一样,主要关注是缩小尺寸的问题,但USB-Micro为低速信号增加了第五个引脚,使其可用于USB-OTG(On-the-go)应用,其设备视情况而定,作为主机或外设运行。

USB-Micro母接口可以在许多新型外设上找到,例如数码相机和MP3播放器。 USB-micro作为所有新手机和平板电脑的标准充电接口,意味着充电器和数据线越来越普遍,而USB-Micro已经取代USB-Mini作为小尺寸USB连接器的选择。

USB-Micro female connector

LilyPad Arduino USB板上的USB-Micro母接口。

USB-Micro公头也是一个只有线缆的连接器。 通常有两种类型的带USB-Micro公端的电缆:一种用于连接具有USB-Micro端口的设备作为USB主设备的外设,另一种用于将USB-Micro母端口连接至USB-A母端口 ,用于支持USB-OTG的设备。

USB-Micro male connector

SparkFun Cerberus电缆上的USB-Micro公头连接器。

USB-A female to USB-Micro adapter

适配器尾纤,用于使用仅具有带标准USB外设的USB-Micro端口的USB-OTG设备。 请注意,并非所有支持USB-OTG的设备都可以使用此尾纤。

译者注:现在随着USB3.0普及和无容错设计思路的要求,更多的手机和外置设备从USB-Micro接口转向使用USB-type C接口,包括最新的苹果Macbook。但苹果手机和平板目前仍在使用苹果独家专利的lighting连接线。

维基百科上,关于各类型USB接口样式的示意图

维基百科上,关于各类型USB-Type-C接口的样式示意图

最新使用了USB-Type-C接口的苹果笔记本电脑Macbook

音频连接器

另一个熟悉的连接器是那些用于视听应用的组合–RCA俗称梅花头、莲花头和唱机。 虽然这些不能真正被认为是同一个家族,由于其结构、连接方式和原理雷同,我们将它们归为一类在此介绍。

“电话”类型连接器

您可能会立即将此连接器的1/8“版本识别为耳机末端的插头,这些连接器实际上有三种常见尺寸:6.3英寸(6.35毫米),1/8英寸(3.5英寸 毫米)和2.5毫米¼英寸尺寸连接器在专业音频和音乐界有很多用途 – 大多数电吉他和放大器上都有1/4英寸尖端套(TS)插孔,1/8英寸tip-ring- sleeve(TRS)结构的输出信号的连接器作为MP3播放器或电脑上的耳机或音响非常普遍。 一些手机将提供一个2.5毫米tip-ring-ring-sleeve(TRRS)插孔,用于连接耳机,该耳机还包括用于免提通话的麦克风。

这些连接器和电缆的普遍可用性使其成为通用连接应用的良好选择 – 例如,早在USB之前,德州仪器的图形计算器就使用2.5mm TRS连接器作为串行编程连接器。 应该记住的是,tip-sleeve(端头 – 套筒)连接器类型不可用于传输电源; 在插入过程中,尖端和套筒可能会短时间短接在一起,这可能会损坏电源。 屏蔽不足使得它们不适用于高速数据,但低速串行数据可以使用这些连接器。

1/8" TRS phone plug

耳机型TRS电话插头,1/8“。通常,尖端tip和环ring将承载立体声音频信号,而套sleeve将接地。

1/8" TS phone plug

1/8英寸手机插头,请注意此连接器上没有环ring触点。

1/8" board mount headphone jack

1/8“板载耳机插孔,带有相应引脚连接的插针标记。当未插入插孔时,内部开关将尖端和环形引脚连接到相邻的未标记引脚,从而允许插入检测。

RCA连接器

RCA俗称梅花头、莲花头,是数十年来首选的家用立体声连接器,于1940年由RCA引入家用留声机中。 它在视听领域正逐渐被HDMI等连接所取代,但无处不在的连接器和电缆使其成为家用系统的理想选择。 它已经服役了很长的时间。

母端RCA连接器通常可在设备上找到,但可以找到带有母插孔的分机电缆或转接电缆。 大多数RCA连接器都连接到四种信号类型之一:分量视频(PAL或NTSC,取决于设备的销售地),复合视频,立体声音频或S / PDIF音频。Female RCA plug, for video signals.

RCA母头连接器,用于视频信号。 通常,NTSC或PAL视频信号连接器将呈黄色。

RCA公头连接器通常在早起的影碟机和电视连接的电缆上找得到。Male RCA plugs

RCA公头。 红色和白色通常用于音频应用,红色表示右声道的音频。

电源连接器

虽然许多连接器除数据外还承载电源,但某些连接器专门用于为设备提供电源连接。 这些因应用和尺寸而异,但我们只关注一些最常见的部分。

DC直流电源插头插座

DC直流电源插头插座通常用于低成本消费类电子产品,可通过大型AC电源适配器插入墙上电源。 壁式适配器广泛适用于各种额定功率和电压,使DC直流电源插头插座成为将电源连接到小型项目的常用手段。

DC直流电源插座或插孔可以以多种类型购买:PCB安装(表面贴片焊接或通孔焊接),电缆安装或板面安装。 这些连接器中的一些将具有额外的接触点,以允许应用程序检测电源是否插入到筒状插孔中,从而允许设备在外部电源上运行时绕过电池并节省电池寿命。

Female barrel connector

DC直流电源插座。 当没有插入插头时,“插入检测”引脚将短接到“套筒”引脚。

虽然有多种方法将插头连接到电线的末端,但是通常只能在电线端子中找到公插筒连接器或“插头”。 也有可能获得预先连接到电缆的插头。

Male barrel plug

独立的DC直流电源插头,用于连接任何电源。 请注意,套筒连接设计为压接在导线上以额外消除应力。

桶式连接器仅提供两个连接,通常称为“销”或“尖端”和“套筒”。 订货时,筒体连接有三个不同的特点 – 内径(插座内插针的直径),外径(插头外侧套筒的直径)和极性(套筒电压是否为 高于或低于尖端电压)。

套筒直径通常是5.5mm或3.5mm。

销直径取决于套筒直径; 一个5.5毫米的套筒将有一个2.5毫米或2.1毫米的引脚。 不幸的是,这意味着为2.5mm引脚设计的插头将安装在2.1mm插孔中,但连接最多只能是间歇性的。 3.5毫米套筒插头通常与1.3毫米插针插孔配合。

极性是最后要考虑的方面; 通常,套管将被视为0V,并且尖端将相对于套管成为正电压。 许多设备将有一个小图标表明设备所期望的极性; 应注意遵守这一点,因为不正确的电源极性可能会损坏设备。

两个套管尺寸的长度通常为9.5毫米,但是更长和更短的套管确实存在。大部分产品均使用正极性5.5毫米套筒和2.1毫米引脚; 我们建议尽可能坚持标准,因为它更容易维修和更换。Barrel connector polarity label

AC适配器与套筒的公共极性图。 正极性(尖端正极,套管0V)是最常见的。 图表由维基百科用户提供。

“Molex”端子

大多数计算机硬盘驱动器,光盘驱动器和其他内部外围设备通过通常称为“Molex”端子供电。 为了更加准确,它是一个Molex系列8981连接器 – Molex实际上是最初在1950年代设计这种连接器的公司的名称。

Molex连接器设计用于承载大量电流:每个引脚最多11A。 对于可能需要大功率的项目(例如CNC机器或3D打印机),为项目提供动力的常用方法是使用台式PC电源并通过Molex连接器连接各种系统电路。

Molex端子就是术语公母头中有点反常的例子。 母头端子通常位于电缆的末端,并且在包围公头端子内的插针的塑料外壳内滑动。 通常情况下,连接器只能压入,非常非常紧 – 为保证连接牢固可靠,它们通常只能连接和断开数十次,因此对连断频繁的系统来说,这不是一个好的选择。

Male Molex connector

Molex端子。 连接器的引脚的公母是指整个连接器而非金属部分。

Female Molex connector

在项目电源上的公Molex端子。

IEC连接器

与Molex连接器一样,这是一种通用组件名称与单个特定项目同义的情况。 IEC连接器通常是指台式PC电源上常见的电源插口。 严格来说,这是IEC 60320-1 C13(母)和C14(公)连接器。

IEC 60320-1 C14 male connector

C14公头IEC电源插座,位于DC项目电源上。 请注意,与Molex连接器一样,连接器的公母由盖内的引脚定义。

C13 female IEC power connector

C13母IEC电源连接器,使用相当标准的交流电源电缆。 这一端的电缆可以在世界各地找到,通常在另一端使用主要的本地交流电连接器。

IEC连接器几乎专门用于交流电源输入。 在项目中使用它的好处在于,IEC对市电电缆非常普遍,并且可用于大多数国际地区的本地化市电插头!

JST连接器

我们的Arduino项目中,经常提到“2.0mm JST连接器”。 这是特定产品的又一次推广–JST是一家生产高品质连接器的日本公司,2.0mm JST连接器是PH系列双位置极性连接器。

很多单节锂聚合物离子电池均标配这种JST连接器,并且许多电路板都包含此连接器(或其引脚的焊盘孔)作为电源输入。 它具有结构紧凑,耐用并且防反的优点。 另一个可能是优点或缺点的特性,取决于你如何看待它,是因为JST连接器在插入后很难断开连接(虽然小心应用斜口钳可以帮助!)。 虽然这使得在使用过程中不可能出现故障,但这也意味着断开电池充电容易损坏电池连接器。

2-Pin JST male connector on a LilyPad Arduino USB board

LilyPad Arduino USB板上的2引脚JST公头连接器。 再次,与Molex一样,胶壳内的引脚决定了连接器的公母。

Male and female 2-pin JST connectors

公母型2针JST连接器。Male and female 2-pin JST connectors.

PH系列连接器有两个以上的接线位。 但是,我们最常用的应用是用于2位电池连接。

排母连接器

排母连接器包含几种不同的连接方式。 一般来说,一面是焊接到PCB上的一系列引脚,它们可以与PCB表面成直角(通常称为“直线”)或平行于电路板表面(易混淆地称为“右边” – “角”)。 这种连接器以各种间距(如2.54mm和2mm)出现,并且可以具有任意数量的单独的排针。

Right angle female header pin connector

FTDI基础板上的直角母头引脚连接。

最常见的针脚头是0.1英寸单排或双排连接器,它们有排针或排母,并且是用于连接Arduino板和屏蔽板的连接器。其他的间距并不少见,例如XBee无线模块使用 相同连接器的2.0mm间距的系列。

.1" pin header connector examples

Arduino Uno电路板上的0.1英寸排母连接

这部分的常见变种是圆孔排针的版本。 虽然正常版本是由冲压和折叠金属板制成的,但是圆孔排针是通过将金属加工成所需的形状而形成的。 其结果是一个更坚固的连接,具有更好的接头和更长的使用寿命,但其成本也更高。

Female machine pin headers

圆孔排针,请注意,这些连接器被设计成可以分割成较小的部分,而标准的0.1英寸母头连接器不是。还需要注意的是,并非所有非机器针头连接器都将与机器针脚配合使用。

连接到这些引脚接头的电缆通常为以下两种类型之一:带有压接连接器的单根电线或带绝缘位移连接器的带状电缆。 这些可以简单地夹在排缆杜邦线的末端,从而形成与带状电缆中每个导体的连接。 通常情况下,杜邦线只能作为母头使用,并期望公头排针与之配对。

Crimp connected header cable

六位杜邦线排缆。 每条导线都被单独剥去,连接器压接在上面,然后将连接器插入塑料胶壳中。

2x5 insulation displacement connectors on a ribbon cable

带状电缆上的2×5绝缘位移连接器(IDC)。 这种电缆可以快速组装,因为它不需要剥离单个连接器。 它的两端还有偏移头,以防止插入配对板侧连接器时接反。

临时连接器

螺丝接线端子

在某些情况下,可能需要将裸露的导线连接到电路。 螺丝端子为此提供了一个好的解决方案。 它们也适用于连接应该能够支持多种不同连接设备的情况。

螺丝端子的缺点是它们可以很容易地解开,在电路中留下一根裸露的导线。 一小撮热胶可以解决这个问题,而不会以后太难去除。

螺丝端子通常设计用于窄范围规格的电线,电线太小与太大都不行。 常见有两种类型的螺钉接线端子0.1英寸和3.5mm版本。大多数螺钉端子都是高度模块化的,只需将两个或多个较小的部分连接在一起即可轻松地以相同的间距进行扩展。

3.5mm screw terminals– > 3.5毫米间距的螺钉端子,显示要连接的导线的插入点,固定导线的螺钉以及单个单元侧面的模块化连接器,可以将多个部件组合在一起。

香蕉连接器

大多数电源测试设备(万用表,电源)都有一个非常简单的连接器,称为“香蕉插座”。 这些配对“香蕉插头”,卷曲,弹簧金属插头,意味着做一个单一的电源连接。 它们经常以可堆叠配置提供,并且可以轻松连接到任何类型的电线。 它们能够承载几安培的电流并且价格低廉。

Banana plug

可堆叠的香蕉插头。 请注意,有两种不同的方法可以插入额外的香蕉插头。

Variable power supply with banana plugs

Extech可调台式电源,前部带有香蕉插孔。

鳄鱼夹

命名原因显而易见,鳄鱼夹适用于接线柱或裸线的测试连接。 它们往往体积庞大,容易对附近的裸金属造成短路,并且具有相当差的抓地力,易于损害某些连接部位。 它们主要用于调试期间的低成本连接。

Alligator clips

“第三只手”的工具使用鳄鱼夹夹住工件,用鳄鱼夹夹住电线进行电气测试。 请注意鳄鱼夹周围的塑料套,以防止其他连接短路。

IC夹(或IC钩)

对于更精细的探测操作,市场上有各种IC夹。 这些尺寸允许用户将其夹在IC的引脚上而不接触相邻的引脚; 其中一些非常细腻,甚至可以夹在细间距的SMD元件支脚上。 这些较小的剪辑可以在逻辑分析仪和测试导线上找到,这对原型设计或故障排除电路来说非常有用。

Large IC clip

电线末端的大型IC夹。 该夹子仍然足够小,可以连接到通孔芯片上的单个支脚,而不会对邻近的引脚造成问题。

其他连接器

RJ型模块连接器

认证插孔连接器是电信设备进入本地交换机的标准配置。 通常听到的与之相关的名称(RJ45,RJ12等)不一定是正确的,中文俗称水晶头,因为RJ标志是基于位置数量,实际存在的导线数量和布线图案的组合。 例如,虽然标准以太网电缆的末端通常被称为“RJ45”,但RJ45实际上不仅意味着8位,8导体模块插孔,还意味着它与以太网连接。

这些模块化连接器可以非常有用,因为它们结合了可用性,多导体,适度的灵活性,低成本和适中的电流承载能力。 尽管这些电缆本来不是要提供大量的电源,但可用于将数据和几百毫安的数据从一个设备传输到另一个设备。 应注意确保为此类应用提供的插孔不会连接到传统的以太网端口,否则会导致损坏。

8p8c "RJ45" style modular jack

标准8p8c(8位,8芯)“RJ45”模块化插孔。 请注意,如果您打算使用此类插孔传输直流信号和电源,则必须避免使用带内置信号变压器的连接器。

D-sub型连接器

以其外壳的形状命名,D超小型连接器是计算世界的经典标准。 这种连接器有四种非常常见的品种:DA-15,DB-25,DE-15和DE-9。 管脚编号表示提供的连接数,字母组合表示管壳的大小。 因此,DE-15和DE-9具有相同的外壳尺寸,但具有不同数量的连接。

Female board-mount DE9 connector

DE-9母头板载连接器。 公母由与每个信号相关联的引脚或插座来定义,而不是整个连接器,使得该连接器尽管有效地插入到配合连接器的外壳中,仍然是母端。

DB-25和DE-9对硬件黑客最有用; 许多台式计算机仍然至少包含一个DE-9串行端口,并且通常还包含一个DB-25并行端口。 用DE-9和DB-25连接器端接的电缆也广泛使用。 与上述模块化连接器一样,这些可用于在两个设备之间提供电源和点对点通信。 同样,由于这些电缆的常用用途不包括电力传输,因此任何重新调整电缆的操作都要谨慎,这是非常重要的,因为插入标准端口的非标准设备很容易造成损坏。

更多可供深入学习的资料

现在您应该清楚哪些连接器最适合某些应用,哪些连接器将在您的下一个项目中对您有用。 请查看其他链接以更多地了解连接器。

  • Giant database 很全面的连接器和接口数据库 – 您场景的几乎任何连接器的简单介绍,如下图电脑背面的所有接口。 这是一个关于连接器基本信息的好网站,但对接口结束细节的描述不足。

  • Wikipedia article on registered jack connectors维基百科关于认证插孔连接器的文章 – 更多关于认证插孔(RJ)连接器的辨识,常被误解和误用的一些问题。
  • Wikipedia article on D-subminiature connectors维基百科有关D超小型连接器的文章 – 与认证插孔连接器一样,D型超小型标准的信息也很多。 维基百科有一篇很棒的关于它的文章。
  • Mouser电子产品目录 – 浏览电子产品供应商的目录通常是查找未识别连接器名称的好地方; Mouser增强型在线目录与打印版本一样好,而且不用浪费纸!

如果您希望浏览更多相关教程,请查看以下其他内容:

 


cc

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

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

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

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

https://learn.sparkfun.com/tutorials/connector-basics

两种信号量:模拟量与数字量

概述

我们生活在一个模拟世界。 可以用无限细分的数量表示的颜色来绘制一个物体(即使这种差异是我们肉眼难以分辨的),我们可以听到无限种的音调,并且有无限种的我们可以闻到的气味。 所有这些模拟信号的共同特点是它们的无限可分性。

 

用数字的信号和量来处理离散或有限的领域,这意味着它们只有一组有限的值。 这可能意味着只有确定不可分割的值,即255,4,294,967,296或任何其他值,只要它不是∞(无穷大)。

Analog and digital real-life items

真实世界的中许多的事物可以用数据表示,通过模拟或数字方式进行输入。 (从左至右):时钟,万用表和操纵杆(上面的模拟,下面的数字)。

应用电子技术意味着处理模拟和数字信号,无论是输入还是输出。我们的电子项目必须以某种方式与真实的模拟世界进行交互,但我们的大多数微处理器,计算机和逻辑单元都是纯数字的方式进行处理。 这两种类型的信号就像不同的电子语言; 有些电子元件是双语的,其他的只能输入和输出其中的一种。

在本教程中,我们将介绍数字和模拟信号的基础知识,包括每个示例。 我们还将讨论模拟和数字电路及其电子元器件。

建议先阅读

模拟和数字的概念独立存在,不需要大量以前的电子知识。但在您开始阅读本文之前,还是需要确保您已经知道或者学习了以下教程中所罗列的内容:

模拟信号

定义:信号

在进一步讨论之前,我们应该谈一谈信号究竟是什么,特别是电子信号。 我们正在谈论的信号是时变的“量”,其传达某种信息。在电气工程中,随时间变化的量通常是电压,偶尔也会是电流。 所以当我们谈论信号时,只要将它们看作随时间变化的电压即可。

设备之间传递信号以发送和接收信息,这些信息可能是视频,音频或某种编码数据。 通常信号通过导线传输,但也可以通过射频(RF)波传播。 音频信号可能会在计算机的音频卡和扬声器之间传输,而数据信号可能会通过平板电脑和WiFi路由器之间的空气传播。

模拟信号图

由于信号随时间而变化,因此,将其时间绘制在水平(x轴)和电压绘制在垂直(y轴)上的图很有帮助。 查看信号图通常是识别模拟或数字信号的最简单方法; 模拟信号的电压 – 时间曲线应该平滑连续

Analog Sine Wave

尽管这些信号可能被限制在最大值和最小值的范围内,但是在该范围内仍然有无限数量的可能值。 例如,从墙上插座出来的模拟电压可能会在-120V和+ 120V(译者注:这指的是美国国家标准的市电,中国国家标准市电的峰值电压是-310V和310V)之间被限制,但是,随着分辨率越来越高,您会发现信号实际上可以有无数个值(如64.4V ,64.42V,64.424V和无限的,越来越精确的值)。

模拟信号示例

视频和音频传输通常使用模拟信号传输或记录。 例如,从旧的RCA插孔出来的分量视频线是一种编码模拟信号,通常介于0到1.073V之间。 信号微小的误差对视频的颜色或位置有很大的影响。

Composite video signal

一行表示分量视频数据的模拟信号

纯音频信号也是模拟信号。 来自麦克风的信号充满了各种频率复合而成的模拟谐波,一起产生了美妙的音乐。

数字信号

数字信号的分量必须是有限值集合中的一个。 该集合中的值的数量可以是两个之间的唯一值,并且可以两个电压相差很大的模拟量,但不是无穷大。 最常见的数字信号将是两个值之一 – 如0V或5V。 这些信号的时序图看起来像方波。

Square wave signal. Two values, either 0V or 5V.

或者数字信号可能是模拟信号波形近似拟合后的离散表示。从远处看,下面的波函数可能看起来很平滑和模拟,但是当你仔细观察时,信号拟合近似时会有微小的离散间距:

Digital Sine Wave

这是模拟信号的波形和数字信号的波形之间的巨大差异。 模拟信号的波形是平稳而连续的,数字波,正方形和离散。

数字信号的例子

并非所有的音频和视频信号都是模拟的。 视频(和音频)的HDMI等标准化信号以及音频的MIDII2SAC’97都是数字传输的。

集成电路之间的大多数通信是数字信号的。像serial(串口),I2CSPI等接口都通过一个编码的方波序列来传输数据的。

SPI square wave signals

串行外设接口(SPI)使用许多数字信号在设备之间传输数据

模拟和数字电路

模拟电子技术

大多数基本电子元件 – 电阻器,电容器,电感器,二极管,晶体管和运算放大器 – 都是模拟本质的器件。 仅由这些电子元件构建的电路通常是模拟的。

Example analog circuit

模拟电路通常是运算放大器,电阻器,电容器和其他基础电子元件的组合。 这是B类模拟音频放大器的一个例子。

模拟电路往往是非常优美的设计,具有许多组件,或者它们可以非常简单,就像两个电阻串联在一起构成分压器。但是,一般来说,设计同样功能的模拟电路的比数字电路要困难得多。需要特殊的模拟电路指导思路来设计模拟无线电接收器或模拟电池充电器; 数字元器件的存在使得这些设计更加简单。

模拟电路通常更容易受到噪声的干扰(电压中的小的不希望的变化)。 模拟信号电压的小误差在经过后续处理后可能导致明显的差错。

数字电子技术

数字电路使用数字离散信号进行操作。这些电路通常由晶体管和逻辑门以及更高级别的微控制器或其他计算芯片组成。 大多数处理器,无论它们是计算机中的大型处理器,还是小型微控制器,都属于数字电子技术。

Example digital circuit

数字电路利用诸如逻辑门或更复杂的数字IC(通常用带有从其延伸的带有标记的引脚的矩形表示)的组件来使用

数字电路通常使用数字信号的二进制格式。 这些系统将两种不同的电压分配为两种不同的逻辑电平 – 高电压(通常为5V,3.3V或1.8V)代表一个值1,而低电压(通常为0V)代表另一个0。

虽然数字电路通常比较容易设计,但它们确实比同等功能的模拟电路贵一点。

模拟和数字组合

在电路中看到模拟和数字组件的混合并不罕见。 虽然微控制器通常是数字化的,但它们通常具有内部电路,使它们能够与模拟电路(模数转换器,脉宽调制和数模转换器)进行接口。模数转换器(ADC )允许微控制器连接到模拟传感器(如光电池或温度传感器)以读取模拟电压,不太常见的数模转换器允许微控制器产生模拟电压,这在需要制造时很方便 声音。

更多可供深入学习的资料

现在您知道模拟信号和数字信号的区别了,我们建议您查看模数转换教程。 使用微控制器或任何基于逻辑的电子设备,意味着大部分时间都属于数字电路。 如果您想要感测光线,温度,或将微控制器与各种其他模拟传感器连接,则需要知道如何将它们产生的模拟电压量转换为数字量。

另外,请考虑阅读我们的脉宽调制Pulse Width Modulation(PWM)教程。 PWM是微控制器可以用来使数字信号近似成模拟信号使用的方法。

以下是其他一些主要涉及数字电路技术的主题:

或者,如果您想深入研究模拟电子技术,请考虑继续学习这些教程:

 


cc

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

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

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

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

https://learn.sparkfun.com/tutorials/analog-vs-digital?_ga=2.115872645.205432072.1519278474-2127327188.1495905514

PCB基础知识

 

概述

电子技术和工业实践中一个非常关键的一个概念就是印刷电路板,英文缩写PCB。它甚至基础到这个行业里的人都觉得已经是不言而喻无需解释的东西。这篇教程将对印刷电路板PCB的组成和一些重要的基本概念进行说明。

接下来的内容,我们将讨论印刷电路板的组成部分,涵盖部分行业术语,生产中的装配方法,以及简单介绍设计新的印刷电路板的基本流程。

建议先阅读

在您开始阅读本文之前,请确保您已经知道或者学习了以下教程中所罗列的内容:

 

什么是印刷电路板PCB?

印刷电路板PCB是最常叫的名字,也可以称印刷连线板和印刷连线板卡。在PCB出现以前,人们通过点对点的绕线来实现相同的功能。这种不可靠的连接方法,当导线绝缘开始老化和破裂时,导致导线连接处和短路处经常出现故障。

Mass of wire wrap

绕线连接电路(图片来自维基百科用户Wilinaut)

一个重要的进步是线绕包装的发展,在每个连接点上,小规格的线材被缠绕在柱子上,形成高度耐用且易于更换的气密连接。

当电子工业的主流组成器件从真空管和继电器转变到硅器件与集成电路,电子元件的尺寸和造价开始大幅下降。电子技术遂开始在消费类产品中普及开来,由于减小尺寸和降低造价的驱动力,促使业界寻找更佳的解决方案来满足需求。因而诞生了印刷电路板的技术。

LilyPad PCB

PCB是印刷电路板的英文首字母缩写。它是一块拥有铜线和焊盘用于连接大量电路端点的板子。由上图所示,上面的轨迹线中可以看出在接线端子和电子元件之间存在着电气连接。印刷电路板上,信号和电能在不同的物理器件之间连接。焊锡能使PCB表面与电子元件的引脚电气连通。焊锡除了提供电气连通的功能外,也能为元器件提供有力的粘接附着作用。

组成

印刷电路板有点像层状蛋糕或烤宽面条 – 有不同材料的交替层,用热和粘合剂层压在一起,从而固结在一起。

alt text

让我们从上图中间开始向外各层开始介绍

FR4

FR4是一种耐燃材料等级的代号,所代表的意思是树脂材料经过燃烧状态必须能够自行熄灭的一种材料规格,它不是一种材料名称,而是一种材料等级。这个坚硬的核心给了PCB的刚性和厚度。 也有灵活的高温塑料(卡普顿或其它等效替代品)建造的柔性PCB。

你会发现许多不同厚度的PCB;产品最常用的厚度是1.6mm(0.063“),一些特殊产品,如LilyPad板和Arudino Pro Micro板使用0.8mm厚的板。

Perf board

更便宜的印刷电路板和印刷电路板(如上所示)将采用环氧树脂或酚醛树脂等其他材料制成,这些材料缺乏FR4的耐用性,但价格便宜得多。 当你焊接时,你会知道你正在使用这种类型的PCB – 它们具有非常难闻的难闻气味。 这些类型的衬底通常也可以在低端消费电子产品中找到。 酚醛树脂具有较低的热分解温度,当烙铁在电路板上过长时,会导致它们分层,产生烟雾和并且炭化。

铜箔

alt text

铜裸露的PCB,没有阻焊层或丝网印刷。

下一层是薄铜箔,用热和粘合剂将其层压到电路板上。 在常见的双面PCB上,铜被涂在基板的两侧。 在成本较低的电子小配件中,PCB可能仅在一侧具有铜。 当我们提到双面或双层板时,我们指的是我们电路板含有的铜层数(2)。 这可以少至1层或多达16层或更多。

阻焊层

铜箔顶部的层称为阻焊层。 该层为PCB提供颜色。 它被覆盖在铜层上以保持对外绝缘,使铜迹线不会与其他金属,焊料或导电钻头因意外接触而短接。 这层帮助用户焊接到正确的位置并防止焊接时产生连锡现象。

alt text

在上面的例子中,绿色阻焊层被应用于PCB的大部分,覆盖了较小的走线,但是银环和SMD焊盘暴露在外,因此可以焊接到PCB上。

在上面的例子中,绿色阻焊层被覆盖于PCB的大部分,包括较细的内部走线,但是银色圆环过孔焊盘和SMD焊盘暴露在外,方便相应元件焊接到PCB上。

丝印

PCB with silkscreen

白色丝网印刷层被印刷在阻焊层之上。 丝印为PCB增加了字母,数字和符号,使人们更容易组装和指示并提供简单指示,以更好地理解电路板。 人们经常使用丝印的标签来指示每个引脚或LED的功能。

丝印最常见的是白色,但可以使用任何油墨颜色。 黑色,灰色,红色,甚至黄色丝印颜色都广泛应用;但是,在单个电路板上看到多种颜色的情况并不常见。

术语

现在您已经了解了PCB的结构和基本概念,下面我们介绍一些在PCB设计制造和使用时常用到的术语:

  • 元器件孔 – PCB上环形元器件覆铜通孔电镀锡。

              Annular ring on resistorAnnular ring on vias

圆环过孔的例子。

  • DRC(design rule check) – 设计规则检查。 对设计运用软件进行检查,以确保设计不包含工艺能力达不到或者其它会导致问题的潜在风险,如走线太细钻孔太小等。
  • 钻孔偏移——应该钻孔的设计,或者他们实际在钻孔板上钻孔的地方。 不精确的装夹定位的钻头的引偏造成的钻孔不准是一个常见的制造问题。

Bad drill hits

钻孔偏移,但电路板功能依旧正常的钻孔

  • 手指插-露出的金属垫沿着电路板的边缘,用于在两块电路板之间建立连接。 常见的例子是计算机扩展卡或内存条以及旧版盒式游戏卡。
  • 锯齿 – 用于将板与面板分离的V型槽切的替代品。 许多钻孔聚集在一起,形成了一个薄弱点,事后可以很容易地折断该处。

LilyPad Protosnap with mouse bites

锯齿在LilyPad ProtoSnap上的咬合可以让PCB轻松拆下。

  • 焊盘 – 用于让元件焊接到的电路板,表面暴露金属的部分。

alt textalt text

PTH(镀通孔)焊盘,右侧为SMD(表面贴装器件)焊盘。

  • 拼板 – 一个大的电路板,由许多较小的电路板组成,在使用前将被拆开。 自动化的许多电路板处理设备通常在生产处理较小的电路板上会有问题,并且通过一次将多个电路板聚合在一起,使得工艺生产过程可以显着加快。
  • 钢网- 将锡膏(锡膏)印刷于电路板再经过回流焊炉连接电子零件于电路板上,是现今电子制造业最普遍的使用方法。锡膏的印刷其实有点像是在墙壁上油漆一般,所不同的,为了要更精确的将锡膏涂抹于一定位置与控制其锡膏量,所以必须要使用一片更精准的特制钢网(模版)来控制锡膏的印刷。
  • 贴片/贴片机- 将贴片元件放置在电路板上的过程及其设备。
  • 覆铜区 – 电路板上的连续铜箔区域,由边界而非路径定义。 通常也称为“敷铜”。

PCB ground pour

PCB的没有走线的各个部分区域都被大面积覆铜并与GND相连

  • 电镀通孔 – 电路板上的一个孔,该电路板上有一个环形环,并且两面都有焊盘在电路板上。 可能用于通孔元件的引线连接,通过信号并安装。

Plated through hole resistor

插入FabFM PCB中的PTH电阻器,可以进行焊接。 电阻器的腿穿过孔。 电镀孔可以在PCB的前部和PCB的后部连接到它们表面的铜箔走线。

  • Pogo金探针触点- 内置弹簧测试针加载的触点,用于进行测试或编程的临时连接。

Pogo Pin

流行的弹簧金针尖。 我们在测试设备上使用了大量的这些金针

  • 回流焊 – 熔化焊料以在焊盘和元件引线之间形成连接。
  • 丝印 – 电路板上的字母,数字,符号和图像。 通常只有一种颜色可用,分辨率通常很低。

Silkscreen

丝印将此LED标记为电源LED。

  • 铣槽 – 电路板上任何不是圆形的孔都属于此类。 槽边缘可能会也可能不会覆铜喷锡。 铣槽有时会增加成本,因为它们需要额外的铣削时间。

slot

复合的槽刀切入ProtoSnap Pro Mini。 还有很多锯齿用于拆下小块的电路板。 注意:插槽的拐角处不能做成完全直角,因为它们是用圆形铣刀切割的。

  • 焊膏 – 悬浮在凝胶介质中的焊锡小球,在放置组件之前,借助于焊膏模板将其施加到PCB上的表面安装焊盘上。 在回流焊过程中,焊膏中的焊料会熔化,从而在焊盘和部件之间形成电气和机械连接。

alt text元件放置前不久,在PCB上焊上锡膏。 一定要阅读上面关于钢网的介绍。

  • 焊锡炉 – 用于快速将焊锡板与通孔组件配合使用的罐。 通常包含少量熔化的焊料,电路板快速浸入其中,在所有暴露的焊盘上留下焊点。
  • 阻焊层 – 一层覆盖金属的防护材料,以防止短路,腐蚀和其他问题。 虽然其他颜色(红色,蓝色或黑色)也是可能的,但通常是绿色的。

alt text

阻焊层覆盖信号走线,但留下焊盘焊接

  • 连锡 – 不需要的焊锡连接的电路板上两个相邻引脚的焊锡连接成一块。
  • 表面贴装 – 允许将组件简单贴在电路板上的安装方法,而不需要引线穿过电路板上的孔。 这是今天使用的主要元件放置方法,允许电路板快速且容易安装。
  • 阻隔覆铜散热 – 用于将焊盘连接到其它处的走线。 如果焊盘没有阻隔散热的设计,则难以使焊盘达到足够高的温度以形成良好的焊点。 当您试图焊接时,不适当散热的焊盘会感觉“焊锡难以熔化”,并且需要非常长的时间进行焊接。

thermal

在左侧,过孔和焊盘都是十字连接到GND覆铜区。 在右侧,没有热量的通孔将其完全连接到地平面。

  • 覆铜点(取样点)-为了保持PCB在电镀时板上各点镀铜厚度均匀而加的铜皮,网格线或铜点。 减少蚀刻难度,因为需要更少的时间来去除不需要的铜,也可避免该区域铜箔过度电镀的情况发生。
  • PCB迹线 – 电路板上铜走线的连续路径。

Traces on PCB

将RES焊盘连接到电路板上其他位置的小迹线。 较粗大的迹线连接到5V电源引脚。

  • V切槽-通过部分切割板子,形成V槽,使板子可以很容易地沿着此V槽线折断。
  • 通孔 – 用于将信号从一层传递到另一层的板上的孔。 盖油过孔由阻焊层覆盖,以防被焊接。连接器和元件需要连接的通孔通常未被覆盖并裸露出焊盘,以便它们更容易地被焊接。

alt textalt text

同一PCB的正面和背面显示一个盖油过孔。 该过孔将来自PCB正面的信号通过电路板的中部引至背面。

  • 波峰焊 – 一种用于自动焊接通孔元件电路板的焊接方法,其中电路板通过熔化焊料的驻波,该焊料粘附在裸露的焊盘和元件引线上。

快来设计你自己的PCB吧!

你如何设计自己的PCB? PCB设计的细节深入到了这里,但如果你真的想开始自己设计PCB,这里有一些建议:

  1. 选择一个用于PCB设计的计算机辅助设计软件:市场上有许多低成本或免费的PCB设计软件。 选择套餐时需要考虑的事项:
    • 社区支持:有很多人使用这个软件包吗? 使用它的人越多,你就越容易找打你需要使用的现成元器件模型和丰富的库文件。
    • 易用性:如果使用它上手困难,你当然不会选择它。
    • 功能强大:这些软件都会有限的设计 – 层数,组件数量,板的尺寸大小等。它们中的大多数允许您支付许可证以升级其功能。
    • 可迁移性:一些免费软件不允许您导出或转换您的设计,只能将您锁定到指定的供应商来制造你的电路板。 也许这是用你支付的制造价格来支付方软件开销成本,但也会限制你设计资料日后的可迁移性。
  2. 看看其他人的电路板布局设计,尤其是优秀的产品,看看他们做的设计细节,反思其中原因,对比你自己会不会如此设计。现在,找到开源硬件的原始设计资料比以往更容易。
  3. 不断练习,温故知新
  4. 不要过高估计自己的能力,宝贵的经验都是多次实践中累积起来的。 你的第一块电路板设计会有很多问题。 你的第20块电路板设计会少一点问题,但仍然会有一些。 你无法轻易完全摆脱电路板设计中的各种问题。
  5. 原理图非常重要。 对一个没有良好原理图保证进行电路板设计是徒劳的。

最后,谈谈设计自己的电路板的实用性。 如果您打算制作一个或两个以上的特定项目,设计电路板的投资回报相当不错 – 洞洞板上的点对点走线很麻烦,而且它们往往不如专门设计的板可靠和稳定。 如果它变得流行,你也可以卖你的设计的产品。那可真是创客精神的体现,自己动手,物质精神双丰收。

更多可供深入学习的资料

PCB基础知识仅仅是个开始! 我们推荐您阅读更多以下资料

 


cc

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

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

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

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

https://learn.sparkfun.com/tutorials/pcb-basics

高级版Fritz表情机器人安装

欢迎购买高级版开源表情机器人Fritz套件,如果您看完本教程后对此制作感兴趣,可以考虑从下述淘宝网址购买我们提供的配套套件:

创元素淘宝店—表情机器人套件高级版

(购买后我们将于48小时内发货给您)

安装简介

此款为高级版,保留了所有的眼球和脖子的动作,安装过程较多,需要你的耐心和毅力。相当其他渠道您所能获得的版本,我们提供的此版本经过大量实践改良,采用可多次重复拆卸的螺栓螺母等连接方式。避免使用热胶枪这类工具的麻烦,以及初学者在初次安装过程中出错后,并不会因为使用了热胶枪而导致木板等零配件的损坏。您就尽情的大胆尝试吧。

可以参考以下视频,步骤都是类似的,该主题及更多版本很快上市,提供给大家:

需要的工具:

  1. 尖嘴钳、螺丝刀、镊子等
  2. 电脑
  3. 耐心

 

总组装

以上三步骤,请观看以下视频了解细节(注意,部分步骤已经被优化,无需使用热熔胶,部分运动轴也被长螺丝替代,便于重新拆装及调整)老版视频,用热熔胶连接,较为麻烦,仅供参考。

此处要把舵机和舵盘连上

5

连接电路

Arduino固定上,连接电机的连线,插上USB。

02

装配完成!

烧录Arduino程序

烧录前可能要先检查串口驱动程序是否安装并正常工作,否则电脑可能无法识别Arduino控制板并与之通信

打开设备管理器

在“我的电脑”或者计算机,右键它弹出菜单表,点击“管理”;(仅限于win7系统的用户)


在计算机管理页面左侧列表,可以找到“设备管理器”双击它,中间会显示硬件和设备是否正常的信息。有黄色感叹号就代表者有问题。

如果您的电脑买安装此驱动,需要参考以下网址,安装CH340驱动后,电脑即可与Arduino通讯

win7 http://www.arduined.eu/files/CH341SER.zip

win8 http://www.arduined.eu/files/windows8/CH341SER.zip

Mac http://kig.re/downloads/CH341SER_MAC.ZIP

Mac https://github.com/adrianmihalko/ch340g-ch34g-ch34x-mac-os-x-driver

点击[INSTALL],就可以完成驱动程序安裝。

确保驱动程序已经安装后,即可烧录Arduino程序

打开Arduino软件,没装过Arduino的可以在下述网址中下载并找到运行程序

https://pan.baidu.com/s/1dG44Fxn

03

文件 -> 打开,找到》》》》》

双击 Fritz.ino

04

在工具菜单项里设置 板 为 Arduino Uno,串口选中。

05

点击 上传

06

成功!

配置电脑控制程序

可以在下述网址中下载并找到运行程序

https://pan.baidu.com/s/1dG44Fxn

打开fritz.exe,等待连接成功(如果使用过程中连接经常断开,可能是因为没有使用电池盒单独供电或没有打开电池盒开关及电池电量不足引起的。)

07

打开 set motor

08

全打勾,

09

拖动一下眼眉,看看是不是能控制啦!

10

恭喜你!大功告成!

查看下面视频了解更多上位机软件使用过程中的详细情形:

Arduino锂电扩展板

Arduino的锂电源板,专门为Arduino设计的锂电池充电板,Arduino的不间断供电电源,能够为Arduino提供5V的电能,同时自带的锂电池可充电,带有锂电池充电电路,锂电池保护电路,锂电池升压电路,同时还可以作为一个普通的5V电源使用。

有时,我们会对电池电压非常感兴趣,因为电池电压与电池容量有关,当锂电池输出电压很低时,意味着电池里的电也即将用完,这时,测量电池电压就有了必要。
Arduino Power Shield 中,我们设置了电压测量插针BAT_TST,当需要Arduino 使用模拟引脚测量电池电压时,只需将BAT_TST 引脚短路即可,这时,锂电池的正极,就连接到了Arduino 上的ANALOG 引脚中的A0引脚。

BAT_TST 引脚的短路可以使用跳帽或者杜邦线连接等方法。

接好后,即可编写程序。程序非常简单,只需读取模拟A0 口的电压,后在串口输出即可,程序如下。

const int analogInPin = A0; //A0 口
float voltage; //电压变量
int A0Value = 0;

void setup()
{
  Serial.begin(9600); //波特率设置
}

void loop()
{
  A0Value = analogRead(analogInPin); //读取A0 口的AD 转换数据到变量A0Value 中
  voltage = float(A0Value * 5.1 / 1023); //将AD 读出的值转换为电压值,除以1023 是因为这里的AD 转换器是10 位的,
  满量程为1023
  //乘以5.1 是因为Power Shield 供电大概在5.1V
  Serial.print("Battery Voltage = " );//Serial 口输出
  Serial.print(voltage);
  Serial.print("V\n ");
  delay(2000);
}

运行程序,Arduino 串口监视器显示如下:

此程序也可嵌入到各种程序中,在电池电压降到一定程序时,执行相应的动作。电池电压在3.2V~3.3V 时,即可认为电池电压低,电量即将耗尽。

 

PIR传感器相关知识

PIR传感器跟其他的传感器比起来可能要更加复杂(像光电池,避震器,湿度传感器),因为其中有许多影响传感器输入和输出的变量。我们会使用这个不错的图解来开始解释一个基本的传感器是如何工作的。

PIR传感器上有两个插槽,每个插槽由特殊的对红外信号敏感的材料做成。这里使用的镜头不会真的做这么多,所以我们可以看到两个插槽可以“看到”过去的一段距离。(基本上是传感器的敏感性)。当传感器没有工作时,两个传感器检测到同样数量周围环境,比如房间,墙壁或者室外辐射出来的的红外信号。当一个有温度的物体,比如一个人或只动物经过,物体一开始会挡住一半的传感器,这会在传感器两边产生微小的正向电势差。当有温度的物体离开传感器所能探测到的区域,传感器电势差就会发生反转,进而能够产生负向的电势差。这就是传感器检测到的脉冲变化。

1

PIR传感器

PIR传感器被封装在一个密封的金属盒中。在金属盒上有一个用能传递红外信号的材料做成(比较典型的是硅,因为红外线可以很容易就通过硅。)的窗口,用来保护传感器的感应部分。在窗口后面是两个平衡传感器。

2

3

你可以在上面的上面展示的图像中看到窗口的组成—两片传感材料。

4

这张图展示了传感器的内部结构,在里面有一个低噪音的结晶型场效应晶体管(一种晶体管),并将传感器的极高的阻抗缓冲到低成本的的芯片上(比如BIS0001)

透镜

PIR传感器是通用的,而且大部分的价格和灵敏度都不同。大部分的魔术都是通过光来实现的,这对于制造来说是个不错的主意:PIR传感器和电路是固定的,并且成本为几美元。而镜头只需几美分,同时很容易改变宽度,范围和感应模式。

在上图中,透镜只是一块塑料,但这意味着检测区域仅仅是两个矩形。通常我们想要一个更大的检测区域。为了做到这一点,我们使用了一个简单的镜头,比如相机里的那些镜头:他们把一个大的区域(如风景)浓缩成一个小的(在胶片上或CCD传感器上)。由于这些原因很快就会显现出来,我们想要使PIR镜头变得小巧而薄,并且可以从廉价的塑料中进行模塑,尽管它可能会增加变形。由于这个原因,传感器实际上是菲奈尔透镜:

5

菲勒透镜凝聚了光,为传感器提供了更大范围的红外线。

6

 

现在我们有了一个更大的范围。然而,请记住,我们实际上有两个传感器,更重要的是,我们不想要两个真正大的矩形区域,而是多个小区域的散射。所以我们要做的是把镜头分成多个部分,每个部分都是菲勒尔透镜。

7

在这里你可以看到多面部分

8

这一宏观的镜头在每个方面展示了不同的法伦镜头!

不同的面部和副透镜产生了一系列的检测区域,相互交错。这就是为什么镜头中心在上面的部分是“不一致的”——每一个都指向不同的PIR传感元件。

11

10

连接一个PIR传感器

11

大部分的PIR模块在两侧或者底部有一个3个引脚的接口。模块之间的输出引脚可能会有所不同,所以对于输出引脚要检查3次。位于接口右边的输出引脚经常是丝网印刷成的(至少我们的是)其中一个引脚会接地,另一个是信号输入,最后一个是接入电源。输入电压经常是3-5V的直流电压但有时会达到12V。在接地。有电源和两个开关连接的情况下有些大的模块没有直接输出,而是通过一个继电器进行操作。

一些继电器的输出是集电极,这说明该继电器需要一个上拉电阻。如果你的输出不可改变,请确保能够在信号引脚和电源引脚之间添加一个10K欧的上拉电阻。

当连接端口的间隔是0.1秒时,一个关于原型PIR传感器的简单方法就是将其连接到面包板上。一些PIR传感器上面已经有数据头了。来自adafruitde PIR有一个三引脚的便于连接导线的接线头。

12

我们的PIR传感器的红色线连接电源正极,黑线接负极,黄线是信号输出。要确保像上面展示的一样连接好线头。如果你反过来接,虽然不会损坏传感器,但是传感器不会工作。

 

测试一个PIR红外传感器

1

2

 

在当PIR传感器检测到人的动作,输出引脚就会上“升”到3.3V,然后点亮LED灯。

如果你手上有已经连好线的面包板,将电池接入之后,为了使PIR“稳定”下来,要先等待30到60秒。在这期间LED灯可能会闪烁。等到LED灯完全熄灭后,为了让灯再次亮起来,我们可以在传感器面前来回走动,挥手等等。

重触发

你手上的PIR传感器有两种选项。首先我们将会探索“重触发”选项。

当你使LED灯闪烁时,观察PIR传感器背面并确保跳线像下面展示的一样连接在L接口。

3

4

现在再次搭建好测试板电路,你可能会注意到当像上面一样连接好PIR传感器时,如果在LED灯面前移动,灯不会保持点亮,而是大约每一秒点亮和熄灭一次。这被叫做“非重触发”。

5

现在将跳线转接到H接口,如果你再次搭建好测试电路,你会注意到如果有物体移动时,灯会一直亮着。这被叫做“重触发”。

6

对于大多数的应用,“重触发”(跳线像上面展示的一样被接到H接口)模式一般会更好。

7

如果你需要将传感器连接到一些边缘触发的装置,你可能会选择将其调节至“非重触发”模式(跳线被连接到L接口)。

改变灵敏度

Adafruit PIR传感器在背部有一个调节灵敏度的微调筒。如果你的PIR传感器太灵敏或者太迟钝,你可以调整这个微调筒—顺时针调节会让传感器更加灵敏。

8

改变脉冲时间和超时时长

在PIR传感器上有两个“超时设定”。其中一个是“Tx”设定:传感器检测到动作后LED灯会点亮多久—由于有电位计,调整Adafruit PIR传感器将会变得很简单。

第二个是决定没检测到动作时LED灯会熄灭多久的“Ti”超时设定。这个设定可能没那么容易去改变,可如果你用电焊去操作,这将变得可行。

首先让我们再看下电路数据

Tx=输出引脚(V0)触发后保持高电平的时间。

Ti=在周期中,触发被抑制,仔细观察时间表。

Tx≈24576×R10×C6;  Ti≈24×R9×C7(参考原理图)

Adafruit PIR传感器,有一个标记着时间的调整电位器。这是一个被串联到一个10 k欧电阻器的1兆欧可调电阻器。同时C6的值为0.01Uf,所以

Tx=24576×(10K)×0.01uF=2.5秒(约等于)

如果Rtime电位器从顺时针方向转到1兆欧电阻,则

Tx=24576×(1010K)×0.01uF=250秒(约等于)

如果Rtime位于中间,那结果将会大概是120秒(2分钟),所以你可以尽可能的开足马力。比如说如果你想通过一个人的动作去打开一个风扇至少1分钟,将Rtime电位器调整至一圈的1/4位置。

对于较旧的或者其他PIR传感器

如果你拿到的是一个没有可调整的电位器的PIR传感器,你可以像这样找出调整电阻

9

判断R10和R9并不是很难,可惜这个PIR传感器时贴错标签的(似乎将R9和R17调换了位置),你可以通过查找BISSOO1数据表来查探引脚,然后找出分别是什么引脚—R10和引脚3连接,R9和引脚7连接,而区别电容会有点难,但是你可以通过“逆向工程”的方法并对传感器记录时间,从而得到解决。

例如;

Tx=24576*R10*C6= ~1.2秒

R10=4.7K,R10=10nF

同样

Ti=24*R9*C7=~1.2秒

R9=470K,R7=0.1Uf

你可以通过交换不同的电阻或电容来改变时间。

 

使用一个PIR传感器

将PIR传感器与微控制器连接起来非常简单。PIR是一个数字输出,所以你所需要做的就是侦听引脚来变成高电平(有检测到)或低电平(未检测到)。

很可能你会想要重新开始,所以一定要把跳线连接到H接口!用5V电压连接传感器并将其接地。然后将输出连接到数字针上。在本例中,我们将使用2引脚。

14

代码很简单,基本上就是跟踪输入2的输入是高还是低。它还会跟踪大头针的状态,这样当运动开始和停止时它就会打印出一条信息。、

  1. /*
  2. * PIR sensor tester
  3. */
  4. int ledPin = 13; // choose the pin for the LED
  5. int inputPin = 2; // choose the input pin (for PIR sensor)
  6. int pirState = LOW; // we start, assuming no motion detected
  7. int val = 0; // variable for reading the pin status
  8. void setup() {
  9. pinMode(ledPin, OUTPUT); // declare LED as output
  10. pinMode(inputPin, INPUT); // declare sensor as input
  11. Serial.begin(9600);
  12. }
  13. void loop(){
  14. val = digitalRead(inputPin); // read input value
  15. if (val == HIGH) { // check if the input is HIGH
  16. digitalWrite(ledPin, HIGH); // turn LED ON
  17. if (pirState == LOW) {
  18. // we have just turned on
  19. Serial.println(“Motion detected!”);
  20. // We only want to print on the output change, not state
  21. pirState = HIGH;
  22. }
  23. } else {
  24. digitalWrite(ledPin, LOW); // turn LED OFF
  25. if (pirState == HIGH){
  26. // we have just turned of
  27. Serial.println(“Motion ended!”);
  28. // We only want to print on the output change, not state
  29. pirState = LOW;
  30. }
  31. }
  32. }

不要忘记有些时候你不需要一个微控制器。一个PIR传感器可以连接到一个继电器(也许是一个晶体管缓冲区),而无需微管

创建你需要的Frizting元件

什么是Fritzing?

Fritzing Logo

Fritzing是一个强大的开源工具让任何一个人用于教学,分享和模仿他们的电子项目! 它允许你设计原理图,因此设计一个部件,然后可以添加到非常专业的接线图。 你甚至可以设计自己的PCB,并从你设计的文件制造。 在SparkFun,我们在教室中使用Fritzing,我们的连接指南,以及任何其他地方,我们需要展示如何将我们的电路板连接到其他硬件。

Fritzing Hookup Example

一个利用Frizting将INA169连接到Arduino的例子

Fritzing的令人敬畏的事情是,你可以为你的项目制作自己的Fritzing零件,并在社区中分享! 本教程将从头开始一步步介绍如何在Fritzing(新)零件编辑器中创建自定义Fritzing零件,

你是否需要做一个自定义的Fritzing零件?

Fritzing在软件安装的时候就带有大量的电子元件。 SparkFun还有一个Fritzing Github库,用于我们在Fritzing中尚未创建的零件。 在创建自己的零件之前,请仔细检查我们的零件是否在自带的元件库或者Github上已经有,或者如果另一个Fritzing用户已经在Fritzing论坛上创建了你所需要的零件。 如果零件已经创建,它将为你节省大量时间! 但是,如果你确定你需要的零件在Frizting里面还没有,请继续阅读!

建议阅读

本教程假设你已经熟悉Adobe Illustrator,Inscape或两者。 使用这些程序超出了本教程的范围。 如果你需要更多的信息,如何使用这些程序的eithwer,他们各自的网站有很多教程和指南,如何开始矢量图形。 如果失败,总是有Google。

这里是其他相关的教程,你阅读这个教程前可能想查看:

下载和安装

你需要下载和安装Frizting软件,并跟着教程来制作你自己的Frizting零件

请注意:如果你只需要做一个基本的IC,Frizting(新)部件编辑器让你轻松制作自定义IC,你不需要下载矢量图形编辑器。但你仍然可以往下阅读,因为本教程将在Frizting(新)零件编辑器中构建一个自定义的IC。

Fritzing

Frizting官网(可能需要科学上网)的下载页面,为你的操作系统下载最新的Frizting版本,找到你要将Fritzing安装在硬盘驱动器上的位置,然后在该位置解压缩Fritzing文件夹。

矢量图形编辑器

有很多不同类型的矢量图形编辑器。我们在SparkFun使用的矢量图形编辑器是Adobe Illustrator和Inkscape。选择你最熟悉和用起来最舒服的。如果你没有一个矢量图形编辑器,Inkscape是一个强大的开源软件选择,并且它是免费的。

Inkscape

Inkscape Logo

Inkscape下载页面,并为你的计算机下载相应的正式发行包。

Windows用户:双击可执行文件。 按照Inkscape设置向导。

Mac OS X用户:按照Inkscape网站上的最新说明进行操作。

Adobe Illustrator

Adobe Illustrator Logo

Adobe Illustrator不是免费的,但如果你已经有Adobe Creative Cloud,你可以下载它。 你还可以购买Illustrator每月会员资格。

请注意:我们与Adobe没有任何关系,只是宣传Illustrator,因为它是一个强大的软件,对在本教程中很有帮助。

Other Downloads其它需要下载的东西

Fritzing字体和模板

Fritzing使用OCR-A字体作为IC使用。 对于所有其他零件,你可以使用OCR-A和Droid Sans fonts字体。 Fritzing具有可在其网站上下载的字体和模板。 你将需要下载Fritzing的图形标准来遵循本教程。 转到他们的模板下载页面,并下载Fritzing的图形标准文件夹。 下载其zip文件后,你需要解压zip文件夹,并放置在计算机上你将要在计算机上安装字体的位置。

SparkFun Fritzing示例模板

本教程将引用很多SparkFun Fritzing示例模板。 如果你正在为SparkFun板制作Fritzing零件或想要一个起点,请从SparkFun Fritzing零件Github库中下载这组示例模板。 SparkFun Fritzing模板将具有本教程的示例,SparkFun T5403气压计SVG,要比较和处理的文件。

面包板视图

当Fritzing启动时,你将会进入欢迎界面,并且你将要转到面包板视图。

breadboard view

在面包板视图中你需要做两个重要的步骤,首先,创建你的面包板SVG,然后上传。 Fritzing更倾向于使用SVG格式,所以你的图像看起来很棒,当你放大和缩小! 其次,你需要改变连接器针脚。

请注意:如果你只制作一个基本的IC,你可以跳到本教程的编辑面包板视图部分。

Fritzing图形标准

在Fritzing网站上,有很多图形标准要遵循。 这是一个很好规范,因为遵循图形标准,你的零件可以匹配其他Fritzing零件。

模板

当你制作零件时,建议从模板开始。 有一个要引用的零件的图像,因此,当制作你的SVG文件时,该过程会更快。

提示:如果你在为EAGLE中设计的板制作自定义Fritzing零件,则可以下载ULP将板转换为SVG格式。 这样,你可以有一个准确的SVG的EAGLE板作为参考。 你可以在Cadsoft网站上找到EAGLE ULP。

现在是时候为你的面包板视图制作你的图形!

 

创建新元件

在本教程中,我们将会为SparkFun T5403气压计创建一个Frizting新零件。

T5403 Breakout Image

SparkFun T5403的EAGLE图

打开Fritzing应用程序。 你应该在程序顶部看到欢迎,面包板,示意图和PCB的选项卡。 单击面包板按钮以确保你目前在面包板视图中。

Breadboard Button

检查库中自带元件

如果你只是在Fritzing中更新一个板,首先检查是否有一个与你想要创建的Fritzing部分相接近或相关的零件。你可以在搜索栏中键入零件的名称。

Search for Part

搜索栏可以在零件窗口的顶部找到

你也可以在Fritzing的零件窗口的不同部分查看类似的零件。

Parts Window

寻找SparkFun火焰并点击可以看到一个巨大的SparkFun Fritzing零件库

从绘制IC开始

如果没有一个零件像你想要的,使用IC作为基础是一个好的开始。 单击零件窗口中的CORE选项卡。 向下滚动,直到看到IC。 在ICs部分下,单击并拖动IC图标到Breadboard窗口。

Core Tab

自定义IC很简单,因为Fritzing可以改变引脚和IC封装的数量

Dragging IC on breadboard window

更改IC的名称

 

查看右侧的“查看栏”中IC的属性。 将IC的名称更改为元件名。 然后,更改引脚部分中模块或元件的引脚数。 对于SparkFun T5403气压计,我们需要8个引脚。 你将在“面包板”视图中看到模块中IC更改后的名称。

Changing name

Fritzing(新)元件编辑器

右键单击面包板窗口中的IC,然后选择编辑(新元件编辑器)。Fritzing(新)元件编辑器弹出。

Go to Parts Editor

Fritzing(新)零件编辑器有6个主要部分,你需要在其中进行更改。那些是:

  • 面包板
  • 示意图
  • PCB
  • 图标
  • 元数据
  • 连接器

真的没有你需要遵循的命令。在做了几个不同的自定义部件后,你可能会最终在一个视图开始之前的其他工作。在本教程中,我们只是去一个个讲述教程。

作者注释:我发现,对于具有大量引脚的板,从连接器视图开始的板可以节省更多的时间,因为你可以在列表中更快地命名连接器引脚。

在继续之前,最好先保存为新零件。如果你需要在制作自定义部件时随时停止,你可以在将来再次使用。转到文件。然后,选择另存为新零件

Save as new Part

如果需要,你可以选择命名前缀


让我们继续面包板视图!

自定义面包板SVG

创建文件

打开矢量图形编辑器并创建一个新文件。文件的图像大小应与你的开发板的大小相同。SparkFun T5403气压计爆破尺寸为1“x 0.650”。你将要使用一个好的命名约定保存文件,因为在创建Fritzing部分时最终需要3个不同的svg文件。

Illustrator用户: 你可以通过转到文件 – >另存为,保存为SVG,然后点击保存保存。

对于此示例,面包板SVG命名为:SFE_T5403_Barometer_Breakout_breadboard.svg

使用模板作为参考

要比较不同的图层和组,你可以打开Fritzing BreadboardViewGraphic_Template.svg文件,该文件位于先前下载的Fritzing Fonts and Template文件夹中。你还可以从SparkFun Fritzing Parts Github仓库打开示例SparkFun T5403晴雨表分线板SVG模板文件。

你可以看到示例模板如何保持图层的组织。对于SparkFun T5403气压计,有一个“面包板”组。在面包板组内,它将具有一组部件,铜层,丝印组和板路径。

制作你的自定义面包板图形的提示

你现在可以创建自定义零件的面包板图形。这里有一些有用的提示!

遵循Fritzing图形标准

Here are some main color standards for Breadboard images:

这里是面包板图像的一些主要颜色标准:

为了符合Fritzing图形标准,你将要使铜触点成为铜/镀锡颜色。

Copper Green

HEX: 9A916C, RGB: 154 145 108

如果你的板上有任何部件的引脚,使用的颜色是灰色的。

Leg Grey

HEX: 8C8C8C, RGB: 140 140 140

SparkFun红色是:HEX:E62C2E,RGB:230 44 46

把事情简单化

Fritzing的伟大之处在于,你可以使你的板子变得简单或你想要的结果。由于SparkFun总是试图使我们的产品更好的修订和有很多的板,更容易和更快的我们不包括某些细节,如痕迹或每个组件,在我们的板子上。如果电路板有新的变化,如电阻值的变化,我们不必在Fritzing部分进入和更改该电阻。更多地关注重要的组件,如IC,可能这是个更好的方式来投入你的时间。它仍然会看起来不错,但工作量少!

使用已经存在的组件

如果你需要在板上的使用已经在Fritzing有的SMD LED,请继续使用它!这将节省你的时间,并保持所有的Fritzing部分具有相同的标准。如果你创建一个自定义的板子,其他人可以使用的组件,你可以在Fritzing网站上分享,让其他人也可以使用!确保在你正在使用的矢量图形编辑器中组织好组件图形,因此在以后的的板子上使用时很容易找到这些部件。

铜组中的名称连接器引脚

Naming your connectors will be a huge time saver. For the SparkFun T5403 Barometer Breakout example, under the copper group, each connector is named connector#pad.

命名你的连接器将是一个巨大的节省时间。对于SparkFun T5403气压计示例,在铜组下,每个连接器命名为连接器#垫。

Copper Layers

示例在Illustrator中。如果你使用Inkscape,你仍然需要确保连接器已正确命名。

使用ORC-A或Droid Sans字体。

坚持Fritzing字体保持所有Fritzing部分看起来一样。建议标准字体大小为5pt。然而,有时候,你不会有空间更小的板。你最好不要低于3pt,因为它开始变得更难看到,而不放大。在Fritzing的网站,他们提到使用黑色作为字体颜色。无论你的丝印颜色往往看起来更好。对于这个例子,我们使用白色,因为这是分线板的丝印颜色,它更容易阅读红色背景。

创建复合路径以制作板开口

Illustrator用户:在PCB的大小中创建路径。对于SparkFun T5403气压计,你可以使用矩形工具制作1“x 0.650”的矩形。然后,在你的板子有开口的路径。例如,你可以使用椭圆形工具,在矩形工具下,制作完整的圆形,其中有支座和连接器针脚的开口。选择所有的开孔层和底部PCB层。

Select All

确保选择底部PCB层

接下来转到Object-> Compound Path-> Make。你现在应该有一个复合的路径,你将能够看到通过Fritzing的开口。

Final Breadboard Image

最终面包板图形

保存

确保在创建自定义板后再次另存为SVG!现在,你可以继续编辑面包板视图。

面包板视图 – 零件编辑器

加载图像

创建自定义面包板图像后,你将需要在Fritzing(新)零件编辑器中加载面包板SVG。首先,返回到Fritzing(新)零件编辑器,然后单击面包板按钮进入面包板视图。转到文件 – >加载图像的视图。

Load graphic

接下来,你将选择刚刚创建的面包板SVG,然后单击打开。图形现在应该在Fritzing(新)零件编辑器中。

连接器

在Fritzing应用程序中,你可以使用彩色线连接不同的Fritzing零件,以显示零件如何连接。为了使Fritzing知道板或部件上的连接器引脚,你需要告诉Fritzing这些连接器在哪里。

连接器引脚的名称和说明

对于面包板视图,连接器窗口将位于Fritzing(新)零件编辑器的右侧。选择一个引脚以更改引脚的名称并添加描述。

Select Pin

选择任何连接器针脚进行编辑

Change Connector Pin Name

选择连接器针脚的图形

单击连接器针脚名称右侧的选择图形按钮。然后,单击连接器针脚的图形。这将设置锚点。锚点是电线连接到该连接器的位置。默认情况下,终点将显示在所选图形的中间。如果要移动终点,你可以单击终点并按住以移动。你也可以通过在连接器窗口中单击“中心”,“W”,“N”,“S”或“E”来更改终端点。

Example Terminal Placement

你可以看到更改终端点时导线位置的差异

更改连接器类型

在“连接器”窗口中更改连接器的类型。你可以选择公头,母头或焊盘。对于SparkFun T5403气压计,所有连接器针脚都是母头。

Set Connector Type

在下图中,你可以看到将连接器类型设置为公头和母头之间的差异。

Different Connector Type

顶板的连接器类型设置为公头。底板的连接器类型正确设置为母头。

对所有连接器针脚重复此操作

名称,选择适当的图形,并更改所有连接器引脚的连接器类型。你还可以在“连接器”窗口中设置“内部连接”。

原理图

自定义原理图SVG

回到Illustrator,Inkscape或你正在使用的矢量图形编辑器。在下载的字体和模板文件夹中打开Fritzing的SchematicViewGraphic_Template.svg。你还可以从SparkFun Fritzing零件Github仓库打开示例SparkFun T5403气压计原理图SVG模板文件。

当编辑原理图以匹配电路板时,你需要确保显示每个连接器引脚。你将需要更改引脚标签以匹配连接器引脚名称。根据你的部件,你可能需要调整模板原理图的大小。确保主零件符号正方形和外销的边缘之间有0.1“的空间。

Schematic Example

确保删除0.1“维度帮助程序框,因此它不会显示在最终的Fritzing原理图图形中

保存SVG

你需要确保保存为一个新的SVG。记住要有一个命名约定,很容易说明为Fritzing部分创建的其他SVG文件之间的区别。

在零件编辑器中编辑原理图视图

加载SVG

返回零件编辑器,点击原理图按钮进入原理图视图。转到文件 – >加载图像的视图。接下来,你将选择刚刚创建的原理图SVG,然后单击打开。零件现在应该在Fritzing(新)零件编辑器中。

设置连接器引脚

如果你看看右侧的连接器窗口,你会注意到你的引脚名称已经存在。当你更改连接器引脚的名称和描述时,在面包板,原理图,PCB或连接器视图中,零件编辑器将自动更改其他视图的连接器引脚名称和描述。此外,连接器类型(公头,母头或焊盘)将仍然相同。

就像在面包板视图中所做的那样,你仍然需要为每个引脚选择一个图形。点击“选择图形”按钮,并为该引脚选择适当的图形。对于示意图视图,你将要更改终端点,因此连接线在最远点连接。

最简单的方法是确保连接器引脚的图形仍然被选中,并更改连接器窗口中的终端点。对于GND图形,通过单击“S”将终点移动到南端。

Terminal Point

对所有连接器重复此操作

在更新所有连接器针脚后,你可以继续在PCB视图中编辑。

PCB视图

制作自定义PCB SVG

回到Illustrator,Inkscape或你正在使用的矢量图形编辑器。当制作自定义PCB SVG时,你需要的主要图像组是铜(其将具有所有连接器焊盘)和丝印。

创建PCB图形

你可以在创建PCB SVG,修改自定义面包板SVG或在下载的字体和模板文件夹中编辑Fritzing的PCBViewGraphic_Template.svg时重新启动。对于此示例,修改了自定义面包板SVG,并将该文件另存为一个名为SFE_T5403_Barometer_Breakout_PCB.svg的新SVG。

确保有两个铜组

设置图层时,请确保有两个铜组。所有连接器层都应在铜组中。当你这样做时,Fritzing将知道该组件在PCB的两侧都有铜连接器。

Example of PCB Layers

有两个铜组的Illustrator示例

确保连接器引脚的间距准确

重要的是让PCB连接器引脚与你的电路板精确匹配,并在引脚之间留出适当的间距。Fritzing提供PCB Fab服务。如果你或其他Fritzing用户想要使用你的自定义部件使用该服务,你将需要确保你的PCB视图是准确的。

图形标准

代替连接器引脚是铜/镀锡绿色,PCB视图连接器引脚是“铜”颜色:

Copper Color

Hex: F7BD13 RGB: 247 189 19

自定义面包板SVG的主要变化是主要的组是铜和丝网印刷。丝网仍然是白色的。

Final PCB Graphic

最终PCB图形

在零件编辑器中编辑PCB视图

返回零件编辑器,点击PCB按钮进入PCB视图。转到文件 – >加载图像的视图。接下来,你将选择刚创建的PCB SVG,然后单击打开。零件现在应该在Fritzing(新)零件编辑器中。

更新连接器引脚

为每个连接器针脚选择适当的图形,就像在面包板和示意图视图中所做的那样。

图标视图

重复使用过去的图形

转到Fritzing(新)零件编辑器,然后单击图标按钮进入图标视图。关于Icon视图的一个伟大的事情是,你可以重用你的面包板,原理图或PCB SVG的图标图像,所以没有必要做一个新的图像!所有你需要做的是去文件,并选择你想要重用的图像。对于SparkFun T5403气压计,Icon视图重新使用面包板图像。面包板图像应显示。

Reuse Past Graphic

伟大的斯科特!你现在完成了图标视图!

元数据

转到元数据视图

转到零件编辑器,然后单击元数据按钮进入元数据视图。元数据是你将添加关于你的部件的所有重要信息的地方!

元数据视图中的不同部分

标题:很自然的。这将是你的部分的名称。

日期:在Fritzing中锁定日期条目。日期应显示你创建零件的日期。如果你稍后在道路上更新部件,日期将更改为上次更新的当前日期。

作者:你会想把你的名字在这里,所以,如果你与Fritzing社区分享你的一部分,他们知道谁是谁的部分。

说明:说明应包括对电路板重要的任何事项,例如工作电压。

标签:标签显示在示意图视图中,可以更容易地识别你选择的部件。对于SparkFun T5403气压计突破,标签将更改为零件。原因是,因为Part相当小,SparkFun T5403气压计名称已经在原理图图形本身。它取决于你想要标记你的部分!

URL:考虑张贴零件的网址,这样任何人都可以获得有关零件的更多信息。

家庭:如果你有一个部分有不同的颜色,芯片包等,你会希望他们在同一个家庭。例如,如果你有一个通孔LED有不同的颜色,同一个LED的所有不同的颜色将在同一个家庭。

变体:创建全新零件时,你要确保变体是1.当你以后进行修订时,如果变体2在同一系列中,则会将下一个修订版本更改为变体2。

属性:一个放置重要细节(如零件号,针脚间距等)的地方。

标签:使用可以找到更容易和最好描述你的部分尽可能少的单词的标签。

Metadata

觉得信息有点缺乏?你可以稍后再更新此内容,当你掌握了更多信息

连接器视图

转到连接器视图

转到零件编辑器,然后单击连接器按钮进入连接器视图。在“连接器”视图中,你可以执行以下操作:

  • 更改连接器数量
  • 设置连接器类型
  • 将连接器针脚设置为通孔或SMD
  • 名称连接器引脚
  • 添加连接器引脚描述

Connectors view

你不需要更改“连接器”视图中的任何内容,因为你已经填写了其他视图中的所有信息。如果你需要做任何最后一分钟的变化,现在你可以。请记住,如果你更改此处的连接器数量,则需要返回并更新面包板,原理图和PCB视图。

保存

 

现在你可以保存你的部分!转到文件>保存

继续导出部件!

导出新零件

Fritzing应用程序中的质量检查

现在是时候在主Fritzing应用程序中检出你的新Fritzing部分。当你在Fritzing(新)零件编辑器中保存为新零件时,零件将自动显示在Fritzing主应用程序中的MINE选项卡的My Parts标签下。

在导出新的自定义零件之前,你需要检查每个视图是否看起来不错。确保你在主Fritzing应用程序,而不是Fritzing(新)零件编辑器。通过单击顶部的面包板按钮,转到面包板视图。在零件窗口中,在右侧,确保你在MINE选项卡。你应该看到你的新部分。在面包板视图上单击并拖动板。

MINE Tab

仔细检查引脚是否命名正确,并且工作正常。在原理图和PCB视图中执行相同操作。一旦进行了质量检查,就可以导出零件。

导出零件

右键单击我的零件窗口中新零件的图标,然后选择导出零件。保存你的Fritzing部分。

Export Part

恭喜你,你做了自己的Fritzing零件!

更多信息和资源

贡献Fritzing

现在你已经完成了你的任务,你可以连接其他Fritzing零件。你可以在Fritzing网站上分享你的部分或项目教程。还有更多的方法来帮助Fritzing社区!查看Fritzing Support Us页面,了解更多支持Fritzing的方法。

大批量的Fritzing零件?

如果你是使用EAGLE的开发人员或投入大量时间来制作Fritzing零件的开发人员,Fritzing团队已经开放了一个工具包,从EAGLE .brd文件制作SVG文件。强烈建议你检查是否正在创建批处理的SVG板文件准备Fritzing。他们在Fritzing Google代码页上有源代码


cc

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

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

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

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

https://learn.sparkfun.com/tutorials/make-your-own-fritzing-parts

串行外围设备接口(SPI)

简介

串行外围设备接口 (SPI) 是一种总线系统,一般用在MCU与小型外设之间,使他们以串行通信。外围设备包括位移寄存器、 传感器和SD卡等。 它一般使用分别独立的时钟线、数据线以及从机通信选择线。

普通串行端口有什么问题?

一般只含RX(接收)线和TX(传送)线的串行端口,我们会称它作异步串口。因为该类串口无法很精确地保证数据在通讯两端实现同步传收。这是由于计算机系统的一切操作都由标准时间源信号驱动(计算机的晶振源),则如果两个系统的标准时间系统由稍微偏差,它们之间的通讯就会出问题。

为了解决这个问题,异步串口通讯系统在每一帧数据里额外增加了起始位和结束位,以保证接收端对每一帧的数据完整接收。另外,在通信两端,都必须设同样的通讯速率(如9600波特率)。起始位和结束为的设定下,保证了即使帧与帧之间的时间间隔有稍微不一,也能实现正常通讯。

Asynchronous serial waveform

(另外,如上图所示,所发送的“11001010” 实际上不等于0x53,因为在串口通讯中一般会首先从数据的最低位开始发送,因此最左端的实际是数据的最低位。所以低半字节实际是0011 = 0x3,高半字节是0101 = 0x5。)

异步通讯纵然好,但它在每帧数据的起始位与结束位上浪费太多信息空间,并且对通讯端的硬件要求较高。另外,当你发现在你的项目中,通讯端之间的传输速率不一,那么传输的数据必然会严重失真。这是因为异步通信里,接收端只能在特定的时间点里对数据线进行采样(如上图虚线处)。否则,接收端会采集到错误的数据。

一个同步的解决方案

SPI 的工作原理有一点不同。它是一种“同步”的数据总线系统,这意味着它额外的增加了一个通讯线共享时钟源,以实现传输同步。这时钟源是一种震荡信号,用来告知接收端对数据线的正确采样时间点。这有可能是时钟信号的上升沿(电平由低到高)或下降沿(电平由高到低);这可以在硬件的数据手册查询。接收端一检测到时钟线的电平变化,就会对数据线进行采样一,以获得一位新的数据(如下图虚线处)。由于每一位数对应着据时钟越变信号,数据就不需要用很精准的速率传输,不过传输端还是会以最高速传输。(我们接着会讨论选择适合的时钟沿以及传输每一位数据的速度。)

alt text

SPI这么受欢迎的原因之一是它对接收端的硬件要求不高,一个位移寄存器就能实现接收。它比使用UART(全双工异步串口通信端)的硬件更简单和便宜。

如何接收数据

你可能会想,这听起来这么棒的通信系统是怎样把数据发送到另一端的呢?这原理就稍微有点复杂。

在SPI,只有一个端口发生时钟源信号(时钟源端一般简写为CLK、SCK),发送时间源信号的硬件叫主机,另一端则叫从机。在一个SPI通信系统里,只有一个主机(一般是MCU),从机则会有多个。

当数据从主机传到从机时,该数据传输线称MOSI(“Master Out / Slave In”),从机传发送数据到主机由另外一条数据线负责,叫MISO(“Master In / Slave Out”),以上两个过程中,主机产生时钟脉冲信号,对应每一位的数据传输,从机则按照时钟脉冲信号,把每一位数据按次序存储或输出。

alt text

由于主机一直操控时钟线,因此它会预先知道从机将会返回多少位数据。以上特点与异步串口通信很不一样,它的接收端接收来自发送端的数据时间上是相对随机的。在SPI通讯中,信息是以特殊的数据格式和协议来传输。例如,MCU对传感器发出“读数据”的指令,传感器一般会按通信协议返回两位字节数据。(如果,你想要一个完整原始的数据,你可以先让传感器先返回一或两个字节声明该原始数据的长度,然后再传输原始数据。)

注意SPI是“全双工”总线系统(拥有分别独立的发送线和接收线)因此,在实际情况下,你可以同时实现数据的发送和接收(例如,实现发送要求对一个传感器读数据的命令,同时接收另外一个传感器回传的数据)。硬件的数据手册会告诉你这是可行的。

从机通讯选择 (SS)

这是SPI总线系统里最后一个你需要关注的线,它叫SS(Slave Select)。这根线是用来激活主机所需通讯的从机。

alt text

SS在空闲时为高电平,即断开从机与主机之间的SPI通讯。(即所说的低电平有效断你会经常在能使断看到类似的应用。)在数据传输之前,要拉低所需通讯从机的SS端。当你不与该从机通讯,则将它的SS端拉高。这相当于一个位移寄存器里的锁存端。

多从机工作

要是有两个或以上从机连在同一根SPI总线系统上:

  1. 一般来说每一个从机都要独立分配一个SS线I。当要与指定的从机通讯时,你将对应的SS端拉低,其它从机的则保持高电平(你不会想同时让两个从机被激活,否则这两个从机就会同时在MISO端与主机通讯,造成数据的相互干扰失真)。每一个从机对应一条独立的SS线。如果你的主机输出口不够,可以用译码器扩展。alt text
  2. 在另一方面,若是要环形传输数据,一个从机的MISO连到下一个从机的MOSI。则要把所有的从机激活通讯。只要数据传输完成,就要把对应的SS端拉高,以防多个从机同时激活。这类结构经常用在位移寄存器和可寻址LED硬件里。

 

 

alt text

注意在这设计里,当数据流从一个从机到另一个,至到任意一个,你将需要传输足够多的数据来推动这个数据流。同样,要注意你传出去的第一分数据是留给最后一个从机的。

这类型的设计通常用在单一输出的情况下,就如LED模块,工作时它并不会返回任何的数据。这样情况你便可以省去MISO端。另外,要是有数据返回,你可以选择环形总线结构来返回数据(上图蓝线所示)如果你选择这类结构。当你接收端来自从机1的数据时,则说明它的数据已经流过所有的从机。所以,为了接收到你所需的数据,你要传输足够多的接收命令。

SPI的程序

许多的MCU已经内置了SPI的硬设,来应对所需高速传输数据的所有要求。而且,对你们来说,按SPI的通讯协议配置相应的I/O口去传输数据是十分简单的。(一个很好的例子在维基百科的SPI。)

如果你想在一个Arduino实现SPI与其他硬件通讯,这有两种方法:

  1. 你可以用shiftIn()shiftOut() 指令。这是基于软件的指令,你可以用任何的引脚作为输出,但这样传输速度会比较慢。
  2. 或者你可以用SPI Library,是集成到MCU的SPI模块。它比指令方法快多了,但它只能按特定的引脚输出。

在通讯之前,你要设置一些相关选项。这些设置必须要和你所通讯的外设相匹配;查阅它们的资料手册,看通讯时需要什么配置要求。

  • 在通讯时可以先发送最高有效位(MSB)或最低有效位(LSB)。在Arduino的SPI库里,这由 setBitOrder() 函数控制。
  • 从机会在时钟脉冲信号上升沿或下降沿读取数据。另外,要注意时钟线在空闲时时高电平还是低电平。在Arduino的SPI库里,这由 setDataMode() 函数控制。
  • SPI可以高速传输数据(几兆每秒),这对于一些外设来说太快了。为了适应这些设备,你可以调节传输速度。在Arduino的SPI库里,这由setClockDivider() 函数来实现,它会将主机的输出时钟频率(对于大多Ardunio是16MHz)分频(8MHz (/2)到125kHz (/128)之间。
  • 如果你用SPI库,你只能用它所指定提供的SCK, MOSI and MISO 引脚。另外,还有一条指定的SS端(对于SPI硬件模块来说,必须至少有一根SS端),不过你也要分配其他的端口作SS端,分别控制每一个从机。
  • 在旧版的Arduino,你需要额外写程序控制相应SS端,让其在通讯前拉低,在通讯结束时拉高。在新版的Ardunio,如Due 可以自动控制每一个SS端,详情见 Due SPI documentation page

更多相关资源

提示和技巧由于

  • 由于SPI传输的是高速信号,它只能进行短距离通讯(仅几英尺)。如果你要远距离通讯,则要降低时钟脉冲频率,并加专用的驱动芯片
  • 如果SPI的传输情况不符合你的预期设想,用逻辑分析仪去排误是一个不错的选择。智能分析仪如Saleae USB Logic Analyzer,可以译码并显示和记录所测量的数据。

alt text

SPI的优点:

  • 它比异步串口通讯要快
  • 就收器的硬件要求较低,如位移寄存器er
  • 支持多从机通讯

 SPI的缺点:

  • 相比其他通讯方案,它需要的信号线较多I
  • 要制定通讯协议(你不可以随意发一堆数据)T
  • 只能有主机控制所有的通讯(从机之间不能直接通讯)
  • 它需要额外分配SS线对应每一个从机,如果多众多从机,这将是个大问题。

扩展阅读

查阅  SPI的维基百科, 那有很多关于SPI的信息以及一些同步串口通讯的资料。

这篇博客 展现了更多关于基于嵌入式硬件建立SPI通讯的正确方法,示例是用 Arduino

许多SparkFunA的产品支持SPI通讯。如 Bar Graph Breakout kit

其他通讯方案:

现在你是SPI的支持者之一了,以下有一些其他教程来练习你的新技能:

 


cc

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

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

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

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

https://learn.sparkfun.com/tutorials/serial-peripheral-interface-spi?_ga=1.36860256.1133118399.1488205103

串联和并联电路

串联电路和并联电路

简单的电路(只有几个元件)通常很适合让新手入门。但是,当有新的元件加进来时,事情就不那么简单了。电流是怎么流动的?电压在干什么?可以将这些简化而令人更容易明白吗?恐怕不能。

在这片文章,我们首先会讨论串联电路和并联电路,电路中只有最基础的元件——电阻和电池——来呈现两种电路的不同之处。当你将不同的元件(比如电容器和电感器)结合在串联或并联电路中时,我们会探索一下串联或并联不同的结果。

本文章的内容

  • 串联电路和并联电路是什么样子的?
  • 在两种电路中,元件会如何运作。
  • 在两种电路中,电源电压会对耗能元件有什么影响。

建议阅读

在继续阅读本教程前,建议你阅读以下文章:

串联电路

节点和电流

在我们深入学习本章节之前,我们要提一下什么是节点。这并不是什么有趣的东西,就是连接的两个元件之间的线路。

Node example schematic

四种不同颜色的节点

了解这个,我们学习串并联电路的不同之处就完成一半了。我们还要理解电流是怎么流过电路的。电流从电压高的地方流向电压低的地方。电流会找尽办法流向电压最低的地方(也就是地端)。以上面的电路作为一个例子,这里表明了电流如何从电源正极流向电源负极:

Example of current flow through circuit

电流(用蓝色,橙色,粉色的线表示)在电路中流动。不同的电流用不同的颜色表示。

注意有些节点(就像R1和R2之间的)的电流在进来和出去后都是一样的。在其他节点(特别是R2,R3,R4这三路)干路电流被分成不同的两部分。这就是串并联电路不同的关键。

串联电路的定义

如果两个元件在同一线路上,并且流经它们的电流是同一路电流,那么就说这两个元件串联。这里是三个串联电阻的电路:

Schematic: Three resistors in series

在此电路中,电流只能有一条路线。从电源正极开始,电流首先流过R1。然后直接流过R2,然后R3,最终回到电源的负极。这里只有一条路径让电路流过。这些元件是串联的。

并联电路

并联电路的定义

如果元件之间有不同的节点,它们就是并联的。这里是三个并联电阻的例子:

Schematic: Three resistors in parallel

电流中电源正极出发,然后分别流过R1,R2和R3。将R1和电源连起来的节点也和其他电阻相连。其它电阻也类似地连接在一起。并最终和电源负极相连。这种情况下的电阻的就是并联。

串联电路中的电流处处相等,并联电路中的元件两端的电压相等。

串联和并联同时工作

以下是串联和并联共存的电路。电流从电源正极出来,首先经过R1,然后被分流,经支线流过R2和R3,最后又回到干线上,最终流回电源负极。

Schematic: Series and Parallel Resistors

在这个例子里,R2和R3并联,R1和R2,R3组成的并联电路串联。

计算串联电路中的等效电阻

这里有一些对你来说特别有用的信息。当我们在串联或并联电路中这样放置电阻,我们可以改变流过它们的电流的大小。例如,如果我们有一个10V的电源,一个10kΩ的电阻。依据欧姆定律我们得到1mA的电流。

Schematic: Single Resistor in series with battery

如果在电流中在加一个10kΩ的电阻,还是原来的电源,我们就使电流减少了一半,因为电阻变成原来的两倍了。

Schematic: Two series resistors in series with a battery

换一句话,我们的电路只有一条路径可以让电流流过,我们只不过是使电流流通的条件变得更艰难了。有多艰难呢?10kΩ+10kΩ=20kΩ。这就是我们计算串联电路电阻的方法——直接将它们相加

为了让这个方程更直观:电阻的数量是N——N是任意的值——电阻总值就是每一电阻相加。

Schematic snippet: N resistors in series

Equation: Rtot = R1+R2+...+R(N-1)+RN

计算并联电路中的等效电阻

串联电路中的电阻是怎样的呢?这回稍微复杂一点,但不会太多。回顾一下我们刚才10V电源和10kΩ电阻的例子,这一次我们增加一个10kΩ的电阻和原来的电阻并联。现在电流有两条路径可以走了。因为电压是不变的,在欧姆定律中,第一个电阻的电流仍然是1mA,那么同样的第二只电阻的电流也是1mA,我们就可以得到干路中的电流是2mA。这意味我们使电路中的电阻减半了。

Schematic: Two parallel resistors in parallel with a battery

我们可以很简便得得出10kΩ||10kΩ=5kΩ(||代表并联),但是电阻中不会只有两个电阻的。遇到更多的电阻怎么办呢?

求任意数量并联电阻总阻值的公式是:

1/Rtot = 1/R1 + 1/R2 + ... + 1/R(N-1) + 1/RN

If reciprocals aren’t your thing, we can also use a method called “product over sum” 如果你不喜欢倒数,我们还有一个方法——积除以和,当然是只有两个电阻的时候可以用这个公式:

R1||R2 = R1*R2/(R1+R2)

通过计算R1||R2的总电阻,我们可以将这条方程扩展到多个电阻的情况。但是用倒数相加的方法可能效率更高。

实验时间——第一部分

你需要的器材:

我们做一个简单的实验以验证我们对于串并联电路的理论。

首先,我们将几个10kΩ的电阻串联起来。参照下图,在面包板插一个10kΩ的电阻,并用万用表测量阻值。是的,我们已经知道之前电阻的阻值是10kΩ,但是确保严谨我们还是要测量一下电阻。当我们看到电表的指针稳定下来后,将另一个电阻接在面包板上,并确保和第一个电阻电气相连,然后用万用表测量两个电阻的总阻值。万用表的值大约是20kΩ。

你可能注意到你测量的电阻的阻值和你预想的值并不完全一样。电阻的实际阻值是有一个误差范围的,会与标明的阻值误差几个百分点。因此你可能读到9.99kΩ或10.1kΩ。只要这个读数和正确的数值接近就好,一切都会顺利工作。

Multimeter Fritzing Diagram

Experiment Time – Part 2

现在我们来处理并联电路的情况。如下图左下角那样安置两个电阻,确保它们的引脚是电气相连的。在用万用表测量它们的总阻值之前,你可以先计算一下它们的总阻值(提示:结果是5kΩ)。如果你测到的是接近5kΩ的值,这是好的。如果不是,检查一下连接有没有问题。

Experiment: Measure parallel resistors with a multimeter

分别用3个、4个、5个电阻重复实验。测量到的值分别是3.3kΩ,2.5kΩ和2kΩ。一切事情都按照计划进行吗?如果不是,检查一下连接是否出错。

串、并联电路电阻第一规则

有许多情况需要我们连接多个电阻。例如,你可能想要建立一个特殊的参考电压,你一定需要一系列的电阻,而且这些电阻的值也会比较特殊。既然我们电阻的阻值精度够高,我们就可以用多个不同阻值的电阻组合成我们需要的阻值。

提示1:并联电路中的等价电阻。

并联电路中的N个阻值(R)相同的电阻,那么总的电阻就是R/N。比如说我们需要一个2.5kΩ的电阻,但我们只有10kΩ的电阻。将四个这样的电阻串联起来,我们就会得到2.5kΩ的电阻。

Four 10kΩ Resistors in parallel can be used to create a 2.5kΩ one!

贴士2:精确度(tolerance)

确定你需要的精确度。例如,如果你需要3.2kΩ的电阻,你可以并联3个10kΩ的电阻。你得到的是3.3kΩ的电阻,和你预想中的阻值误差了4%。但是,如果你需要误差小于4%,你可以测量那些“10kΩ”的电阻,挑选测量值小于10kΩ的电阻并联在一起,你就可以得到更接近3.2kΩ的阻值了。理论上,如果我们的10kΩ电阻误差不超过1%,我们只能得到3.3kΩ的阻值。但是一些成品误差会大一些,需要我们耐心点找它出来。

贴士3:串、并联电路的功率

串、并联电路中的电路同样会有功率。比如说有一个100Ω,功率是2W,但我们只有1kΩ,0.25W电阻。你可以将十个1kΩ的电阻并联起来得到100Ω的阻值,总功率是10*0.25W,也就是2.5W。

但我们并联阻值不相同的电阻时,我们要更小心地处理总电压和总功率的值。

贴士4:并串联电路中的不同电阻

并联电路的总阻值一定会小于阻值最小那个电阻。

贴士5:并联电路中能量的损耗。

如果并联电路中的电压值不相同,那么支路中的电能损耗是不一样的,因为电流并不相同。用前面的例子(1kΩ||10kΩ),我们会发现1kΩ电阻的电流是10kΩ电阻电流的10倍。欧姆定律告诉我们功率=电压*电流,就可以推导出1kΩ电阻电功率是10kΩ电阻电功率的10倍。

最后,当我们处理电阻值不同的并联电路时,我们要时常想起贴士4贴士5.如果电阻值是相同的,贴士1和贴士3就变得很好用了。

串联电路和并联电路中的电容

将电容联合起来就像将电阻联合起来……只不过结果刚好相反。为什么会这样呢?

电容器是两块分开但是间隔非常近的导体板,它的主要功能是容纳一定量的电荷。电容器的容值越大,它越能容纳更多的电荷。如果增加导体的面积,电容值会变大,因为容纳电荷的物理面积变大了。如果导体板的距离变大了,电容值就会减小,因为距离使它们之间的场强减弱了。

我们将两个10uF的电容串联在一起,并假设它们都充满电了并准备放电。

Capacitors in series

记住在串联电路中电流只有一条路可以走。也就是说在下面的电容放出的电量和在顶部放出的电量是相等的。因此电容器的总容量并没有增加。

事实上,情况会更糟糕。通过串联电容器,我们只不过是将导体板隔离得更远了。我们得到的不是20uF,或者甚至是10uF。而只是5uF。这个结论的得出和我们计算并联电路的电阻一样,同样都是用“乘除以积”的方法。

Capacitors in series schematic/equation

这看起来似乎没有串联电容的用武之地。但是应该指出,我们得到的是多倍的电压。就像电池一样,我们将电容器串联起来就使电压增加了。

并联电路中的电容相加就像将串联电路中的电阻相加:直接将各部分的值加起来就可以了。为什么是这样呢?将电容器并联起来就像将电容器导体板的面积增加了。更大的面积意味着更大的电容。

Capacitors in parallel schematic/equation

实验时间——第三部分

你会需要:

让我们看看实际中一些串联和并联的电容器。这一部分比电阻那一部分稍微麻烦一点,因为电容器的容量不能直接用万用表测量出来。

让我们首先看看从0开始慢慢增加电容器两端的电压会怎样。如果电容器的电阻为0,电流就会很大。电容器会一直放电,直达它的电压和供应电压相等。

如果电容器的电阻为零,那么放电的速度非常快,电流很大,而充电的速度也会很快(微秒级甚至更少)。在这个实验中,我们想看看一个电容器是怎样充满电的。我们将使用一个10kΩ的电阻,将充电的速度减慢下来,使我们能够比较容易的观察现象。但是首先我们要谈谈什么是RC时间常量。

Tau = R*C

上面的公式是是说一个时间常量的长度(单位:秒)等于电阻(单位:欧姆)乘以电容(单位:法拉)。简单吗?我们将在下一页阐释这个公式。

实验时间——第三部分(继续……)

在本实验的第一部分,我们会用10kΩ的电阻和一个100uF(即0.0001F)的电容.这两者相乘得出一秒的时间常量:

Tau = 10kOhm * 100uF = 1 second

通过一个10kΩ的电阻为100uF的电容器充电,我们可以预测在一个时间常量内(也就是1秒),电容器的电压上升到了供应电压的63%。在5个时间常量后,电容器的电压是供应电压的99%,这是符合以下的曲线的:

Capacitor charge time graph

既然我们已经知道这个规律,我们将要将电路是图案联系起来(请确保不要搞错电容器的两极。)

Fritzing diagram, power off, cap in series with resistor, battery

用万用表测电池包的输出电压。输出电压测量值应该在4.5V附近(如果是新
电池,电压会稍微大一点)。现在连接电路,要注意在和面包板连接前把电
源开关打到OFF位置。同时,红线和黑线不要接错了。你可以用鳄鱼夹将被
测电容和万用表探头连接起来(你可以将线头拉长一点,使连接变得容易)

只要我们对电路的连接满意了,就可以将电池包的开关打到ON。在五秒钟后
,万用表的读数应该和电源的电压接近,这意味着公式是正确的。现在把开
关关了。万用表的读数并没有变化。这是因为电流已经无路可走了,电容器
不会放电,这是一种开路的情况。为了给电容器放电,你可以用10kΩ的电阻
与之并联。在5秒后,电表读数将接近0。

实验时间——第三部分(再继续……)

在本实验的第一部分,我们会用10kΩ的电阻和一个100uF(即0.0001F)的电容.这两者相乘得出一秒的时间常量

C = 100uF*100uF/(100uF+100uF) = 50uF

时间常量会是怎样的呢?

Tau = 0.5 seconds

Experiment 3.2 fritzing diagram

记住这些结果,增加一个电容器,与第一个串联(如上图),确保电表的值
是0V。将滑动开关滑到“ON”。电压表的读数从0变成电源电压值是不是用了原
来一半稍微多的时间呢?这是因为电容器比原来多了一
倍。总的电容值变小了,所以将它充满电需要更少的时间。我们建议用第三
个电容器来证明这一点。

现在我们尝试并联电容器,记住我们说过这就像将电阻串联。于是我们得到
的总容量就是200uF。时间常量就变成:

Tau = 2 seconds

这就意味着如果我们用4.5V的电压给电容器充电,我们大约需要10秒。

Frizing diagram: caps in parallel

为了证明这一点,我们用原先10kΩ和100uF串联的电路,并在这实验中参考
第一个实验那张图。我们已经知道充满电容器需要5秒。现在增加第二个电
容器与之并联。请确保电表的读数是0V(如果不是,就用一个10kΩ的电容器
放电),然后将电池开关打到“ON”。充电时间会久一点,不是吗?我们将电
容器的容量扩大了,当然需要更多时间将它充满电。你可以自己证明它,用
第三个100uF的电容器,并观察它充电的时间。

串联和并联电感器

串联和并联电感器

在电路中串联电感器的情况是很罕见的,但并非没有听说过。我们可以这样
做完成特殊任务。

简而言之,它们就像电阻那样,就是说如果串联,它们的值简单相加,如果
并联,就用“乘积除以和”的值。棘手的部分是,如果它们靠得太近,就会或
多或少产生互相干扰的磁场。为此,只用一个电感比用两个或更多要好,
虽然大部分电感器都包装成可以阻碍磁场。

在任何情况下,说它们像电阻那 样增加是恰当的。关于电感器的更多内容超出了本教程的范围。

资源与深入学习

现在你已经熟悉了串并联电路,为什么不搜索一下这些文章呢?

  • Voltage Dividers (电压驱动器)- 最基础的一种循环电路就是电压驱动器。这是一个建立在本教 程概念之上的电路。
  • What is an Arduino?(什么是Arduino?) -现在你肚子里已经有了电路的基础知识,你可以直接学习 最受欢迎的一种微控制器开发平台:Arduino
  • Switch Basics(开关基础) – 我们在本教程里已经谈论了一些电路基础知识,但还不包括这一 种。开关是每种电路都必需包含的部件。在这篇教程里学习关开关的所有 内容吧。
  • Sewing with Conductive Thread(缝合导电线) – 电路不是只有能在面包上拉电线. E纺织品使用导电线将电灯 缝如衣服或其他纺织物。

    cc

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

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

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

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

    https://www.sparkfun.com/search/results?term=DC+AC