数码之家

 找回密码
 立即注册
搜索
查看: 4613|回复: 55

[硬件] 自制树莓派4B4G影音盒子以及控制飞利浦音源芯片电路设计和Python编程

    [复制链接]
发表于 2022-12-27 18:54:11 来自手机浏览器 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 杨生69366 于 2023-1-2 22:55 编辑

自制树莓派影音盒子以及
        树莓派控制飞利浦音源芯片SAA1099P电路设计及Python编程

关于树莓派4B4G,自己给自己出了二个题目和并解答:

        题目一,如何自制二款树莓派影音一体机。

        题目二,如何设计数码电路应用。举例采用树莓派GPIO控制SAA1099P飞利浦音源的硬件电路设计和Python语言编程。

IMG_20221208_011327.jpg

        树莓派的最大优势是社区生态好,可以说网上关于如何点亮人生第一灯或者更复杂点电路设计应用太多现成例子比如智能小车摄像头识别等机器人控制等等似乎拿来就用,其实后来设计的芯片电路普遍采用流行的SPI,I2C,UART等总线结构,很适合直接连接应用在51系列stm32系列,包括树莓派这类的GPIO都有现成的接口对接,反而容易找到现成电路设计和编程,就是数码界传说的编程都靠CV(复制粘贴)。而我想做的电路图设计竟然找不到例子可参考,也有很多电路芯片是8位或者32位数据总线结构的,只能设法融会贯通,我的控制音源芯片的电路设计成功发音,就可以举一反三应用。
   
       先解答第一题,利用PC1500外壳改造成为树莓派影音盒子:

        关于PC1500,我做过不少的开发和应用实验,并且发布几个特例帖子,但是毕竟古董级别,大部分玩数码不免不太懂也有点的瞧不起看不上,以为51stm32esp8266等才是王道。只是我觉得,我用PC1500很多经典电路都照样可以玩转,类似PC1500属于最基本的,控制的数码电路和汇编语言编程的难度可以说更大,但是基础电路设计和汇编语言比较好,可以说其它任何51-stm32等都应该不在话下。其实51系列stm32确实资料多性价比高入门更容易,而树莓派4B却是目前比较贵,但功能和性能是工控开发模块之最佳选。

        如今能让我高看得起的就是树莓派4B,二个月前买了二块准备跟它好好学学。

        拿到手的树莓派就是裸机,看着用着都不舒服,就试试先给安装一个外壳和一点影音配置吧。

详细所用材料信息公布如下:

一,第一款影音盒子是树莓派4B4G,第二款铁皮文具盒子影音树莓派是4G8B,购自某鱼的700,800。

二,第一款的显示屏2.8寸480*640,某宝“树莓派2.8寸显示屏兼容HDMI 电容触摸屏 480×640 IPS 双触摸”,208元。
第二款文具盒树莓派一体机屏,是某宝“树莓派4B/3B显示器显示屏触摸屏6.86寸1280x480高清HDMI触控IPS屏”,高清分辨率1280*480,298元。

三,LED点阵屏,第一款影音盒子是某宝 “led软屏个性迷你背包屏幕 超薄滚动走字像素屏电子广告柔性显示屏”,尺寸长127mm*宽22mm厚2mm,点阵LED个数36*5,四混色,型号BL536,68元。
第二款铁壳树莓派影音盒子是同源,尺寸158mm*32mm*2mm,点阵LED个数48*12,四混色,型号BL1248,88元。

四,蓝牙小键盘,某宝
“树莓派3B+/4B 2.4Ghz迷你无线键盘 USB电脑触控板手持键盘免驱动”,需要拆下后盖和内部锂电池并且仔细切割至PCB面板厚度,加上键盘面,厚度仅有约7mm。
而第二款铁皮文具盒树莓派盒子的蓝牙键盘也是某宝“W3机顶盒2.4G无线智能通用遥控器安卓投影电视键盘陀螺仪体感鼠标”。可以直接安装到铁皮影音盒,与点阵LED音乐屏尺寸刚好配,并且方便拆下来使用。这二款蓝牙无线键盘都附带有迷你蓝牙接收器,直接插入树莓派的USB口上。

