树莓派充当airplay接收器

iOS升级以后,新版本经常不兼容xbian之类自带的airplay功能,目前来Shairport的支持还是不错的。我在新的树梅派3b+上编译了一下,支持ios 11.0.4版本。 首先升级树莓派 sudo apt-get update sudo apt-get upgrade 然后安装依赖包 sudo apt-get install autoconf automake avahi-daemon build-essential git libasound2-dev libavahi-client-dev libconfig-dev libdaemon-dev libpopt-dev libssl-dev libtool xmltoman 下载shairport源码 git clone https://github.com/mikebrady/shairport-sync.git 生成配置文件 cd shairport-sync autoreconf -i -f ./configure –with-alsa –with-avahi –with-ssl=openssl –with-systemd –with-metadata 编译安装 make sudo make install 设置为自动启动 sudo systemctl enable shairport-sync 启动 sudo service… Continue reading 树莓派充当airplay接收器

Auto start a java Swing GUI program when raspberry boots

I planed make an self-desgin photo or movie player base on Raspberry. Also I can use it as photo frame. If I need improve the performance of the PI, I need write it with Python, I think.   Part 1 – Build the Foundation In this part, we will focus on preparing Raspbian Lite. 1.… Continue reading Auto start a java Swing GUI program when raspberry boots

MOUNT AN SMB NETWORK DRIVE ON RASPBERRY PI

original post: http://geeks.noeit.com/mount-an-smb-network-drive-on-raspberry-pi/ In this tutorial we will describe how to connect your Raspberry Pi to a network drive and permanently mount it to your system. Even though this article uses a Raspberry Pi as an example to connect to an SMB drive, the steps used can be applied to any Debian based system, such as… Continue reading MOUNT AN SMB NETWORK DRIVE ON RASPBERRY PI

How to wake up a pc by PHP

source: http://php.net/manual/en/ref.sockets.php http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/ <?php /** * Wake-on-LAN * * @return boolean * TRUE: Socked was created successfully and the message has been sent. * FALSE: Something went wrong * * @param string|array $mac You will WAKE-UP this WOL-enabled computer, you * need to add the MAC-address here. Mac can be * array too. * *… Continue reading How to wake up a pc by PHP

树莓派spi液晶屏支持(fbtft)[转]

  转自 老徐拉灯 的博客 原文地址:http://blog.csdn.net/xdw1985829/article/details/39583239 树莓派官方支持av及HDMI输出,板子上预留了一个csi接口的液晶显示屏,但是一直没有相应的模组出现。在很多应用场合我们需要一些小型的液晶屏显示一些基本的信息,所以小屏驱动很是必要。 在github上有一个开源工程:notro/fbtft,完整的实现了framebuffer驱动,让树莓派完美支持tft液晶,下面对移植过程进行一个简单说明 一、官网地址 工程首页:https://github.com/notro fbtft源码:https://github.com/notro/fbtft 编译好的固件(基于3.12.25+):https://github.com/notro/rpi-firmware 使用说明(wiki):https://github.com/notro/fbtft/wiki 二、使用编译好的固件(3.12.25+) 环境:树莓派 https://github.com/notro/rpi-firmware 1、打开SPI 树莓派默认spi是关掉的,我们需要打开 sudo vi /etc/modprobe.d/raspi-blacklist.conf 把下面这句话前面的#号删掉 blacklist spi-bcm2708 2、下载: 1)以模块的形式编译进内核(需要手动或脚本加载模块)3.12.25+(试验成功) sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update 2)直接编译进内核(笔者没有试验) sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=builtin rpi-update 3)以模块的形式编译进内核(需要手动或脚本加载模块,最新版本,笔者试过启动不起来,不知道哪出问题) sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=latest rpi-update 4)直接下载压缩包,手动安装(适合树莓派不能联网的时候) http://tronnes.org/downloads/2014-06-20-wheezy-raspbian-2014-07-25-fbtft-master-firmware.zip 3、配置 1)手动加载模块: sudo modprobe fbtft_device name=adafruit22 name后面的名字,要跟相应的液晶驱动芯片移植 笔者使用的液晶芯片为:fb_ra8875,所以这里写的是:er_tftm050_2 其它芯片请查阅:https://github.com/notro/fbtft/blob/master/fbtft_device.c 文件 正常会提示以下信息 fbtft_device:  SPI devices registered: fbtft_device:     … Continue reading 树莓派spi液晶屏支持(fbtft)[转]

