haoDIY创好电子音响电脑科技DIY小制作发明移动版

主页 > 软件下载 > 电路图资料 >

用路由器diy无线网络收音机,带LCD显示 程序电路图下载

  你会看到这个提示,那是因为你的系统无法识别某栏目的模型信息,或者你新建模型后,没为这个模型设计单独的模板。不同模型的文档浏览页的模板为:article_模型名字标识.htm 如“article_article.htm”,更多的信息你可以在频道模型管理的地方查看。
文件类型 内容:
模板调用标记:
.rar
语言 内容:
模板调用标记:
简体中文
软件类型 内容:
模板调用标记:
国产软件
授权方式 内容:
模板调用标记:
共享软件
操作系统 内容:
模板调用标记:
Win2003,WinXP,Win2000,Win9X
软件等级 内容:
模板调用标记:
3
官方网址 内容:
模板调用标记:
http://
演示网址 内容:
模板调用标记:
http://
软件大小 内容:
模板调用标记:
未知
软件地址 内容:
模板调用标记:
  • 本地下载1
  • 本地下载2
  • 本地下载3
  • 本地下载4
  • 本地下载5
  • 详细介绍 内容:
    模板调用标记:
    1个多月前实验成功了用路由器diy无线网络收音机, 现在又对其进行了改进,没有大的bug了,并装了外壳,现在就分享给大家。

    首先要说明,MMS的网络电台无法播放,因国内电台都是MMS格式的,所以国内的电台是收不到的。Shoutcast格式的都支持,但是我只找到几个中文的,所以,这个diy对于喜欢古典乐和爵士乐并喜欢折腾的可以试试。

    首先得感谢gaochongjun1老大。那个自制硬件网络收音机的帖子,真的非常好,直接刷完机稍微修改一下配置就能用了。一定要先看看那篇帖子。
    我是按照Mightyohm.com里 Jeff设计的网络收音机改的。Mightyohm.com有非常详尽的说明,但是是以Asus WL-520GU作为基础。我这里使用DB120-WG。路由器侧的软件基本是沿用老外的。

    选台用旋转编码器控制,非常方便。音量使用电位器控制,这个功能对耳机直插声卡比较有用。

    1. 刷固件。
    就直接使用gaochongjun1老大的固件。建议先按gaochongjun1老大帖子里的试试mplayer的网络收音

    2. 安装mpd和mpc
    root@OpenWrt:~# opkg update
    root@OpenWrt:~# opkg install mpd mpc
    安装完成后,为mpd配置目录
    root@OpenWrt:~# cd ~
    root@OpenWrt:~# mkdir .mpd
    root@OpenWrt:~# mkdir music
    root@OpenWrt:~# mkdir .mpd/playlists

    在/etc/mpd.conf中,修改以下配置
    找到下列行,把前面的#去掉:
    playlist_directory                "~/.mpd/playlists"
    找到ALSA输出,照以下修改
    # An example of an ALSA output:
    #
    audio_output {
            type                "alsa"
            name                "USB Audio CODEC"
    ##        device                "hw:0,0"        # optional
    ##        format                "44100:16:2"        # optional
    ##        mixer_type      "hardware"        # optional
    ##        mixer_device        "default"        # optional
    ##        mixer_control        "PCM"                # optional
    ##        mixer_index        "0"                # optional
    }
    mixer_type      "software"
    #
    只能使用ALSA输出,OSS的不行。我在网上查了很久,绝大部分路由器播放MP3使用OSS输出。但是因为不知道OSS的name和device怎么填写,我尝试过很多次,dev/dsp或者dev/snd均会报错,还请高人指点。
    name内需填入实际的USB声卡名称,可以通过运行alsamixer命令来查看。我用的是PCM2906。
    mixer_type "software"是单独添加的一行(在alsa大括号外面),否则音量控制不起作用。

    3.
    然后可以执行以下命令,运行mpd和mpc
    root@OpenWrt:~# mpd
    root@OpenWrt:~# mpc
    添加一个电台:
    root@OpenWrt:~# mpc add //192.184.9.79:8006
    因为我无法在帖子里添加url,所以请在上面的双斜杠前添加http:
    开始播放:
    root@OpenWrt:~# mpc play
    应该能听到CINEMIX的广播了,同时会有状态显示。
    注意,要先用alsamixer设定合适音量。
    用mpd --version命令看是支持MMS流的,但是实际无法播放。
    4.
    安装stty,用于TTL串口通讯
    root@OpenWrt:~# opkg install coreutils-stty
    以下命令用于修改串口的通讯波特率,在后面的脚本文件里会用到
    root@OpenWrt:~# stty 9600 < /dev/ttyS0

    5.脚本文件
    我就是参考老外的,修改了部分以适应我的要求。
    interface.sh和display.sh是用于接收单片机发来的命令,并将电台信息发送回单片机。
    网络电台地址在mine.m3u里添加。mine.m3u需要拷贝到~/.mpd/playlists里。文件名是自己定义的,只要和interface.sh里的一致就可以了(interface.sh里有一句mpc load mine)
    播放时按照顺序,从1开始。如Mpc play  2即播放第2个电台。具体看脚本吧,还是很简单的。
    将interface.sh和display.sh拷贝到路由器的\root下面。
    修改运行权限:
    root@OpenWrt:~# chmod ugo+x interface.sh
    root@OpenWrt:~# chmod ugo+x display.sh
    可以用以下命令运行:
    root@OpenWrt:~# mpd
    root@OpenWrt:~# ./interface.sh
    如果有TTL刷机线,可以连到路由器,波特率设置成9600。利用串口调试助手发送命令可以调节电台和音量。根据现在的脚本文件,命令格式为tun:xxvolyyy,xx是电台地址(1-20),yyy是音量(0-100),最后需要跟一个回车符(\n)

    6.
    AVR单片机程序
    除了UART收发用了老外的,其他我基本都改了。其实,最主要的原因是根本看不懂老外的1602驱动,程序中其他部分是很简单的。所以干脆按照自己的思路重写了。使用AVR M8。

    S1为旋转编码器,轴柄还能当按钮使用(可以改程序做暂停功能)。但是我觉得没什么必要。所以现在的功能为:在启动过程中,旋转可以调节LCD背光亮度,按下按钮后记录到EEprom;收听时,旋转可以调节电台,按钮无功能。
    R6为音量电位器。R8调节LCD对比度。
    U4是断电检测用的,可能不好找。用普通的电压比较器稍修改电路能代用。只要是输入电压低于某值(比如8V)后,M8的INT0脚从1变为0就可以了。
    LCD背光是通过PWM控制的,但是不同的液晶背光电流差别很大,所以原件参数可能要调整才能使用(改R3,C4和R7)。
    BOD要使能,看门狗要关掉。

    7.其他修改
    修改 /etc/inittab,将以下2行屏蔽掉:
    #tts/0::askfirst:/bin/ash --login
    #ttyS0::askfirst:/bin/ash --login

    修改/etc/sysctl.conf在最后添加以下2行:
    # Disables the magic SysRq key
    kernel.sysrq = 0

    8.
    使用以下命令使路由器启动后Mpd自动启动
    root@OpenWrt:~# ln -s /etc/init.d/mpd /etc/rc.d/S93mpd

    在/etc/rc.local里exit 0 前,添加:
    amixer set PCM 100%
    sleep 5
    /root/interface.sh

    大功告成!enjoy your music!

    另外,介绍一下如何获得电台地址:
    电脑上浏览器进入shoutcast.com,点击各电台前的蓝色小三角,即开始播放。如果中意的话,鼠标右键点击蓝色小三角,选另存为,即可保存.pls格式的文件。用记事本打开(见下面例子),
    [playlist]
    numberofentries=6
    File1=http://192.184.9.79:8006
    Title1=(#1 - 309/1000) CINEMIX
    Length1=-1
    File2=http://199.217.115.31:9576
    Title2=(#2 - 22/70) CINEMIX
    Length2=-1
    File3=http://94.23.51.96:8000
    Title3=(#3 - 314/930) CINEMIX
    Length3=-1
    File4=http://37.59.38.233:8010
    Title4=(#4 - 647/930) CINEMIX
    Length4=-1
    File5=http://209.9.238.4:6022
    Title5=(#5 - 20/20) CINEMIX
    Length5=-1
    File6=http://209.9.238.4:6046
    Title6=(#6 - 10/10) CINEMIX
    Length6=-1
    Version=2

    File1后面即为地址,拷贝到mine.m3u里就可以用了。这个电台有6个入口,内容完全一样。很多电台只有一个入口。

    MMS的都会报错,所以国内电台是收不到了。这倒也好,没有狗皮膏药广告了。

    自从做了这个,收听内容是极大的丰富啊,古典和爵士乐的电台太棒了。音质也非常好,因为我的PCM2906带数字音频输出,所以听那些高码率的电台音质非常出色

    外壳购自淘宝,主要是中间开口正好适合1602液晶。使用黑膜的液晶,有点VFD的味道。
    左侧为音量旋钮,右侧为调台旋钮。
    LCD上面一行显示电台信息,右侧显示设定电台或者音量。显示电台时前面有一个小三角,显示音量时前面有一个小喇叭的标志。只有调整音量时才显示音量,过大概2秒会恢复电台显示。
    M8里预设定的最大电台为99个。然后会读回实际的最大电台数(即.m3u里的电台数),并以此作为上限。另外,因现在的程序是判断实际电台数大于5个才有效,所以.m3u里的电台数不能少于5个。
    在播放时,有时会因为某个电台连不上或者地址错误, 此时会自动播放下一个可用的电台。所以如果设定电台和实际电台不一致,那个小三角会闪烁以作为提醒

    IMGP2645_small.JPG (47.98 KB, 下载次数: 24)

     

    启动画面

    启动画面

     

    IMGP2641_small.JPG (72.13 KB, 下载次数: 13)

     

    M8

    M8

     

    IMGP2652_small.JPG (49.2 KB, 下载次数: 14)

     

    调整电台

    调整电台

     

    IMGP2653_small.JPG (49.32 KB, 下载次数: 12)

     

    调整音量

    调整音量

     

    IMGP2654_small.JPG (53.01 KB, 下载次数: 17)

     

    IMGP2654_small.JPG


    淘宝用关键词“解码机箱”搜,价格30元,是广东的卖家。
    但是有一个问题,普通1602 的因为线路板太高,必须磨掉部分才能装进去。
    要磨掉挺多的,见图片示意,基本上接线焊盘那边的通孔都磨没了。
    我用的是黑膜的液晶,外形和图片上的一样,只能磨掉再装进去
     

    u=3576135485,2737760921&amp;fm=21&amp;gp=0.jpg (11.88 KB, 下载次数: 71)

     

    u=3576135485,2737760921&fm=21&gp=0.jpg

    说一下路由器和M8的ttl连接:
    M8的2脚接路由器TTL口2脚(靠近GND侧),M8的3脚接路由器TTL口3脚。
    图片上线路板上手写的是我从网上查的,不要管它

    更新的电路图:
    将单片机ISP口也画出来了。因为发现漏画了M8 复位脚的电阻R9和电容C7。
    建议将ISP口预留出来,便于升级程序。

    我这里使用的是mpd( music player daemon)。
    我首先尝试的就是gaochongjun1的方案,因为没有显示,总觉得缺了点什么。Google到老外的方法后,直接在gaochongjun1老大的固件里安装mpd和mpc然后折腾。另外在openwrt.org里我也搞不清用于DB120和RG100的不带CFE的backfire固件是哪个,后来也不尝试了,因为现在运行完全没有问题。路由器里有mplayer没关系,只要开机不自动运行就可以了。


    电脑浏览器进入shoutcast.com。电台前有个蓝色的小三角,点击即可收听。喜欢的话,鼠标右键点击蓝色小三角,选择将目标另存为,即可保存为.pls的文件。用记事本(word更好,否则显示不自动换行)打开,找到File1=后面的地址即可。这个电台有7个入口,内容一样。一般的电台仅1个入口。
    注意,AAC的不行。MP3的肯定能用mplayer播放。
    还有,这不是mms协议的,是shoutcast协议的

    shoutcast.png (79.13 KB, 下载次数: 31)

     

    Shoutcast.com

    Shoutcast.com





     

    PLS.png (21.43 KB, 下载次数: 25)

     

    PLS

    PLS


    为了配合安卓手机操作,稍微修改了一下AVR程序,主要修改为:
    按下飞梭按钮后,飞梭的旋转和音量不再有效(即不再发送控制命令到路由器)。此时LCD右上方将显示实际播放的电台号,同时前方的小三角也变成了菱形作为提示。此时只能通过手机控制。再按一下飞梭按钮后,恢复原始状态,此时继续播放刚才的电台,如果调整电台的话以刚才的电台为初始值。
    使用原来的AVR程序收音机也能使用手机控制,问题在于一旦用手机调整过电台,LCD右上方的小三角会闪烁(因为设定电台和实际不一致),再用飞梭调整的话,初始值不一样。
    其他还有一些小的优化。另外注释改为中文,更详细,方便大家根据自己的需要修改。
    interface.sh也相应做了小修改

     


    下载级别 内容:
    模板调用标记:
    0
    需要金币 内容:
    模板调用标记:
    0
    (责任编辑:admin)
      haoDIY创好电子 版权所有,电话微信13977534587