五,蓝牙FM功放多媒体声卡,买过好多款,这款是目前的尺寸最小性能较佳,某宝“5.0蓝牙解码板改装功放机u盘无损家用车载音箱音响音频接收器模块”,带遥控,40.8元。第一款树莓派影音一体机可以直接安装到机壳下侧。
而第二款铁皮文具盒树莓派一体机,需要将LED数码显示屏与小主板分开安装。

六,第一款影音盒子是航模用锂电,4.2V1800maH,某宝“无人机电池航模四轴飞行器直升机遥控飞机锂电池3.7v大容量通用1s”,需要另配一个边充边放锂电模块,某宝“5V2A/2.4A冲放电锂电充电模块电源 type-c口可输入输出 输出常开”,5.5元。
第二款铁皮影音树莓派一体机内锂电池安装了二块普通锂电并联使用,某宝“聚合物锂电池3.7v超薄机械键盘点读录音笔摄像蓝牙耳机配件软包”,1500mAH,22.8元/片,同样需要边充边放模块。我二片并联使用。实测锂电满电连续工作时间,二款机分别约2小时。2.5小时。

七,带音腔立体声喇叭,某宝“2030/3525腔体喇叭4欧8欧 3020音箱BOX大功率设备安防防水扬声器”。尺寸3020和3525各二个,装入二款树莓一体机。

八,HDMI等线材诺干。比较重要,就是B站的国外众筹树莓派一体机壳乐派Corwpi2或者老外自制一体机也不能做好HDMI专用电缆线的选择和安装,竟然看到需要裁断和拆开HDMI电缆线重新焊接麻烦。而我也是反复多次寻找购买才找到比较合适的二款HDMI线!某宝“联达科HDMImini minihdmi microhdmi转接头 超薄hdmi带屏蔽FPC软排线航拍线云台FPV相机顶盒电视机hdmi弯头线”,一个“标准HDMI公头下弯”和一个“microhdmi公头下弯”需要同时买它一根专用软排线150mm长度,用于第一款影音盒子。
第二款铁皮影音盒子,某宝“名巢2.1版8K极细柔软mini hdmi线超细4K大转小micro监视器NINJA V”,选“2.1版微型Micro to HDMI同轴 A-D”,选25mm长度款。因高质量又细又软比较贵62选一根。
这二种HDMI费劲费钱各种测试,好不容易才找到二款比较合适的。
还有一根音频线,我选硅胶细软线直径1.5mm左右的三芯带金属屏蔽线,二个3.5三芯耳机不带线插头,取消外壳,裁适当长度屏蔽线,电烙铁焊接到三芯耳机插头上,把树莓派的音频插座AUX端,连接到那块蓝牙功放板的AUX音频输入插座。这样,树莓派播放音乐视频就此地无声胜有声了。而盒子内置那个自带LED的音频功放蓝牙解码模块,也带有一个通用红外遥控器,树莓派一体机开机就自动处于树莓派音频在线状态“LINE”模式,按下红外遥控器可以选择“蓝牙”接收手机音源(内带小麦头支持手机蓝牙通话),“FM”收音机,如果给这功放模块插入USB或者mp3音乐TF卡(在LED下方),它LED就自动识别显示并处于“USB”模式。LINE/BLUE/FM/USBTF,共有四种工作模式。

九,外盒子,第一款是某鱼几十元的PC1500A当配件利用了外壳。第二款是小学生铁皮文具盒,尺寸:长194mm*宽85mm*厚22mm,厚度直接安装不够尺寸,上下盖拆开,某宝“阻尼可调缓冲合页 随任意停铰链 扭矩力可调整止动翻盖折叠合页”,二片小合页安装厚度可以增加到33mm正好。

        由于采用PC1500机壳自制树莓派影音一体机,手工制作工作量较大随意性较多,后面图片就以发布铁皮文具盒制作一体机示意图了。纯手工制作都没有啥技术含量,不需要文字多介绍了,有兴趣就“自己动手丰衣足食”。
