Wednesday 20 April 2011

Applications of Operational Amplifiers


Name: Applications of Operational Amplifiers
Status: complete
Affiliation: 18-220 Electronic Devices and Analog Circuits Lab 6
Group members: Frank
Start: 3/17/2011
End: 3/17/2011

Description:
In this lab we used multiple op amps to perform some sort of useful function.

Peak Detector
This circuit's purpose is to indicate when an input's amplitude exceeds a certain threshold.

Analog to Digital Converter
ADCs are commonly used to convert analog signals to digital signals. Examples include storage, signal processing, and display. We built a flash ADC.





Feeding different input signals into the ADC.


Ramp Generator (Oscillator)
Ramp generators are used to generate a periodic, linearly increasing signal.

Friday 11 March 2011

Mixing Music 2

This time with GarageBand:



I've also begun playing around with PureData but it's not quite what I expected for signal processing. More on that as it develops...

In terms of inspiration, I really like what Shinsadong Tiger has made, especially for Prepix. I can't seem to find much of his stuff floating around on youtube since it's always intertwined with Beast videos, but here's my favorite:

QuickFuse Voice Application

Over spring break 2011, I built a few voice apps using QuickFuse (quickfuseapps.com), which is a web app that allows easy creation of interactive voice response applications through drag-and-drop modules. None of the apps I made are fully functional as they were rapidly prototyped. Below are the descriptions of what I made:

Hands Free Messenger
Allows you to text, tweet, and email through speech. I ran into some difficulties, especially with the email module since you have to specify a carrier and thus either have to use a single carrier (I just used gmail) or ask the user for a carrier and then branch depending on what they answered.

Meet N Eat
Look for nearby dining locations, broadcast where you are going, and see if other people in the area are going to the same spot.

Meet N Eat modules

Nearest Neighbor
Allows users to list their current locations as they're driving, and find out which other drivers are nearby that have also listed themselves as available. Aimed for the social aspect that seems to be incredibly popular in apps these days, but I abandoned this after I realized the potential for stalker abuse was too high.

QuickFuse Summary
QuickFuse is a really convenient web application for designing IVR (interactive voice response) apps, and it's cool to see how their backend processes voice pretty well. However, while testing my app I ran into the philosophy of voice apps - how they might be more convenient than what we have now?

Pros:
-After the initial dial, does not require further physical interaction.

Cons:
-Talking to a machine isn't the same as talking to a person.
-The speech recognition is far from perfect - accents, homonyms, numbers all have some issues. Numbers were especially annoying because they cannot be clumped and have to be said in a specific, digit-ized way.

Check out http://quickfuseapps.com/ if you're interested in playing around with this. They give you free call quota on sign up.

Operational Amplifiers


Name: Operational Amplifiers
Status: complete
Affiliation: 18-220 Electronic Devices and Analog Circuits Lab 5
Group members: Frank
Start: 2/24/2011
End: 2/24/2011

Description:
In this lab we messed around with various op amp circuits and analyzed the non-ideal behavior that is exhibited. We used the LM741 which has the pinout below:


We experimented on the inverting opamp and summing amplifier. Two limitations that we examined were the non-ideality of zero differential voltage input, as well as the output voltage limitations. Below are some oscilloscope pictures that show what happened when we increased the input voltage until saturation begins to occur:






Thursday 10 February 2011

CMOS Inverter Layout

Name: CMOS Inverter Layout
Status: complete
Affiliation: 18-220 Electronic Devices and Analog Circuits Lab 3
Group members: Frank
Start: 2/9/2011
End: 2/9/2011

Description: Using L-Edit (layout editor), designed a minimal CMOS inverter using n-channel and p-channel transistors. The transistor depiction of an inverter is as follows:
We were given the constraints of λ = .5 uM, Z_n = 20 uM = 40 λ, and Z_p = 60 uM = 120 λ. In both channels, L = 2 (minimum possible L) because there were no additional constraints on it.

Lessons Learned:
-introduction to layout design in L-Edit
-minimal design rules
-using DRC to check whether or not I pass minimal design rules
-taking layout cross sections
-testing separate components helps identify which part of your layout is wrong - this applies to EVERYTHING, including unit testing, classes, modules, etc.

yes, that's a big X through our entire design...

designed whole layout in one shot, then used the DRC tool. frustration ensued.


finalized inverter layout

Saturday 5 February 2011

