<?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>Negative Acknowledge</title>
	<atom:link href="http://negativeacknowledge.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://negativeacknowledge.com</link>
	<description></description>
	<lastBuildDate>Wed, 06 Jul 2011 20:00:57 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>2010/11: Stuff That Happened</title>
		<link>http://negativeacknowledge.com/2011/07/201011-stuff-that-happened/</link>
		<comments>http://negativeacknowledge.com/2011/07/201011-stuff-that-happened/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 20:00:57 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=96</guid>
		<description><![CDATA[So it&#8217;s been over a year since I posted about that NERF turret! I&#8217;ve not been totally idle since but nothing&#8217;s really finished to a high enough standard to blog about. Instead, here&#8217;s a post of almost-finished projects, crushed dreams and lost hopes! July 2010: I built this pretty firefly from some paperclips, LEDs and [...]]]></description>
				<content:encoded><![CDATA[<p>So it&#8217;s been over a year since I posted about that NERF turret! I&#8217;ve not been totally idle since but nothing&#8217;s really finished to a high enough standard to blog about. Instead, here&#8217;s a post of almost-finished projects, crushed dreams and lost hopes!</p>
<p><strong>July 2010: </strong>I built this pretty firefly from some paperclips, LEDs and an ATtiny. It lights up when you hold it, and sleeps the rest of the time. When it lights up, though, it pulses pretty firefly patterns using an 8-bit pseudo-random shift register.</p>
<a href="http://www.flickr.com/photos/randomskk/4835953772/" title="Firefly" rel="flickr-mgr" class="flickr-image"><img src="http://farm5.static.flickr.com/4086/4835953772_d24507d3d0.jpg" alt="Firefly" class="flickr-medium" title="A little firefly made of paperclips, at ATtiny13 and an LED. It capacitively senses its body to determine if it is being touched, waking up every ten seconds or so on watchdog to do this.
If it's being touched, it'l start pulsing its LED gently, flashing a random number of times for a random duration each time before going back into a deep sleep." longdesc="" /></a>
<p><strong>August 2010: </strong><a href="http://hexoc.com">Jon</a> and I soldered up the first revision of SelWX, which took ages due to some bent pins on the STM32. Sadly we never got around to writing much code for it so while we got it pinging, that&#8217;s about it for r1. We&#8217;ll probably do an r2 fairly soon with easier hardware and try to get something working.</p>
<a href="http://www.flickr.com/photos/randomskk/4869361557/" title="SelWX r1 Soldered" rel="flickr-mgr" class="flickr-image"><img src="http://farm5.static.flickr.com/4118/4869361557_f683348c8b.jpg" alt="SelWX r1 Soldered" class="flickr-medium" title="After hours spent carefully reworking the ARM (it arrived with some pins bent inwards, which wasn't noticed until after reflow, where they held it up and all the other pins didn't touch the pcb) and many more hours spent going over everything to work out why it wasn't programming, it suddenly started programming! hurrah" longdesc="" /></a>
<p><strong>October 2010: </strong>I wanted to make my long coat light up, so I sewed 20 lillypad LEDs into it. It worked, but only very briefly before my power busses broke, and sadly I didn&#8217;t get any photos of it in action. I&#8217;ve got the parts to redo it for this winter season though =D</p>
<p><strong>January 2011: </strong>Jon and I tried to make a small FM radio transmitter, but it didn&#8217;t work. We didn&#8217;t have much time to investigate why. I also made a nightlight out of epoxy and coloured dyes and LEDs and all that, but sadly don&#8217;t have any photos.</p>
<a href="http://www.flickr.com/photos/randomskk/5311110792/" title="FM bug" rel="flickr-mgr" class="flickr-image"><img src="http://farm6.static.flickr.com/5282/5311110792_98f9b5a354.jpg" alt="FM bug" class="flickr-medium" title="" longdesc="" /></a>
<p><strong>May 2011: </strong>I took apart this NERF gun to try and mod it to be fully electronically automatic, with a micro stepper motor mounted inside the clip and a small solenoid actuating the mechanism. Unfortunately the mounting hardware involved proved really complex, and a surprisingly amount of force was required to actuate, so nothing really came of this (but now I have some steppers, solenoids and drivers in my spare parts&#8230;)</p>
<a href="http://www.flickr.com/photos/randomskk/5697772938/" title="Nerf Barricade" rel="flickr-mgr" class="flickr-image"><img src="http://farm6.static.flickr.com/5190/5697772938_a731673172.jpg" alt="Nerf Barricade" class="flickr-medium" title="I disassembled this Barricade a bit (not all the way!) to see how much space is inside for 'additions'." longdesc="" /></a>
<p><strong>June 2011: </strong>I made this breakout board for an ADF7012 radio to test out some new telemetry ideas for CU Spaceflight. It&#8217;s not working yet, but hopefully soon&#8230;</p>
<a href="http://www.flickr.com/photos/randomskk/5909357111/" title="ADF7012 breakout board" rel="flickr-mgr" class="flickr-image"><img src="http://farm7.static.flickr.com/6010/5909357111_06993f79f5.jpg" alt="ADF7012 breakout board" class="flickr-medium" title="A breakout board for the ADF7012 radio IC, for testing purposes!

Photo by: Jon Sowman" longdesc="" /></a>
<p>Anyway maybe now I&#8217;ll do some more hardware stuff and actually blog about it in time!</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2011/07/201011-stuff-that-happened/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Automated NERF turret</title>
		<link>http://negativeacknowledge.com/2010/06/automated-nerf-turret/</link>
		<comments>http://negativeacknowledge.com/2010/06/automated-nerf-turret/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 16:35:25 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Arduino]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=88</guid>
		<description><![CDATA[So, exams are finally over and I&#8217;ve had time to get playing with something again. Some friends bought me a NERF Vulcan for my birthday (cheers!) and of course I had to mod it up. The gun itself is now running off a 3-cell lipo pack, which about doubles the rate of fire, and has [...]]]></description>
				<content:encoded><![CDATA[<p><a class="flickr-image aligncenter" title="Automatic NERF EBF-25 Turret" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/4711476211/"><img class="flickr-medium" src="http://farm5.static.flickr.com/4019/4711476211_5334eb34fe.jpg" alt="Automatic NERF EBF-25 Turret" /></a></p>
<p>So, exams are finally over and I&#8217;ve had time to get playing with something again. Some friends bought me a NERF Vulcan for my birthday (cheers!) and of course I had to mod it up. The gun itself is now running off a 3-cell lipo pack, which about doubles the rate of fire, and has three ammo belts chained together to give 74 rounds in one continuous burst of fire.</p>
<p><a class="flickr-image aligncenter" title="Automatic NERF EBF-25 Turret" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/4712116676/"><img class="flickr-large" src="http://farm5.static.flickr.com/4011/4712116676_347aac154d.jpg" alt="Automatic NERF EBF-25 Turret" /></a></p>
<p>I then hooked up an Arduino and servo motor to a series of cabletied pencils, which can pull the trigger on command. The Arduino and a USB webcam then connect to a laptop which is running motion and a small python script which interfaces to the Arduino and plays sound clips from Portal turrets when motion is detected/no longer detected.</p>
<p><a class="flickr-image aligncenter" title="Automatic NERF EBF-25 Turret" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/4711478303/"><img class="flickr-large" src="http://farm2.static.flickr.com/1275/4711478303_9c9dd1bc7b.jpg" alt="Automatic NERF EBF-25 Turret" /></a></p>
<p>The whole thing works very nicely, shooting down anyone who walks into my room with a rapid burst of darts, and terrifying them with the portal turret sounds.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/wrWUhVeEcHk&amp;hl=en_GB&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/wrWUhVeEcHk&amp;hl=en_GB&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube-nocookie.com/v/-FBXKrU1Jec&amp;hl=en_GB&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube-nocookie.com/v/-FBXKrU1Jec&amp;hl=en_GB&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Check out <a href="http://www.flickr.com/photos/randomskk/sets/72157624178093055/">http://www.flickr.com/photos/randomskk/sets/72157624178093055/</a> for more photos!</p>
<p>I modified Principia Lab&#8217;s servo code from <a href="http://principialabs.com/arduino-serial-servo-control/">here</a> and <a href="http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome">motion</a> and Portal turret sounds from Valve&#8217;s <a href="http://orange.half-life2.com/portal.html">Portal</a> and the code below for controlling motion and the arduino and playing the sound files:</p>
<p><script src="http://gist.github.com/443851.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2010/06/automated-nerf-turret/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Ferret: High Altitude Balloon Tracker</title>
		<link>http://negativeacknowledge.com/2010/03/ferret-high-altitude-balloon-tracker/</link>
		<comments>http://negativeacknowledge.com/2010/03/ferret-high-altitude-balloon-tracker/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 21:38:39 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[high altitude ballooning]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=83</guid>
		<description><![CDATA[I&#8217;m part of CU Spaceflight, and since we have clearance to launch high altitude balloons from a few nearby locations we often do launches for other people. A lot of the time these launches have a radio transmitter on board, so that people around the country can pick up its GPS position and help keep [...]]]></description>
				<content:encoded><![CDATA[<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>I&#8217;m part of <a href="http://www.srcf.ucam.org/~cuspaceflight/">CU Spaceflight</a>, and since we have clearance to launch high altitude balloons from a few nearby locations we often do launches for other people. A lot of the time these launches have a radio transmitter on board, so that people around the country can <a href="http://ukhas.org.uk/guides:tracking_guide">pick up its GPS position and help keep track</a> of the balloon&#8217;s location. We were helping with a launch a few weeks back which didn&#8217;t have a radio transmitter, but instead planned to rely on a GSM based system to text the GPS coordinates back. <a href="http://www.hexoc.com/wb/pages/ferret.php">Jon Sowman</a> and I decided to whip up a small radio tracker based on some work that had previously been done by Iain Waugh at CUSF. Six hours later, we&#8217;d completed Ferret 1!</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>It consists of an Arduino with some stripboard stuck on top. The strips on the stripboard were cut down the middle with a dremel, then we soldered some pin headers on to mate with the power and lower digital pins on the arduino. We didn&#8217;t need any of the higher digital pins, so the alignment issue wasn&#8217;t a problem. We then stuck an EM-406a GPS unit and a <a href="http://www.radiometrix.co.uk/products/ntx2nrx2.htm">Radiometrix NTX2</a> on top along with a few required resistors and capacitors. The radio requires an antenna, which we constructed out of some mini coax soldered to the stripboard, a small square of copper clad board with a hole drilled through and five 17cm long bits of single core wire. Four of the wires were soldered onto the corners of the copper clad board sticking outwards, while the fifth was soldered to the centre conductor of the coax. This results in a quarter-wave antenna with a ground plane, which is great because almost all the radiation goes downwards in a fairly nice pattern.</p>
<p>Antenna done, we hacked up Iain&#8217;s code and flashed that onto the arduino and gave the whole system a quick test with a radio lying around the lab:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=08fe2449a9&amp;photo_id=4414453230&amp;flickr_show_info_box=true&amp;hd_default=false" /><param name="bgcolor" value="#000000" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=71377" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" allowfullscreen="true" bgcolor="#000000" flashvars="intl_lang=en-us&amp;photo_secret=08fe2449a9&amp;photo_id=4414453230&amp;flickr_show_info_box=true&amp;hd_default=false" data="http://www.flickr.com/apps/video/stewart.swf?v=71377"></embed></object></p>
<p>This was successful, so we put the whole thing in a box, taped it down and were ready to go!</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>We duct taped it to the main payload and launched it the next morning.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.dailymotion.com/swf/video/xchspy" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="360" src="http://www.dailymotion.com/swf/video/xchspy" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<strong><a href="http://www.dailymotion.com/video/xchspy_ukhas-church-hill-site-project-orio_webcam">UKHAS Church Hill Site Project Orion</a></strong><br />
<em>Uploaded by <a href="http://www.dailymotion.com/kannasnakka">kannasnakka</a>. &#8211; <a href="http://www.dailymotion.com/gb/channel/webcam">More video blogs and vloggers.</a></em></p>
<p>The first launch attempt didn&#8217;t go so well, with too little helium resulting in us almost taking out some football players. Luckily we were able to grab the balloon and refill, getting a successful second launch. The video above is from Scott James, whose flight we were piggybacking on. He had an actual video and still camera onboard.</p>
<p>Sadly, shortly after crossing the meridian the GPS lost lock and for a while we didn&#8217;t get any new data. Eventually, the data picked up again &#8212; but with a suddenly discovered bug in the code! We were transmitting the decimal part of the degrees as as unsigned integer when in reality they were signed, leading to some pretty significantly incorrect results. Luckily we were able to figure out how to determine the actual position from the data it was transmitting (thanks, SpeedEvil on #highaltitude on irc.freenode.net!) and the balloon was successfully recovered.</p>
<p>Ferret is on its way back to us in the post now and hopefully will live to fly another day!</p>
<p>P.S. we got <a href="http://hackaday.com/2010/03/17/arduino-balloon-tracking/">hackaday</a>&#8216;d too!</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2010/03/ferret-high-altitude-balloon-tracker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>NIXIE Clock Case!</title>
		<link>http://negativeacknowledge.com/2010/01/nixie-clock-case/</link>
		<comments>http://negativeacknowledge.com/2010/01/nixie-clock-case/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 01:09:23 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=79</guid>
		<description><![CDATA[Hurrah! The laser cut acrylic for my NIXIE tube clock case arrived this morning, and amazingly all the parts fit together nicely. The screw holes even matched up with the PCBs! I&#8217;m pretty happy with how this turned out, and I can finally say the nixie clock project is finished. I definitely learned a lot [...]]]></description>
				<content:encoded><![CDATA[<p>Hurrah! The laser cut acrylic for my <a href="http://negativeacknowledge.com/2009/09/nixie-clock/">NIXIE tube clock case </a>arrived this morning, and amazingly all the parts fit together nicely. The screw holes even matched up with the PCBs!</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>I&#8217;m pretty happy with how this turned out, and I can finally say the nixie clock project is finished. I definitely learned a lot for the next clock &#8211; like use the RTC with an onboard crystal! I&#8217;m thinking of perhaps making a wordclock.</p>
<p>You can check out the Inkscape files I sent to Ponoko for manufacture <a href="https://randomskk.net/projects/nixie_clock/nixie_case_design.zip">here</a> (they are released under CC BY-SA 3.0 if you are interested).</p>
<p>In unrelated news, design on revision four of my motor controller is nearing completion, so hopefully the thing will be flying soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2010/01/nixie-clock-case/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Starting Robot4 aka Quad1: Prototyping Sensors</title>
		<link>http://negativeacknowledge.com/2009/09/starting-robot4-aka-quad1-prototyping-sensors/</link>
		<comments>http://negativeacknowledge.com/2009/09/starting-robot4-aka-quad1-prototyping-sensors/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 16:56:23 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Robot4]]></category>
		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=76</guid>
		<description><![CDATA[As briefly mentioned in my last post, my next project is an autonomous quadcopter. That is, a four-rotored flying robot. After a couple of weeks of waiting around, I&#8217;ve got all the parts I&#8217;ve ordered so far: a basic aluminium chasis from MikroKopter, four 1040Kv/14A brushless motors, four propellers, some 3000mAh 3S lipo batteries, and [...]]]></description>
				<content:encoded><![CDATA[<p>As briefly mentioned in my last post, my next project is an autonomous quadcopter. That is, a four-rotored flying robot.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>After a couple of weeks of waiting around, I&#8217;ve got all the parts I&#8217;ve ordered so far: a basic aluminium chasis from MikroKopter, four 1040Kv/14A brushless motors, four propellers, some 3000mAh 3S lipo batteries, and a whole suite of sensors on breakouts from SparkFun, including an accelerometer, gyroscopes, barometer, magnetometer and GPS. I&#8217;ve also got spares of a few parts and a second set of accelerometers and gyroscopes to compare with.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>I also bought four normal brushless motor controllers, which take a PWM input and control the motor. They&#8217;re fine for prototyping with, but I plan to make my own motor controllers that will take throttle values at a much higher rate over I²C, as well as being capable of reporting information (voltage, current, rpm) back to the main controller. However, I&#8217;ve not bought the parts for the motor controllers yet, so for now I&#8217;m using the pre-made ones.</p>
<p>To start with, I&#8217;m writing code to read all the sensors and check their results. This also means I can plug the sensor values into a simulation on my computer to test filters and control code, rather than having to run it on the quad every time I need to change a parameter. All the code is on GitHub: http://github.com/randomskk/Robot4 and so far I&#8217;ve written code for the accelerometer (SCA3000) and the barometer (SCP1000). The accelerometer values are read into memory the whole time over DMA, while the barometer is polled when required as its update rate is about 2Hz so there&#8217;s no point wasting a DMA channel. The next thing to do will be the gyroscopes.</p>
<p>I&#8217;ll post updates here as the robot progresses&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2009/09/starting-robot4-aka-quad1-prototyping-sensors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robot3</title>
		<link>http://negativeacknowledge.com/2009/09/robot3/</link>
		<comments>http://negativeacknowledge.com/2009/09/robot3/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 23:06:58 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=71</guid>
		<description><![CDATA[I found an old RC car &#8211; the kind of thing you get for £5 from Argos &#8211; lying in my cupboard, mostly untouched since I got it as a birthday present. Still, it has wheels and motors, what more could you ask for? I proceeded to rip out all its electronics and battery contacts [...]]]></description>
				<content:encoded><![CDATA[<p>I found an old RC car &#8211; the kind of thing you get for £5 from Argos &#8211; lying in my cupboard, mostly untouched since I got it as a birthday present. Still, it has wheels and motors, what more could you ask for?</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>I proceeded to rip out all its electronics and battery contacts and cover etc, leaving just the underchasis and two motors. I then put my own little 900mAh lipo in the battery compartment along with a small motor driver board (two h-bridges), with all the wires running through the old contact holes. An <a href="http://negativeacknowledge.com/2009/09/stm32-prototyping-boards/">STM32 dev board</a> went on top and connects to a Sharp IR rangefinder and xbee radio.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>All I had it do to start with was drive forwards, then when the ADC detected the voltage from the Sharp sensor went over the limit that indicated an obstacle was ahead, an interrupt fired which caused the car to reverse back and to the left slightly. This was enough to avoid most collisions so the car could pretty much drive about as it wanted. Later I added remote control from a computer over the xbee, with the same interrupt code for collisions. I was planning to put a GPS and some other sensors on the car, but shortly after making it I ordered all the parts for my upcoming quadcopter, which is going to take the limelight for now.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/itKJRsRtrY8&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/itKJRsRtrY8&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2009/09/robot3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>STM32 Prototyping Boards</title>
		<link>http://negativeacknowledge.com/2009/09/stm32-prototyping-boards/</link>
		<comments>http://negativeacknowledge.com/2009/09/stm32-prototyping-boards/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 22:19:30 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[ARM]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=68</guid>
		<description><![CDATA[I used an STM32 for the first time in Robot2, and soon discovered how cool they were. Each one is packed full of neat peripherals, runs really really fast and can do all sorts of cool stuff that simpler µCs like an ATmega simply can&#8217;t pull off. With this in mind, I asked ST for [...]]]></description>
				<content:encoded><![CDATA[<p>I used an STM32 for the first time in <a href="http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/">Robot2</a>, and soon discovered how cool they were. Each one is packed full of neat peripherals, runs really really fast and can do all sorts of cool stuff that simpler µCs like an ATmega simply can&#8217;t pull off. With this in mind, I asked ST for two samples of their STM32F103CBT6, a 48pin LQFP package. They sent the samples (thanks, ST!) and I got to making up a PCB to put them on.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>I decided I wanted something with a lot of interface peripherals, so broke out USART1, 2 and 3, I²C1 and 2 (also USART3) and SPI1 and 2. Additionally a USB plug is connected to the USB peripheral, and JTAG is available. The 6pin header for USART1 is compatible with the FTDI cables/breakouts which makes interfacing with an FTDI cable for programming (the bootloader listens on USART1) or with an xbee on one of SparkFun&#8217;s breakouts is very easy.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>So far I&#8217;ve used one of these boards for Robot3 (an upcoming post) and plan to use the second to start prototypes with my quadcopter UAV. They&#8217;re pretty useful, uploading code to them is quick and easy with the bootloader, and having that many peripherals available and capable of running at pretty high speeds makes these boards handy to have around.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>Eagle files and a PNG <a href="https://randomskk.net/projects/stm32_dev_board">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2009/09/stm32-prototyping-boards/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Nixie Clock</title>
		<link>http://negativeacknowledge.com/2009/09/nixie-clock/</link>
		<comments>http://negativeacknowledge.com/2009/09/nixie-clock/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 21:32:45 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=63</guid>
		<description><![CDATA[While I don&#8217;t consider the clock entirely finished, I think it&#8217;s been around for long enough to write up. Everyone has to make a nixie clock at some time, and as I had 12 IN-14 type tubes lying around for quite a while after ordering them from Russia, I decided I should go ahead and [...]]]></description>
				<content:encoded><![CDATA[<p>While I don&#8217;t consider the clock entirely finished, I think it&#8217;s been around for long enough to write up.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>Everyone has to make a nixie clock at some time, and as I had 12 IN-14 type tubes lying around for quite a while after ordering them from Russia, I decided I should go ahead and make one. PCBs were designed in due course and sent off to Gold Phoenix for manufacture, and eventually I got back a whole load of PCBs and fabbed up the clock.</p>
<p>There are three main parts: the power supply unit, the control board, and one driver board per two nixie tubes.</p>
<p><strong>Power Supply<br />
</strong>I borrowed heavily from http://desmith.net/NMdS/Electronics/NixiePSU.html in both the schematic and PCB layout, as I don&#8217;t have much experience in fast or high voltage layout and didn&#8217;t want to make any crucial mistakes. I did make a few modifications to suit what components I could get and in a few cases routings I thought could reduce via count or otherwise shorten traces.  The design works very well, and successfully drives the nixies at sufficient brightness.</p>
<a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a>
<p>The power supply takes around 12V DC input and converts it to around 220V DC output in a switch mode design. Essentially, the microchip opens the FET, current flows through the inductor and then through the FET to ground, then the FET closes. As the current in the inductor still has a kind of &#8216;momentum&#8217; (the magnetic field it created tries to keep the current moving) but nowhere to go the voltage rises and goes through the fast diode to charge the capacitor. Once the voltage reaches the desired level, the FET is switched back to ground again and the process repeats. The output is a relatively smooth DC. (NB: this description could be very wrong, it&#8217;s just how I believe it works &#8211; please leave a comment to correct me!)</p>
<p><strong>Control<br />
</strong>The control PCB contains an ATmega168, the DS1307 real time clock IC and a whole load of buttons used for setting the time. The RTC IC is set with a time once and then keeps it as accurately as it can, using the onboard battery backup to provide a tiny amount of power when the mains electricity is removed. The buttons make setting the time fairly easy; you just hold down the time item you want to change (hour/min/sec/day/month/year) and press the up or down button to adjust, holding it down to make large changes.</p>
<p><a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a> <a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a></p>
<p><strong>Driver<br />
</strong>The driver PCB contains two nixie tubes, two old 7414N logic chips (actually I used Russian equivalents) and an 8bit shift register. The control board shifts out BCD (binary coded decimal) to the shift registers, four bits per display digit. The shift registers then output this to the 7414Ns which decode it and pull one of their ten outputs to ground. That output is connected to one of the numerals in the nixie tube, causing it to light up.</p>
<p><a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a> <a href="" title="" rel="" class="flickr-image"><img src="http://farm.static.flickr.com//_.jpg" alt="" class="" title="" longdesc="" /></a></p>
<p><strong>Overall</strong>, I&#8217;ve found it to be a really neat clock. I plan to make a nice case for it at some point in the future, but making nice cases is not a strong point for me, so I&#8217;m not sure when exactly this will happen. For the moment, the clock sits on a shelf next to my desk where I can easily see it from anywhere in the room. The digits are bright enough to see clearly, but the clock turns off the display between 00:00 and 07:00 so I can get to sleep! Turning off the tubes also helps extend their lifetime. Just before turnoff, each tube cycles through all of its digits for a few minutes to prevent cathode poisoning, where little emissions from lit numbers coat the unlit numbers and make them dimmer. Finally, clock accuracy leaves a little to be desired &#8211; it is routinely out by a minute or two every couple of weeks. It is easy to adjust and a minute isn&#8217;t that big a deal, but I would have hoped the crystal would be more accurate.</p>
<p>At the end of the day though, it&#8217;s a fun clock and is my favourite for checking the time!</p>
<p>All the Eagle files as well as PNGs of the PCBs are available here: <a href="https://randomskk.net/projects/nixie_clock">https://randomskk.net/projects/nixie_clock</a> and more photos are available on Flickr <a href="http://www.flickr.com/photos/randomskk/sets/72157605942374005/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2009/09/nixie-clock/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Robot2 &#8211; an ARM based colour tracking robot</title>
		<link>http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/</link>
		<comments>http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/#comments</comments>
		<pubDate>Sun, 10 May 2009 12:33:57 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=51</guid>
		<description><![CDATA[(YouTube video) I&#8217;ve finally got around to writing up this project! What you see above is a small robot with a gooey ARM Cortex-M3 STM32 core, a teensy embedded camera from SparkFun, an OLED and an LCD screen, three LiPo batteries, some modified servos and a one-piece (unibody!) aluminium case. The robot uses the camera [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><a class="flickr-image aligncenter" title="Robot 2" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3057594794/"><img class="flickr-medium aligncenter" src="http://farm4.static.flickr.com/3059/3057594794_8747e908e7.jpg" alt="Robot 2" /></a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="295" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://www.youtube.com/v/zb17uQtSYWk&amp;hl=en&amp;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/zb17uQtSYWk&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="295" src="http://www.youtube.com/v/zb17uQtSYWk&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true" data="http://www.youtube.com/v/zb17uQtSYWk&amp;hl=en&amp;fs=1"></embed></object></p>
<p>(<a href="http://www.youtube.com/watch?v=zb17uQtSYWk">YouTube video</a>)</p>
<p style="text-align: left;">I&#8217;ve finally got around to writing up this project! What you see above is a small robot with a gooey ARM Cortex-M3 STM32 core, a teensy <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8667">embedded camera from SparkFun</a>, an <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8538">OLED</a> and an <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8844">LCD</a> screen, three <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=339">LiPo batteries</a>, some <a href="http://www.flickr.com/photos/randomskk/sets/72157605559564231/">modified servos</a> and a one-piece (unibody!) aluminium case. The robot uses the camera to track colour, moving towards it.</p>
<p style="text-align: left;"><a class="flickr-image alignnone" title="PCBs from Golden Phoenix" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/2925079196/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3009/2925079196_b1c882cbf0_m.jpg" alt="PCBs from Golden Phoenix" /></a> <a class="flickr-image alignnone" title="Reflow Soldering ARM board" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/2960356040/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3037/2960356040_b3345167d6_m.jpg" alt="Reflow Soldering ARM board" /></a> <a class="flickr-image alignnone" title="Logic the Logic Analyser" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3028480876/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3150/3028480876_384c124275_m.jpg" alt="Logic the Logic Analyser" /></a> <a class="flickr-image alignnone" title="Robot2 Camera+LCD: Working at last!" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3088363676/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3133/3088363676_d0d36e70a4_m.jpg" alt="Robot2 Camera+LCD: Working at last!" /></a></p>
<p style="text-align: left;">This project was actually a final year school project, so I didn&#8217;t even have to pay for it, which is good &#8211; the PCBs were ordered as a panel <a href="http://www.goldphoenixpcb.biz/">from China</a>, I went through several of the ARMs, and some of the other parts did not come cheap. At the end of the day, though, it works! It took a long time to get there, though&#8230;</p>
<p style="text-align: left;">
<p style="text-align: left;"><strong>1. Prototyping</strong></p>
<p style="text-align: left;">I&#8217;d never used an ARM before, which means I wanted to try one out before going for the real thing. However, I wanted to try with the chip I&#8217;d actually be using, and getting one on a premade PCB seemed like a pointless expense (how I regret thinking that&#8230;), so I made a simple breakout board and soldered one on. By hand.</p>
<p style="text-align: left;"><a class="flickr-image alignnone" title="ARM Breakout Boards" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/2637802744/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3118/2637802744_3a1f8a57f6_m.jpg" alt="ARM Breakout Boards" /></a> <a class="flickr-image alignnone" title="ARM STM32 - hello world, finally!" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/2809589246/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3112/2809589246_45cf090030_m.jpg" alt="ARM STM32 - hello world, finally!" /></a></p>
<p style="text-align: left;">Incredibly, this actually worked. It took a long time to get openocd installed and talking to the programmer (an <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8278">ARM-USB-TINY</a> from Olimex), and about as long again to actually program anything to the chip. Eventually I had that cracked and moved on to compiling my own code instead of just uploading a sample hex file. Many hours of struggling later I had a working Makefile using the <a href="http://www.codesourcery.com/sgpp/lite/arm">Codesourcery GCC</a> port. It was time for a more complicated Hello, World:</p>
<p style="text-align: left;"><a class="flickr-image alignnone" title="ARM STM32 F103 and OLED: Finally!" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/2837428121/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3025/2837428121_2597592716_m.jpg" alt="ARM STM32 F103 and OLED: Finally!" /></a></p>
<p style="text-align: left;">With this out of the way, I moved on to:</p>
<p style="text-align: left;"><strong>2. Design</strong></p>
<p style="text-align: left;">Since this is a school project, design is important &#8211; I had to actually write this stuff up! (a 69-page A3-size Powerpoint file.) First up was schematic capture, which I did in <a href="http://www.cadsoft.de/">EAGLE</a> and involved separate designs for the main board, the camera, the OLED carrier and the SD card carrier. This is where I made a few crucial and stupid mistakes, like wiring the ARM&#8217;s analog ground to Vcc and the analogue supply to GND:</p>
<p style="text-align: left;"><a class="flickr-image alignnone" title="Dirty Hack" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3226059874/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3386/3226059874_a014ee1098_m.jpg" alt="Dirty Hack" /></a></p>
<p>The PCB design took a few days but eventually I&#8217;d made up a design for each of the boards, and panelised these with <a title="gerbmerge homepage" href="http://claymore.engineer.gvsu.edu/~steriana/Python/gerbmerge/">GerbMerge</a> to be sent off to Gold Pheonix. I even got to pick black soldermask!</p>
<p>The case design, while straightforward, was fun. Normally we&#8217;d use vacuum formed plastic or MDF at school, so stretching to some sheet aluminium was exciting. It&#8217;s just normal aluminium with some holes drilled into it for the PCBs to mount to, though. The design was done in ProDesktop.</p>
<p>Schematic and PCB designs are linked at the end of the post.</p>
<p><strong>3. Manufacture</strong></p>
<p>Once the PCBs and components arrived I decided to try out reflow soldering, instead of just hand soldering all these components. It worked really well &#8211; I got some solder paste, put a little blob on each pad, placed the components and then shoved it under the grill on full heat until it reflowed.</p>
<p><a class="flickr-image alignnone" title="Reflow Soldering PCBs" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/2926577255/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3142/2926577255_1861083f38_m.jpg" alt="Reflow Soldering PCBs" /></a></p>
<p>In the end I used up every one of the control boards until I finally got it right at the end &#8211; there were a few problems with the reflow soldering after someone moved the tray down one position to grill a steak (and yes, I&#8217;ve heard all the steak and chips jokes <img src='http://negativeacknowledge.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) and that threw off a few boards. The required fix for the swapped AVcc/AGND pins on the ARM wasted a few more. In the end, I got one right and that&#8217;s the one that&#8217;s now in the robot.</p>
<p><strong>4. Programming</strong></p>
<p>Programming this thing essentially involved an awful lot of C calling the libraries that ST provide and a bit of assembler for that speed-critical reading data from the camera. This part took ages to develop, as the camera basically just sends data as fast as it pleases and there&#8217;s no simple way to manage this when your microchip has less RAM than one image from the camera. I ended up getting a <a href="http://www.saleae.com/logic/">logic analyser</a> to help out, and was soon able to pick out what the camera was sending:</p>
<div id="attachment_52" class="wp-caption aligncenter" style="width: 310px"><a href="http://negativeacknowledge.com/wp-content/uploads/2009/05/cam_i2c_and_sync_1.png"><img class="size-medium wp-image-52" title="Logic Trace" src="http://negativeacknowledge.com/wp-content/uploads/2009/05/cam_i2c_and_sync_1-300x170.png" alt="A logic trace from the camera" width="300" height="170" /></a><p class="wp-caption-text">A logic trace from the camera</p></div>
<p>I was trying to see what the camera was showing, but this was really difficult to accomplish &#8211; there was no way to send data to the OLED screen fast enough, and no way to store the entire image in memory. I suddenly realised I could use one of the tiny LCDs from SparkFun &#8211; they work over SPI, which I&#8217;d already broken out for an SD card (that ended up unusued), and they even took the same data format the camera was sending! They turned out to be absolutely perfect for the job. All I had to do was read in each line of data, store it in memory, then trigger the DMA controller to copy that out over the SPI port. It only took a few lines of assembler and suddenly the LCD was showing exactly what the camera sent. Perfect!</p>
<p>From there I was quickly able to add the colour tracking part &#8211; for each pixel, it checked if it was close enough to red, and if so it used a simple centre-of-mass calculation to determine the average red position in the camera&#8217;s field of view. This technique worked pretty well.</p>
<p>I added a simple menu on the OLED &#8211; you can toggle turning, driving and lights.</p>
<p><a class="flickr-image alignnone" title="Robot2 Menu System" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3517173884/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3594/3517173884_eb6d888ca7_m.jpg" alt="Robot2 Menu System" /></a></p>
<p>The nav switch is a handy little <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8184">SparkFun switch</a> that works really well for this application.</p>
<p><strong>5. Summary</strong></p>
<p>There was a lot more to this thing&#8217;s development &#8211; like how to route power from 3 batteries to the two servos and the main logic, making the small breakout PCB for the LCD that included its own vreg and some status LEDs, endless cursing of various bits and pieces of the build environment, trying to affix two servos to a flat piece of aluminium and playing with supporting FAT on the SD card (harder than it might appear), to name just a few. Talking about all of them would take forever, though, so instead I&#8217;ve written what I hope is a more interesting to read summary.</p>
<p><strong>6. Resources</strong></p>
<p>The C/ASM code is available on GitHub: <a href="http://github.com/adamgreig/followingrobot">http://github.com/adamgreig/followingrobot</a> which includes the build environment, makefile, etc etc. This might be pretty useful if you were trying to program one of these chips.</p>
<p>The EAGLE sch/brd files are available here: <a href="https://randomskk.net/projects/robot2/robot2_eagle.zip">https://randomskk.net/projects/robot2/robot2_eagle.zip</a> which also includes the SparkFun LCD breakout board and footprint, which could come in handy.</p>
<p>If you&#8217;re really interested, the humangous PPT that contains a lot more detail on pretty much every stage of making this thing, as well as more photographs and logic traces and such (and also a few boring waffle pages I have to include) is available here: <a href="https://randomskk.net/projects/robot2/robot2_coursework.ppt">https://randomskk.net/projects/robot2/robot2_coursework.ppt</a></p>
<p>Finally, here&#8217;s the Flickr photo set: <a href="http://www.flickr.com/photos/randomskk/sets/72157607851550306/">http://www.flickr.com/photos/randomskk/sets/72157607851550306/ </a></p>
<p>Please do post a comment if you have any questions!</p>
<p>And just to whet your appetite: the nixie clock PCBs have been sent off for manufacture and all the components have arrived! I should have a writeup of that in a few weeks once it&#8217;s all been put together.</p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2009/05/robot2-an-arm-based-colour-tracking-robot/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>NIXIEs and Accelerometers</title>
		<link>http://negativeacknowledge.com/2009/02/nixies-and-accelerometers/</link>
		<comments>http://negativeacknowledge.com/2009/02/nixies-and-accelerometers/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 02:50:20 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=41</guid>
		<description><![CDATA[It&#8217;s been a while since I&#8217;ve posted anything, so I&#8217;ll drop a quick update. Hopefully by the end of the coming week I&#8217;ll have finished on my current great big time-consuming project and will be able to write that up. I&#8217;ve been playing with a few things besides that project, though. The first is stress [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: left;"><a class="flickr-image alignnone" title="Four Nixies!" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3258599547/"><img class="flickr-medium aligncenter" src="http://farm4.static.flickr.com/3424/3258599547_bc1cab87ca.jpg" alt="Four Nixies!" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">It&#8217;s been a while since I&#8217;ve posted anything, so I&#8217;ll drop a quick update. Hopefully by the end of the coming week I&#8217;ll have finished on my current great big time-consuming project and will be able to write that up.</p>
<p style="text-align: left;">I&#8217;ve been playing with a few things besides that project, though. The first is stress testing my small and somewhat dodgy <a href="http://negativeacknowledge.com/2008/09/nixie-tubes-lit-up-at-last/">NIXIE PSU</a>, which amazingly has managed to drive eight tubes:</p>
<p style="text-align: left;"><a class="flickr-image aligncenter" title="8 nixies: getting dangerous" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3279522143/"><img class="flickr-medium alignleft" src="http://farm4.static.flickr.com/3567/3279522143_79c282a60d_m.jpg" alt="8 nixies: getting dangerous" width="240" height="160" /></a> I plan to finish off designing a somewhat more powerful power supply so I don&#8217;t worry about it exploding in my face every time I try using it. A better way to control it than a plain RTC would be nice too &#8211; I&#8217;m thinking of using a GPS module.</p>
<p style="text-align: left;">(p.s. yea, I accidentally set the 8 on instead of the 9 and didn&#8217;t realise &#8212; oops!)</p>
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;">The other thing I&#8217;ve recently been playing with is an accelerometer I got for Christmas. It&#8217;s the <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8658">LIS302DL</a> from Sparkfun, a super cheap 3-axis accelerometer that can output on SPI or I²C, has interrupts for freefall and things like the user tapping it or double tapping it, and adjustable sensitivity &#8211; 2g or 8g. All that for $20 on a breakout board is pretty incredible!</p>
<p style="text-align: left;">I hooked it up to an Arduino and after some messing around, was able to get it to read the acceleration data from the sensor over I²C, and then send it to the PC with a timestamp over serial (itself over USB). Then I whipped up a quick Python script to plot the data and decided I&#8217;d test something that&#8217;s now been thoroughly battered into me: in simple harmonic motion, the acceleration on a particle is proportional to its displacement, which can be shown to mean it is a sine wave. I figured that&#8217;s as good a way as any to test the sensor, and so I took the Arduino and swung it as a pendulum from its USB cable.<br />
I then had Python generate the magnitude of the acceleration &#8211; the single value showing the resultant acceleration on all three axis. This was plotted against the millisecond value from the arduino and hey presto &#8211; a (nearly) perfect sine wave!</p>
<p style="text-align: left;"><a href="http://negativeacknowledge.com/wp-content/uploads/2009/02/shm.png"><img class="size-full wp-image-42 alignleft" title="Simple Harmonic Motion" src="http://negativeacknowledge.com/wp-content/uploads/2009/02/shm.png" alt="Simple Harmonic Motion" width="511" height="385" /></a><a href="http://negativeacknowledge.com/wp-content/uploads/2009/02/shm2.png"><img class="size-full wp-image-43 alignnone" title="Simple Harmonic Motion Zoomed In" src="http://negativeacknowledge.com/wp-content/uploads/2009/02/shm2.png" alt="Simple Harmonic Motion Zoomed In" width="511" height="385" /></a></p>
<p style="text-align: left;">
<p style="text-align: left;">Not bad! The accelerometer itself:</p>
<p style="text-align: left;"><a class="flickr-image alignnone" title="Arduino + LIS302DL Accelerometer" rel="flickr-mgr" href="http://www.flickr.com/photos/randomskk/3283553082/"><img class="flickr-medium" src="http://farm4.static.flickr.com/3291/3283553082_7159ddbc4e.jpg" alt="Arduino + LIS302DL Accelerometer" /></a></p>
<p style="text-align: left;">(p.s. be sure to view the full sized image for tons of lovely macro sharpness)</p>
<p style="text-align: left;"><a href="http://negativeacknowledge.com/wp-content/uploads/2009/02/arduino_loguino.html">arduino_loguino</a> &#8211; the arduino code (CC BY-SA 3.0)</p>
<p style="text-align: left;"><a href="http://negativeacknowledge.com/wp-content/uploads/2009/02/python_loguino.html">python_loguino</a> &#8211; the python code (Public Domain)</p>
<p style="text-align: left;">
<p style="text-align: left;">For bonus points: Given that the Arduino was on the Earth&#8217;s surface, and that the millisecond data is accurate, how long was the USB cable the Arduino was swinging from?</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2009/02/nixies-and-accelerometers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
