Music has the ability to transform the mind , space and thought of
a human being. Tap into this magical vibe by introducing some
music in your life.
Listen to some music while you explore..
Embedded Systems
ESP8266 | ESP8266 Arduino Core
I worked as a Tutor for K12 STEM students at NYU, where I was hosting an Embedded Systems and Internet of Things Course.
The following are some of the projects I enjoyed developing for the course.
Since we were working with a energetic and competitive batch from all around the world. I had the idea to put forth a day in the session where the students form teams and develop any multiplayer game of their choice on their versatile Adafruit Kits.
To serve as a model for students and to test feasability in the limited session time per day, I developed a simple Tic-Tac-Toe game with the ILI9341 TFT Screen in the kit. This screen had a touch panel for input.This is the result of what I developed overnight that day.
We had a great session the next day , there were quite a few games on display after the students were done. Snake, Pong, Hangman and Trivia to name a few.
This project was co-authored with another tutor from the team. We wanted to explain how to fetch text/JSON APIs and parse them on the Microcontrollers.
The project required the students to fetch NTP (National Time Protocol) and OpenWeather API to their ESP8266 through the client driver. Then they parse the fetched APIs into useful information.
The final goal of the project was to display this data alongside suitable icons on the ILI9341 TFT screen.
The ESP Web Server was added to the Internet of Things program in the second iteration of the course. The motiation behind this was to explore how to manage signals over the network fetaures of the Arduino Core drivers for ESP8266.
The WebServer project encompassed the following features
Java DBMS Server/Client Model
SQLite (JDBC) | Multi-Threaded
This was my capstone project for my Introduction to Java course during my graduate studies. This involved system design of a TCP/IP Server/Client Model to exchange DBMS(SQLite) entries over the network.
The open-ended requirements of the design allowed for a lot of optimisation and added functionality. I designed a multi-threaded transactional server , which could handle clients on seperate dedicated threads.
Transactional, in this context, meaning that all communications between the server and client take place on a transactional connection i.e. the conection exists only for the duration of that transaction event. To achieve faster response times , I went with a TCP/IP socket layer over UDP.
A listener socket monitors all clients connected to the server. This dedicated socket will always monitor active connections in a thread seperate from the transactional threads. This allowed the system to process transactions rapidly and concurrently. The system used thread-safe communications with SQLite through JDBC to ensure there are no R/W collisions.
I made a GUI shell for the system using JavaFX Swing , which is a mostly thread-safe GUI container library. I also tried to spruce up the system with added SQL functionality (a subset of DBMS commands) and a console for reporting transaction status.
The project got me a perfect score and appraise from the instructors.
Embedded Systems
Teensy 3.2 | Wearable Device
This project was submitted as capstone project for Real-Time Embedded Systems. I enjoy playing guitar in my free time , so this was very intriguing for me.
The goal was to use a Teensy 3.2 (ARM Cortex-M0+) , ADXL343 (I2C Accelerometer) and Teensy Audio Shield to emulate your guitar.
So I decided to design a system where the ADXL343 sends out an activation trigger in the form of a TAP interrupt. Then the system decides which chord to play based on the user controls (Conductive Tape on a Plastic Glove).
The Teensy Audio Shield was capable of playing back audio files from a SD card. I wanted to emulate a real guitar so I decided to go with real recorded samples from my acoustic guitar. I recorded multiple samples of up and down strokes of the 4 chords we were required to play.
The final step was to design an audio mixer in software which could handle rapid , partial and complete strokes accordingly. This sound mixer would quickly fade out the old playing sound and fade in a new sound. The sound mixer also randomizes which sample of the chord to play.
When working in tandem the systems combined emulated an acoustic guitar with quite natural sound reporduction and response.
Embedded Systems
Arduino Mega2560 , Arduino Nano
This is my first major undertaking as a project.The motivation for this device was my interest in music and my new found interest for Embedded Systems , I wanted to design something I can add to my life and would be cool to show off to friends(obviously). So , I ordered in some LEDs , an Arduino Mega 2560 and fired up the Arduino IDE.
I started with the infamous Blink sketch and then started incrementing it to show different fades and patterns, I like the idea of being able to change the color of your room , looking for how I can do that , I stumbled upon the Vixen DMX software , this had the capability of syncing my lights to music , this came out of my first attempt.
I wired up 6 LEDS and wrote a sketch for Vixen , this was a pretty resposive system and visualisation could be hand arranged and it also had transitions support. I planned to take this up a notch and ordered RGB50/50 LED Strips and a power supply to pair with it , the circuit was simple with a MOSFET controlling voltages on RGB terminals each.
The project took many iterations along the way and as I discovered the ease of using Arduino
, I started experimenting with different forms.
Most of my time was spent soldering the circuits together and fixing my bad solders(more
than often).
At one point I even decided to Light up the entire room by sticking one
across the ceiling,
Needless to say that didn't end well for my small dainty power supply.
A few fire hazards later , I pivoted to include some sort of wireless components to control this system. I found an android bluetooth app and some contributed code for this. The system worked flawlessy with a physical switch to switch modes.
This project opened up a lot of avenues for me , I was really fascinated by the concept of making my own electronics as this was the closest to industrial work you can get in undergraduate first year. I was pretty satisfied by the whole system and learnt a lot along the way , namely Soldering, PCB Layout , Power Requirements , Arduino API , and did I mention there was Soldering!!!
This is the final iteration of the project , I used simple A4 sheets to make the cylinder
diffusers and stick a strip on the edge of the table.
I later developed some miniatures using an Arduino Nano and a 5V breakout board.
That was my manic first foray into the world of Embedded Systems.
I have uploaded the full videos of the gifs in the links below.
A Dialouge with Myself
Plain Text
A random day happens and I am looking at my resume:
Me: You know I have done some interesting things , wish there was a way to make it show what
I have done.
Milind: You know what , let's check out LinkedIn , let's see what people do. Ahh , there you
have it , A portfolio website , PERFECT!!
Me: Wait What ? A website , no way , I hate making websites , ahhhhhhhhh, so much time to
arrange things , arrrgghhh.
Milind: What? But it looks cool , doesn't it.
Me: Damn right it does , but its so much boring work , no way , no.
Milind: YOU SHOULD GIVE IT A TRY AND THEN DECIDE!!
Me: Okay , Okay , I am gonna do it , but if I am doing it , I am doing it my way.
Milind: Hey hey , sure no problem , whatever you want to do.
Me: Let's do this ,find a nice template. Done. Read the document. Done. Text Editor
Ready.Check.
Milind: How about some music while we do this?
Me: Wait , I just got an idea...... Music , muhuhuhuhahahahahah
Milind: *Wide Grin* Now we are getting somewhere. You got this.
Me: But its soooooo boooring. Argh
I don't get much time to spend on this project currently , but I am trying to get this up and running soon and hopefully not bore some innocent soul to death.
STATUATORY WARNING : This website was designed by a professional. No animals or humans were endangered during the angry fits of rages encountered on aligning that damn button.