|
|
@@ -21,11 +21,9 @@ class ContrlService {
|
|
|
}
|
|
|
// prio init
|
|
|
RPIO.init({ mapping: "gpio" });
|
|
|
- // 继电器解锁
|
|
|
+ // 关闭继电器
|
|
|
RPIO.open(6, RPIO.OUTPUT, RPIO.LOW);
|
|
|
- //关闭继电器
|
|
|
RPIO.open(13, RPIO.OUTPUT, RPIO.LOW);
|
|
|
- // 开灯
|
|
|
RPIO.open(19, RPIO.OUTPUT, RPIO.LOW);
|
|
|
// init PWM
|
|
|
this.PWM = new Pca9685Driver(this.pwmOption, er => {
|
|
|
@@ -45,7 +43,7 @@ class ContrlService {
|
|
|
// 设置pwm
|
|
|
async changPWM(params) {
|
|
|
const { v0, v1, v2, v3 } = params
|
|
|
- if (typeof (v0) == 'number' || typeof (v2) == 'number') {
|
|
|
+ if (typeof (v0) == 'number' && typeof (v2) == 'number' && typeof (v1) == 'number' && typeof (v3) == 'number') {
|
|
|
// 内八解锁
|
|
|
if (this.enable) {
|
|
|
//中位值
|
|
|
@@ -90,7 +88,9 @@ class ContrlService {
|
|
|
this.unLOCK(v0, v1, v2, v3)
|
|
|
}
|
|
|
} else {
|
|
|
- console.log('参数格式错误,自动略过');
|
|
|
+ // 遥杆数据错误,断开继电器
|
|
|
+ this.stop()
|
|
|
+ process.exit(1)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
@@ -111,7 +111,7 @@ class ContrlService {
|
|
|
this.Snum = 0
|
|
|
}
|
|
|
if (this.Snum == 50) {
|
|
|
- //继电器
|
|
|
+ //继电器开灯
|
|
|
RPIO.open(19, RPIO.OUTPUT, RPIO.HIGH);
|
|
|
//空闲继电器
|
|
|
//RPIO.open(13, RPIO.OUTPUT, RPIO.HIGH);
|
|
|
@@ -127,13 +127,16 @@ class ContrlService {
|
|
|
* @returns
|
|
|
*/
|
|
|
Motor2pwm(v) {
|
|
|
- if (v === 0) {
|
|
|
- return parseInt(10 / (256 / 1000)) + 1000
|
|
|
- } else if (v >= 200) {
|
|
|
- return parseInt(200 / (256 / 1000)) + 1000
|
|
|
- } else {
|
|
|
- return parseInt((v - 5) / (256 / 1000)) + 1000
|
|
|
+ // 使用低速
|
|
|
+ let num = 128
|
|
|
+ if (v < 116) {
|
|
|
+ num = 116;
|
|
|
+ } else if (v >= 120 && v <= 131) {
|
|
|
+ num = 128;
|
|
|
+ } else if (v > 140) {
|
|
|
+ num = 140;
|
|
|
}
|
|
|
+ return parseInt(num / (255 / 2000)) + 500
|
|
|
}
|
|
|
/**
|
|
|
* 舵机换算比例:摇杆范围0-256,PWM范围1000~1500~2000
|
|
|
@@ -143,5 +146,14 @@ class ContrlService {
|
|
|
Servo2pwm(v) {
|
|
|
return parseInt(v / (256 / 1000)) + 1000
|
|
|
}
|
|
|
+
|
|
|
+ // 关闭
|
|
|
+ stop() {
|
|
|
+ if (this.PWM) this.PWM.dispose()
|
|
|
+ RPIO.open(6, RPIO.OUTPUT, RPIO.LOW);
|
|
|
+ RPIO.open(13, RPIO.OUTPUT, RPIO.LOW);
|
|
|
+ RPIO.open(19, RPIO.OUTPUT, RPIO.LOW);
|
|
|
+ this.PWM = null
|
|
|
+ }
|
|
|
}
|
|
|
module.exports = new ContrlService()
|