설명 없음

itg3200.js 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*jslint node:true, vars:true, bitwise:true, unparam:true */
  2. /*jshint unused:true */
  3. /*global */
  4. /*
  5. * Author: Sarah Knepper <sarah.knepper@intel.com>
  6. * Copyright (c) 2015 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. // Load gyroscope module
  28. var itg3200 = require('jsupm_itg3200');
  29. // load this on i2c
  30. var gyro = new itg3200.Itg3200(0);
  31. var rot;
  32. var ang;
  33. // Note: Sensor not supported on Intel Edison with Arduino breakout
  34. setInterval(function()
  35. {
  36. gyro.update(); // Update the data
  37. rot = gyro.getRawValues(); // Read raw sensor data
  38. ang = gyro.getRotation(); // Read rotational speed (deg/sec)
  39. var rots = (rot.getitem(0) + " ");
  40. rots += (rot.getitem(1) + " ");
  41. rots += rot.getitem(2);
  42. var temp = round2Digits(gyro.getTemperature());
  43. var raw = round2Digits(gyro.getRawTemp());
  44. console.log("Raw: " + rots);
  45. console.log("AngX: " + round2Digits(ang.getitem(0)));
  46. console.log("AngY: " + round2Digits(ang.getitem(1)));
  47. console.log("AngZ: " + round2Digits(ang.getitem(2)));
  48. console.log("Temp: " + temp + " Raw: " + raw);
  49. }, 1000);
  50. function round2Digits(num)
  51. {
  52. return Math.round((num + 0.00001) * 100) / 100;
  53. }
  54. // Print message when exiting
  55. process.on('SIGINT', function()
  56. {
  57. console.log("Exiting...");
  58. process.exit(0);
  59. });