自言自语

I'm Wang Xianyuan, writing for myself, more studying, more experience…

十一假期小烧音箱DIY

By

遥想去年的十一假期和树莓派,那时虽说已经入Pi多时,但DIY硬件还是初次尝试。然后一发就没有停过,整整一年直到今年的十一假期,依然在玩软硬结合的DIY。而每到十一,都是时间集中的DIY时期,容易弄出新奇特,接触新领域。

这个十一假期,把之前DIY的一个PM2.5相关的教程发表了。

然后开始研究起音响来,一开始的想法很简单,就是置办一套2.0音箱(中端有源箱子就好)听听歌。然后选了 M200MK2,也是看了很多网评纠结了几个来回和控制下预算入的。接着十一大促,MK3价格诱惑,于是考虑换,但价格毕竟是MK2的两倍,再次翻了很多网评,众说纷纭难以抉择。最后抽了一天跑去实体店试听了,连带去了BOSE的专柜试听了BOSE的C5和SoundLink Mini。终于踏实了,很快决定不升级到MK3了(MK2和MK3差别真心没网评所说那么大,低音均属半残,而偶然听到的T200C确实非同凡响,可惜预算超太多)。BOSE C5也没想象的那么惊艳,MINI呢网上好评如潮,实际效果并不适合居家听。试听的这些都是有源箱子,而HIFI是无源的天下,遂决定先MK2凑合用,找到合适的方案后上无源监听+前后端。

Read More →

树莓派瑞士军刀扩展板 SAKS SDK 发布

By

距离出上一个瑞士军刀扩展板 SAKS 的教程已经过去很久了,在这期间我在思考一个问题——既然 SAKS 的设计定位于上手快、DIY可能性多,那么为何不做得彻底一点?之所以觉得之前的教程有某些“不够彻底”,是因为当遇到较复杂的需求时,创客们不得不用代码重复去实现一些数码管动态扫描、开关检测、传感器状态读取等硬件的操作逻辑。终于我决定开发一套SDK,将以上需要重复造的轮子进行科学封装,从而达到让创客们集中精力专心实现功能,而不用为关注底层的操控逻辑而分心。

我用九月的前两周完成了这个 SDK,基于Python语言用面向对象的方法实现。接下来树莓派实验室会通过既定的一些例程(例如树莓派 SAKS 扩展板实用应用 之 CPU 温度显示和警报),介绍如何基于 SAKS SDK 实现例程中的功能。

树莓派瑞士军刀扩展板 SAKS SDK 已经通过 Github 开源(GPL v2.0 许可方式):
https://github.com/spoonysonny/SAKS-SDK

(树莓派瑞士军刀扩展板购买请移步此处

在 SDK 的开发过程中,渐渐发现软件设计中,面向对象的开发方法应用到基础硬件上能极有效地反应“万物皆对象”这一思想,并在设计过程中从软硬件两方双向贴合。

SDK 还有很多需要完善的部分,完善现有的库函数以及加入新的传感器对象,可以预见随后的半年会为 GitHub 贡献很多代码。

FFT 结果的物理意义

By

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。

虽然很多人都知道FFT是什么,可以用来做什么,怎么去做,但是却不知道FFT之后的结果是什意思、如何决定要使用多少点来做FFT。

现在圈圈就根据实际经验来说说FFT结果的具体物理意义。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样定理告诉我们,采样频率要大于信号频率的两倍,这些我就不在此罗嗦了。

采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。

假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析到0.5Hz。如果要提高频率分辨力,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。

Read More →

《零基础学 Raspberry Pi》

By

树莓派实验室成员 flycoor 在今年翻译了一本很好的开源硬件方面的教材——《零基础学Raspberry Pi》。本月已经上市,亚马逊当当京东均有销售。

20150830224241294-0

是一本非常适合新手学习Raspberry Pi的书籍。它详细的介绍了从如何启动、初始化一个Raspberry Pi到最终将软硬结合、自己diy出来一个电子播放器的每一个过程。其内容涵盖了Raspberry Pi官方推荐系统Raspbian中的大部分软件应用的使用和编程方法,教程都是属于手把手教程类,只要你有耐心读完,那你一定能学的会。而且不论你的水平高低,你都将会在这本书中找出你所欠缺、需要的内容。

Read More →

第二批次生产完成

By

经过对两处设计细节的调整,SAKS第二批次生产完成了。本次量比上次大很多倍,我们将有充裕的库存来应对在尽可能多的渠道进行推广销售。上一张两个批次产品的对比图:

QQ20150524-1-0

v1.1 版更新
SAKS 2015年5月23开始发售的版本是 v1.1 版,在上个版本基础上对细节进行了改进调整:
1. 增加了蜂鸣器跳线开关
2. 将透明蓝色光LED替换为雾化蓝色光LED,并调整了8个LED的注释
3. 更换了部分元件供应商,品质优化

另外需要特别提一下的就是这次更换了代工厂,对工艺流程方面进行了确认,原料采购也更加谨慎。有了之前的经验,这次生产出来的产品良品率有了大的提升。

近期事情排得紧,几乎持续了数月没有双休的日子。终于搬好家了,预计再过几个周末,就能调整好节奏好好折腾了。