## Inspiration

Fall lab and design bay cleanout leads to some pretty interesting things being put out at the free tables. In this case, we were drawn in by a motorized Audi Spyder car. And then, we saw the Neurosity Crown headsets, and an idea was born. A single late night call among team members, excited about the possibility of using a kiddy car for something bigger was all it took. Why can't we learn about cool tech and have fun while we're at it?

Spyder is a way we can control cars with our minds. Use cases include remote rescue, non able-bodied individuals, warehouse, and being extremely cool.

## What it does

Spyder uses the Neurosity Crown to take the brainwaves of an individual, train an AI model to detect and identify certain brainwave patterns, and output them as a recognizable output to humans. It's a dry brain-computer interface (BCI) which means electrodes are placed against the scalp to read the brain's electrical activity. By taking advantage of these non-invasive method of reading electrical impulses, this allows for greater accessibility to neural technology.

Collecting these impulses, we are then able to forward these commands to our Viam interface. Viam is a software platform that allows you to easily put together smart machines and robotic projects. It completely changed the way we coded this hackathon. We used it to integrate every single piece of hardware on the car. More about this below! :)

## How we built it

### Mechanical

The manual steering had to be converted to automatic. We did this in SolidWorks by creating a custom 3D printed rack and pinion steering mechanism with a motor mount that was mounted to the existing steering bracket. Custom gear sizing was used for the rack and pinion due to load-bearing constraints. This allows us to command it with a DC motor via Viam and turn the wheel of the car, while maintaining the aesthetics of the steering wheel.

### Hardware

A 12V battery is connected to a custom soldered power distribution board. This powers the car, the boards, and the steering motor. For the DC motors, they are connected to a Cytron motor controller that supplies 10A to both the drive and steering motors via pulse-width modulation (PWM).
A custom LED controller and buck converter PCB stepped down the voltage from 12V to 5V for the LED under glow lights and the Raspberry Pi 4. The Raspberry Pi 4 uses the Viam SDK (which controls all peripherals) and connects to the Neurosity Crown for vision software controlling for the motors. All the wiring is custom soldered, and many parts are custom to fit our needs.

### Software

Viam was an integral part of our software development and hardware bringup. It significantly reduced the amount of code, testing, and general pain we'd normally go through creating smart machine or robotics projects. Viam was instrumental in debugging and testing to see if our system was even viable and to quickly check for bugs. The ability to test features without writing drivers or custom code saved us a lot of time. An exciting feature was how we could take code from Viam and merge it with a Go backend which is normally very difficult to do. Being able to integrate with Go was very cool - usually have to do python (flask + SDK). Being able to use Go, we get extra backend benefits without the headache of integration!
Additional software that we used was python for the keyboard control client, testing, and validation of mechanical and electrical hardware. We also used JavaScript and node to access the Neurosity Crown, Neurosity SDK and Kinesis API to grab trained AI signals from the console. We then used websockets to port them over to the Raspberry Pi to be used in driving the car.

## Challenges we ran into

Using the Neurosity Crown was the most challenging. Training the AI model to recognize a user's brainwaves and associate them with actions didn't always work. In addition, grabbing this data for more than one action per session was not possible which made controlling the car difficult as we couldn't fully realise our dream.
Additionally, it only caught fire once - which we consider to be a personal best. If anything, we created the world's fastest smoke machine.

## Accomplishments that we're proud of

We are proud of being able to complete a full mechatronics system within our 32 hours. We iterated through the engineering design process several times, pivoting multiple times to best suit our hardware availabilities and quickly making decisions to make sure we'd finish everything on time. It's a technically challenging project - diving into learning about neurotechnology and combining it with a new platform - Viam, to create something fun and useful.

## What we learned

Cars are really cool! Turns out we can do more than we thought with a simple kid car.
Viam is really cool! We learned through their workshop that we can easily attach peripherals to boards, use and train computer vision models, and even use SLAM! We spend so much time in class writing drivers, interfaces, and code for peripherals in robotics projects, but Viam has it covered. We were really excited to have had the chance to try it out!
Neurotech is really cool! Being able to try out technology that normally isn’t available or difficult to acquire and learn something completely new was a great experience.

## What's next for Spyder

* Backflipping car + wheelies
* Fully integrating the Viam CV for human safety concerning reaction time
* Integrating Adhawk glasses and other sensors to help determine user focus and control
## Inspiration

Ethiscan was inspired by a fellow member of our Computer Science club here at Chapman who was looking for a way to drive social change and promote ethical consumerism.

## What it does

Ethiscan reads a barcode from a product and looks up the manufacturer and information about the company to provide consumers with information about the product they are buying and how the company impacts the environment and society as a whole. The information includes the parent company of the product, general information about the parent company, articles related to the company, and an Ethics Score between 0 and 100 giving a general idea of the nature of the company. This Ethics Score is created by using Sentiment Analysis on Web Scraped news articles, social media posts, and general information relating to the ethical nature of the company.

