查看: 4076|回复: 1

基于node.js的网页控制LED设计

[复制链接]
  • TA的每日心情
    开心
    2016-12-26 21:04
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2014-8-20 16:36:36 | 显示全部楼层 |阅读模式
    分享到:
    A基于node.js的LED流水灯设计
    1、前提:
        已建立PC与beagblebone之间的网络连接
    2、效果描述:
        采用beaglebone的node.js开发环境,即在浏览器输入http://IP_ADDR_OF_BB:3000,参照自带的blinkled程序,做一个将beagblebone的4个USR-LED流水灯效果的程序
    3、代码
        如下,注释已经很明显
    4、效果
        实现了4个LED逐个依次点亮的效果。具体效果做过单片机的LED流水灯的都懂得。
    1. // 本程序从采用node.js实现beagblebone的四个LED流水灯效果
    2.
    3. // get the beaglebone variables and functions
    4. var bb = require('./bonescript');
    5.
    6. // the delay duration between two LEDs, in microseconds
    7. var delayMs = 200;
    8. // the whole number of LEDS
    9. var NUM_LEDS = 4;
    10. // 4 LEDs
    11. var ledPin0 = bone.USR0;
    12. var ledPin1 = bone.USR1;
    13. var ledPin2 = bone.USR2;
    14. var ledPin3 = bone.USR3;
    15.
    16. // 4 LED status
    17. var led0 = LOW;
    18. var led1 = LOW;
    19. var led2 = LOW;
    20. var led3 = LOW;
    21.
    22. // the counter used for couting for the current lighting LED
    23. var counter = 0;
    24.
    25. // setup function set the pin mode of the 4 LEDS
    26. setup = function() {
    27.     pinMode(ledPin0, OUTPUT);
    28.     pinMode(ledPin1, OUTPUT);
    29.     pinMode(ledPin2, OUTPUT);
    30.     pinMode(ledPin3, OUTPUT);
    31. };
    32.
    33. /* the loop function increase the counter, and divided by 4
    34. * using the remain to judge the number of the LED to be lighted
    35. */
    36. loop = function() {
    37.     // Firstly unlighting all LEDS
    38.     led0 = LOW;
    39.     led1 = LOW;
    40.     led2 = LOW;
    41.     led3 = LOW;
    42.
    43.     // increase the counter and divided by 4, to
    44.     counter ++;
    45.     var remain = counter % NUM_LEDS;
    46.
    47.     // using the remain to judge the LED to be lighted, set the respond led status to be HIGH
    48.     if(0 == remain) {
    49.         led0 = HIGH;
    50.     }
    51.     else if(1 == remain) {
    52.         led1 = HIGH;
    53.     }
    54.     else if(2 == remain) {
    55.         led2 = HIGH;
    56.     }
    57.     else if(3 == remain) {
    58.         led3 = HIGH;
    59.     }
    60.     // output the status to the LED
    61.     digitalWrite(ledPin0, led0);
    62.     digitalWrite(ledPin1, led1);
    63.     digitalWrite(ledPin2, led2);
    64.     digitalWrite(ledPin3, led3);
    65.     // delay for the required duration
    66.     delay(delayMs);
    67. };
    68.
    69. bb.run();
    复制代码
    B 基于node.js的网页控制LED设计
    1、前提:
        已建立PC与beagblebone之间的网络连接
    2、效果描述:
        采用beaglebone的node.js开发环境,即在浏览器输入http://IP_ADDR_OF_BB:3000,参照自带的blinkled程序,做一个将beagblebone的USR0-LED通过网页刷新来控制亮和灭,
    3、代码
       如下,注释已经很明显
    4、效果
        即在另一个浏览器窗口输入http://IP_ADDR_OF_BB:8000,刷新一次,则LED-USR0则改变一次亮灭。
    5、亮点和进一步创新点
        在网页上实现LED的控制。
        进一步可采取node.js的一些功能比如(nowjs的server与client的通讯功能,在网页上动态控制LED、显示模拟输入或数字输入量。
    file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ksohtml\wps554.tmp.png
    1.
    2. // 打开浏览器;输入http://IP_Addr_if_Beaglebone:8000,刷新,则LED-USR0相应亮灭
    3. //=======================================
    4.
    5. // 采用下述代码取代引用到bonescript的一些常量和函数
    6. var bb = require('./bonescript');
    7.
    8. // 选取LED0作为显示
    9. var ledPin = bone.USR0;
    10.
    11. //用于LED亮灭的循环次数技术
    12. var counter = 0;
    13.
    14. // 设置LED的引脚模式为输出
    15. setup = function() {
    16.     pinMode(ledPin, OUTPUT);
    17.     var http = require('http');
    18.     
    19.     // 创建http服务器,每次有新的http请求(刷新浏览器),则counter1,除以2的余数作为LED的状态
    20.     var s = http.createServer(
    21.         function(req, res) {
    22.             counter ++;
    23.             if(0 == counter%2) {
    24.                 digitalWrite(ledPin, HIGH);
    25.             }
    26.             else {
    27.                 digitalWrite(ledPin, LOW);
    28.             }
    29.
    30.                     res.writeHead(200, { 'Content-type' : 'text/plain'} );
    31.                     res.write("Hello, beaglebone!");
    32.             res.write("\ncounter = " + counter);
    33.                     res.end("\n================\n");
    34.                 }
    35.     );
    36.     s.listen(8000);
    37. };
    38.
    39. // 循环函数无执行
    40. loop = function() {
    41.      // Your function to run in a loop
    42. };
    43.
    44. // 启动bb
    45. bb.run();
    复制代码


    beagblebone之node.js的LED流水灯设计、网页控制LED灯(初步).pdf (178.75 KB, 下载次数: 23)
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-9-14 01:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-9-14 01:37:52 | 显示全部楼层
    很牛的样子!采用beaglebone的node.js开发环境,即在浏览器输入http://IP_ADDR_OF_BB:3000,参照自带的blinkled程序,做一个将beagblebone的USR0-LED通过网页刷新来控制亮和灭。仪器校准
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-12-22 20:21 , Processed in 0.146798 second(s), 18 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.