树莓派和路由:将树莓派打造成一台路由器

如果你想要一个装在口袋里的网络分享设备,树莓派可以做成一个很不错的路由器. 本次制作所用到的设备要求: 本地网络 一台电脑 运行Raspbian的树莓派 无线USB路由器 HDMI连接线(可选) 键盘(可选) 路由器(可选) 有HDMI输入的监视器(可选) 如果树莓派已经设置好可以独立运行了.你不需要屏幕键盘鼠标-就是另外一台可以用SSH通过网络远程登录的电脑 需要下载的 Older hostapd (只有apt下不到驱动的时候) 需要的知识,技术,能力 1,可以熟练操作计算机系统 2,基本的计算机术语知识 3,敢于在终端里敲命令.如果有必要也要敢于调整他们适合自己的开发环境 4,熟悉网络核心概念 所用到资源 http://magpi.techjeeper.com/The-MagPi-issue-11-en.pdf http://www.pi-point.co.uk/documentation/ http://blog.sip2serve.com/post/48420162196/howto-setup-rtl8188cus-on-rpi-as-an-access-point https://docs.google.com/file/d/0B3nsVzbJuBHVOWRJRDJacVd0S2s/preview?pli=1 http://sirlagz.net/2012/08/11/how-to-use-the-raspberry-pi-as-a-wireless-access-pointrouter-part-3/ http://www.raspberrypi.org/phpBB3/viewtopic.php?t=39096&p=393810 http://unix.stackexchange.com/questions/119209/hostapd-will-not-start-via-service-but-will-start-directly http://www.daveconroy.com/turn-your-raspberry-pi-into-a-wifi-hotspot-with-edimax-nano-usb-ew-7811un-rtl8188cus-chipset/ 概念总览 用apt-get安装做需要的组件 验证无线软件狗收发功能 配置/etc/network/interfaces 给你想要设置的接入点创建配置文件/etc/hostapd/hostapd.conf 把hostapd指向步骤4所创建的配置文件/etc/hostapd/hostapd.conf 用老版本替代/sbin/hostapd 配置DNS 配置IPv4转发,使其可以连接网络 准备树莓派 确定你的树莓派是最新版本的,可以安装所有最新的安装包 sudo apt-get update sudo apt-get upgrade 安装所需要的组件 以下这些组件都是设置接入点做需要的: rfkill: 一个无线工具 zd1211-firmware: 很多Wi-Fi收发器通用的固件 hostapd: 无线接入点的守护进程 hostap-utils: 补充工具… Continue reading 树莓派和路由:将树莓派打造成一台路由器

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.

Adafruit的树莓派教程第十课:步进电机

概览 步进电机介于常规的直流电机(第九课)和伺服马达(第八课)之间。步进电机的优点在于它能够被精确定位,正向或反向一次性转动”一步”,并且也能够连续转动。 这节课里,你将学到如何使用树莓派以及在第九课里已经用到的L239D马达控制芯片来控制一个步进电机。 这节课也将展示如何使用另外一种驱动芯片,ULN2803。 在这个项目里,你使用L239D或者ULN2803都是可以的。ULN2803更便宜一些,并且空余出来4个输出针脚你可以用来干点别的事,如果你两个芯片都没有,那还是选择ULN2803更好一些。 步进电机所需的电量很少并且所能承受的最大电流要小于直流电机和伺服马达。所以直接通过树莓派的5V输出并且保证电流是1A的情况下是可以直接驱动步进电机的。 你需要的: 5V步进电机 L293D芯片 ULN2803 小块面包板 树莓派 一把跳线 硬件部分(L293D) 步进电机有5个引脚,所以L293D的两个半部都会用到。这意味着我们会在面包板上连接很多线。 步进电机的末端有5个接头。把跳线插入这些接头里这样就可以把电机连接在面包板上了。 注意红色的引脚不连接任何线。 要通过引脚的颜色来区分而不是从它们伸出马达的位置。 <h4硬件部分(ULN2803) 如果你是用的是ULN2803,那步进电机的5个引脚都会被用到。 步进电机的末端有5个接头。把跳线插入这些接头里这样就可以把电机连接在面包板上了。 这个项目只适用于带有5个单级引脚的步进电机。 尽管后面的代码里使用了GPIO的第18针,但只有在使用L293D芯片时才会用到它。 步进电机 步进电机使用锯齿状的转子和电磁配合推动转子一次转动”一步”。 以正确的顺序给线圈通电,那么电机就会开始转动。转子的齿数与转动”一步”的角度精确对应。 我们现在使用的是8步步进电机,并且它有一个1:64的减速齿轮箱(reduction gearbox),所以它实际上转一圈需要 8*64=512步。 这节课里,我们不会使用红色的引脚。只有使用另外种类的不支持线圈电极反转的驱动芯片才会用到它。连接到两组线圈的中间意味着你就可以通过给左边或者右边的线圈通电来达到反转方向的目的而不用外接一个反转电流的电路。 因为我们使用的是支持电极反转的L293D芯片,所以我们就用不到红色的那个引脚了。可以通过这个芯片改变正负极来反转方向。 ULN2803 我们已经在第九课接触过了L293D芯片,而ULN2803也是一个非常有用的芯片。 不像L293D有4个输出引脚可以反转电极,ULN2803有8个输出引脚可以把来自树莓派GPIO的输出信号放大转换成更大的电流。 与L293D不同的是,ULN2803只能输出一个方向的电流,所以这里我们要用到步进电机的红色引脚作为公用正极。并且每次只会用到线圈的一半,如粉色和橙色的部分,每次只有红色和粉色部分的线圈才会通电。 软件部分 不过你用L293D还是ULN2803,软件部分都是一样的。 这个项目会用到Rpi.GPIO类库,如果你还没有装过,请参考第四课。 要安装软件,你可以通过SSH连接到树莓派上然后通过下面的命令打开一个编辑器: nano stepper.py 然后粘贴下面的代码,使用CTRL+X然后按一下Y保存。 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) enable_pin = 18 coil_A_1_pin = 4… Continue reading Adafruit的树莓派教程第十课:步进电机