基于树莓派Raspberry: 字符设备内核驱动程序框架编写[转]

之前写了一篇移植2.4寸TFT驱动到树莓派的文章,那篇博文中的驱动代码是国外大牛写的,看了一下,还是有很多地方没理解,是得好好再学习一下内核驱动的编写,这里就从字符设备驱动开始,采用最简单的LED驱动来建立内核驱动移植的驱动框架. 个人原创,转载请注明原文出处: http://blog.csdn.net/embbnux/article/details/17712547 参考文章: http://blog.csdn.net/hcx25909/article/details/16860725 内核驱动与普通单片机模块驱动的差别就是在于,写内核驱动的时候,要提供内核调用的接口,使内核能找到相应的驱动入口,用户通过告诉内核要干嘛,内核再去调用那个驱动,驱动的最底层和单片机模块是一样的,同样是对GPIO的操作,配置输入输出,以及某些特殊的寄存器. LED的点亮就是对GPIO的操作 . 对于ARM的GPIO调用需要通过IO映射的方法,要操作内存上对应的地址. 对于bcm2708上的io对应关系,可以查看bcm2835的手册,和stm32基本上是一样的,因为同为ARM体系: 我参考的那博客讲这个比较清楚,可以参考下,由于树莓派的内核以及很好的提供了GPIO调用的接口,即把内存操作封装了很好,这里就不像那篇博客那样再自己写函数通过内存操作来进行GPIO操作,觉得有点麻烦,但是对于学好底层很有用.   一  首先上个驱动程序   这里直接把该程序添加到内核的源码目录里面,也可在自己的目录下,但是要写Makefile. 在/drivers/char/新建rasp_led.c,内核中的kconfig文件和makefile文件,参照前一篇文章 led.c: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37… Continue reading 基于树莓派Raspberry: 字符设备内核驱动程序框架编写[转]

在树莓派上的XBMC增加一个静音按钮(mute button for XBMC on Raspberry Pi)

也许有人会问有了手机控制或者红外控制为什么还要有一个物理的静音按钮呢?设想一下以下场景: 当你在电视上看大片看得正爽的时候,来了个电话,是到手机上找app来控制呢,还是手忙脚乱的找遥控器来静音,或者直接到电视机边上按个静音键方便呢? 正是因为如此,才有了这个创意。 基本思路:一个简单的轻触式按钮连接到Pi的gpio口,在Pi上运行一个python程序,当按钮按下时,给XBMC发送静音指令。 附加功能:每按一次,LED闪一下 扩展功能:不满足于静音功能的,还可以多增加几个按钮来完成其他的功能,比如播放、暂停、快进、发送邮件、甚至求救报警功能。 开始动手 原料: 树莓派 1个(这个你肯定有了吧,没有就入一个吧) 轻触式按钮 1个 LED 1个 3k3电阻 2个 洞洞板、连接线、面包板之类,看自己情况使用。 步骤1: 焊洞洞板,示意电路图如下:   为了防止LED以及GPIO口电流太大,加了限流电阻。 实际焊接图,请忽略左边五个按钮和左边的电阻,这是我留着备用的。 按照电路图连接到Pi上。 步骤2,安装python的gpio库,如果已经安装了,请跳过此步 cd /tmp cd gpio wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.7.tar.gz tar xvzf RPi.GPIO-*.tar.gz cd RPi.GPIO-*/ sudo python setup.py install 如果安装的时候出现错误: source/py_gpio.c:23:20: fatal error: Python.h: No such file or directory 这是因为缺少Python.h文件,没安装python编译环境: sudo apt-get install python-dev 步骤3:开始我们的python程序吧… Continue reading 在树莓派上的XBMC增加一个静音按钮(mute button for XBMC on Raspberry Pi)

Raspberry Pi 使用NFC模块读取标签

