发 帖  
原厂入驻New

[经验] 【Intel Edison试用体验】[Demo] PWM-实现蜂鸣器Bepp奏乐 [XDK-node.js](小k - NO.15)

2016-8-10 23:49:47  2207 蜂鸣器 Intel
分享
1
送门:【Intel Edison试用体验】[初见] 开箱 and 测试 (小k - NO.01)
       传送门:【Intel Edison试用体验】[硬件] 底层硬件探索 and 启动过程分析(小k - NO.02)
       传送门:【Intel Edison试用体验】[硬件] Ardunio Kit PCB 原理图 探索(小k - NO.03)
       传送门:【Intel Edison试用体验】[开发] 探索四种方式刷新固件(小k - NO.04)
       传送门:【Intel Edison试用体验】[开发] Yocto-Linux配置,连接Serial,连接Wifi,更新函数库(小k - NO.05)  

       传送门:【Intel Edison试用体验】[IDE] 之一,XDK and Node.JS,LEDBlink(小k - NO.06)
       传送门:【Intel Edison试用体验】[IDE] 之二,Eclipse(ISS) and C/C++/JAVA,LEDBlink(小k - NO.07)
       传送门:【Intel Edison试用体验】[IDE] 之三,Arcduino and arduino-C,LEDBlink(小k - NO.08)
       传送门:【Intel Edison试用体验】[IDE] 之四,VS2015 and vMicro,LEDBlink(小k - NO.09)
       传送门:【Intel Edison试用体验】[IDE] 之五,Vim(Linux) and Python,LEDBlink(小k - NO.10)
           
       传送门:【Intel Edison试用体验】[Demo] 数字输入输出,按键消抖,单击双击长按 [XDK-node.js](小k - NO.11)
       传送门:【Intel Edison试用体验】[Demo] I2C rgb-LCD显示,触摸控制显示内容和颜色 [XDK-node.js](小k - NO.12)       
       传送门:【Intel Edison试用体验】[Demo] PWM-舵机 基于mraa设计高级函数库 [XDK-node.js](小k - NO.13)
       传送门:【Intel Edison试用体验】[Demo] PWM-实现LED呼吸灯,原创二次函数方法 [XDK-node.js](小k - NO.14)
     —————————————————————————————————————————————

       ·  主要内容
          ·   在XDK IDE 上采用node.js语言,实现蜂鸣器产生不同频率的声音
              使用 Grove 的传感器:1、Beep  2、Butoon按键  3、Touch触摸键
              功能实现:  调用upm的库,实现蜂鸣器产生不同频率的声音。

              工程代码,楼主自主原创,由于对node.js刚接触,不熟悉,有什么优化的地方,可以一起学习探讨。
              工程代码,楼主自主原创,如需转载,请注明出处,谢谢。
                                
       ·  准备工作
          ·   Edsion安装好USB驱动,更新到最新的固件,升级upm和mraa包
          ·   安装好XDK,Edion可以连接网络

       —————————————————————————————————————————————

      Ⅰ、 硬件连接
              
       如下图所示:(D6 连接蜂鸣器)


      1501.jpg

      Ⅱ、 代码分享
              
       pwmBeep.js

  1. /*
  2. * Authon   : Gavin
  3. * Email    : gui2050@126.com
  4. * Date     : August 10 2016
  5. * Function : pwmBeep.js
  6. * TestBoard: Edison.
  7. */
  8. //PWM Ediosn 在工厂默认状态下,PWM 针脚为 D3、D5 和 D6

  9. //使用upm的库
  10. var upmBuzzer = require("jsupm_buzzer");// Initialize on GPIO 5

  11. var myBuzzer = new upmBuzzer.Buzzer(6);
  12. var chords = [];
  13. chords.push(upmBuzzer.DO);
  14. chords.push(upmBuzzer.RE);
  15. chords.push(upmBuzzer.MI);
  16. chords.push(upmBuzzer.FA);
  17. chords.push(upmBuzzer.SOL);
  18. chords.push(upmBuzzer.LA);
  19. chords.push(upmBuzzer.SI);
  20. chords.push(upmBuzzer.DO);
  21. chords.push(upmBuzzer.SI);
  22. var chordIndex = 0;

  23. exports.BeepSing = function()
  24. {
  25.     // Print sensor name
  26.     console.log(myBuzzer.name());

  27.     setInterval(function () {
  28.    
  29.         IF (chords.length != 0)
  30.         {
  31.             //Play sound for one second
  32.             console.log( myBuzzer.playSound(chords[chordIndex], 1000000) );
  33.             chordIndex++;
  34.             //Reset the sound to start from the beginning.
  35.             if (chordIndex > chords.length - 1)
  36.                 chordIndex = 0;
  37.         }
  38.    
  39.     },100);
  40.    
  41. }

  42. // Print message when exiting
  43. process.on('SIGINT', function()
  44. {
  45.     console.log("Exiting...");
  46.     process.exit(0);
  47. });
复制代码

     ———————————————————————————————————————————————
————
      谢谢各位浏览,有什么不足之处,或者疑问和建议,欢迎一起学习探讨。

      下期预告
            
              多种Demo,包括IO输入输出,中的,SPI,I2C,PWM,AD,UART通信,wifi通信,Bluetooth通信等。






相关经验

电子工程师2014 2016-9-3 22:01:19
这个没玩过
回复

举报

CHNlyt 2016-9-25 12:39:28
哟,厉害了我的哥。
回复

举报

只有小组成员才能发言,加入小组>>

967个成员聚集在这个小组

加入小组

创建小组步骤

关闭

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

快速回复 返回顶部 返回列表