Electronics/Arduino

Remote Control Light

IMG_7940.MOV

I thought it would be nice to be able to turn my lamp off without getting out of bed. I did not have a smart light or smart outlet or anything like that, so I did the next best thing. I used IR to send a wireless signal which toggled the light switch.

I wanted the remote control to be small. If I wanted to send two different signals (off and on), I'd have to use the IRremote Arduino library to encode and decode. I tried that but realized the library was not compatible with my smallest microcontroller. It would only fit on my Arduino Uno which was far too big for a remote control in my opinion. That left me with the challenge of creating an IR signal without a microcontroller (which I think is much more fun). I did some research about IR and was able to create a remote that emitted a signal using a 555 timer. There was no useful data in the signal but it could at least be read as low when not pressing the button and high when pressing the button. 

Similarly for the receiver, I did not want to use something as big as an Arduino Uno to decode. Instead, I was able to take the high and low signal from the receiver and connect it to a small microcontroller (Seeeduino Xiao). From there, I was able to alternate servo motors to toggle the switch off and on whenever the button on the remote was pressed. Because there is no data in the signal, the servos only remember if they last turned the light off or on. If I manually turn the light off, the next time I press the remote, the servos will try to turn the light off again. This was not a big deal, because at most, I'd have to press the button just twice. 

I 3D printed this stand for the servo motors to screw into and for the light switch to sit in.

IMG_7936.MOV

The goal of turning the light off from my bed was achieved.

ECG

For the final project in my Circuits and Signals class, I made an ECG.  The original signal directly from the electrodes was very noisy. I used an instrumentation amplifier, low pass filter, and high pass filter to reduce that noise. Resistor and capacitor values were chosen to amplify the signal and achieve approprite cutoff frequencies for the filters. The signal was acquired with an ADC and further filtered in MATLAB. 

Guitar Tuner

I had just learned about op-amps and signal processing in class and thought this would be the perfect project to test my knowledge. 

I used an electret microphone to input audio. This voltage was very small, so I used an lt1490 op-amp to amplify this voltage to peak at around 1.5V. I used a Feather M4 Express for signal processing, so had to shift the signal with a summing amplifier to 0-3V because it could not read negative voltages. 

Then, I created a program in C++ to run an FFT on the input sound and return the fundamental frequency. I used this to determine the closest string on a guitar and used 5 LEDs to indicate flat, sharp, or in tune. 

I did not have an oscilloscope to verify that my circuit was working, so I created a schematic in LTSpice and ran simulations. I used this to confirm my calculations and make sure that the signal did not become amplified over 3.3V which would break the Arduino and that it was centered around 1.5V. 

Four Wheeler

car.MOV

This four-wheeler was adapted from a project in the Sparkfun Inventor's Kit book for an assignment in my Corerstone of Engineering class. The original project featured one redboard with a distance sensor and two DC motors hooked up to a motor driver to drive the wheels. The original program had the car drive straight until an obstacle was detected at a close distance. Then, it backed up, turned right, and drove straight again until another obstacle was encountered. 

The challenge was to add more wheels to the original design. Two more DC motors and wheels were added with another motor driver on an additional redboard. I replicated the original project but took off the distance sensor. Then, I researched methods to communicate between two Arduino boards and decided to use the I2C protocol. This involved connecting the serial clock, serial data, and ground pins between the boards. I programmed the connection in the Arduino IDE and had the board with the distance sensor send data to the other. I also improved the code to have the car back up to the left in addition to turning right going forward to create quicker, sharper turns. 

Kinetic Tile

For my cornerstone final project, I worked in a group to design a sustainable energy focused product. We created a tile that generated electricity when stepped on. We considered using piezoelectricity but decided to use electromagnetic induction. Because of that, we were able to design the entire mechanism from scratch.   

The mechanism involved a tile with springs underneath that would compress when stepped on. A magnet in the middle of the tile would move through a wire coil and create electricity. We designed the tile in AutoCAD and laser cut it from 6mm wood. We tested the springs underneath the tile and ran into a few problems. The springs were too tall, and the tile had a tendency to slip out when stepped on. The springs could have been shortened which may have also stabilized it, but in the interest of time, we decided to stick with the springs and move forward with the design. 

To aid in stability, we designed a box for the tile to sit in using Solidworks and 3D printed it. We printed the box to be as big as possible given the size of the 3D printing bed. We then laser cut another tile to fit the box. We glued the springs to the bottom of the tile as well as a stack of magnets. The springs of the tile were still unstable inside the box, so we made spring stabilizers in Solidworks to be 3D printed. That ensured that the springs would stay in the same position all the time. This also allowed us to remove the tile from the box for maintenance as opposed to gluing the springs to the box. Finally, we used a Sparkfun redboard to measure the voltage produced by the tile. We then exported the data to MATLAB for graphing. 

Final mechanism

Spring stablizer

Solidworks model 

Matlab Graph of voltage output 

Windmill Project

windmill.mp4

I worked with a group in Cornerstone class to design and build a windmill. We decided to use thin sheets of ply wood to make three blades.  Three blades optimized speeds at higher winds rather than picking up low winds.  We attached a DC motor to the blade and used the Sparkfun redboard to measure the voltage that the windmill generated.