使用网上的教程,链接 http://www.geek-workshop.com/thread-10042-1-1.html 。 原文包含SPI和I2C总线两种方式,因为我不想插上一大把线,所以只用了I2C接口,所以内容有删节。 libnfc是首个遵循GNU(自由工程项目)通用公共许可证针对所有人都完全免费的低级别NFC软件开发包和编程应用程序接口。它提供了完整的透明度且免费供大家使用。该库目前支持调制ISO / IEC14443 A和B,FeliCa,Jewel/Topaz标签及数据交换协议(P2P)作为目标和启动程序。想了解更多关于libnfc的信息,可参考http://nfc-tools.org/ITEAD PN532 NFC模块配有双排引脚,可直接通过排线连接到树莓派,然后树莓派将驱动模块进行非接触式近场通信操作,如读写13.56M IC卡。 以下教程,演示如何在树莓派上使用libnfc通过SPI总线来驱动ITEAD PN532 模块。 1, 硬件链接 Itead PN532 Module是使用四条线连接,如下图 按照上图的连接方式,Itead PN532 模块是通过SPI总线与树莓派连接的,所以需要把NFC模块的工作模式设置为I2C模式,如下图: 即 :  SET0–>H   SET1–>L 2,安装依赖的软件包 sudo apt-get update sudo apt-get install libusb-dev libpcsclite-dev 3,下载并解压缩libnfc源码包 cd ~ wget http://dl.bintray.com/nfc-tools/sources/libnfc-1.7.1.tar.bz2 tar -xf libnfc-1.7.1.tar.bz2 4,编译与安装 cd libnfc-1.7.1 ./configure –prefix=/usr –sysconfdir=/etc make sudo make install 5, 修改配置文件 cd… Continue reading Raspberry Pi 使用NFC模块读取标签

Raspberry Pi 播放 1080p视频

看到网上说树莓派支持1080P视频的播放,专门下载了片子尝试,经常卡死。后来看到说超频后效果好一些。在xbian里面试验了一下,效果没有太大改善。 难道是硬盘原因?这个移动硬盘比较老,大概是5400转的。我通过网络尝试访问Pi,共享拷贝文件,居然只有20多k的速度,换了个比较新的硬盘,速度也没有改善多少,大概40多K,看样子不是硬盘的问题。 难道是usb hub的原因?这个hub比较老,难道是usb 1.0或者1.1的?在网上搜了一下,线材及usb hub本身原因,严重影响移动硬盘速度,甚至会损坏硬盘,所以不建议将硬盘接在hub上。将移动硬盘连直接接到Pi上,网络拷贝速度已经可以达到2.8M,虽然和电脑之间拷贝的20多M速度相比还很慢,已经算是可以接受了。用xbmc开始播放硬盘的1080P电影,果然不卡了,yeah!   总结,硬盘、摄像头之类的设备最好直接接在Pi上,鼠标键盘可以通过usb hub扩展,否则严重影响速度和效率。至于要不要超频,反而影响不是很大。 DO NOT use USB HUB to extend you movable disk or camera, it will slow down your read speed even you can not use it.

树莓派充当mp3播放器

最近想着通过Raspberry Pi来充当mp3用,因为没有显示器,只有音箱,所以就把音箱直接接在Pi的3.5mm耳机接口上。可以在电脑上或者手机上通过网页来播放音乐。也许有人问,有了电脑或手机为什么要这个,因为也许电脑、手机的外放效果不怎么样,接音箱总归好一些。而且对于我这个懒人,就喜欢躺床上,希望通过手机来控制一切,所以才诞生了这个想法。 基本步骤: 1.安装系统,本人使用的是xbian,理论上其他系统也可以。如果已经装好系统,可以跳过这一步 2.安装mpg123 命令: apt-get install mpg123 安装完毕mpg123,拷贝一个mp3文件到Pi中,可以运行mpg123 xxx.mp3(xxx.mp3为mp3文件名)看看能否正常运行。 本人在运行的时候出现找不到输出口的问题,大概是声卡驱动没有正确加载,运行以下命令解决: sudo modprobe snd-bcm2835 3.安装lnmp,其实这里只需要安装nginx和php就可以了。 参照我之前的帖子 http://blog.wo.ai/archives/194 来进行安装 或者简单运行如下程序: apt-get install nginx php5 php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl 4.然后配置php sudo权限,这样php执行命令的时候不需要输入自己的密码 为 nginx,而想透过 PHP 发送irsend,用 root 输入指令 vi /etc/sudoers, 在档案最底加上以下一行: www-data ALL=NOPASSWD: /usr/bin/mpg123 5.开始php旅程: 首先是index.php,用来遍历某个目录下所有的mp3文件,并显示出来: //获取文件目录列表,该方法返回数组… Continue reading 树莓派充当mp3播放器

在树莓派上使用RS232(连接到Psion5)