视频一:
XiaoYing_Video_1671796511417.mp4 (7.55 MB, 下载次数: 0)

IMG_20221206_224821.jpg
IMG_20221208_003222.jpg
IMG_20221215_161209.jpg
IMG_20221211_155207.jpg
IMG_20221208_235144_1 (1).jpg
IMG_20221208_002435.jpg
IMG_20221208_002421.jpg

视频二:
XiaoYing_Video_1671796731990.mp4 (7.18 MB, 下载次数: 0)

视频三:
XiaoYing_Video_1671797177902.mp4 (4.32 MB, 下载次数: 0)

         解答题目二,如何设计数码电路应用,采用树莓派GPIO如何设计控制SAA1099P飞利浦音源的硬件电路和Python语言编程:

        这里发布如何用树莓派4B4G设计一个电路,实现控制一个数码芯片:飞利浦音源芯片SAA1099P,某宝有售全新3元一片。该芯片资料网上可以下载找到(英文版),部分中文翻译介绍如下:
9aca97fd040849ad9369abbbd1c0f5e8.png

        SAA1099是一款单片集成电路,微处理器控制的立体声声音发生器用于音效和音乐合成,
设计用于产生立体声效果和音乐合成器。
        特征:
        每个发生器八个倍频程,六个频率发生器每倍频程256个音调,两个噪声发生器,6 个噪声/混频器,12 个振幅控制器,两个包络控制器,两个 6 通道混频器/吸电流模拟输出级,兼容 TTL 输入,易于连接至 8 位微控制器,最少的外围组件,简单的输出滤波应用消费类游戏系统,家用电脑,电子琴,街机游戏,玩具,报时/闹钟
        快速参考数据
        电源电压(引脚 18),断续器,典型值5V
电源电流(引脚18)典型值70 毫安
        频率发生器
        六个频率发生器每个可以选择一个八度内的8个八度音阶和256个音调之一。总频率范围为 31 Hz 至 7,81 kHz。输出还可以控制噪声或电子元件发生器。所有频率发生器都有一个使能位,可以打开和关闭它们,从而可以预先选择音调并在需要时使其听不见。频率发生器可以使用频率复位进行同步。
每个倍频程的频率范围为:
        倍频程频率范围
031 赫兹 至 61 赫兹
161 赫兹至 122 赫兹
2122 赫兹至 244 赫兹
3245 赫兹至 488 赫兹
4489 赫兹至 977 赫兹
5978 赫兹 至 1,95 千赫
61,96 千赫 至 3,91 千赫
73,91 千赫 至 7,81 千赫
        噪声发生器
        两个噪声发生器均具有可编程输出。这可能是通过频率控制发生器之一的软件控制噪声,也可以是三个预定义噪声之一。频率发生器在控制噪声发生器时不会发出音调。产生的噪声基于频率发生器输出的两倍,即61 Hz至15,6的范围 kHz.In 选择预定义噪声的事件,噪声发生器0的输出可以与频率发生器0,1和2混合;噪声发生器1的输出可以与频率发生器3、4和 5.In 混合,以产生等电平的噪声和音调输出(当两者混合时),音调的幅度增加。三种预定义的噪声基于7,8 kHz,15,6 kHz或31,25 kHz的时钟频率。
噪声/混频器
       6 个噪声/混频器,每个混频器有四种选择
·通道关闭
·仅频率
·仅噪音
·噪声和频率
每个混频器通道都有一个频率发生器输出馈电
        振幅控制器
        来自混频器的六个通道输出中的每一个都被分成一个左右分量,从而有效地提供了十二个幅度控制器。为每个十二个信号分配16个可能电平的幅度。通过这种配置,只需改变振幅成分即可实现立体声效果。将声音从一个声道移动到另一个声道时,每个音调只需要对振幅寄存器内容进行一次更新。
