Giter Site home page Giter Site logo

Krishanth (Kris) Suthaharan

I am a third year Electrical and Computer Engineering student at the University of Toronto. I'm interested in computer hardware, electronic circuit designs and robots. I'm pursuing a minor in Mechatronics and Robotics and Biomedical Engineering.

I am involved with multiple robotics teams and completed multiple technical projects. I've been programming and taking on technical work for about 5 years fascinated by troubleshooting complex problems, working in team environments and being able to develop technology with lasting impacts on society.

I am an active member on the University of Toronto Robotics for Space Exploration team (RSX) being in the organization for about 3 years. I joined RSX in my first year as an electrical team member. In my second year, I took on greater responsibilities being the Junior Electrical Lead. And now, I've become the Electrical Lead. For the past year, I've also been a member on the University of Toronto Aerospace team and more specifically, I worked in the firmware systems division under the Space Systems subteam.

Projects

Please be advised that the source code for all of these projects cannot be released due to copyright issues and intellectual property theft. I've tried my best to use images to help backup the content I've wrote in the README portions of the documentation.

Feel free to get in touch with me by referring to the contact section below.

Software Projects

Chess | 2018

• Developed software using Java that would replicate a traditional Chess game to be a more efficient way of playing the game taking less time and no need for the physical board and pieces
• Added features including a virtual game board, menu and pieces lost for the GUI to make easier for the user to see and have a better experience

MP3 Player | 2018

• Utilized Java to create an application that simulated an MP3 Player to allow customers to listen to music of their preference
• Executed features including GUI for the menu, MP3 Player case design and selection of songs to make it user-friendly to navigate through and find songs efficiently

Mastermind | 2019

• Utilized Java to create the classical Mastermind game to make it easier and efficient to play the game taking less time and it’s free.
• Implemented Graphical User Interface (GUI) for the game board and pins to make it visually appearing for the player

Reversi (Othello) | 2020

• Developed software using C programming that would replicate the game of reverse to allow people to play the game at home during the COVID-19 pandemic; this method proved to be a quicker and cost-effective way of playing the game
• Programmed an artificial intelligence that can defeat human players using game trees, minimax algorithm and recursive implementation
• Ensured that the AI can make moves within one second of calculations allowing the program to be efficient

Shape Generator Database | 2020

• Developed software using C++ to allow users to store information about shapes in a memory (dynamic) efficient database
• Designed a complex linked list with pointers to dynamically allocate and remove memory for each shape
• Implemented a command line with a graphical user interface for the user to ensure that there are no errors in the asserted commands and provided specific feedback as to what the particular error was parsed
• Inherited and reused code from others and extended the functionality (using object-oriented programming) to ensure that different shapes with different properties (information) can also be added to the database
• Created commands that allow users to create shapes, create shape subgroups, draw all or subgroups of shapes, move shapes from one subgroup to another, and remove shapes from the database by implementing methods in my linked list for efficient list traversal, list insertion, deletion of a node, and deep assignments

Space: The Final Frontier | 2020

• Developed software using C++ that would implement an artificial intelligence (AI) to destroy as many asteroids (randomly generated by a server) as possible to save the Starship Galaxy Explorer from destruction
• Designed an advanced linked list that observes asteroids in the ships vicinity and updates each asteroid in the list based on how it move in the x and y directions, it’s health after each shot by the ship and whether the asteroid is destroyed or moved away from the ship’s visible range
• The AI would traverse this list of asteroids and consider factors including proximity of asteroids to the ship, the reload time of each shot, the asteroids’ remaining health to decide on which asteroid to shoot at
• Once decided, the AI uses its method functionality to maneuver the ship controller by rotating the ship and firing a shot at the asteroid. All these operations repeat at every clock cycle of the CPU

Mapper: City Scout | 2021

• Developed software application using C++ that would allow users to navigate through cities around the world in a user-friendly manner similar to Google Maps
• Added mouse hover functionality to aid users with how to use the software application, zooming and highlighting capabilities based on the user's search input, real-time search suggestions and autocompletion based on keyboard input from user, and pop-up message boxes for incorrect/successful user input operations and help button
• Implemented Libcurl functionality for users to view real-time delays on highway 401 and ability to view subway stations on the map
• Used a toggle button to show hidden second search bar to find path between two intersections. The path will be highlighted and have arrows for direction. The path determined by the application will be the shortest path implemented using Dijkstra’s Algorithm
• In order to solve the delivery truck problem with multiple pickups and dropoffs of packages, a greedy algorithm is implemented to determine the local best path optimizing the time by introducing a 2-D matrix to store the values to be reused and using 2-Opt Algorithm to change the delivery order to be efficient
• Used timers from Chrono Library to evaluate the speed of our program and boost its performance

Screen Shot 2021-11-07 at 7 58 11 PM

Mouse.Hover1.mov

Screen Shot 2021-11-07 at 8 04 37 PM

