Sharon’s Status Report for 11/16/24

WORK ACCOMPLISHED:

Bluetooth Integration and Motor Control Setup:
This week, I focused on connecting the Raspberry Pi to the mobile app via Bluetooth to control the skateboard’s motors. One challenge was that many Bluetooth packages for Node.js were outdated and lacked community support. After extensive troubleshooting, I found a specific fork of the Bleno library that supported my requirements, allowing me to set up a functional BLE server on the Pi.

Initially, I attempted to call my teammates’ Python motor control scripts directly from the JavaScript BLE server. However, this approach was not seamless and introduced unnecessary delays. To optimize the workflow, I restructured the system by implementing sockets for motor control. The BLE server now forwards commands from the mobile app to the socket server, which listens on the same port and directly communicates with the motors. This solution reduced network overhead and significantly improved latency, creating a smoother and more responsive control experience.

Frontend Refinements:
I refined the app’s interface to enhance usability and safety. The emergency stop button now requires users to press it twice to prevent accidental activation, providing a crucial safety measure during operation. Additionally, I removed the reverse function from the control UI to simplify interactions, based on user feedback and testing insights.

GPS Accuracy Testing and Improvements:
Continuing work on the ‘Return to Me’ feature, I tested the phone’s GPS capabilities alongside the purchased GPS module. Outdoor testing showed an accuracy of up to 4 meters under favorable conditions. To improve results, I applied aggressive filtering techniques and implemented a Kalman filter to smooth out inconsistent data points. While this approach showed promise, testing was limited due to inclement weather, leaving room for further optimization. These efforts move us closer to reliable location tracking for the return feature.

Dependency Updates and Maintenance:
Maintaining the app involved updating several dependencies to ensure compatibility and stability. This task was critical to resolving issues introduced by outdated packages and improving the overall development environment.

PROGRESS:

The integration of the BLE server with socket-based motor controls marks a significant improvement in responsiveness and system efficiency. The updated frontend design prioritizes user safety while maintaining functionality, and the progress in GPS accuracy ensures we are on track for reliable navigation. These accomplishments strengthen the foundation for real-time control and navigation, aligning with our project timeline and goals.

NEXT WEEK’S DELIVERABLES:

  • Finalize motor control testing to ensure seamless and reliable operation under various conditions and define acceleration/deceleration curve with teammates.
  • Continue testing the Kalman filter and experiment with additional methods to enhance GPS precision, prioritizing outdoor trials when weather permits.
  • Begin setting up WebSocket connections to allow continuous data streaming from the Pi to the app, enabling real-time monitoring and control.
  • Connecting the GPS functionality and return to me feature from teammates.

Leave a Reply

Your email address will not be published. Required fields are marked *