My Projects
Table of Contents
- Robot Basketball - 12/14/2019
- Backpack Bailout (AI Game) - 04/22/2019
- Collision Avoidance Robot (C.A.R) - 03/29/2019
- RPSx Android App - 08/01/2018
- Water Analogy of an Electrical Network - 05/01/2018
Robot Basketball
Robot Basketball was a capstone project, a graduation requirement for my bachelor's degree, that I did for my Senior Design at UCF. Orlando being the city of themed entertainment industry and my experience working at Universal and interning at Birket allowed me to take on this engineering challenge. Robot Basketball is an advanced Human Entertainment system that allows users to play basketball with an xBox controller by meticulously integrating Computer Vision, Bluetooth, Custom PCB and firmware, and PyGames Game Engine like technologies.
The Project is split into three primary systems: Arena, Robot, and Game. The robot system is the device for physically interacting with the basketball court and basketball. The robot receives commands from the arena control-system and executes them. The Arena system encompasses all things related to the basketball court, basketball, physical frame structure, and computer vision. The Computer Vision subsystem is used to determine the position and orientation of the robot on the court. It also tracks the position of the ball. The Game System involves taking data in from the player and displaying information such as game and robot status, instant replays, and high-level robot control functionality.
The Robot subsystem is comprised of all the components required to pick up and launch a ball from various places on the court. The robot acts as an Input-Output device that simply takes inputs from other systems and executes them based on a set of parameters on the robot. Additionally, it provides insight into its state by providing information to other systems.
My role in this project was to manage and operate both the Arena and Robot's Electrical Systems along with Arena-Robot Integration Communication System. To accomplish so a custom PCB for the Robot was designed using Diptrace's Schematic capture and PCB design tool suite. For the Arena, no such PCB was necessary as a lot of the work was done in configuring the Ubuntu OS to suit the project's needs. One big challenge that needed to be overcome during the development process was getting Robot and Jetson Nano's bluetooth to work together. Jetson Nano has a custom Linux image and therefore, to the get the bluetooth on Serial Port Profile (SPP) to work the entire kernel had to be recompiled with 'rfcomm' option specified. Sparkfun's SilverSMiRF RN-15 based bluetooth module was used on the robot to perform bluetooth communication. A custom packet was also designed for successful exchange of information. Additionally, I was also in-charge of programming the NeoPixel animations on the Arena and ensured that the sound and lights were in sync by working with my teammates.
Overall, the project was a success and a great learning experience that allowed me to learn and grow as a student, a team player, and especially as a professional engineer. A glimpse at my work is displayed below along with a demo video:
Backpack Bailout - AI Game
Backpack Bailout is a scavenger hunt type escape game which was designed by a group of 3 students including myself using Unity game engine. This was a 12 weeks long project that required an immense amount of learning curve. Through this project I learned how to work in a team, honed my GitHub skills, learned how to program in C# and how to work with Unity Game Engine.
In the game, a fellow student loses her backpack and she needs it to ace her finals. However, a bully named "Chad" is in your way and tries to prevent you from helping her out. With the help of AJ you try to rescue the backpack by helping him clean the administration room while also trying to escaping from Chad's fury. Failure to place all the objects in their respective spot in time could cause your classmate to fail her finals.
My job was to write AI scripts for all the NPCs (Non-Player Characters). A lot of technical details had to be learned which were documented in the "Project Development Timeline" below.
Source Code: GitHub Weekly Updates: Project Development Timeline
Collision Avoidance Robot (C.A.R)
The project was a robot that autonomously avoided collisions from walls and objects. An HC-SR04 sensor was used on a rotating head to determine the optimal path for traveling forward. Our navigation method was similar to many systems being used today. The most notable example is submarines, although it is mostly older submarines that still use SONAR. Similar to how advanced SONAR systems operate on a constant rotation, our robot had its sensor mounted on a rotating “head”. The robot swiveled its single sensor one-hundred-eighty degrees so that it could collect distance measurements in different directions. This method was selected to minimize the amount of new hardware required to get the robot working. The sensor has a trigger pin and an echo pin in addition to the Vcc and GND. The trigger pin stays high for 10 microseconds which sends 8 cycles of sonic burst that travel at the speed of sound. These waves are then detected by the echo pin which returns the travel time in microseconds. Finally, the distance is calculated by multiplying the speed of sound in air (330 m/s or 0.034cm/µs) by time and dividing by 2 as the time obtained is the travel and return time of the sounds waves. The microcontroller used was an Arduino Uno and servos were used for the head and the wheels. A demo is presented below:
Rock Paper Scissor X-treme Android App
RPS X-treme is the next evolution of your favorite juvenile game - now you can settle your petty disputes from your handheld device, or set up tournaments to determine the alpha member of your entire friend group. To be exact, RPS X-treme is an Android application that makes it possible to set up/join lobbies for rock-paper-scissors matches/tournaments, and also keeps track of a variety of player performance statistics. Players will be able to log in and make or join a lobby.
Source Code: GitHub
Water Analogy of an Electrical Network
Following are the images of the PCB(left) and the Schematic(right) designed by me using Eagle CAD.
This was a project for IEEE Power and Energy Society. The task was to simulate how resistor, capacitor, and inductor affect current and voltage in a circuit using water. My task was to design the PCB and get it manufactured. I used Eagle CAD to do so because it is open source and has a lot of resources for assitance. The PCB serveed as the central control unit of the system to which all the sensors and raspberry were connected for operation. Additionally, I helped with the design and assembly of the overall structure. Following is the image of the product. In operation, the LEDs dictate the flow of the water (i.e. current) and the LCD screen allows the user to perform KVL, KCL and other basic circuit analysis operations.