## Inspiration

As lazy people we don't like to do many things, especially pulling suitcases. To combat this, we have created Autonomous Suitcase!

## What it does

Autonomous Suitcase is a machine that tracks you and follows you around wherever you go. It is designed to fit a suitcase or carry-on luggage, allowing you to move around places like the airport hands-free.

## How we built it

We first CAD-ed the frame that the suitcase would be resting on. Afterwards, we explored existing Kinect motion tracking code and combined our findings with ROS python packages so the wheels mounted on the frame would move in the same direction and angular velocity as the person being tracked.

## Challenges we ran into

The speed controllers blew up, so we had to find new ESCs for our project to work. We also had some trouble in finding space for all of the electronics.

## Accomplishments that we're proud of

On top of using CAD and a laser cutter to create the main frame of Autonomous Suitcase, we are most proud of integrating all of the software into our project.

## What we learned

We learned how to implement ROS to change the tracking information from the Kinect to usable data for our motors. In addition, we also derived kinematic equations for the suitcase.

## What's next for Autonomous Suitcase

In the future, airports will be equipped with Autonomous Suitcase. People will be able to put their luggage onto it and walk around like their luggage is a pet.
## Inspiration

* Home pets

## What it does

* Can be toggled to move based on user-based joystick direction
* Performs tricks (spinning around, wags tail) based on user's hand gestures
* Serves as runaway alarm clock in the morning by backing away (wags tail after caught by user)
* Displays daily schedule and reminders on LCD Display (in idle mode), and the distance from user to robot (while in motion)

## How we built it

* Facilitated an effective wireless communication between ESP32 and ESP8266 to control the wheels/ wheel motors based on the user's hand gestures
* Used Python OpenCV library to develop an algorithm capable of recognizing hand gestures (through the PC's camera)
* Used Pyserial to communicate between the Python and Arduino code
* Integrated communication between three microcontrollers (Arduino Uno, ESP32, ESP8266) using ESP NOW WiFi connection - between ESP32 and ESP8266, enabling the transmission of several variables, and between ESP 8266 and Arduino, enabling signals for motors and display
* Used ultrasonic sensor to back the robot away from approaching user by powering motors to drive wheels
* Employed LCD display to show approximate distance between user and robot from ultrasonic sensor (while in motion), and flash important reminders for the user
* Used a touch sensor for user to turn the alarm off, and turn on/rotate the large servo motor to simulate a pet wagging its tail

## Challenges we ran into

* Received components (hobby motors) without gears, causing disconnection with the gear box and inability to power the wheels
* Integrating Pyserial due to the challenging nature of Windows development environment (managing Python packages and libraries)
* Computer failure while attempting to detect driver for ESP 8266 connection

## Accomplishments that we're proud of

* Employing multiple microcontrollers to communicate data (Arduino Uno, ESP32, ESP8266)
* Successfully creating an algorithm to read hand gestures through a PC camera
* Utilizing multiple sensors as inputs to analyze sets of data

## What we learned

* How to develop a communication system from scratch, enabling usage of microcontrollers for a singular robot
* How to plan out and design an organized circuit to integrate multiple sensors, microcontrollers and displays on a singular chassis
* How to efficiently divide workload between team members, enabling each member to execute tasks related to personal skills and interests

## What's next for Pawblo Pro

* Adding phone slot on the top of the chassis for user to place (as alarm clock)
* Using additional sensors to detect objects and prevent collision (to run away more effectively)
* Using a portable or phone camera to detect gestures instead of PC camera
## Inspiration

More than **2 million** people in the United States are affected by diseases such as ALS, brain or spinal cord injuries, cerebral palsy, muscular dystrophy, multiple sclerosis, and numerous other diseases that impair muscle control. Many of these people are confined to their wheelchairs, some may be lucky enough to be able to control their movement using a joystick. However, there are still many who cannot use a joystick, eye tracking systems, or head movement-based systems.

Therefore, a brain-controlled wheelchair can solve this issue and provide freedom of movement for individuals with physical disabilities.

## What it does

BrainChair is a neurally controlled headpiece that can control the movement of a motorized wheelchair. There is no using the attached joystick, just simply think of the wheelchair movement and the wheelchair does the rest!

## How we built it

The brain-controlled wheelchair allows the user to control a wheelchair solely using an OpenBCI headset. The headset is an Electroencephalography (EEG) device that allows us to read brain signal data that comes from neurons firing in our brain. When we think of specific movements we would like to do, those specific neurons in our brain will fire. We can collect this EEG data through the Brainflow API in Python, which easily allows us to stream, filter, preprocess the data, and then finally pass it into a classifier.

The control signal from the classifier is sent through WiFi to a Raspberry Pi which controls the movement of the wheelchair. In our case, since we didn’t have a motorized wheelchair on hand, we used an RC car as a replacement. We simply hacked together some transistors onto the remote which connects to the Raspberry Pi.

## Challenges we ran into

* Obtaining clean data for training the neural net took some time. We needed to apply signal processing methods to obtain the data
* Finding the RC car was difficult since most stores didn’t have it and were closed. Since the RC car was cheap, its components had to be adapted in order to place hardware pieces.
* Working remotely made designing and working together challenging. Each group member worked on independent sections.

## Accomplishments that we're proud of

The most rewarding aspect of the software is that all the components front the OpenBCI headset to the raspberry-pi were effectively communicating with each other

## What we learned

One of the most important lessons we learned is effectively communicating technical information to each other regarding our respective disciplines (computer science, mechatronics engineering, mechanical engineering, and electrical engineering).

## What's next for Brainchair

To improve BrainChair in future iterations we would like to:

Optimize the circuitry to use low power so that the battery lasts months instead of hours. We aim to make the OpenBCI headset not visible by camouflaging it under hair or clothing.