diff --git a/app.py b/app.py index d976f7d..5e28028 100644 --- a/app.py +++ b/app.py @@ -46,10 +46,16 @@ def image_stream(): return "" +@sio.on("camera") +def camera_message(directions): + walle.set_movement(directions['angle'], directions['force']) + print(f"Moving camera in direction {directions['angle']:f} with velocity {directions['force']}") + + @sio.on("move") -def message(directions): - walle.set_movement(directions['angle'], directions['distance']) - print(f"Moving in direction {directions['angle']:f} with velocity {directions['distance']}") +def move_message(directions): + walle.set_movement(directions['angle'], directions['force']) + print(f"Moving in direction {directions['angle']:f} with velocity {directions['force']}") if __name__ == '__main__': diff --git a/app.zip b/app.zip deleted file mode 100644 index adabafc..0000000 Binary files a/app.zip and /dev/null differ diff --git a/client/src/App.vue b/client/src/App.vue index c719f10..78186f6 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -30,12 +30,12 @@ export default { window.document.body.requestFullscreen(); } }, - moveCamera({ distance, angle }) { - console.log({ action: 'camera', distance, angle }); + moveCamera({ force, angle }) { + console.log({ action: 'camera', force, angle }); }, - moveWalle({ distance, angle }) { + moveWalle({ force, angle }) { this.$socket.emit('move', { - angle, distance, + force, angle, }); // console.log({ action: 'walle', distance, angle }); }, diff --git a/client/src/components/Nipple.vue b/client/src/components/Nipple.vue index 9feae9b..9a65452 100644 --- a/client/src/components/Nipple.vue +++ b/client/src/components/Nipple.vue @@ -28,13 +28,13 @@ export default { }); this.nipple.on('move', (evt, data) => { this.$emit('move', { - distance: data.distance, - angle: data.angle.degree, + force: data.force, + angle: data.angle.radian, }); }); this.nipple.on('end', () => { this.$emit('move', { - distance: 0, + force: 0, angle: 0, }); }); diff --git a/control/walle.py b/control/walle.py index dfd444f..6a9b0ce 100644 --- a/control/walle.py +++ b/control/walle.py @@ -30,31 +30,30 @@ class WallE: self.servo_controller = ServoController() self.servo_controller.setup() - def set_movement(self, angle: float, distance: float): - if distance > 0: - distance = distance/50.0 # map 0 - 50 to 0 - 1 + def set_movement(self, angle: float, force: float): + if force > 1: + force = 1.0 - angle_rad = math.radians(angle) - cos_angle = math.cos(angle_rad) - sin_angle = math.sin(angle_rad) + cos_angle = math.cos(angle) + sin_angle = math.sin(angle) velocity_l = 0 velocity_r = 0 if cos_angle > 0 and sin_angle > 0: if cos_angle > sin_angle: - velocity_r = cos_angle * distance - velocity_l = sin_angle * distance + velocity_r = cos_angle * force + velocity_l = sin_angle * force elif cos_angle < sin_angle: - velocity_r = sin_angle * distance - velocity_l = cos_angle * distance + velocity_r = sin_angle * force + velocity_l = cos_angle * force elif cos_angle < 0 and sin_angle > 0: if cos_angle < sin_angle: - velocity_r = 1 - sin_angle * distance - velocity_l = sin_angle * distance + velocity_r = 1 - sin_angle * force + velocity_l = sin_angle * force elif cos_angle > abs(sin_angle): - velocity_r = sin_angle * distance - velocity_l = cos_angle * distance + velocity_r = sin_angle * force + velocity_l = cos_angle * force else: pass self.motor_a.set(velocity_l)