top of page

Projects

Besides the projects below, I have also made several other embedded and software projects such as 2 platformer games using Construct, a blackjack game using Java, a motion-activated blind system, and a clap-detecting lightbulb. Unfortunately, the documentation of these projects has been lost. Below is the collection of my software, electrical, embedded, and mechanical projects.

Obstacle Avoidance Robot

My Obstacle Avoidance Robot was a personal build I made using an Arduino. The robot has an ultrasonic sensor (HC-SRO4) mounted onto it that allows it to detect obstacles in its path. Upon meeting an obstacle, a servo motor rotates the sensor left and right. If the sensor detects more space to the right of it, the Arduino tells the DC motors to move the rover to the left and vice versa. This project allowed me to deal with construction, assembly, and wiring electrical connections with the Arduino and power source. It also involved some coding of which some is based on sound equations pulled from my physics courses.

Mock-up print design

Line Following Rover

Role Title

This project consisted of creating an autonomous rover that would follow a line of tape on the ground. Besides the Arduino, the build consisted of 2 DC motors, an L293D motor driver, 2 power supplies, 2 QRD1114 sensors, 2 LEDs, several resistors (for the sensors and the LEDs). I programmed the Arduino so that if the right sensor was off the line (based on the sensor's infrared signal detection and measurements), the right motor would turn on and vice versa. If both sensors were on the line, both motors would be set to "high" to allow the rover to move straight. I also placed an LED above each motor, wherein if the motor on the right is set to high, the LED on the right turns on and vice versa.

Number Guessing Game

This project makes use of the serial monitor on an Arduino to get the user to play a game. After asking for the player's name and if he/ she wants to play, the program prompts the user to guess a number between 1 and 500. If the player's guess is higher than the randomly generated number, the LEDs blink one at a time from right to left. If the guess is too low, the opposite happens. When the player guesses the right number, the outer LEDs blink two at a time, moving inwards and back out. The program then tells the user how many guesses they took and asks if they want to play again. The number of guesses resets and if the player says no, it invites the next player to play the same game. I have recreated a virtual version of the project. Check it out at 

http://bitly.ws/9GeV

​

​

Automated RFID Lock

This project consisted of an Arduino, a 12V solenoid an RFID card reader, RFID tags, 2 power supplies, 2 LEDS, and a passive buzzer. When an RFID card is brought near the antenna of the card reader, its UID is read. If the tag's UID matches a UID in the system, a green LED goes on and the locking mechanism (the solenoid) opens. If the UID is not within the system, the passive buzzer sounds a noise, the red LED turns on, and the solenoid remains locked. Another version of this project that I have made involves using a master card to enter or remove tags from the system (by recording or removing their UIDs).

Jonah's Fast Creative Challenge

This was a competition I won where I was challenged to make a creative project that revolved around the theme of Jonah's fast. The cross in the video is connected to a string that is glued to a power switch. When the string is pulled, the motor driver (connected to the switch) is turned on. This sends a signal to the motor which starts reeling in a string connected to a picture of Jonah much like an electric fishing rod.

Electric Longboard Build

This video demonstrates a custom build of an electric longboard I made. They include electronic parts I attached to the base of a non-electric board I already owned.

 

I mounted brushless dc motors onto the frame and connected them to a speed controller. The speed controller varies the resistance of the battery's voltage connected to it. The higher speed set on the controller, the lower the resistance and vice versa. I enjoyed the final product of this build particularly because I got to ride the longboard at high speeds. I also learnt a lot about circuitry, power and batteries. However, during this project, I overcame unexpected obstacles such as dealing with a weak battery. I solved this challenge by disassembling my old hoverboard from which I took the Li-ion battery and buying new connectors for it.

Robotic Arm

This project used several servo motors and potentiometers to pick up objects and move them from one location to another in the same way a mechanical crane would. In this design, the degree of rotation of the potentiometers determined the angle to which its respective servo motor would be set.

Automated Airhorn Enclosure

This project consists of the 3D printed housing for an airhorn, an Arduino, a PIR motion sensor, and the relevant power supplies. This device is intended to scare anybody that walks into a room containing this automated airhorn. When the sensor detects heat in its surrounding environment from someone's body, the pin is set high on the sensor and the servo motor is rotated to a degree where it pushes on the top of the airhorn to make a loud noise.

3D Solidworks Models

he following video contains a deep-dive into each of the solidworks files I've made. These include 3D designs of a phone stand, a balance bar clevis for an SAE Race car, assembly models and markups, alongside other 3D designs and projects.

Additional Fusion 360 Designs

The video below contains an overview of other 3D designs I've made in Fusion 360. These include the design of a fidget ring, a gear bearing, and a spitball shooter. All these models were later made on my Ender 3 V2 printer as shown below.

3D Printed Models In Action

PCB Design 1: LED Wand Array

This PCB uses a 555 timer to turn LEDs on and off sequentially in a wave-like pattern. The clock speed can be varied by 2 potentiometers and the output signal is attached to a 4-bit counter. The 4-bit counter connects to a 3:8 decoder, that drives one input high to turn on one LED at a time. The design is further explained in the video below.

PCB Design 2: Mini 555 Piano

This PCB uses a 555 timer to generate sounds part of the diatonic scale on a piano. One of the resistors used to set the frequency of the clock signal is fixed. The resistor whose connected momentary switch is pressed acts as the other element that dictates the frequency of the clock signal. The output of the clock then feeds to an NPN transistor that acts as an audio amplifier. The amplified signal is then run through a speaker so the user can hear the piano note.

Dynamic Stock Exchange Application (Flask)

CS50 Finance was a dynamic web application I created using Flask, Python, HTML, CSS and JavaScript. Users would register by creating a username and password on the site. Each new user would receive $10,000.00. On the website, users can use their money to buy stocks and make a profit by selling them at a later time. They can also search up the real-time value of a share and view a history of their past transactions.

 

GitHub: https://github.com/MatthewGerges/CS50-Programming-Projects/tree/main/MatthewGerges-cs50-problems-2021-x-finance

Speller Hashtable Project

Speller is a project that efficiently loads a dictionary file into a hashtable and checks the number of misspelled words in a text file by comparing each word with the contents of the dictionary. This project was part of Harvard's computer science course and ranked in the top 3% of most efficient submissions.

​

GitHub: https://github.com/MatthewGerges/CS50-Programming-Projects/tree/main/MatthewGerges-cs50-problems-2021-x-speller

Image Filter Editor

Written in C, this program used a 2-Dimensional array to apply different filters to an input image. The program could apply the filters Sepia, grayscale, blur, and mirror to an image. It could also highlight the distinct edges of a particular image like the one shown to the left by applying Sobel's edge detection algorithm to the picture.

 

GitHub: https://github.com/MatthewGerges/CS50-Programming-Projects/blob/main/MatthewGerges-cs50-problems-2021-x-filter-more/helpers.c

React Application #1: Indecision

Indecision is a React application I built and styled using SCSS. The application allows users to enter several options and pick a random one from the list. It was built using components, props, and event handlers in a development environment with Webpack. I have yet to deploy the site to Heroku or Netlify. The video below shows the application in action.

 

 

GitHub: https://github.com/MatthewGerges/React-Indecision-App.git

React Application #2:
Expense Tracker

This application allows a user to add/ edit the expenses they made with their respective descriptions, amounts and dates. The application also allows users to search for a specific expense they made using the search bar and by filtering the range of dates on which payment was made. It uses the Redux store to hold the state of the application and was tested using jest.

 

GitHub: https://github.com/MatthewGerges/React-Expensify-App-2

Catena Application Development

Catena is a Bible reading app built using React for the front end and Node.js for the backend. My work with Catena involves adding functionality to the web version of the app, alongside fixing bugs on the website. The video below details an example of the debugging work I do.

​

Check out the web version of the app at: https://catenabible.com/mt/1

CS50

As a part of CS50 - Harvard's Introductory Computer Science Course, I also made several software projects. These include a finance web application for trading stocks, a DNA sequence reader, a world cup tournament simulator, a spell checker, a program that determines the readability level of a certain text, and an image filter editor. For my final project, I also created a dynamic web application using Flask that can be used as a dot product or cross product calculator for vectors. Besides using Flask, I created these projects and programs by using C, Python, HTML, CSS, and JavaScript. These projects and their code can all be viewed on my Github page at : https://github.com/MatthewGerges/CS50-Programming-Projects.git.

Conversingo Flutter Mobile App

  • Conversingo is a mobile application I developed on Flutter that acts as a conversation starter app and includes more than 1000 questions that are sorted by collections on Google's Cloud Firestore

  • It also features a submit question page wherein a user can submit their custom questions to be visible in the app under the collection of their choice (if they have access to a password I created)

  • Conversingo is now live as a web application (hosted through Firebase) and can be visited at: https://conversingoweb.web.app/#/

  • GitHub: https://bit.ly/3IHiIJL

​

Catena Application Development

Catena is a Bible reading app built using React for the front end and Node.js for the backend. My work with Catena involves adding functionality to the web version of the app, alongside fixing bugs on the website. The video below details an example of the debugging work I do.

​

Check out the web version of the app at: https://catenabible.com/mt/1

Catena Application Development

Catena is a Bible reading app built using React for the front end and Node.js for the backend. My work with Catena involves adding functionality to the web version of the app, alongside fixing bugs on the website. The video below details an example of the debugging work I do.

​

Check out the web version of the app at: https://catenabible.com/mt/1

IOT Project: ESP32 Clapper

  • This project consists of an ESP32 microcontroller (programmed in C++) that flips a light switch in 0.2 seconds upon detecting 2 claps

  • I implemented it to an IOT framework by connecting it to a MongoDB database managed by NodeJS on the backend. The ESP32 will query for changes to the database every 0.5 seconds

  • This project will soon have a React Native front end as well

  • I also created a PCB that manages all the connections to the ESP32 and allows the circuit to be powered in 3 different ways (via a USB connection, a 3.7V battery connected to a boost converter that increases the voltage to 5V, and through a 12V DC barrel jack ran through a LM7805 converter with 2 capacitors to manage power ripples)

  • Cases, enclosures and extensions were also created for this project on Fusion360 and printed on my personal Ender 3 V2 Printer (which took several iterations and rounds of prototyping)

  • GitHub Link: https://github.com/MatthewGerges/ESP32_Clapper_IOT

​

​

​

​

​

​

​

​

​

​

​

PCB_CASE.png
3D_PCB.png

Catena Application Development

Catena is a Bible reading app built using React for the front end and Node.js for the backend. My work with Catena involves adding functionality to the web version of the app, alongside fixing bugs on the website. The video below details an example of the debugging work I do.

​

Check out the web version of the app at: https://catenabible.com/mt/1

bottom of page