Переглянути джерело

hmc5883l: JavaScript example file for hmc5883l 3-axis compass

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 роки тому
джерело
коміт
fb8dd8ad85
1 змінених файлів з 61 додано та 0 видалено
  1. 61
    0
      examples/javascript/hmc5883l.js

+ 61
- 0
examples/javascript/hmc5883l.js Переглянути файл

@@ -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
+// Load Compass module
29
+var hmc5883l = require('jsupm_hmc5883l');
30
+// load this on i2c
31
+var myCompass = new hmc5883l.Hmc5883l(0);
32
+// Set your declination from true north in radians
33
+myCompass.set_declination(0.2749);
34
+
35
+var coordsObj;
36
+// Print out the coordinates, heading, and direction every second
37
+setInterval(function()
38
+{
39
+	myCompass.update(); // Update the coordinates
40
+	coordsObj = myCompass.coordinates();
41
+	var coords = (coordsObj.getitem(0) + " ");
42
+	coords += (coordsObj.getitem(1) + " ");
43
+	coords += coordsObj.getitem(2);
44
+	var heading = round2Digits(myCompass.heading());
45
+	var direction = round2Digits(myCompass.direction());
46
+	var compassResults = "coords: " + coords + 
47
+		"    heading: " + heading + " direction " + direction;
48
+	console.log(compassResults);
49
+}, 1000);
50
+
51
+function round2Digits(num)
52
+{
53
+	return Math.round((num  + 0.00001) * 100) / 100;
54
+}
55
+
56
+// Print message when exiting
57
+process.on('SIGINT', function()
58
+{
59
+	console.log("Exiting...");
60
+	process.exit(0);
61
+});