用树莓派进行广播FM以及SSH登录设置

因为有两个内容想要写的,都是而且都不长所以都放在同一篇里面吧。

树莓派广播FM

刚玩了下用树莓派广播FM。用的是PiFm. 可以点这里进行下载(我好像下载的是旧版的。不过可以用就是了,估计没有立体声或者什么的这些特性

tar -zxvf pifm.tar.gz

解压到任意位置。目录中有.c源文件,编译好的二进制文件,测试用的那个星战的wav音乐,还有python脚本。 python里面的使用方法是

import PiFm
PiFm.play_sound("sound.wav")

其实打开PiFm查看里面的代码也就是运行了编译好的二进制文件而已,或许是为了python里面调用方便所以才做成一个模块的吧。

另一种使用方法是直接开pifm.

sudo ./pifm sound.wav 100.0

因为查看源码的话会发现需要mmap直接操作/dev/mem所以需要root权限。 然而从入手树莓派到现在这几年一直都用Archlinux就只用root用户的我似乎并不知道什么是sudo 顺便说个悲伤的事情吧,树莓派上用Archlinux的人似乎并不多,关于树莓派的东西大多数人(99%)都是用官方那个系统吧,所以在其他发行版问题就多了,还没地方问。像之前搞摄像头的时候就遇到raspistill死活都不能正常运行的情况。google了一番才知道是Archlinux本身的问题,之前还有几个解决方案后来似乎成了遗留问题一直没能解决了? 参数1是要进行广播的声音文件,留空静音?设置为-表示接收stdin的数据,用于管道传入数据,参数2是广播的频率,可以从1Mhz到250Mhz,可选参数,默认是103.3。参数3是声音文件的采样率,默认22500hz。

自己试了一下,默认103.3Mhz的频率信号比较弱,距离稍微近点也听不大清楚,而且似乎干扰很严重,后来设置成90Mhz之后就算保持一段距离也能够清楚的听清广播的内容:P网上有人说频率是30的倍数信号都特别强,因为普通收音机只能接收大约88 Mhz~108 Mhz的频率所以其他频率我也不能验证,不过从90Mhz的情况来看确实是这样,还是在没有加天线的情况下。

其他的一些使用方式

sudo ./pifm left_right.wav 103.3 22050 stereo

# Example command lines
# play an MP3
ffmpeg -i input.mp3 -f s16le -ar 22.05k -ac 1 - | sudo ./pifm -

# Broadcast from a usb microphone (see arecord manual page for config)
arecord -d0 -c2 -f S16_LE -r 22050 -twav -D copy | sudo ./pifm -

他大概的一个原理是映射物理内存的外围总线(0x20000000)到虚拟地址的内存空间对外部设备进行操作,启用时钟发生器并设置GPIO4输出.这时后频率设置是100Mhz,收音机原本的噪声会突然变静音,应该是因为树莓派发射的静音信号。然后再把声音数据调制发射出来。按照这原理就算声音文件播放结束之后树莓派仍然还在发射静音信号,只能重启后清除内存数据才能恢复原样了,否则他就一直射下去..

SSH登录设置

其实之前是设置过的。然后旧电脑升级后系统没了一直也没再去搞。现在觉得每次登录都要输密码太麻烦了就重新设置并记录下来。

经常要对树莓派SSH登录进行管理,而且还经常开了好几个连接,博客更新也是通过树莓派,所以打算直接用公私鈅进行登录认证了。

常用的电脑一个是sutface pro3跑windows一个是台式机跑ubuntu。先从简单的ubuntu开始吧。

Linux

用ssh-keygen生成公私鈅,位于~/.ssh下面

cirno@LoveLive:~$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/cirno/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/cirno/.ssh/id_rsa.
Your public key has been saved in /home/cirno/.ssh/id_rsa.pub.

然后把公钥id_rsa.pub里面的内容添加到树莓派用户目录下的.ssh/authorized_keys里面就行。 再次运行

cirno@LoveLive:~/.ssh$ ssh [email protected]
Welcome to Arch Linux ARM

     Website: http://archlinuxarm.org
       Forum: http://archlinuxarm.org/forum
         IRC: #archlinux-arm on irc.Freenode.net

Last login: Sun Jun 28 01:36:41 2015 from 192.168.1.107
[root@alarmpi ~]# 

不用密码直接登录了。

Windows

Windows 下面用的putty进行连接(话说windows接下来都要原生支持ssh了到时候是不是就可以抛弃putty了,不过感觉putty本身设置功能就特别强大了估计windows原生ssh可玩性还不高吧)。 运行puttygen.exe生成公私鈅。指针在空白处移动生成随机内容。生成出来的公鈅保不保存都可以反正可以载入私鈅再生出来。把私鈅保存到找的到的地方,公鈅照样添加到树莓派用户目录下的.ssh/authorized_keys里面。在putty的设置中连接->SSH->认证 中添加刚才保存的私鈅,把设置保存到树莓派的会话中就行,打开会话输入用户名就能够自动认证登录进去了。q(≧▽≦q)

Show Comments