hihi 发表于 2013-4-17 21:17:28

万博网页版登陆页派作品:红外遥控+2维度步进电机+超声波测距+语音输出

万博网页版登陆页派作品:红外遥控+2维度步进电机+超声波测距+语音输出视频如下:http://v.youku.com/v_show/id_XNTQ0MDg0MTMy.html一、制作方案:红外线控制使用1个GPIO,使用lirc软件硬件为:http://item.taobao.com/item.htm? ... f8IP&id=24371888720一个步进器使用4个GPIO× 2硬件为:http://item.taobao.com/item.htm? ... 58jY&id=24348184361 超声波测距 使用2个GPIO硬件为:http://item.taobao.com/item.htm? ... MzAO&id=18109565806 语音输出使用espeak软件面包板电源一个:http://item.taobao.com/item.htm?spm=a1z10.1.w4004-1610213199.2.YOvBwR&id=24854036477 面包板一个:http://item.taobao.com/item.htm? ... DJ1P&id=17800301898面包线若干:(建议公对公头一把,公对母头一把,母对母头一把,方便安装):http://item.taobao.com/item.htm? ... Vqt&id=19638831369&声明:本人iamhihi@gmail.com和上述淘宝店无任何关联,纯粹是因为我在该店买了东西而已。硬件连接:本人假设你懂基本的电路图,上述淘宝店中有相关资料可参考,本文不详细描述。二、红外线控制:http://www.freemindworld.com/blog/2013/130316_raspberry_pi_with_remote_control.shtml1. 需要的硬件:一个红外接收管,型号可以是TSOP1238/TSOP2238等可以3.3V电压下工作的38KHz红外接收管。一个红外遥控器,可以是电视机、机顶盒等的遥控器。但别拿空调遥控器这种自带状态逻辑的遥控器来折磨自己。2. 连接红外接收管:不同的红外接收管连线可能不太一样,需要参考相应的Datasheet。以TSOP 1238为例的话,当红外线接收窗朝向自己时,从左到右三个引脚分别为:1. GND,接地,RPi PIN 6
2. VS,电源,接3.3V电源,RPi PIN 17
3. OUT,数据输出,接GPIO 24,RPi PIN 18由于Raspberry Pi的GPIO只能接收3.3V的输入,所以红外接收管的电源务必要接3.3V的供电。我自己用的红外接收管的型号是TSOP 1838(引脚顺序是OUT, GND, VS),按lirc_rpi项目页面的说法,这个管子应该在5V供电下才能正常工作,不过我还是只接了3.3V,发现也能用。3. 系统软件安装和配置:lirc_rpi项目为Linux内核提供了支持GPIO口的红外接收管的驱动,在最新的Raspbian系统中应该已经包含。如果你的系统中没有这个模块,也许需要自己重新编译内核。具体可以参考lirc_rpi项目主页。然后需要安装用户态的服务进程:sudo apt-get install lirc加载lirc_rpi内核模块:sudo modprobe lirc_rpi gpio_in_pin=24 gpio_out_pin=23注意,在加载lirc_rpi时必须指定输入端口是GPIO 24,跟实际接线一致。输出端口设为GPIO 23,是因为我不需要这个输出端口,而目前我们GPIO 23口是空着的。4. 测试红外接收是否正常:sudo mode2 -d /dev/lirc0如果按遥控器上的键,屏幕上能显示出一串pluse和space值的话,多半就是正常了。5. 配置下/etc/lirc/hardware.conf:...
LIRCD_ARGS=""
...
DRIVER="default"
...
DEVICE="/dev/lirc0"6. 让lirc学习一下你遥控器上的按键在我的例子中,请至少学习5个按键,分别做为上(UP)、下(DOWN)、左(LEFT)、右(RIGHT)、选择(SELECT):sudo /etc/init.d/lirc stop
#学习按键
irrecord -n -d /dev/lirc0 ~/lircd.conf
#把学习后生成的配置文件作为lircd的配置文件
sudo mv ~/lircd.conf /etc/lirc/lircd.conf
sudo /etc/init.d/lirc start配置完后,可以用irw命令测试遥控器是否工作正常。执行完irw命令,按遥控器,确认能正确输出所按按钮的名称。7. 配置~/.lircrc.文件,把按键与需要触发的行为进行关联:在~/.lircrc文件中增加如下内容begin    prog = irexec    button = RIGHT    config = sudo python /home/pi/right.pyendbegin    prog = irexec    button = LEFT    config = sudo python /home/pi/left.pyendbegin    prog = irexec    button = SELECT    config = sudo python /home/pi/ultrasonic.py end begin    prog = irexec    button = UP    config = sudo python /home/pi/up.py end begin    prog = irexec    button = DOWN    config = sudo python /home/pi/down.pyend见附件的.lircrc8. 重启lircsudo /etc/init.d/lirc restart9. 执行irexec命令,确认python脚本正确运行。建议先在python脚本中直接echo 显示,确认能正确执行到脚本三、步进电机控制:见下面帖子:http://www.shumeipai.net/thread-540-1-4.html比较简单,请看附件中的up.py down.py left.py right.py注意修改里面的GPIO端口号四、超声波测距:见下面帖子:http://www.raspberrypi-spy.co.uk/2012/12/ultrasonic-distance-measurement-using-python-part-1/http://www.raspberrypi-spy.co.uk/2013/01/ultrasonic-distance-measurement-using-python-part-2/?1366202216 请看附件中的ultrasonic.py注意修改里面的GPIO端口号五、语音输出:sudo apt-get install espeakTest Espeak with: English female voice, emphasis on capitals (-k), speaking slowly (-s) using direct text:- espeak -ven+f3 -k5 -s150 "I've just picked up a fault in the AE35 unit"我的例子中直接在超声波测距中调用espeak输出语音。见ultrasonic.pytext = "espeak -ven+f3 -k5 -s150 " + "\"Distance %.1f\"" % distanceprint textos.system(text)

树老大 发表于 2013-4-17 21:32:02

强帖。。。推荐。

树老大 发表于 2013-4-17 21:32:20

强帖。。。推荐。

树老大 发表于 2013-4-17 21:32:29

强帖。。。推荐。

heiketiguo 发表于 2013-4-19 09:40:47

nice!!!

Dimpagger 发表于 2013-4-20 00:52:23

楼主太牛逼了

Dimpagger 发表于 2013-4-20 00:58:10

楼主太强悍了

nanatong 发表于 2013-5-6 12:36:23

mark,超声波测距。

byck2013 发表于 2013-5-9 16:30:07

这么厉害,我还不懂咋用哦

linux0ne 发表于 2013-5-9 20:32:56

这有什么具体的生活作用吗?   比如应用方向?
页: [1] 2
查看完整版本: 万博网页版登陆页派作品:红外遥控+2维度步进电机+超声波测距+语音输出