This week in How To Make, I decided to focus on creating capacitive touch pads for my final project. My first attempt at designing, milling, soldering and programming my board was a FAIL. Unfortunately for me, I accidentally switched the VIN and GND pins for the barrel jack in my circuit design, resulting in a loud POP when I attempted to plug in the device to power. It totally exploded and fried the 5V regulator as I was using. Not to be deterred, I fixed my board and tried again (good practice milling and soldering). These were my results!
Figure 1: Flawed Design
Figure 2: Final Design
I built off my board from the output device week. Instead of using push buttons, I chose to work on capacitive touch pads. While a button requires one pin connection on the microcontroller, a capacitive touch pad requires to. This means, using the ATtiny44, I had exactly enough pins for my two capacitive touch sensors, the RGB Led and the speaker. In the future, I will move towards using breakout boards for modularity and efficiency in debugging. As mentioned earlier, there was a fatal flaw in my original design which resulted in an explosion. I fixed that in the subsequent design.
Figure 3: Milling the Board
Nothing new to report here. I was particularly proud of how shiny and smooth my solder joints were. I'm planning on using male pin cables to connect my vias to copper pads, but since I don't know the final dimension of my train, I decided to hold off.
Figure 4: Soldering Components to the Board
Figure 5: RGB LED responding to touch
I still haven't figured out how to get my speaker to make noise. Ugh. I'm going to meet with the TAs next week to continue to debug. However, I was able to program my input device. I followed this tutorial to install/use an Arduino library that communicates with microcontrollers over serial. Additionally, I incuded this library for reading touch capacitive sensors.
I learned an important lesson in using these built in libraries. They take up a lot of memory on the microcontroller. So much so that reading one touch capacitive pad took up 98% of the memory on my ATTiny44 microprocessor. So, even though I was able to program the capacitive touch sensor, I wasn't able to program two at once or add delays to my program. This is problematic and a great example of why C is super useful for programming microcontrollers.