From f7fb1c931bd2dafeea183810e3a91bfefe8b38bd Mon Sep 17 00:00:00 2001 From: Parker Malachowsky <95306112+pmalacho-mit@users.noreply.github.com> Date: Wed, 14 Jan 2026 10:50:50 -0800 Subject: [PATCH] Update LineArrayFollowingCopy.ts --- .../src/doodlebot/LineArrayFollowingCopy.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/extensions/src/doodlebot/LineArrayFollowingCopy.ts b/extensions/src/doodlebot/LineArrayFollowingCopy.ts index ecb9c6586..862c1558b 100644 --- a/extensions/src/doodlebot/LineArrayFollowingCopy.ts +++ b/extensions/src/doodlebot/LineArrayFollowingCopy.ts @@ -51,6 +51,32 @@ export default class LineArrayFollowing { centerTrue; lastSign = 0; + sensorReadingsStack = []; + sensorReadingStackSize = 5; + averageSensorReading = { left: 0, center: 0, right: 0 }; + + async sensorLoop () { + const sensorValues = await this.getSensorReading("line"); + this.sensorReadingsStack.push(sensorValues); + if (this.sensorReadingsStack.length > this.sensorReadingStackSize) + this.sensorReadingsStack.pop() + + const avg = readings.reduce( + (acc, r) => ({ + left: acc.left + r.left, + center: acc.center + r.center, + right: acc.right + r.right, + }), + { left: 0, center: 0, right: 0 } + ); + + this.averageSensorReading = { + left: avg.left / readings.length, + center: avg.center / readings.length, + right: avg.right / readings.length, + }; + } + // Main loop async loop() { console.log("loop")