Mixing Music 1

First few songs made using Virtual DJ.


In this song, I tried to line up the two beats. Resulted somewhat nicely in a "canon" but not really.

Random effects

Had a flanger on the whole time. Interesting sound. Also tried using beat patterns but still need to find out more about how they're generated. Another effect I wanted to try is dubstep, so I need to find the files for that.

Overall, I'm thinking about using the Virtual DJ software to slap together songs (there's only a limit of two tracks though it seems...) and Audacity for fixing up the signals.
Another software that I need to look into is Acoustica Mixcraft, which supports multiple tracks but for me has a steep learning curve.

Tuesday 1 February 2011

Something Cool 1

I've decided to also post interesting videos, pictures, whatever. These will have titles "Something Cool N".

Today's subject is a cool trick for seeing infrared light.

Infrared is a type of electromagnetic radiation. It is invisible to the naked eye because it has a longer wavelength than visible light, so it is outside of our range. It is commonly depicted as thermal radiation, such as those airport machines that check your body temperature to make sure it's not abnormally high. Although our eyes aren't capable of seeing infrared light on their own, cameras are able to detect it thanks to their infrared filters.



Oooo purple.

Monday 31 January 2011

Parity Coding

Name: Parity Coding
Status: complete
Affiliation: 18-240 Structure and Design of Digital Systems Lab 1
Group members: Arlene
Start: 1/23/2011
End: 1/27/2011

Description: Implements parity coding, which is a safety caution that adds one bit to a code word. This extra bit allows error detection when any one bit in the code word is corrupted. In an even parity code, the parity bit is set so there is an even number of 1 bits in the code word, while in an odd parity code, the opposite occurs. An interesting fact to note is that the odd parity bit can be computed as the negation of the even parity bits. The primary limitation with parity coding is that it can be assumed to be correct IFF single-bit errors are the only possible sources of corruption.

Notable issues with parity coding:
-Does not tell you how many errors
-Does not tell you where the errors are
-Can miss errors if they are of the correct parity

What I learned:
-introduction to System Verilog
-parity coding
-assigning logic inputs and outputs to pins on the hardware (xilinx spartan 3)


Asserts 1 when code word is inconsistent. In the video, I increment the input from 0 to 63.






Monday 17 January 2011

Sign Language to Braille Glove ( --> Simon Says)

Name: Sign Language to Braille (--> Simon Says)
Status: somewhat complete
Affiliation: Build18 (build18.org)
Group members: Justin, Kee Young
Start: 1/10/2011
End: 1/14/2011

Description: The glove began with the intention of converting sign language to braille by taking gestures as inputs and returning braille as output using an LED array. The LED array currently acts as a proof of concept because making a mechanical device that can output real braille is a substantial project in its own right.
However, we ran into some problems:
1. Didn't think about how many analog inputs we needed. Unfortunately, Arduino Duemilanove only has 6, so we weren't able to attach all of the flex sensors and an accelerometer. Unfortunately, we weren't able to get our hands on a multiplexer. Should probably consider investing in a Mega.
2. LED array didn't have the pins we wanted, as well as an outdated data sheet. We weren't 100% sure how to use it without blowing it up so we decided to use wire six individual LEDs instead and control them separately.

The lack of analog inputs prevented us from using all of our sensors, which meant we wouldn't have very accurate gesture recognition. As a result, at 8pm the day before build18 demos, we decided to rewrite our software. We kept the same hardware for the most part (removed two flex sensors, removed accelerometer).
In the end, our final product was a simon says game where a number of LEDs are lit and you have to gesture how many are lit. The sequence gets increasingly longer as you get more sequences correct.

What I learned:
1. Be prepared when ordering parts under strict timelines. Have foresight.
2. Be wary of how many digital/analog I/Os you have and how many you actually need.
3. Have backup plans for when you don't have foresight.
TBA: circuit diagram, parts list, cost, code









Speaker

Name: [A Single] Speaker
Status: Complete
Affiliation: self
Start: Summer 2010
End: Fall 2010

Description: Basic circuitry for a single speaker. Based off of sparkfun's tutorial
TBA: circuit diagram




Sunday 16 January 2011

Simple Light Switch

Name: Simple Light Switch
Status: Complete
Affiliation: self
Start: Summer 2010
End: Summer 2010

Description: Basic circuitry for a light switch
TBA: circuit diagram