So what do I think of school so far? To be honest it's hard to make a clear judgement from the first year alone. Since my school employs a first year "general engineering" curriculum it was hard to get excited for studying things that would almost go into the waste bin the moment I hand in my final exam. Though I won't be using fluid dynamics or statics during the rest of my education, there were still valuable concepts we learned that are general and broad enough to transfer to all aspects of engineering, which I appreciate. However it would have been nice if I could get right into the electronics theory and physics while learning those same general concepts as in fluid dynamics and statics. I understand why the school has this type of curriculum, for those students who don't really know what they want to get into, but I've already been through an electronics technology program and it would have been nice if I could have tailored my first year a bit more to what I want. Regardless, I got very good grades and I still took something away from every class, and I think if you complain about that you're just making a fuss out of nothing.
My school definitely seems to be more tailored towards mechanical engineering though. You would think that for a year where you give all the students a taste of what could lie ahead you would include SOME form of electronics. As previously stated I did not need any sample of that sort, but I feel like a lot of my classmates could really get engaged with electronics. Unfortunately for the most part the opportunity just wasn't there. I've actually joined the IEEE student branch recently and I might be volunteering to make some presentations on these sorts of topics to get students engaged in learning outside of the classroom. I've heard stories about students in the later years of their education being nearly clueless about some pretty basic practical concepts that I could definitely help with, so we'll see how that goes.
In case you're wondering, no. No there is no way I would not include electronics in my "general" classes. One course we took was called "Technical Communications" and was basically all about proper use of e-mail, workplace etiquette etc etc. It was one of those classes with the dreaded final group project worth 30% of your mark. Luckily, when our professor announced the project to us, she revealed that we would be building something with Lego. Programmable Lego. Bingo, jackpot, hallelujah. A marriage of my childhood toy and my young-adulthood toy. (this was the Lego kit we were given). She stated that the project was primarily a writing assignment due to the massive product proposal document, so I was a little bummed out. On top of that, the subject of what we were building was "something that could teach somebody something" which I find rather limiting and kinda lame but no big deal. We would come up with something neat either way.
Fast forward a bit and our group ended up going with a robot that could teach a child basic colours. We would have the robot feed a gumball from a hopper into a colour sensing compartment where the colour would be identified and the gumball would be dispensed into its colour-sorted pile. We would have liked to have some kind of remote input from the user that would make the learning process more engaging but that was a lot of work and this was "primarily a writing assignment". Unfortunately, there was a lot of studying to be done and a lot of other assignments so we did not go that far. However, the Lego kit did not come with a colour sensor, but I reassured my team that we had a hidden super power: a geek with an electronics fabrication lab in his room.
Thus the design process of a colour sensor began. First I had to figure out how conventional colour sensors work, and of course there is a selection of integrated circuits that handle the raw colour sensing part. I ended up choosing the TCS3200 as it had an easily manageable package and had a relatively basic order of operations. The chip contains an array of different photodiodes filtered for red, green, blue and clear (for light intensity). Basically, when a photon with enough energy hits the photodiode, it causes an electron in the connected circuit to move. Using this principle, when the chip is under a light source, a certain amount of current is produced proportional to the amount of light that enters the chip. So, if I shine a red light on the chip and select the red filtered photodiodes (by use of one of the pins on the chip), a current proportional to the intensity of red light is used to drive a variable frequency driver, and a pulsed-square wave with a frequency proportional to the current (and thus, light intensity) is output on the chips output pin (sorry if that's a little wordy, it's the shortest and most descriptive way I could put it). All that has to be done to detect the actual colour is measure which frequency (intensity) for each RGB colour the chip is exposed to, and the colour can be determined.
In order to realise this design, several functions would have to be covered. 3 white LEDs were used to act as a light source that would shine light on the gumball, and the reflected light would contain the same wavelengths of light that we see when we look at the gumball (since we usually have white light as a light source in daily life). Next, a microcontroller was used to count the pulses output from the TCS3200 over a predefined span of time (0.25 sec) to calculate the frequency of the selected colour which was also selected by I/O pins on the microcontroller. Other than the colour sensor itself, there needed to be a communication link between the Lego brain box and the colour sensor. Through much research, it was clear the best method was to use the I2C protocol (pronounced "I - squared - C"). I won't get too into it here, because it's a rather lengthy subject, but for those that are interested the Wikipedia page offers a good introduction. Basically it offers a serial communication protocol for a master-slave hierarchy. The master device (Lego brain box) selects which slave device (colour sensor) to communicate with and requests a certain amount of data that the slave will then send back. It's a very robust protocol and it's actually used very widely in many industry applications including all the accelerometers and gyroscopes in smartphones.
I designed the PCB in the Altium deign suite that I believe I mentioned in a previous post, so go check that out for more of my thoughts on it. This time however, I went for the whole nine yards and developed a 3D model of the circuit with all the bells and whistles. Very satisfying to say the least. Here's a screenshot of what you can do in Altium extremely quickly and efficiently:
As you can see, it's a fairly basic PCB (with the connector on the right-side missing since I had to modify the placement at the time of taking this screenshot). The 3 white bulbs are the LED's with the black chip in the center being the TCS3200. In reality the chip is clear but what was important for the model was the geometry of course. The other black chip is the PIC16F1503 microcontroller used to count the output frequency from the TCS3200 and act as the slave device in the I2C circuit.
I also designed a Lego-style enclosure for the colour sensor so we could easily mount it to our robot in the classic Lego fashion. Here's some images of the model and my CNC machine milling out the parts.
On the left is the assembly exploded and on the right is the assembled sensor. Here it's obvious how useful Altium really is. I can easily export the model created in the software suite (the purple-shaded piece you see in the middle of the assembly), and use it in my CAD programs as an exact reference to what the assembled circuit will be. Absolutely brilliant.

This is my CNC machine milling out the parts.

This is the PCB which was also milled on my machine. Here I have't yet finished the fabrication, as I accidentally broke a leg off the fragile TCS3200 and had to order a new one, but it illustrates what the real circuit looks like

The completed circuit in the enclosure. It turned out really well and worked just fine with some calibration and quick programming.

Some images of the assembled robot. Looks like a mess and that's because it kind of was. We needed a motor to drive the robot back and forth, one to drive the feeding mechanism, and one to actuate the dispensing mechanism. The entire robot needed to have a small footprint so we decided to build vertically. It ended up functioning as planned and we had a really great presentation.
Since there were so many groups that had to present, by the time we went up it was more of a "lets get this over with" for the entire class and professor (especially due to some of the robots we saw.... which I wont get into). I don't think I got the point across of how much work I put into designing the colour sensor, as even the professor said at the beginning of the course that this was primarily about writing so I didn't really get into it, but all the recognition I needed to feel accomplished with what I did comes from the satisfaction of actually doing it. I learned a lot while building the colour sensor and programming the robot, and at the end of the course I felt I made it at least ten times more valuable than "just a writing class".
So my first year went pretty well. I learned a lot both in and our of class. If I continue at the pace that I'm going at now, who knows what will be possible by the time I graduate.
This post has ended up being extremely lengthy, so I'm going to end it here. If anyone wants more details, feel free to comment. Thanks for reading.