Project

# Title Team Members TA Documents Sponsor
25 A.I.dan: ChatGPT Integrated Virtual Assistant
Andrew Scott
Brahmteg Minhas
Leonardo Garcia
Hanyin Shao design_document1.pdf
final_paper1.pdf
photo1.jpg
photo2.png
presentation1.pptx
proposal1.pdf
Team Members:
- Andrew Scott (ajscott5)
- Leonardo Garcia (lgarci91)
- Brahmteg Minhas (bminhas2)




# Problem
Current virtual assistants (Amazon’s Alexa, Apple’s Siri, etc) all use google as their primary mechanism for answering questions posed to them. While they may have other functionality, like integration with Amazon.com or spotify, their primary function is as assistants who answer questions based on audio I/O. With the advent of Chat GPT-3, Google is now an outdated information gathering mechanism, and needs to be replaced within the virtual assistant space.
# Solution
Our solution combines the convenience of a virtual assistant with the power of chatGPT to create a more powerful and useful home-assistant for answering questions. We will use a Speech-to-Text module to convert user voice input to text. This interaction, taking in user sound and responding shall be facilitated by a “cue word”, like “Hey A.I.dan”, or similar. To ask a question, a user will say the cue word and then ask their question. Once they have stopped speaking, A.I.dan will send the message through to ChatGPT, and once it gets back ChatGPT’s response, use Text To Speech (TTS) to relay it to the user as well as display it on the screen.




## Control Unit
Utilizes an ESP32 microcontroller with a Raspberry Pi RP2040. Software on the microcontroller interfaces with the audio I/O, the screen, and the through Wi-Fi to a PC which handles the chatGPT API, as well as the Speech-to-Text and Text-to-Speech modules. The microcontroller will also receive the information to be output to the screen and microphone from the PC.




## Audio I/O
The mechanism through which a user will interact with our device is with their voice. To facilitate this, both a speaker and microphone will be added to our PCB. Any post processing we want to do in order to clean up the audio to increase accuracy will also be done onboard. Any audio input to the microphone will go to the RP2040 for the detection of a wake word. Once a wake word is detected, the microcontroller will stream audio to a PC through Wi-Fi. Once the PC returns the chatGPT output after it has been passed through the text-to-speech module, it is played through the microphone.
## Screen
Many outputs that ChatGPT has are not easily understood through an audio description. The best example of this is code segments, which are always formatted as a markdown. In order to provide this particular functionality, a screen shall be added externally to our assistant, connected by SPI to the PCB.
# Criterion For Success
To consider this fully successful, at least 75% of attempted basic interactions should be successful. Basic interactions are questions that are based entirely on words included in our pre-trained speech to text model.
Code (Markdown) as well as traditional text answers must display/speak properly given a successful question. This can be tested by asking the same question to chatGPT on a separate device.


# Resources:
[Example of ESP32 to PC Audio Streaming]( https://github.com/MinePro120/ESP32-Audio-Streamer)


[Example of PC to ESP32 Audio Streaming](https://www.hackster.io/julianfschroeter/stream-your-audio-on-the-esp32-2e4661)

Active Cell Balancing for Solar Vehicle Battery Pack

Tara D'Souza, John Han, Rohan Kamatar

Featured Project

# Problem

Illini Solar Car (ISC) utilizes lithium ion battery packs with 28 series modules of 15 parallel cells each. In order to ensure safe operation, each battery cell must remain in its safe voltage operating range (2.5 - 4.2 V). Currently, all modules charge and discharge simultaneously. If any single module reaches 4.2V while charging, or 2.5V while discharging, the car must stop charging or discharging, respectively. During normal use, it is natural for the modules to become unbalanced. As the pack grows more unbalanced, the capacity of the entire battery pack decreases as it can only charge and discharge to the range of the lowest capacity module. An actively balanced battery box would ensure that we utilize all possible charge during the race, up to 5% more charge based on previous calculations.

# Solution Overview

We will implement active balancing which will redistribute charge in order to fully utilize the capacity of every module. This system will be verified within a test battery box so that it can be incorporated into future solar vehicles.

Solution Components:

- Test Battery Box (Hardware): The test battery box provides an interface to test new battery management circuitry and active balancing.

- Battery Sensors (Hardware): The current battery sensors for ISC do not include hardware necessary for active balancing. The revised PCB will include the active balancing components proposed below while also including voltage and temperature sensing for each cell.

- Active Balancing Circuit (Hardware): The active balancing circuit includes a switching regulator IC, transformers, and the cell voltage monitors.

- BMS Test firmware (Software): The Battery Management System requires new firmware to control and test active balancing.

# Criterion for Success

- Charge can be redistributed from one module to another during discharge and charge, to be demonstrated by collected data of cell voltages over time.

- BMS can control balancing.

- The battery pack should always be kept within safe operating conditions.

- Test battery box provides a safe and usable platform for future tests.