使用包络发生器时,振幅级别受到限制。然后,可用的级别数减少到八个。这是通过禁用幅度控制的最小有效位(LSB)来实现的。

来自微处理器控制立体声发生器
用于音效和音乐合成
包络控制器
六个音调发生器中的两个处于包络控制之下。这适用于音调发生器的左输出和右输出。
包络具有以下八种可能的模式:
振幅为零
单次攻击
单次衰变
单攻击衰减(三角形)
最大振幅
持续攻击
连续衰减
连续攻击衰减
包络控制器的时序可通过其中一个频率发生器进行编程(参见图 1)。当为通道选择包络模式时,通过向下舍入到最接近的偶数电平,该通道的控制分辨率将从16级减半到8级。
还能够控制通道的“右”分量,与“左”分量相反,该分量保持编程状态。
直接使能允许定义包络的开始,并且还允许随时终止 anenvelope。包络速率可以由频率通道(见图1)控制,也可以由写入地址缓冲寄存器的微处理器控制。如果控制的频率通道为OFF(NE = FE = 0),则包络线将出现在输出端,这提供了替代的“非方形”音能。在这种情况下,频率将是包络速率,如果速率来自频率信道,则最大为1 kHz。通过将包络分辨率从16级减半到8级,可以获得高达2 kHz的更高频率。报价基于 8 MHz 时钟的输入。
六通道混频器/吸电流模拟输出级
六个通道由两个混频器混合在一起,允许每个通道控制六个等量程电流吸收器之一,以提供七电平模拟输出。
命令/控制选择
为了简化微处理器接口,命令和控制信息是多路复用的。要选择寄存器以控制频率、幅度等,必须加载命令寄存器。该寄存器的内容决定了在下一个控制周期中将数据写入哪个寄存器。如果需要持续更新控制寄存器,则只需写入控制信息(命令信息不会更改)。如果命令/控制选择为逻辑0,则字节传输为控制,如果A0为逻辑,则字节传输为命令。
微处理器接口
是基于IO外设的数据总线,根据命令/控制信号A0的值,CS和WR信号控制着从微处理器到该芯片的数据传输。数据传输确认DTACK表示数据传输已经完成。在写入周期中,当微处理器识别DTACK时总线周期将由处理器完成。
应用信息
设备操作
SAA1099使用脉宽调制来实现幅度和包络水平。在离开芯片之前,十二个信号以模拟格式(6个“左”和6个“右”)混合。幅度和包络信号以62.5 kHz的最小速率斩波输出,而最高音调输出为7,81 kHz。简单的外部低通滤波用于去除高频分量。
报价基于 8 MHz 时钟的输入。
基于数据总线的只写结构用于加载板载寄存器。数据总线用于加载寄存器的地址,随后将数据加载到该寄存器。加载地址后,可以执行多次数据加载到该寄存器。
地址或数据的选择由单个地址位A0进行,如寄存器图表1和表2所示。
总线控制信号WR和CS设计为与各种微处理器兼容,包括DTACK输出以优化与S68000系列微处理器的接口。在大多数总线周期中,DTACK将立即返回,这适用于所有寄存器地址加载周期和所有幅度数据加载周期。关于幅度数据,可能需要执行多个等待周期,具体取决于自上一次幅度加载以来的时间。DTACK 将指示所需等待的次数。……

