test.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. const i2cBus = require("i2c-bus")
  2. const { Pca9685Driver } = require("pca9685")
  3. class ContrlService {
  4. constructor() {
  5. // PWM 和 舵机配置
  6. this.pwmOption = {
  7. i2c: i2cBus.openSync(1), // 树莓派1:scl1
  8. address: 0x40, //板子地址
  9. frequency: 50, //频率
  10. debug: false
  11. }
  12. // init PWM
  13. this.PWM = new Pca9685Driver(this.pwmOption, er => {
  14. if (er) {
  15. console.error("Error initializing PCA9685");
  16. }
  17. })
  18. console.log('测试开始');
  19. // test
  20. let a = 128
  21. setInterval(() => {
  22. this.PWM.setPulseLength(3, this.Servo2pwm(a));
  23. console.log(a);
  24. }, 50);
  25. }
  26. /**
  27. * 舵机换算比例:摇杆范围0-256,PWM范围1000~1500~2000
  28. * @param {number} v
  29. * @returns
  30. */
  31. Servo2pwm(v) {
  32. return parseInt(v / (256 / 1000)) + 1000
  33. }
  34. }
  35. new ContrlService()