Autocompletion1.mov

Screen Shot 2021-11-07 at 8 08 52 PM

Screen Shot 2021-11-07 at 8 11 40 PM

Screen Shot 2021-11-07 at 8 12 13 PM

Screen Shot 2021-11-07 at 8 13 12 PM

Screen Shot 2021-11-07 at 8 13 27 PM

Finding.Paths.Functionality.mp4



Hardware Projects

Logisim | 2020

• Used Logisim (remote circuit development software) to implement 7400 series dual in-line package (DIP) chips to study circuits with logic gates and understand how they can be used to manipulate and produce signals as desired

Hexdecoder | 2020

• Designed a hexdecoder circuit using Verilog with multiplexers, modular hierarchy, and a 7 segment display to display hexadecimal values according to four switch signals (four bits)
• Utilized Intel Quartus Prime to implement the Verilog design on FPGAs (Field Programmable Gate Array) describing the hexdecoder
• Simulated the hardware design using ModelSim software and verified the output waveforms to ensure that the tool synthesizes the circuit correctly the first time since it can be time consuming sometimes

Arithmetic Logic Unit (ALU) | 2020

• Designed a 7-to-1 multiplexer using Verilog case statements in an always block
• Developed a ripple carry adder circuit that adds two 4-bit numbers using four instances of a full adder module
• Built and simulated an ALU by implementing all required operations including addition, subtraction, sign extension, etc., and connected the outputs to a 7-to-1 multiplexer.
• Using 3 select bits to drive the multiplexer select lines, the output value for the ALU can be chosen and then displayed on to LEDs and a set of HEX displays

Registers | 2020

• Developed a gated D latch using Verilog that depends on the level of clock and placed two of them in series with opposite edges of clock to create an edge triggered D flip flop (also known as a primary-secondary flip flop) in which the output changes when the clock edge rises and also implemented an active low, synchronous reset
• Designed an 8-bit register by having 8 flip flops in parallel to one another
• Extended the functionality of the ALU by storing the output into an 8-bit register and implemented feedback into the second input of the ALU using the four least significant bits of the register output
• Designed and simulated a left/right 8-bit rotating register with parallel load using 8 instantiations of the flip flop module in which shift occurs by copying the bites to the next flip flop to the left or right on successive clock cycles. The parallel load enables the user to enter a preset set of 8 binary bits

Clocks and Counters | 2020

• Implemented a series of 8 T-flip flops in series using Verilog with additional combinational logic to develop an 8-bit counter with an enable signal and an active low asynchronous reset
• Developed a rate divider (counter) that would use an industrial clock to increment a counter at varying speeds by having two counters. The rate divider creates pulses at the required rates by counting down certain numbers of clock cycles from the CPU clock frequency to achieve the desired speeds

Finite State Machines | 2020

• Designed a finite state machine using Verilog that would identify certain sequences of binary patterns for the purpose of identifying specific numbers from a long sequence of binary bits
• Emulated a typical calculator by implementing a finite state machine for the control to load numbers entered by the user into registers. It also accounts for the wait state as the user clocks the information
• Used another separate finite state machine for the data path. Based on enables signals from the control path, the numbers entered by the user are stored in multiple registers. Then, it is relayed into Arithmetic Logic Units using multiplexers depending on the preferred arithmetic operation
• Finally, the output is stored in register and output to LEDs and Hexadecimal displays at run-time

Memory and VGA Display | 2020

• Developed a RAM memory block using Quartus IP Catalog and Verilog to store the pixels in a frame buffer which is then used by the VGA Controller to display images on to a monitor
• Implemented a control finite state machine to take in user input and create enable signals for the data path
• Designed a finite state machine that would take X, Y and RGB colour inputs to develop squares on the screen by modulating counters to pixelate (4 x 4) 16 more squares going in a down-right direction



Circuit Design Projects

Arduino | 2017 – 2019

• Using an Arduino UNO, programmed a police alarm independently with C++ to detect when a thief would enter a room using a sensor and display a message on an LCD screen calling 911 while outputting a programmed police alarm
• Programmed a lighting system using Arduino and an Integrated Circuit chip to enable lights to turn on/off according to logical operators within the chip and binary systems
• Utilized Arduino to program a seven-segment display in C++ that would be able to simulate
• Timers such as the ones at Ice Hockey games to show time elapsed

Beetle Bot | 2017

• Developed a device with SPDT (single pole double throw) switches, motors and other electrical components to create a device that would independently operate through a maze

Sumo Bot | 2018

• Utilized Infrared Sensors and programming in C++ to maneuver a small robot that would be used to stay in an arena, detect other Sumo Bots and engage in combat with them

Contact

Email: [email protected]

LinkedIn: http://www.linkedin.com/in/krishanth-suthaharan

Krishanth Suthaharan's Projects

Krishanth Suthaharan doesn’t have any public repositories yet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.