附录:飞利浦音源芯片SAA1099P英文说明书:
PHGLD085-8-16.pdf (313.5 KB, 下载次数: 1)

        其实理解学会这类音源控制的芯片难度,可以说可能比学习入门树莓派难多了,因为没有前面借鉴没有硬软件例子。全靠硬碰硬去深入解读分析芯片资料的每一个信息,特别是关于芯片的寄存器读写数据!更别说能够很好地理解和应用其中的包络线控制,但是天下无难事只要有心人。所以采用这种音源芯片来作为深入学习开发树莓派的应用,才能够跳出初学者入门的所需要的各种国内外源下载安装,好不容易要开始学习硬软件开发阶段时,发现除了各种点灯还是点灯,学习的误区和前面的坑一个又一个。点灯几次就腻味了。总感觉专家和老师为我们初学者精心设计了许许多多学不完的课程踩不完的坑,有的初学者还抱怨自己甚至都不清楚学习树莓派,学习Python编程到底有啥用?我也需要立马跳出初学入门的恶性循环,给自己一个明确目标-边学边设想做出自己需要的电路设计和Python语言编程。如此经过亲自设计和编程实战,对于深入学习和开发树莓派反而就容易多了!

        我以前已经用PC1500就可以控制不下十种音源芯片音乐开发播放,但是对于这类音源芯片电路,要实现用树莓派来控制还不是一码事。首先必须明白树莓派采用GPIO总线结构,内含SPI,I2C,UART等与外电路的数码接口。但是,对于类似该音源芯片,采用D7-D0的8位双向数据总线作为输入输出数据控制结构的,就不能直接接入树莓派的GPIO了。需要通过类似串转并和并转串的的接口电路方式,来实现此类芯片的8位双向数据总线结构的控制。

        基于此思路,我设计出了采用74HC595实现串转并,将树莓派的GPIO13脚端(作为串入信号的输出,给595芯片DS端输入串入二进制数据,经过8次串入信号的数据,就变成8位BIT的标准8位数据了,就是树莓派GPIO13脚把内部8位标准数据分解成为一个又一个的二进制串行信号输出给595芯片,595芯片内部就自动把串行数据还原变为并行的8位数据,就可以被该音源芯片SAA1099P的8位数据总线读取控制芯片寄存器所需要控制和写入的8位数据。

        当然也可以对该音源芯片内部寄存器数据进行读取,就需要把读取的并行数据也转换为串行数据,才可以被树莓派的GPIO输入,就是用另外一片与74HC595芯片功能相反的并转串芯片74HC165,实现并行数据转为串行的数据,就能被树莓派的GPIO脚接收。由于74HC595芯片的8位输出数据总线与74HC165芯片的8位输入数据总线端口都具备三态门高阻抗特性,所以,电路设计就可以把74HC595,74HC165,SAA1099P 这三种芯片的数据总线,甚至是其它更多类似带8位数据总线结构的芯片,都直接互相连接在一起,再通过片选/OE,/CS,/CE等控制端,根据片选时序图确定触发控制信号,就很容易对于数据的输入输出控制而不会互相干扰影响。

        如此举一反三,对于所有需要八位或者16位数据总线输入输出控制的任何芯片和电路设计都不再难题!

Python编程:
IMG_20221223_185221.jpg
IMG_20221223_185309.jpg
IMG_20221227_205024.jpg
IMG_20221223_185344.jpg
IMG_20221223_185418.jpg
IMG_20221223_185439.jpg

        用该音源芯片能够发出单音音乐,也能发出六音同时响的钢琴曲,因为开发音乐芯片发音最重要的五线谱编解码有了,音乐编程,先编一个发单音的小曲子。该芯片可以有六个音同时发音,实现任何曲子编程就有了基础。

        后面继续开发新的实验,需要增加多声道多音程,需要设置一个节拍振荡器产生音乐节拍,设计如何定义和编制一个可编程定时中断服务程序,而Linux的Python语言之所以强大无比,就是我可以轻而易举地引入定义一个多线程threading,用来产生定时中断。现在,该多音程多线程Python编程仍进行中……。
wechat_upload167213801563aacd1f62dbb
wechat_upload167213801663aacd2021b8c
wechat_upload167213801663aacd20eb93d
wechat_upload167213801863aacd225de10
wechat_upload167213801963aacd23a20b2
wechat_upload167213802163aacd251bf65
wechat_upload167213802263aacd267e987
wechat_upload167213802363aacd27eca7a
wechat_upload167213802563aacd299446d
wechat_upload167213816363aacdb3d84df
wechat_upload167213816563aacdb5c47b3
wechat_upload167213816763aacdb7a53b6
wechat_upload167213816963aacdb92e629
wechat_upload167213817063aacdbaa040b
wechat_upload167213817263aacdbc4041e
wechat_upload167213817363aacdbddfd41
wechat_upload167213817563aacdbf3b473
wechat_upload167213817763aacdc10ccb7
MTXX_PT20221223184947275.jpg
MTXX_PT20221223185053897.jpg
Screenshot_20221223_184642.jpg

打赏

参与人数 5家元 +85 收起 理由
geek云中漫步 + 20 優秀文章
玛德陛下 + 20 謝謝分享
沙漠臭屁虫 + 20
sadfun + 5 以資鼓勵
cxw0102 + 20 優秀文章

查看全部打赏

本帖被以下淘专辑推荐:

发表于 2022-12-27 19:28:22 | 显示全部楼层
这动手能力无敌了
回复 支持 反对

使用道具 举报

发表于 2022-12-27 20:09:27 | 显示全部楼层
牛啊,一直对树莓派的价格望而却步,也就适合玩玩stm了
回复 支持 反对

使用道具 举报

发表于 2022-12-27 20:21:55 | 显示全部楼层
树莓派现在太贵了
回复 支持 1 反对 0

使用道具 举报

发表于 2022-12-27 22:17:41 | 显示全部楼层
这种操作需要一定实力做基础。
回复 支持 反对

使用道具 举报

发表于 2022-12-28 08:39:17 | 显示全部楼层
我的树莓派 丢了
回复 支持 反对

使用道具 举报

发表于 2022-12-28 08:40:30 | 显示全部楼层
这也太厉害了~学习了
回复 支持 反对

使用道具 举报

发表于 2022-12-28 09:04:52 | 显示全部楼层
高端大制作 厉害了
回复 支持 反对

使用道具 举报

发表于 2022-12-28 10:00:16 | 显示全部楼层
厉害厉害。
这玩意我觉得搞个盒子有点太费劲了。做出来还是很有成就感的。
回复 支持 反对

使用道具 举报

发表于 2022-12-28 10:22:09 | 显示全部楼层
真厉害,会玩
回复 支持 反对

使用道具 举报

发表于 2022-12-28 10:49:24 | 显示全部楼层
制作完成时成就感实足,近段时间还会把玩一下,之后就是闲置扬灰
回复 支持 反对

使用道具 举报

发表于 2022-12-28 10:54:05 | 显示全部楼层
精彩,树莓派现在可不便宜:)
回复 支持 反对

