【NanoPi2】使用python第三方库控制GPIO笔记

  • 沧海笑1122
  • LV2工程师
  • |      2016-01-10 21:42:46
  • 浏览量 1919
  • 回复:3
【试验项目】使用python第三方库控制GPIO笔记
【时间】:2016-01-10
【器材】nanopi2开发板,LED(含限流电阻),杜邦线若干
【软件环境】nanopi2 debian (1231版),开发板安装xrdp,PC端VNC viewer
【python库】gpio 0.1.2,来自https://pypi.python.org/pypi/gpio/0.1.2
            Home Page: https://github.com/cloudformdesign/gpio
            基本原理:gpio 通过标准的linux sysfs 接口控制GPIO。
                      得到接口(CPU)的gpio编码,就可以直接控制。
            详见:http://bbs.elecfans.com/jishu_527063_1_1.html          
            ## Supported Features
           - get pin values with `read(pin)` or `input(pin)`
           - set pin values with `set(pin, value)` or `output(pin)`
           - get the pin mode with `mode(pin)`
           - set the pin mode with `setup(pin, mode)`
           - `mode` can currently equal `sysfs.IN` or `sysfs.OUT`  
【试验步骤】
       因为以前玩过一段时间的树莓,这次得到nanopi2这样高配置的开发板
 首先想到的,还是使用python以及GUI来玩gpio,pyserial,甚至json。
       但是目前看,由于npi2刚刚推出,还没有针对npi2写的python专用库。
这样对我们这样软硬件水平都很“平平”,只有一腔爱好的玩家来说,入门不易。
好在python有着丰富的第三方库,所以在https://pypi.python.org/pypi找到了
这个使用标准的linux sysfs 接口控制GPIO的库。确切说,只要明确GPIO的寄存器
就可以控制gpio,其他工作库替你完成了细节。下面我们就开始用python玩玩gpio吧。
       第一步:安装python环境(npi2内置2.7),安装gpio 0.1.2库。
               两种方法:一是下载到开发板上,运行#python setup.py install
                         二是pip安装,参见:https://wiki.python.org/moin/CheeseShopTutorial
       第二步:(1)计算gpio编码,本试验我们使用P12,查阅友善wiki可知,
               P12使用GPIOB26,对应的控制编码就是32+26=58
               计算方法详见https://bbs.icxbk.com/group-topic-id-64243.html
                (2)/sys/class/gpio/export
                     通知系统需要导出控制的GPIO引脚编号,本次导出58pin
                      echo  58 > /sys/class/gpio/export
             命令成功后生成/sys/class/gpio/gpio58目录,你可以查看并且确认。
       第三步:编写一个实例,demo1.py,控制P12上面的LED
               led的接法:串接限流电阻(220欧姆),接GND与Pin12
               demo1.py代码
 
#-*- coding: utf-8 -*-  

#python2.7x  

#date:2016-01-10

#gpio.py  



import gpio 

import time



gpio.setup(58,\'out\')

gpio.set(58, 1)

time.sleep(3)

gpio.set(58, 0)

time.sleep(3)

gpio.set(58, 1)

time.sleep(3)

gpio.set(58, 0)



print "Good bye!"


代码很简单,就不注释了。闪亮三秒

如何使用gpio 0.1.2的API,打开gpio.py,读一下函数即可。

     第四步:在python环境下运行demo1.py,观察led的闪亮。

            接线来,控制小车、电磁阀都是相通的。
            利用python的GUI工具库,如wxpython,可以编写GUI控制界面。。。。

 【其他】刚开始学习GPIO控制,这个笔记实际上是综合了论坛里网友的经验,敬请指教。

          感谢ickey.cn社区,http://bbs.elecfans.com/社区

          本笔记参考了很多网友的帖子,如疏漏未标明引用的,表示歉意。一并致谢。

         整理了一张图表,就是gpio的对照表。

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:3
擦肩的阳光 2016-01-10
专程前来看望~
0   回复
举报
发布
沧海笑1122 2016-01-10
2.7x
0   回复
举报
发布
Cigoy 2016-01-10

python什么版本?

0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子