Browse Source

microphone: JavaScript example for Grove microphone

Signed-off-by: Zion Orent <zorent@ics.com>
Signed-off-by: Jon Trulson <jtrulson@ics.com>
Signed-off-by: Sarah Knepper <sarah.knepper@intel.com>
Zion Orent 10 years ago
parent
commit
2a8bbb0b8c
2 changed files with 67 additions and 0 deletions
  1. 61
    0
      examples/javascript/mic.js
  2. 6
    0
      src/mic/jsupm_mic.i

+ 61
- 0
examples/javascript/mic.js View File

@@ -0,0 +1,61 @@
1
+/*jslint node:true, vars:true, bitwise:true, unparam:true */
2
+/*jshint unused:true */
3
+/*global */
4
+/*
5
+* Author: Zion Orent <zorent@ics.com>
6
+* Copyright (c) 2014 Intel Corporation.
7
+*
8
+* Permission is hereby granted, free of charge, to any person obtaining
9
+* a copy of this software and associated documentation files (the
10
+* "Software"), to deal in the Software without restriction, including
11
+* without limitation the rights to use, copy, modify, merge, publish,
12
+* distribute, sublicense, and/or sell copies of the Software, and to
13
+* permit persons to whom the Software is furnished to do so, subject to
14
+* the following conditions:
15
+*
16
+* The above copyright notice and this permission notice shall be
17
+* included in all copies or substantial portions of the Software.
18
+*
19
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
23
+* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
24
+* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
25
+* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
+*/
27
+
28
+var upmMicrophone = require("jsupm_mic");
29
+
30
+// Attach microphone to analog port A0
31
+var myMic = new upmMicrophone.Microphone(0);
32
+
33
+var threshContext = new upmMicrophone.thresholdContext;
34
+threshContext.averageReading = 0;
35
+threshContext.runningAverage = 0;
36
+threshContext.averagedOver = 2;
37
+
38
+var is_running = false;
39
+// Infinite loop, ends when script is cancelled
40
+// Repeatedly, take a sample every 2 microseconds;
41
+// find the average of 128 samples; and
42
+// print a running graph of the averages
43
+while(1)
44
+{
45
+    var buffer = new upmMicrophone.uint16Array(128);
46
+    var len = myMic.getSampledWindow(2, 128, buffer);
47
+    if (len)
48
+    {
49
+        var thresh = myMic.findThreshold(threshContext, 30, buffer, len);
50
+        myMic.printGraph(threshContext);
51
+        if (thresh)
52
+            console.log("Threshold is " + thresh);
53
+    }
54
+}
55
+
56
+// Print message when exiting
57
+process.on('SIGINT', function()
58
+{
59
+	console.log("Exiting...");
60
+	process.exit(0);
61
+});

+ 6
- 0
src/mic/jsupm_mic.i View File

@@ -2,6 +2,12 @@
2 2
 %include "../upm.i"
3 3
 %include "../carrays_uint16_t.i"
4 4
 
5
+%typemap(in) uint16_t * {
6
+  void *argp = 0 ;
7
+  int res = SWIG_ConvertPtr($input, &argp,SWIGTYPE_p_uint16Array, 0 |  0 );
8
+  $1 = (uint16_t *)(argp);
9
+}
10
+
5 11
 %{
6 12
     #include "mic.h"
7 13
 %}