<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nicholas Kwan &#187; project</title>
	<atom:link href="http://nicholaskwan.com/tag/project/feed/" rel="self" type="application/rss+xml" />
	<link>http://nicholaskwan.com</link>
	<description>Technology, Hobbies, Life</description>
	<lastBuildDate>Sat, 10 Apr 2010 17:50:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>EECE310 Project at UBC: WarGame</title>
		<link>http://nicholaskwan.com/2009/06/27/eece310-project-at-ubc-wargame/</link>
		<comments>http://nicholaskwan.com/2009/06/27/eece310-project-at-ubc-wargame/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 21:31:13 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[eece310]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[wargame]]></category>

		<guid isPermaLink="false">http://nicholaskwan.com/?p=397</guid>
		<description><![CDATA[In my first term of 3rd Year, (Jan &#8211; Apr 2009) I was involved in a group project for EECE310, a course teaching software programming techniques and conventions such as procedural abstractions, exceptions, data abstractions, iteration abstractions, type hierarchies, polymorphic abstractions in Java.  Our professor often stressed that these skills were transferable to other object [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In my first term of 3rd Year, (Jan &#8211; Apr 2009) I was involved in a group project for EECE310, a course teaching software programming techniques and conventions such as procedural abstractions, exceptions, data abstractions, iteration abstractions, type hierarchies, polymorphic abstractions in Java.  Our professor often stressed that these skills were transferable to other object oriented programming languages.</p>
<p>We chose to create a modified version of the popular Risk Board Game, but the main thing is that we are going to make it free, open-source, and multiplayer.  The version that we submitted was multiplayer and can be launched on the same computer.  Here is a video to showcase how it works and how to run it on your machine (and you get to hear the sound of my voice and remember to watch in HD at the youtube site).</p>
<p><object width="853" height="505"><param name="movie" value="http://www.youtube.com/v/qORkGzciSbM&#038;hl=en&#038;fs=1&#038;color1=0x2b405b&#038;color2=0x6b8ab6&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qORkGzciSbM&#038;hl=en&#038;fs=1&#038;color1=0x2b405b&#038;color2=0x6b8ab6&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="426" height="252"></embed></object></p>
<p>The three of us are still developing the game and improving it, I will keep you updated!</p>
<p>Files can be found <a href="http://nicholaskwan.com/wp-content/uploads/WarGame.7z">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicholaskwan.com/2009/06/27/eece310-project-at-ubc-wargame/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compact Tube Hybrid (CTH) Headphone Amplifier</title>
		<link>http://nicholaskwan.com/2009/06/27/compact-tube-hybrid-cth-headphone-amplifier/</link>
		<comments>http://nicholaskwan.com/2009/06/27/compact-tube-hybrid-cth-headphone-amplifier/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 21:13:26 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
				<category><![CDATA[Audio]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Compact Tube Hybrid]]></category>
		<category><![CDATA[CTH]]></category>
		<category><![CDATA[k702]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://nicholaskwan.com/?p=380</guid>
		<description><![CDATA[I recently finished my Compact Tube Hybrid (CTH) amp for my K702 and it turned out great.  This project improved my skills troubleshoot a complex circuit on a small board, there were some mistakes while building this amp but for the most part it turned out great.  So, when I placed everything on [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I recently finished my Compact Tube Hybrid (CTH) amp for my K702 and it turned out great.  This project improved my skills troubleshoot a complex circuit on a small board, there were some mistakes while building this amp but for the most part it turned out great.  So, when I placed everything on the table, I had the following:<br />
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/setup.JPG' rel='lightbox[amp/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=amp%2Fsetup.JPG&amp;thumb=1' alt='setup.JPG'  /></a></div><div class='thumb_caption'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/setup.JPG' rel='lightbox[amp/]'>Parts and Board</a></div></div></p>
<p>And a close up of the board.<br />
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/board.JPG' rel='lightbox[amp/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=amp%2Fboard.JPG&amp;thumb=1' alt='board.JPG'  /></a></div><div class='thumb_caption'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/board.JPG' rel='lightbox[amp/]'>The Unpopulated Board</a></div></div></p>
<p>The <a href="http://cavalliaudio.com/cth/main.php?page=overview">webpage</a> for the amp covers the building and testing process very carefully, but on top of what was on the website, I found a few things to look out for.  Reading the resistors that came with the kit was a little challenging at first because it wasn&#8217;t the conventional color bands, the most important thing to realize is that the first three numbers of the resistor is the value and the forth digit is how many zeros are behind the value.  Ie 1003 is 100 x 10^3 which is 100,000.  You have to be especially careful with resistors with less than 100 because you have the R in the value.  For example, 22R1F is 22.1 Ohms, not 220&#8230; that was one of the things that messed me up and it&#8217;s hard to unsolder components on this tight board.</p>
<p>Check all the components before you solder, Bill left out my 1k resistor but being in EECE, I had tons of 1k resistors in my kit; you might not be so lucky.</p>
<p>Follow the build order listed on Alex&#8217;s website, as in solder each component in the order he specified.  If you solder a couple of capacitors and then some heat sticks in random order you will most likely get to a component that will be extremely difficult to solder.</p>
<p>Double check each resistor in tombstone placement to make sure that they are in the right place.  Because you have so few resistors left when you do the tombstone placements, you might get too jumpy and that&#8217;s how I switched by R8 and R9 and got the LED to go from Green to Green instead of Red to Green (ie. e12 not working).  </p>
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/parts.JPG' rel='lightbox[amp/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=amp%2Fparts.JPG&amp;thumb=1' alt='parts.JPG'  /></a></div><div class='thumb_caption'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/parts.JPG' rel='lightbox[amp/]'>About Halfway Done</a></div></div>
<p>The number of capacitors did create doubts if I soldered things in the right place, but I hope my picture will help you out and remember to use your WIMA caps if you purchased them (edit: I think they come standard now)!  Often times, if the components fits the white outline, it most likely is in the right place.<br />
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/done.JPG' rel='lightbox[amp/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=amp%2Fdone.JPG&amp;thumb=1' alt='done.JPG'  /></a></div><div class='thumb_caption'><a href='http://nicholaskwan.com/wp-content/lg-gallery/amp/done.JPG' rel='lightbox[amp/]'>Complete!</a></div></div></p>
<p>I will clean up the wires in the near future and put the top casing on, will upload more pictures when I finish that.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicholaskwan.com/2009/06/27/compact-tube-hybrid-cth-headphone-amplifier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inclinometer</title>
		<link>http://nicholaskwan.com/2009/06/07/inclinometer/</link>
		<comments>http://nicholaskwan.com/2009/06/07/inclinometer/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 01:20:38 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[281]]></category>
		<category><![CDATA[eece]]></category>
		<category><![CDATA[inclinometer]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://nicholaskwan.com/?p=371</guid>
		<description><![CDATA[During my second year at UBC, one of the projects we had to do was an Inclinometer.  The idea behind this was to design a capacitor using a petri-dish and aluminum foil covering half the petri-dish and using water as the dielectric.  Because the capacitor had only half the water to fill it [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>During my second year at UBC, one of the projects we had to do was an Inclinometer.  The idea behind this was to design a capacitor using a petri-dish and aluminum foil covering half the petri-dish and using water as the dielectric.  Because the capacitor had only half the water to fill it and only half of petri dish had aluminum, the capacitance across the capacitor would be different with different angles.  When the dielectric between the capacitor plates is 100% water, the inclinometer’s angle is treated as zero degrees.   When none of the water is between the plates and is all of it is between the plastic sides, then it is considered to be at 180 degrees.  The capacitance is used by a LM 555 Astable circuit, which in turns generates a frequency for the microprocessor.  The microprocessor measures the frequency in Hertz, converts it to an angle in degrees through a pre-generated lookup table arrived at experimentally, then displays it on a 4-digit 7-segment display.<br />
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/inclin/inclin1.jpg' rel='lightbox[inclin/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=inclin%2Finclin1.jpg&amp;thumb=1' alt='inclin1.jpg'  /></a></div><div class='thumb_caption'></div></div><br />
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/inclin/inclin2.jpg' rel='lightbox[inclin/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=inclin%2Finclin2.jpg&amp;thumb=1' alt='inclin2.jpg'  /></a></div><div class='thumb_caption'></div></div></p>
<p>DESCRIPTION</p>
<p>Capacitor</p>
<p>      The capacitor was made with a petri dish, aluminum tape, electrical tape, and wires connecting it to the LM555 timer.  The dish was pasted together with silicon and aluminum tape put on exactly half the surface area on the circle.  The aluminum tape semi-circles are lined up with each other making two parallel metal plates forming the basis of a capacitor.  A hole was then drilled in the petri dish, so it could be filled with a dielectric.  The amount of water that is between the aluminum tapes will affect the capacitance that is sent it to the astable circuit.  After the capacitor was built, slight leakage occurred over time. Tape was applied to the sides of the capacitor, sealing it and giving it a slick design.  See Appendix B for pictures. </p>
<p>Measured diameter: 0.14m<br />
Measured thickness: 0.015m<br />
Water dielectric constant at 20o: 80.1</p>
<p>Capacitive surface area: 0.5 ( π r2 ) = 0.0049π /2  m2<br />
Theoretical Cmax = ЄS /d = (80.1) (8.85 E -12) (0.0049 π ) / (0.015) (2)</p>
<p>   = 3.637 E -10 F</p>
<p>Measured Cmax ~= 90 pF</p>
<p>Astable Circuit</p>
<p>      The circuit is based on the LM555 timer IC, connecting it to two resistors and a capacitor.  This in turns creates a frequency as an output that is sent to the microprocessor.  The circuit is built in the following manner (See Figure 2).    </p>
<p>Figure 2 Astable Circuit [1]</p>
<p>To derive the formula for the oscillator we use the formula equations:</p>
<p>vC = VCC – (VCC – VTL )  e –t/C(RA+RB)</p>
<p>Where we have t = 0 is when the interval TH begins.  Having vc = VTH = 2VCC/3 at TH and VTL = VCC/3, then:</p>
<p>TH= C(RA+RB) ln2</p>
<p>vC = VTHe-t/CRB</p>
<p>This is for the beginning of the interval TL.  Then we substitute vC = VTL=VCC/3 at t = TL</p>
<p>TL = CRB ln 2</p>
<p>Combining TL and TH, we have T = 0.69 C (RA + 2 RB)                               Equation (1)</p>
<p>The value chosen for the resistors was ideally 20k Ohms.  R2 was constant but R1 was a variable resistor and 14.7 k Ohms in series, making analog adjustments more accessible when dealing with calibration.  The petri-dish capacitor did not have a capacitance high enough to show a readable frequency in some cases, so we put a 0.47 nano-Farads capacitor in parallel. </p>
<p>Using the Equation (1), we can figure out the capacitance that we need to get a certain frequency and vice versa. </p>
<p>7 Segment LED Display</p>
<p>      The 7 Segment display is connected to the microprocessor as follows:</p>
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/inclin/inclin3.jpg' rel='lightbox[inclin/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=inclin%2Finclin3.jpg&amp;thumb=1' alt='inclin3.jpg'  /></a></div><div class='thumb_caption'></div></div>
<p>Figure 3 Microprocessor to HEX display Circuit</p>
<p>This is from part of a bigger circuit designed by Dr. Jesús Calviño-Fraga found in Appendix A.  After an input frequency is sent to the microprocessor via pin 10, it’s processed result is output to the display. To reduce the number of pins needed, the display is multiplexed with four transistors, using the persistence of vision effect to create the illusion of steady numbers.  The 330 resistors regulates the current going into the LED’s and the 4.7k and 2.2k resistors is to regulate if the LED’s are on or off according to the output sent by the microprocessor.  We tested the segments by sending different signals to the pins and used the datasheet [2] to troubleshoot it when some segments were not functioning.    For the final version of our hardware, we simplified the circuit to a bare minimum, removing the 330 and 4.7k resistors. This increased the current drained, but made the project much more compact in case we had time to reassemble it in an enclosed container.</p>
<p>Software</p>
<p>      The frequency measurement code was based on the freq.asm example file provided with the project. The 7 segment display control code was also based on an example file, disp925.asm. The blocks in between were written from scratch. The byte to 4-digit decimal conversion was done with a successive loop algorithm [3] that incremented digits while subtracting 100s, 10s, and 1s from the byte – it took a while to figure out, but the end result was short and succinct. The frequency to angle code, however, is hideously long and makes up most of the program.<br />
Lookup Tables</p>
<p>      The lookup tables were used by the frequency to angle code to quickly convert a measured frequency to a corresponding angle. They were based on experimentally obtained data points, which were then processed in Excel. The processing consisted of plotting a graph, adding a trend line, then using the equation of the trend line to extrapolate the full range of frequencies from 0 to 180 degrees. The resulting frequencies were then all split into high and low bytes (to accommodate the 8051’s 8-bit architecture) and put into two separate tables, which could be copy and pasted directly into .asm files. A third table was generated for the digit after the decimal point; this way, using three separate lookup tables, we were able to search them all without overflowing byte-sized registers.</p>
<p>      The method of collection was with the Windows hyper terminal program.  After loading the frequency hex file into the microprocessor, we took measurements.  If we collect the values from the oscilloscope, they were different from the ones that were read from hyper terminal.  Because the value that the chip receives is the same as the one read on hyper terminal, the oscilloscope values that were taken had to be discarded.</p>
<p>Frequency to Angle</p>
<p>The measured frequency was in 16 bits, which caused a problem for the 8-bit processor. A 180-degree 2-byte lookup table couldn’t be covered with a 1-byte offset. An additional challenge was our goal of getting a 4 significant figure result  &#8211; which, if done with one lookup table, would need one 2 * 1800 bytes long. This would push the resourses of the LPC925 to their limits.</p>
<p>We chose an alternate method: we split our lookup table into three parts. The first two took care of the integer angle – no decimal point. Lookup table one, 181 bytes long, stored the high byte of 16-bit frequencies which most closely corresponded to certain angles. The code compared the high byte of the incoming frequency to lookup table one, and found the first value where the two were equal. Then lookup table two – the low byte – was compared. A value just under the input frequency was found, and its’ position in the table became the angle.</p>
<p>Overflows were an issue we ran into. If an input frequency was too high, it was easy to overflow the lookup tables and get into unknown memory. The processor usually froze at that point, forever displaying a single value. Overflow checks had to be added.</p>
<p>On the low byte lookup, care had to be taken to watch for the point where the table overflowed and started again from zero. Safeguards against this were put in.</p>
<p>Finally, once the integer lookup was working, decimal support was added. A third lookup table was created. The input frequency minus the frequency in the first two lookup tables was checked against the third lookup table. Its’ position relative to the values there gave the digit after the decimal point. Again, overflow checks were added – although this time there was existing code to base them on.</p>
<p>Evaluation<br />
      Testing the circuit as a whole required each independent part to be functional.  After the microprocessor can be flashed, the circuit built, and the 555 timer working the way it was supposed to, we fitted each part together and tried the code.  Because the angle displayed seems to vary after each slight change in environment such as distance away from the power supply, it was then that we added a varying resistor into our circuit.  This varying resistor, along with 14.7k Ohms in series, became the second 20k Ohms resistor part of the 555 timer. </p>
<p>      When we finished testing the circuit built on the two breadboards, we reformatted all the wiring and took out all unnecessary resistors, which turned out to be most of them (See Appendix C).  The only resistors left on the breadboard were the 2.2k resistors that controlled the circuit for the display and the resistors that controlled the frequency on the 555 timer.  One unexpected problem we encountered was that the thickness of the brown wire did not fit into some of the pin holes on the breadboard.  This resulted in a disfiguration in the wiring colour scheme.  Some of the wires that were supposed to be brown now become red.  After reformatting the breadboards, we kept one for solely having the purpose of programming the chip, and a second breadboard was to run the program with the 555timer.  Because the 3.3 k Ohms resistors were taken out, the LED segments were brighter, making it easier to see.</p>
<p>      After having the first three digits, our group wasn’t satisfied until we could achieve the fourth digit.  We then added the third lookup table, which calculated the digit after the decimal point by looking at how far above the 0-180 degree lookup frequency the measured frequency was.</p>
<p>      Our project, in the end, become very neat and had a very easy way to calibrate to 90 degrees with the varying resistor.  The design on the whole was easy to follow, and the code (after much, much debugging) was reliable and error-proof.</p>
<p>Ways of Improvement</p>
<p>      In the end, we ran into two significant problems when it came to accurate degree measurements: interference and calibration. At the last minute, a change was made to increase the update speed of the display by a factor of two. This was done by doubling the frequency of the LM555 square wave generator, which had unforeseen effects on the capacitor’s reliability. Moving a hand near one of the plates changed the reading by at least ten degrees – holding it in the wrong way caused shifts.</p>
<p>      This problem added to, and amplified the errors caused by our calibration procedure. Our hardware was separated onto two boards: one housed the computer communication components, while the other was a standalone inclinometer. We transferred the microcontroller back and forth when we had to flash it – and did our calibration measurements on the computer communication board. Significant differences in current draw and possibly interference between the two boards led to faulty lookup tables.</p>
<p>      Future versions should isolate the capacitor with a shield.  Soldering the circuit on a printed circuit board to reduce parasitic capacitance could also help.</p>
<p>Conclusion<br />
      Our project had some hiccups during the presentation, but the causes were isolated and simple solutions exist. We’re confident that, with a few modifications, better-than-required accuracy could easily be achieved. The most time consuming part was the assembler code – now that that’s done and proven to be reliable, remaining modifications can be fairly minor.</p>
<p>      An important difficulty we found is that the values below 20 degrees and above 160 degrees did not follow the rather linear pattern that was shown in the 20 – 160 degree range.  We tried to incorporate this irregularity by using polynomial fitting curves, but that negatively affected the linear section… In retrospect, a mix of both approaches would have worked best, with linear fitting for the central part and polynomial for the edges.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicholaskwan.com/2009/06/07/inclinometer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Walking Robot</title>
		<link>http://nicholaskwan.com/2008/06/27/walking-robot/</link>
		<comments>http://nicholaskwan.com/2008/06/27/walking-robot/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 23:26:00 +0000</pubDate>
		<dc:creator>Nicholas</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[walking robot]]></category>

		<guid isPermaLink="false">http://nicholaskwan.com/?p=579</guid>
		<description><![CDATA[My last completed project in High School was pioneering a walking robot for my teacher.  This was a robot that walked straight until it hit something in front of it, detected by the antennas, which then it would walk backwards and sideways a few steps, and go forward again.  The way the antennas [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>My last completed project in High School was pioneering a walking robot for my teacher.  This was a robot that walked straight until it hit something in front of it, detected by the antennas, which then it would walk backwards and sideways a few steps, and go forward again.  The way the antennas worked was that they created a closed circuit when the metal tube made contact with the long thin spring, ie when the antenna bent because of objects in front of it.</p>
<div class='lg_image' style='width:206px;'><div style='text-align:center'><a href='http://nicholaskwan.com/wp-content/lg-gallery/walkingrobot/walkingrobot.JPG' rel='lightbox[walkingrobot/]'><img class='thumb' src='http://nicholaskwan.com/wp-content/plugins/lazyest-gallery/lazyest-img.php?file=walkingrobot%2Fwalkingrobot.JPG&amp;thumb=1' alt='walkingrobot.JPG'  /></a></div><div class='thumb_caption'></div></div>
<p>He had attended a workshop where the designer of a walking robot showcased his robot and my teacher wanted to make one himself so he could teach students how to make one.  The electronics class was very open in the sense that students could choose their own projects.  I took the opportunity to create this robot according to the design given by my teacher because his wouldn&#8217;t work.  I built it from scratch and learned many things in the process.</p>
<p>The first thing I made by was circuit board.  The designer of the robot had provided my teacher with a schematic in Circuit Maker.  My teacher had the old fashioned way to etch a circuit board, he taught me to print the circuit using a toner printer and using a heat press to glue to toner from the paper to the copper board.  Then, I placed the circuit board in acid for about 30 minutes while the uncovered copper was dissolved off the board.</p>
<p>Assembling the board was very challenging because it was the first time I was faced with such a complex circuit, the previous circuits were built using mainly resistors and had about 10-15 components.  Now, I had to read the schematic and learn to read diodes and capacitors.  The sockets for both the IC&#8217;s and resistors were also challenging because I had to learn to solder multiple joints one after the other very quickly or the sockets would fall out of place.</p>
<p>The body was also fun to build as I had to but my own pieces with a saw mill.  I also had to solder capacitors to the motors to reduce electrical noise which I didn&#8217;t even know what it was at the time.  I did some researched and accepted that they were quite essential to the success of the project.  The antennas were also difficult to make because I had to make sure they weren&#8217;t so sensitive that the robot walking naturally would trigger the antennas and not too stiff so it would be stuck in a wall before they were triggered.</p>
<p>I am happy to say mine worked exactly the way we wanted to after many adjustments to the body.  The weigh distribution was hard to perfect because there were too many variables, where the legs touched the ground, weather the batteries were placed near the front or near the back, or weather the front or back was closer to the ground.  To date, this is my most memorable assignment/project/paper/event that happened in high school.</p>
]]></content:encoded>
			<wfw:commentRss>http://nicholaskwan.com/2008/06/27/walking-robot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