PHP的图片处理功能

在一个小项目里需要用到php的图像处理功能,才发现php通过imagefilter能够实现强大的功能。 imagefilter (PHP 5) imagefilter — Applies a filter to an image Description bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3[, int $arg4 ]]]] ) imagefilter() applies the given filter filtertype on the image. Parameters image An image resource, returned by one of the image creation functions, such as imagecreatetruecolor(). filtertype filtertype can be one of the following: IMG_FILTER_NEGATE: Reverses all colors of the image. IMG_FILTER_GRAYSCALE: Converts the image into grayscale. IMG_FILTER_BRIGHTNESS: Changes… Continue reading PHP的图片处理功能

Adafruit的树莓派教程第九课:控制一个直流电机

概览 这节课我们来学习如何使用Python和L293D芯片控制直流电机的速度和转向。 在第八课里,我们学习了如何使用小派产生脉冲来控制伺服马达的位置。这节课我们将使用脉冲和L293D马达控制芯片来控制一个直流电机的转速并交替变换它的旋转方向。 你需要的: 要完成这个项目,你需要下面一些东西。 1个树莓派 1个树莓派扩展板 一把公对公跳线 1个小块面包板 1个6V直流电机 L293D马达控制芯片 Adafruit Occidentalis 0.2及之后的操作系统 4节5号或7号电池盒及电池 PWM PWM(Pulse Width Modulation,脉冲宽度调制)是一项用于控制电力的技术。在这里我们使用它来控制供给直流电机的电量及它的转速。 下面的图表展示了从树莓派的PWM针脚产生的脉冲信号。 PWM针每1/500秒产生一次脉冲。脉冲的长度控制了直流电机所能获得的电量。没有脉冲电机就不会转动,一次短脉冲会使电机以很慢的速度转动。如果脉冲持续总长度一半的时间,那么它就会获得总电量一半的电量。 PWM核心模块 Adafruit与Sean Cross一起编写了一个核心模块被包含在了Occidentalis发行版里。更多的细节请参照这篇教程。如果你想在Raspbian或者其他发行版上使用这个模块,参考这里来把模块安装到你的环境里。 你已经在第八课里使用过了PWM与伺服马达核心模块,用于控制伺服马达。这一次,你将使用相同的模块来控制电机的转速。 这个模块使用文件类型的接口,你可以通过读写这些特定的文件来控制针脚输出进一步控制伺服电机的行为。这使得使用Python或者其他语言来编写该接口十分容易。 文件 – 描述 active – 1为激活,0为未激活。你可以通过读取它来查找输出针是否被激活,或者通过改写控制它的激活或未激活。 delayed – 如果设置为1,你对其他文件的改动不会起作用直到你使用上面的active来激活输出针。 mode – 改写文件来设置针脚是pwm,servo(伺服马达)还是audio(音频)。显然这里我们要设置为servo。注意这些针也会被小派的音频输出使用,所以你不能在使用声音的同时控制一个伺服马达。 frequency – 每秒产生的脉冲次数。 duty – 这个值应该介于0到100之间,代表了脉冲长度的百分比。数值越大,转速越快。 L293D 这是一个非常有用的芯片。它实际上可以独立控制两个电机。这节课我们将只使用芯片的一半针脚,在芯片右手边的大多数针脚用于控制第二个电机,但在树莓派上只有一个PWM输出针脚。 L293D有两个+V的针脚(8和16)。+Vmotor(8)针为电机提供电力,+V(16)针作为芯片的逻辑针脚。我们将把第16针接到树莓派上然后把第8针接到电池盒上。 硬件部分 为什么我们要在这个项目里使用L293D芯片?有两个原因。第一个原因是小派似乎还没有强大到能够直接驱动一个电机并且这样做可能会损坏树莓派。 第二个原因是,在这篇教程里,我们即要控制电机的转速,也要控制电机的转向。要达到这一点,需要反转电机的电流方向,而L239D恰好就是被设计用来达到这一目的的,我们可以通过两个电机控制针脚实现。 一小块面包板的大小很适合这篇教程。 软件部分 因为我们需要使用控制针脚(连接GPIO的第4针和第17针),所以我们也需要用到GPIO库。更多细节请参考第四课。 有很多种方法能把下面的展示的代码弄到你的树莓派里。最简单的方法可能是使用SSH连接到小派上(参见第六课)然后使用下面的命令打开一个编辑器: sudo… Continue reading Adafruit的树莓派教程第九课:控制一个直流电机

mysql 创建 function 错误 1064解决方案

在mysql5.1创建function时,总是报下面的错误 #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 4 检查很多遍都没发现语法错误,苦恼很久。 后上网查到,是因为mysql分隔符的问题,默认是以;作为分隔符,而function或者procedure里面很多时候都要用分号,所以造成这个问题。 解决方法是用DELIMITER //预先定义分隔符,这样就解决了这个问题。存档以防将来之需。 如下是创建随机字符串的function DELIMITER // CREATE FUNCTION `rand_string`(n INT) RETURNS varchar(255) CHARSET utf8 BEGIN DECLARE chars_str varchar(100) DEFAULT ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789’; DECLARE return_str… Continue reading mysql 创建 function 错误 1064解决方案