## How we built it

Our program is two parts. We built an android application using Android Studio which takes images of a barcode on a product and send that to our server. Our server processes the UPC (Universal Product Code) unique to each barcode and uses a sentiment analysis neural network and web scraping to populate the android client with relevant information related to the product's parent company and ethical information.

## Challenges we ran into

Android apps are significantly harder to develop than expected, especially when nobody on your team has any experience. Alongside this we ran into significant issues finding databases of product codes, parent/subsidiary relations, and relevant sentiment data.

The Android App development process was significantly more challenging than we anticipated. It took a lot of time and effort to create functioning parts of our application. Along with that, web scraping and sentiment analysis are precise and diligent tasks to accomplish. Given the time restraint, the accuracy of the Ethics Score is not as accurate as possible. Finally, not all barcodes will return accurate results simply due to the lack of relevant information online about the ethical actions of companies related to products.

## Accomplishments that we're proud of

We managed to load the computer vision into our original android app to read barcodes on a Pixel 6, proving we had a successful proof of concept app. While our scope was ambitious, we were able to successfully show that the server-side sentiment analysis and web scraping was a legitimate approach to solving our problem, as we've completed the production of a REST API which receives a barcode UPC and returns relevant information about the company of the product. We're also proud of how we were able to quickly turn around and change out full development stack in a few hours.

## What we learned

We have learned a great deal about the fullstack development process. There is a lot of work that needs to go into making a working Android application as well as a full REST API to deliver information from the server side. These are extremely valuable skills that can surely be put to use in the future.

## What's next for Ethiscan

We hope to transition from the web service to a full android app and possibly iOS app as well. We also hope to vastly improve the way we lookup companies and gather consumer scores alongside how we present the information.
Additional Demos:
<https://youtu.be/Or4w_bi1oXQ>
<https://youtu.be/VGIBWpB8NAU>
<https://youtu.be/TrJp2rsnL6Y>

## Inspiration

Helping those with impairments is a cause which is close to all of the team members in Brainstorm.
The primary inspiration for this particular solution came from a recent experience of one of our team members Aditya Bora.
Aditya’s mother works as a child psychiatrist in one of the largest children's hospitals in Atlanta, GA. On a recent visit to the hospital, Aditya was introduced to a girl who was paralyzed from the neck down due to a tragic motor vehicle accident. While implementing a brain computer interface to track her eyes seemed like an obvious solution, Aditya learned that technology had yet to be commercially available for those with disabilities such as quadriplegia.
After sharing this story with the rest of the team and learning that others had also encountered a lack of assistive technology for those with compromised mobility, we decided that we wanted to create a novel BCI solution.
Imagine the world of possibilities that could be opened for them if this technology would allow interaction with a person’s surroundings by capturing inputs via neural activity. Brainstorm hopes to lead the charge for this innovative technology.

## What it does

We built a wearable electrode headset that gets neural data from the brain, and decodes it into 4 discrete signals. These signals represent the voltage corresponding to neuron activity in the electrode’s surrounding area. In real-time, the computer processes the electrical activity data through a decision tree model to predict the desired action of the user.

This output can then be used for a number of different applications which we developed. These include

* RC Wheelchair Demo:
 This system was designed to simulate that control of a motorized wheelchair would be possible via a BCI. In order to control the RC car via the BCI inputs, microcontroller GPIO pins were connected to the remote control’s input pins allowing for the control of the RC system via the parsed out of the BCI rather than the manual control. The microcontroller reads in the BCI input via the serial monitor on the computer and activates the GPIO pins which correspond to control of the RC car
* Fan Demo:
This was a simple circuit which leverages a DC motor to simulate if a user was controlling a fan or another device which can be controlled via a binary input (i.e. on/off switch).

## Challenges we ran into

One of our biggest challenges was in decoding intent from the frontal lobe. We struggled with defining the optimal placement of electrodes in our headset, and then in actually translating the electroencephalography data into discrete commands. We spent a lot of time reading relevant literature in neurotechnology, working on balancing signal-to-noise ratios, and doing signal processing and transform methods to better model and understand our data.

## What we learned

We’re proud of developing a product that gives quadriplegics the ability to move solely based on their thoughts, while also creating a companion platform that enables a smart home environment for quadriplegics. We believe that our novel algorithm which is able to make predictions on a user’s thoughts can be used to make completing simple everyday tasks easier for those who suffer from impairments and drastically improve their quality of life.

## What's next for Brainstorm

We’ve built out our tech and hardware platform for operation across multiple devices and use-cases. In the future, we hope our technology will have the ability to detect precise motor movements and understand the complex thoughts that occur in the human brain. We anticipate that unlocking the secrets of the human brain will be one of the most influential endeavors of this century.