原文地址:http://blog.mrpjevans.com/2012/1 … ry-pi-to-a-psion-5/ (笔者注:Psion5是Psion公司出的一款掌上电脑) 树莓派的通用输入输出口(GPIO)由26针组成,是黑客们的最爱,能够使用模拟或者数字信号的操作。翻遍了手册,我发现居然连基本的串口都没有。也就是我们上个世纪的老朋友,RS232,这是一个低功耗版本。对于那些完全不知道我说什么的人,不用担心,即使这个帖子不太适合你。RS232看起来像是以前那些学校废弃的技术,但实际上它是我们身边最简单的两机通讯的方式。 庆幸的是,搞Pi的那些聪明的家伙,使用串口作为控制台,也就是说,你可以用它登录然后得到一个命令行。我白天的工作就是在一个数据中心管理一堆的服务器。尽管他们有很多最新的、功能强大的工具包,无一例外的是他们都配有串口。当显卡不能正常工作时,至少你还可以通过这个接口来登录系统。 Pi上提供的串口使用起来很简单。只需要4条线:电源,发送,接收,地。没有更简单的方法了,直接把这些线连接到电脑的COM口,对不对? 嗯,不对。这其中有一个问题,Pi用的电压是3.3v,RS232需要+12V作为高电平(1),-12v作为低电平(0)。Pi自身没办法做到,通过google可以找到很多现成的解决方案。幸运的是,有一个现成的芯片可以双向转换信号,让我们可以从pi的低电压信号转换成一个“真正的”RS232接口。这个价格大概是5镑,名字叫MAX3232CPE。只需要小部分的电容就可以。 到了我们开始干活的时候了。我从本地的Maplin买到了所有的配件(下面提供了链接和编号): 一个Max2323CPE集成电路(DT26D) 一个16针DIL IC插座(BL19V)(如果你有面包板,这个就不需要了) 5个0.1uF电容(N43CJ) 9针D-Type插座 线 杜邦线(A39GF) 一些洞洞板(FL17T)(虽然我强烈建议一开始用面包板) 当然还有: 一点焊接经验 一个COM/串口 我这里还出现了一个问题。作为Mac用户,我知道乔布斯多年前就放弃了RS232口,采用兼容性很好的usb接口。幸好Maplin还卖一个基于PL2303芯片usb转串口的适配器,在OS X上运行的很好,包括山狮,但是我花了不少时间来找驱动和步骤。 开始干活,这就是我们要做的: 最开始我在面包板上完成了,按照Joonas Pihlajamaa的步骤(链接在文末)。如果你还是个新手,在面包板上插IC芯片,还是要小心一些,把所有的针脚都插进去。在这个时候不需要用插座。下一步,我焊接了一个9针的连接器。我把RXD焊到针脚2,TXD焊到针脚3,地为针脚5(右上)。 现在你关闭Pi,从集成电路的1,6,8,10针脚连接这4条线到Pi。针脚1时左上,标记为P1。在它右边是针脚2。然后针脚1下是3,右边是4,以此类推。 这四条线是这么连接的: Pin 1 – +3.3V Pin 6 – Ground Pin 8 – TXD (发送数据) Pin 10 – RXD (接收数据) 将9芯的RS232连接到你的COM接口,然后打开Pi。 你的Pi应该正常启动,根本不知道建了新连接。现在把你的注意力放到你的电脑。 你需要有个软件能够连接到你的Pi。在windows上,你可以用PuTTY。在mac上,试试看MacWise,或者直接用linux上的命令行工具,比如screen 如果你打算用screen,来看看他是和么安装的 $ screen -h 复制代码 命令不存在?那就安装吧 $… Continue reading 在树莓派上使用RS232(连接到Psion5)

通过手机来控制家电

心血来潮想通过树莓派对家里的电器进行控制,网上查了不少资料,决定动手一试。首先决定对电暖器开刀,这个电脑有一个红外的遥控器,可以开关、定时、设定高低档功能,我要做的就是模拟遥控器对其发出指令。初级篇,通过电脑命令行进行控制,高级篇使用手机进行控制。 参照baoxiaozhong的红外接收http://www.shumeipai.net/thread-12265-1-1.html 设置好了红外接收器,然后尝试用相似的方法实现了红外发射器,成功控制电暖器,后续将考虑控制电视,空调等 设备。 初级篇:用电脑来控制电暖器 原理: 先通过红外接收模块,采集遥控器的指令,然后通过红外发射器模块模拟遥控器发送红外指令控制。 环境:xbian 1.0 alpha4 硬件:taobao上淘的10多块一个的红外接收模块及红外接收模块,此处不发地址,免得广告嫌疑。 连接方式: 红外接收器 vcc 连 pin1 (3.3v) gnd 连 pin6(ground) data连 pin12(gpio18) 红外发射器 vcc 连pin2(5v) gnd连pin6(ground) data连pin11(gpio17) 为什么这么连,我查了很久资料,后来在lirc_rpi原作者网站看到了,大概固定在程序里面了。 地址:http://aron.ws/projects/lirc_rpi/ 步骤: 先通过红外接收器接收遥控器的编码,请参照http://www.shumeipai.net/thread-12265-1-1.html. 在用户目录生成了lircd.conf文件 我生成了KEY_UP,KEY_DOWN,KEY_0,KEY_1等分别代替开启、定时、低、高四个按钮 然后将它拷贝到/etc/lirc/remotes下, sudo cp /home/xbian/lircd.conf /etc/lirc/remotes/xxx.conf (xxx随便你起名字,但是要和后面统一) sudo vi xxx.conf 修改 name /home/xbian/lircd.conf 为 name xxx sudo /etc/lirc/lircd.conf 增加一行 include “/etc/lirc/remotes/xxx.conf” 保存退出 现在可以测试了 sudo… Continue reading 通过手机来控制家电

