完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗯。一个典型的GPIO教程。希望对大家有用。
(1) 安装环境 a.下载控制GPIO的python库:http://pypi.python.org/pypi/RPi.GPIO/0.3.1a#downloads b. 在Pi上安装python-dev: sudo apt-get install python-dev c. 解压并安装python库 tar xv*** RPi.GPIO-0.x.xx.tar.gz cd RPi.GPIO-0.x.xx sudo python setup.py install (2)测试程序 说明:led灯闪烁(分别接pi-01 和pi-11,11作为输出) import RPi.GPIO as GPIO import time def blink(times, delay): GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.OUT) while times>0: if 0==times%2: GPIO.output(11, GPIO.HIGH) #or output(11, GPIO.True) else: GPIO.output(11, GPIO.LOW) time.sleep(delay) times-=1 return if __name__ == '__main__': blink(20, 1) (3)测试程序2——远程点亮/关闭相应的led灯 说明:和上个例子不同的就是a)用到了远程控制,即socket通信;b)操作多个led; 究其本质是一样。当然本人之所以要远程控制,只不过是为了以后远程管理更多的外设做个铺垫。 文件1:remoIO.py import socket import time g_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) def init(ip, port): g_sock.connect((ip, port)) time.sleep(2) return def send(data): g_sock.send(data) return def read(): data = g_sock.recv(1024) return data def end(): g_sock.close() return def _test(ip, port): sock = init(ip, port) send("I am Raspberry Pirn!"); print read(1024); sock.close() return if __name__=='__main__': #_test('192.168.2.1', 9999) import sys if len(sys.argv) == 3: _test(sys.argv[1], int(sys.argv[2])) else: print 'usage:'+sys.argv[0]+' ip portrn' 文件2:blink.py import RPi.GPIO as GPIO import time import remoIO ip = '192.168.2.12' port = 8888 def blink(times, delay): R=11 Y=12 W=15 GPIO.setmode(GPIO.BOARD) GPIO.setup(R, GPIO.OUT) GPIO.setup(Y, GPIO.OUT) GPIO.setup(W, GPIO.OUT) remoIO.init(ip, port) remoIO.send('Now, you can input 1,2 or 3 to turnon the right led:') #in order to initial a communication protocol, add code here #.... command = '' while 1: command = remoIO.read() if command=='1n': GPIO.output(R, GPIO.LOW) time.sleep(2) GPIO.output(R, GPIO.HIGH) remoIO.send('ok for 1t') elif command=='2n': GPIO.output(Y, GPIO.LOW) time.sleep(2) GPIO.output(Y, GPIO.HIGH) remoIO.send('ok for 2t') elif command=='3n': GPIO.output(W, GPIO.LOW) time.sleep(2) GPIO.output(W, GPIO.HIGH) remoIO.send('ok or 3t') elif command=='quitn': remoIO.send('end remote control!rn') remoIO.end() break else: remoIO.send('eroor input!rn') while times>0: if 0==times%2: GPIO.output(R, GPIO.HIGH) #or output(R, GPIO.True) else: GPIO.output(R, GPIO.LOW) time.sleep(delay) times-=1 return if __name__ == '__main__': blink(10, 0.5) 原文:http://stayrunning.blog.163.com/blog/static/19675800220133240212921/ |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
5833 浏览 0 评论
14137 浏览 9 评论
7768 浏览 0 评论
基于Amazon Echo 和 Raspberry Pi 的自动窗帘控制
7123 浏览 1 评论
【下载】《Linux+树莓派玩转智能家居》——亲手进行树莓派应用制作
159400 浏览 374 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-9 13:17 , Processed in 0.442898 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号