本帖最后由 Janson_huang 于 2014-1-28 09:28 编辑
一、环境配置 基本上Ångström上环境都配好了,可能需要额外安装python。 首先使用opkg update指令获取可用更新包列表。 # opkg update 安装python # opkg install python 安装git #opkg install git
二、硬件连接 本实验使用Beaglebone P8 12脚,连接方式为:P8 12脚-限流电阻-LED正极-LED负极-地。
三、命令行控制LED P8 12脚对应为GPIO1_12,计算得出32*1 +12 = 44,这是Linux内对应的GPIO号 首先改变目录 # cd /sys/class/gpio
在此目录下并未看到任何GPIO44的信息,故使用命令 # echo 44 > export
此时出现GPIO44了,进入此目录 # cd gpio44
通用GPIO的设置主要有方向 + 电平,对应direction和value,默认direction和value值如下:
设置方向: # echo out > direction
设置电平: # echo 1 > value 此时LED灯亮 # echo 0 > value 此时LED灯灭 完成上述操作后,需要从用户空间导出 # cd /sys/class/gpio # echo 44 > unexport
上面就是通过命令行设置GPIO电平。
四、通过Shell脚本控制GPIO 首先创建Shell脚本LightOn.sh 和 LightOff.sh # cd ~ # nano lightOn.sh
输入以下内容: #!/bin/bash echo 44 > /sys/class/gpio/export echo out >/sys/class/gpio/gpio44/direction echo 1 > /sys/class/gpio/gpio44/value
输入完成后按ctrl + x,Y保存退出。
同理创建lightOff.sh # nano lightOff.sh
#!/bin/bash echo 0 > /sys/class/gpio/gpio44/value echo 44 > /sys/class/gpio/unexport
完成lightOn.sh和lightOff.sh的创建后,查看文件权限 # ls –l
为文件加上可执行权限 # chmod +x lightOn.sh # chmod +x lightOff.sh
此时已有执行权限,下列执行脚本。 # ./lightOn.sh 此时LED灯亮 # ./lightOff.sh 此时LED灯灭
脚本测试成功后,下面使用linux内置调度器cron来定时调用上述两个脚本,完成灯亮灯灭的操作。 首先,先更新一下系统时间 # mv /etc/localtime /etc/localtime.old # ln –s /usr/share/zoneinfo/Asia/Hong_Kong/etc/localtime # nano /etc/default/ntpdate 加上 NTPSERVERS="pool.ntp.org"
Ctrl + x,Y保存退出 # ntpdate-sync # date 得到当前时间:
使用nano编辑crontab # EDITOR=nano crontab –e
在文件末尾处加上 5 20 * * * /home/root/lightOn.sh 6 20 * * * /home/root/lightOff.sh 表示20:05分调用lightOn.sh,20:06调用lightOff.sh。
五、Python控制GPIO 首先,安装Adafruit Beaglebone IO Python库。 # opkg install python-pip python-setuptools python-smbus 更新较为耗时,耐心等候 # pip install Adafruit_BBIO 完成BB库安装后,测试一下 # python # import Adafruit_BBIO 若无报错则无问题,退出 # quit()
下面通过python实现LED的控制。 # nano blink.py
#!/usr/bin/python import Adafruit_BBIO.GPIO as GPIO import time
GPIO.setup("P8_12", GPIO.OUT) while True: GPIO.output("P8_12", GPIO.HIGH) time.sleep(1) GPIO.output("P8_12", GPIO.LOW) time.sleep(1) 保存退出。 运行脚本: # python blink.py 此时可以发现灯闪烁,按ctrl + c可停止脚本运行。
六、使用Bonescript控制GPIO Bonecript可通过Cloud9 IDE开发,实现在浏览器端对Beaglebone进行控制。登陆http://192.168.1.103:3000
在Demo下有一个blinkled.js,代码如下: var b = require('bonescript');
var ledPin = "P8_13"; var ledPin2 = "USR3";
b.pinMode(ledPin, b.OUTPUT); b.pinMode(ledPin2, b.OUTPUT);
var state = b.LOW; b.digitalWrite(ledPin, state); b.digitalWrite(ledPin2, state);
setInterval(toggle, 1000);
function toggle() { if(state == b.LOW) state = b.HIGH; else state = b.LOW; b.digitalWrite(ledPin, state); b.digitalWrite(ledPin2, state); } 将ledPin改为P8_12 var ledPin = "P8_12"; 完成修改后,点击run运行
可以看见P8_12连接的LED与板载USR3一同闪烁。
|