安装Siri Proxy

本文为本站首发,树莓派论坛转载,如果需要转载请注明作者及出处。 原文地址: How to Install Siri Proxy Tutorial [Video] 安装之前,需要下面几个先决条件: 1.最好安装一个ubuntu.可以实际安装一台机器,也可以装在虚拟机上 2.只能安装在4s上,我未测试其他设备,可能不能工作,而且不合法 3.只有连上wifi的时候才可用,并且iphone和siri proxy在一个局域网内。虽然可以通过vpn远程,但是我尽量保持简单和直接 4.本文只覆盖初始化安装,以后我告诉你们如何增加一些插件来增加体验 5.任何人都可以做到,包括你,不要害怕 6.最后,感谢Pete创建了SiriProxy,并提供基础 如何安装: 预备步骤: 1.如果已经有了ubuntu,直接下一步。没有的话,可以在windows或者mac上装一个,mac上可以装Parallels或者vmware fusion运行ubuntu虚拟机,我用的是parallels 2.安装ubuntu的最新更新,参看视频1:00时刻(视频需要翻墙) 3.如果你用paralles或者其他虚拟机,需要设置虚拟机实通过bridge模式,这样可以联上互联网,参看视频4:00 4.设置dropbox,这是个可选步骤,我觉得这样方便一些。你需要有地方传输你iphone上生成的证书,你可以用邮箱,我用的是dropbox 命令行步骤: 这些步骤都可以参考视频,每个都有时间戳作为参考。简单的在终端复制粘贴这些命令,然后按照指令执行。 命令1:时间:5:44(此处安装必要的库) sudo apt-get install dnsmasq ruby build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion 选择y继续,… Continue reading 安装Siri Proxy

用Siri来控制车库门[翻译]

本文为本站首发,在树莓派论坛转载,其他网站转载需要指明出处及作者信息。 原文: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=25118&hilit=siriproxy&sid=aa0660b88dd63482d287d7fb089e0d60 hi,这是我第一个树莓派的项目,SiriProxy。它运行在树莓派上,使用wiringPi访问派的GPIO口,并发一个延时的on/off信号。这个延时信号用来控制我车库门。所以我可以在iphone上用siri来控制我的车库门。 可能有其它的方式来做同样的事情,比如在Pi上跑一个web服务器来访问Pi的GPIO端口,但是我只是简单的做了一个,符合我自己的需求,并且运行的一切正常。 我的派在整个安装过程中都用root用户运行,这样可以比较简单一些(原文粗制滥造)。我用wheezy版本。 下面这个链接 http://www.idownloadblog.com/201 … oxy-tutorial-video/ 告诉你怎么安装和运行siriproxy。如果你按照这些步骤,并且把11,12,13步的顺序更换为12,13,11。顺便说一下,命令7大概需要在PI上编译90分钟。 然后开始安装wiringPi,可以从 https://projects.drogon.net/rasp … wnload-and-install/ 获得。 一旦这些都安装好了,我们只需要更改一下siriproy里面自带的ruby脚本的例子。 编辑/root/SiriProxy/plugins/siriproxy-example/lib/siriproxy-example.rb 文件 找到这几行: listen_for /test siri proxy/i do say “Siriproxy is up and running!” #say something to the user! request_completed #always complete your request! Otherwise the phone will “spin” at the user! end 在它后面追加这几行 listen_for /open the garage… Continue reading 用Siri来控制车库门[翻译]