Project

# Title Team Members TA Documents Sponsor
20 Whiteboard Assistant Robot
Avneet Kaur
Morris Yu
Saj Patel
Junyan Bai
Team Members:
- Saj Patel (spate709)
- Avneet Kaur (avneetk2)
- Morris Yu (morrisy3)

# Problem
Whiteboards are still commonly used in classrooms, labs, and meeting rooms, but adding information to them usually requires someone to stand at the board and write everything by hand. This can interrupt a presentation or discussion because the presenter has to turn away from the group to copy information onto the board. It also creates extra work when content already exists digitally. In addition, a large vertical whiteboard can be difficult to use for people who may not be able to comfortably reach or write across the entire board. Our goal is to create a portable robot that can attach to a whiteboard and automatically write or erase user-provided content, allowing information to be placed on the whiteboard without requiring a person to physically write it.

# Solution
The project focuses on developing a robot that can write on and erase a whiteboard automatically using the information given by the user. The user would be able to provide the content by typing it in or using voice input. The robot would attach to the whiteboard using magnets and move across the surface with the help of wheels and servo motors. By adjusting the direction and speed of the wheels, the robot would be able to travel horizontally, vertically, and diagonally. A spring-loaded marker holder would be able to keep the marker pressed against the whiteboard with consistent pressure while the robot is writing.

# Solution Components

## Subsystem 1 - Movement and attachment to the board
This subsystem will focus on allowing the robot to attach itself securely to the whiteboard and move across the surface of the board vertically, horizontally, and diagonally. Magnets will be used to keep the robot attached to the board while the wheels and the motors will be used to control its movement. Wheel encoders and other feedback systems will be used to track and provide feedback for the distance travelled, allowing it to trace predetermined paths for letters. An IMU will also be added to help track its orientation and detect unexpected rotation or slipping, while the wheel encoders will be used to estimate the robot's displacement.

Parts:
Motor driver (DRV8833PWP)
2 DC motors with encoders (DFRobot FIT0482)
IMU (Bosch BMI270)
Wheels (Pololu 32×7 mm silicone wheel) (smaller wheel = less mm/counts per output shaft revolutions)
Others: magnets

## Subsystem 2 - Writing and erasing
This subsystem will focus on the robot writing the information provided by the user. The user will be able to enter text through a computer or other device, and the program will convert the text into the paths that the robot can follow. A small spring loaded system with a microservo will be used to ensure that the pen can be lifted during gaps, and consistently pressed on the board (via the spring) in case of uneven surfaces. A similar system can/will be used for the eraser. To ensure the wheels do not drive over text or erase unintended sections, we plan to have the robot move from left to right, top to bottom, with the pen at the top of the robot such that the robot is always below and to the right of the most recent character.

Parts: Micro servo for marker
Micro servo (TowerPro SG90)
Others: Marker, Eraser, springs

## Subsystem 3 - Control and text processing
The control subsystem receives text from the user and converts each character into a path that the robot can follow. Characters will be represented using a simplified vector or single lined font. The controller will then convert each line and curve into wheel movement commands, and the encoder and IMU measurements will be used in a feedback loop to correct the robot's motion while it writes when necessary.

Parts:
ESP-32 (ESP32-S3-WROOM-1-N8)
Others: PCB, Wifi/bluetooth connection

# Criterion For Success
The project will be considered successful if the robot can:
- Remain attached to a steel-backed whiteboard without external support, including when it moves.
- Move in two dimensions across the whiteboard, including horizontal, vertical, and diagonal motion, with little to no slipping.
- Be able to receive some sort of text for it to recognize and write out via the pathing of the robot, whether it is through text, audio, or another format wirelessly.
- Be able to write recognizable letters of the alphabet (a-z)
- Raise and lower the marker automatically with a spring loaded system to maintain good contact, and prevent strokes outside the letters.
- Erase the board completely when done.

Assistive Chessboard

Robert Kaufman, Rushi Patel, William Sun

Assistive Chessboard

Featured Project

Problem: It can be difficult for a new player to learn chess, especially if they have no one to play with. They would have to resort to online guides which can be distracting when playing with a real board. If they have no one to play with, they would again have to resort to online games which just don't have the same feel as real boards.

Proposal: We plan to create an assistive chess board. The board will have the following features:

-The board will be able to suggest a move by lighting up the square of the move-to space and square under the piece to move.

-The board will light up valid moves when a piece is picked up and flash the placed square if it is invalid.

-We will include a chess clock for timed play with stop buttons for players to signal the end of their turn.

-The player(s) will be able to select different standard time set-ups and preferences for the help displayed by the board.

Implementation Details: The board lights will be an RGB LED under each square of the board. Each chess piece will have a magnetic base which can be detected by a magnetic field sensor under each square. Each piece will have a different strength magnet inside it to ID which piece is what (ie. 6 different magnet sizes for the 6 different types of pieces). Black and white pieces will be distinguished by the polarity of the magnets. The strength and polarity will be read by the same magnetic field sensor under each square. The lights will have different colors for the different piece that it is representing as well as for different signals (ie. An invalid move will flash red).

The chess clock will consist of a 7-segment display in the form of (h:mm:ss) and there will be 2 stop buttons, one for each side, to signal when a player’s turn is over. A third button will be featured near the clock to act as a reset button. The combination of the two stop switches and reset button will be used to select the time mode for the clock. Each side of the board will also have a two toggle-able buttons or switches to control whether move help or suggested moves should be enabled on that side of the board. The state of the decision will be shown by a lit or unlit LED light near the relevant switch.

Project Videos