本帖最后由 diylink 于 2013-7-9 23:13 编辑
前段时间朋友送了一个红版树莓派,平时自己也喜欢搞些带显示的小玩意,以前也买过RT_thread的网络收音机开发板,也就参考了里边的一些代码写了一个程序在树莓派上跑。说实话,自己的水平也是半桶水,基本实现了U盘播放mp3,播放网络http格式的网络电台与豆瓣音乐的功能,并可以用红外遥控器遥控。 现在分享一下给喜欢捣腾树莓派的朋友们。 程序运行后的效果图:
YOUKU里边的视频地址是:http://v.youku.com/v_show/id_XNTgwMzc4ODcy.html 可以到优酷里边看大概的功能演示,感兴趣的朋友,不妨动手一起做一个,硬件需求与成本不是很高。 硬件需求:
1:raspberry pi 2:nokia 5110 显示模块 3:红外接收头 4:红外遥控器(随便一种) 5:杜邦线(用来连接pi 与各个外围模块) 连接的图示: 注意不同的商家的lcd模块的引脚定义不一定相同。
硬件模块用杜邦线与pi的gpio口根据程序里边的设定是: PI GPIO24 ----------- OUT—— 红外接收头输出 Ground ----------- GND —— 红外接收头地线 3V3 power ----------- VCC —— 红外接收头电源输入
PI GPIO22 ----------- RST ——lcd复位
PI GPIO17 ----------- CE —— lcd片选
PI GPIO23 ----------- DC —— lcd数据/指令选择
PI GPIO10 ----------- DIN —— lcd串行数据线
PI GPIO11 ----------- CLK —— lcd串行时钟线
3V3 power ----------- VCC —— lcd电源输入
5V power ----------- BL —— lcd背光控制端
Ground ----------- GND —— lcd地线
软件需求: 1.下载论坛附件地址的软件,解压缩放到pi 的任意目录下,命令行状态执行make。 #tar xzvf pi_radio.tar.gz #make #cp pi_radio /usr/bin 2.设置红外遥控参考帖子 程序压缩包里边附带了lirc.conf 文件,对应了软件里边的相关按键,所以学习的时候需要命名成 up,down,left,right,enter,exit,六个按键。 我这里用的是pi的gpio 24 来做信号输入,所以命令如下: #sudo modprobe lirc_rpi gpio_in_pin=24 gpio_out_pin=25 #sudo /etc/init.d/lirc start 3.安装mpg123播放器。 #sudo apt-get install mpg123 测试功能: 1.控制台命令手动执行程序。 #sudo modprobe lirc_rpi gpio_in_pin=24 gpio_out_pin=25 #sudo /etc/init.d/lirc start #sudo pi_radio 程序运行后,5110 lcd显示模块就会出现一个4个选项的界面: 网络电台(播放网路电台,现阶段还只局限于http模式的地址) Usb本地播放(播放u盘中的音乐,当然也可以mount nfs 播放别的网路设备的音乐) 豆瓣电台(播放豆瓣fm里边的音乐) 关于(关于本程序)
1.网路电台需要解析/etc/ 目录下的radio.pls文件,用的是jorn格式,用命令行复制程序附带的radio.pls文件到/etc/目录下,里边 自带了一些电台的资料,大家要加或者修改电台地址的时候,请参考程序附带的pls文件内容的格式。 2.Usb播放的程序搜索地址是/mnt/usb/ 如果插入u盘的话,需要手动mount到这个目录下,如用命令: #sudo mount -t vfat /dev/sda1/ /mnt/usb 当然也可以mount nfs格式到/mnt/usb下,或者直接拷贝歌曲到sd卡里边的这个目录下。 #sudo mount -t nfs -o nolock IP地址:/mp3文件夹地址 /mnt/usb 现在对usb的vfat格式中文显示还存在点问题,尝试过 加入参数 -o iocharset=utf8 也还是出现乱码,nfs方式mount linux的文 件夹就没问题。 3.豆瓣音乐操作比较简单,点击自己喜欢的电台就可以播放,播放中可以按下一首跳过想播放的歌曲。 4.如果要开机就自动运行程序,那么需要在/etc/rc.local下exit(0)语句前加入如下修改: sudo modprobe lirc_rpi gpio_in_pin=24 gpio_out_pin=25 sudo /etc/init.d/lirc start sudo pi_radio |