使用道具 举报

发表于 2022-12-28 12:13:24 | 显示全部楼层
wh100ta 发表于 2022-12-28 10:54
精彩,树莓派现在可不便宜:)

记得刚出来很便宜的啊,不懂,不能弄个机顶盒刷成树莓派吗
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:06:37 | 显示全部楼层
楼主牛人,多谢分享
回复 支持 反对

使用道具 举报

发表于 2022-12-28 14:28:59 | 显示全部楼层
ssn2 发表于 2022-12-28 12:13
记得刚出来很便宜的啊,不懂,不能弄个机顶盒刷成树莓派吗

4b出来后就没怎么便宜,楼主的树莓派主要用作控制,和机顶盒的用法不同,树莓派要比机顶盒的拓展性大很多。
回复 支持 反对

使用道具 举报

发表于 2022-12-28 16:14:19 | 显示全部楼层
树莓派一套下来这价格也是够豪华的。
回复 支持 反对

使用道具 举报

发表于 2022-12-28 16:52:21 | 显示全部楼层
厉害了,赞一个
回复 支持 反对

使用道具 举报

发表于 2022-12-28 18:54:24 | 显示全部楼层
这可不是一般大神能搞定的
回复 支持 反对

使用道具 举报

发表于 2022-12-28 22:03:11 | 显示全部楼层
1500的壳子改的啊,这个壳子可以尝试下3D 打印,或者定制有机玻璃的。
回复 支持 0 反对 0

使用道具 举报

发表于 2022-12-29 08:05:33 | 显示全部楼层
那个键盘抠下来求赠送~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-19 18:28 , Processed in 0.280800 second(s), 16 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表