查看: 15308|回复: 5

Beaglebone点亮LED

[复制链接]
  • TA的每日心情
    慵懒
    2017-7-30 06:34
  • 签到天数: 1257 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2014-1-27 20:58:47 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 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的设置主要有方向 + 电平,对应directionvalue,默认directionvalue值如下:


    设置方向:
    # 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 + xY保存退出。

    同理创建lightOff.sh
    # nano lightOff.sh

    #!/bin/bash
    echo 0 > /sys/class/gpio/gpio44/value
    echo 44 > /sys/class/gpio/unexport

    完成lightOn.shlightOff.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 + xY保存退出
    # ntpdate-sync
    # date
    得到当前时间:

    使用nano编辑crontab
    # EDITOR=nano crontab –e

    在文件末尾处加上
    5 20 * * *  /home/root/lightOn.sh
    6 20 * * *  /home/root/lightOff.sh
    表示20:05分调用lightOn.sh20: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一同闪烁。

    回复

    使用道具 举报

  • TA的每日心情

    2017-6-2 14:52
  • 签到天数: 648 天

    连续签到: 2 天

    [LV.9]以坛为家II

    发表于 2014-1-27 21:42:38 | 显示全部楼层
    谢谢楼主分享,顶了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-11-15 17:06
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-2-13 17:07:53 | 显示全部楼层
    好教程,写的很清楚,值得学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-4-23 11:28
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-4-23 11:33:52 | 显示全部楼层
    谢谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-27 09:25
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-12-27 11:29:33 | 显示全部楼层
    谢谢分享。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-3-28 09:41
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2018-3-22 11:39:05 | 显示全部楼层
    哪些黑背景图片,就是输入命令行窗口的那些,是电脑上截图吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 02:35 , Processed in 0.156240 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.