<?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 &#187; Robotics</title>
	<atom:link href="http://negativeacknowledge.com/category/electronics/robotics/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</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<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>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>26</slash:comments>
		</item>
		<item>
		<title>Robot 1 Prototype</title>
		<link>http://negativeacknowledge.com/2008/07/robot-1-prototype/</link>
		<comments>http://negativeacknowledge.com/2008/07/robot-1-prototype/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 11:57:13 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=25</guid>
		<description><![CDATA[This is my first prototype robot. A friend and I got together and he taped stuff to cardboard while I connected wires up and then we wrote a basic program and the prototype drove! This version literally just drives forward until the ultrasonic sensor detects an obstacle, then it turns and drives forwards again. We [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Robot One Prototype One" href="http://www.flickr.com/photos/7320302@N07/2580999463/"></a></p>
<p><img src="http://static.flickr.com/3109/2580999463_10404b0421_m.jpg" alt="Robot One Prototype One" /></p>
<p>This is my first prototype robot. A friend and I got together and he taped stuff to cardboard while I connected wires up and then we wrote a basic program and the prototype drove!</p>
<p>This version literally just drives forward until the ultrasonic sensor detects an obstacle, then it turns and drives forwards again. We can also rotate the servo the IR sensor is on and read the IR sensor, though we haven&#8217;t yet determined what voltages represent what voltages (it&#8217;s non-linear, typically).</p>
<p>The drive motors are the two servos I modified for continuous rotation, with an Arduino+Protoshield to control it.</p>
<p><a title="Robot One Prototype One" href="http://www.flickr.com/photos/7320302@N07/2580997781/"><img src="http://static.flickr.com/3077/2580997781_15178f74ea_m.jpg" alt="Robot One Prototype One" /></a></p>
<p><a title="Robot One Prototype One" href="http://www.flickr.com/photos/7320302@N07/2580994365/"><img src="http://static.flickr.com/3260/2580994365_5f3d32f917_m.jpg" alt="Robot One Prototype One" /></a></p>
<p>This prototype has since been disassembled and work started on the new version, with a vacuum formed plastic chassis and normal geared motors harvested from an old toy. That one probably won&#8217;t get finished for a few months though, so I thought I&#8217;d post the cardboard prototype now.</p>
<p><a title="Robot One Prototype One" href="http://www.flickr.com/photos/7320302@N07/2580994365/"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2008/07/robot-1-prototype/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Final Lightbar Controller</title>
		<link>http://negativeacknowledge.com/2008/06/final-lightbar-controller/</link>
		<comments>http://negativeacknowledge.com/2008/06/final-lightbar-controller/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 16:52:28 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[HomeMadePCBs]]></category>
		<category><![CDATA[Robotics]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=24</guid>
		<description><![CDATA[I&#8217;ve finished the lightbar controller! This device analyses the music it picks up via the electret microphone, then flashes the LEDs in time to the music. It&#8217;s encased in the box SparkFun sent me the microphones in, since the box was just begging to be used as a case for something! I&#8217;m sure that was [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished the lightbar controller!</p>
<p><a title="Lightbar Visualiser" href="http://www.flickr.com/photos/7320302@N07/2570139325/"><img src="http://static.flickr.com/3041/2570139325_288bd6e6ef_m.jpg" alt="Lightbar Visualiser" /></a></p>
<p>This device analyses the music it picks up via the electret microphone, then flashes the LEDs in time to the music. It&#8217;s encased in the box SparkFun sent me the microphones in, since the box was just begging to be used as a case for something! I&#8217;m sure that was intentionally designed.</p>
<p><a title="Lightbar Visualiser" href="http://www.flickr.com/photos/7320302@N07/2570965162/"><img src="http://static.flickr.com/3106/2570965162_1b8a6009d1_m.jpg" alt="Lightbar Visualiser" /></a></p>
<p>Getting a bit more technical:</p>
<p>The microphone picks up the noise and sends this to the LM386 amp, which amplifies it about 200x before it&#8217;s read by the ATtiny13&#8242;s ADC at 8-bit resolution. The ATtiny13 then keeps a running average of the noise level, and flashes the LEDs if the current volume exceeds the average by a scalar amount.</p>
<p><a title="Lightbar Visualiser" href="http://www.flickr.com/photos/7320302@N07/2570962450/"><img src="http://static.flickr.com/3262/2570962450_c3d00cc974_m.jpg" alt="Lightbar Visualiser" /></a></p>
<p>As a result, the LEDs flash on when the music hits a peak, and are off otherwise &#8211; no matter what volume.<br />
The brightness of the LEDs is also somewhat correlated to the loudness of the peak, since a louder peak will generally keep the LEDs on for longer.</p>
<p>Check out the video of it in action:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/6ihIaNN9UBY&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/6ihIaNN9UBY&amp;hl=en"></embed></object></p>
<p>Download the schematic, PCB layout, code:<br />
<a href="https://randomskk.net/projects/lightstrip/">https://randomskk.net/projects/lightstrip/</a> (all files released under Creative Commons BY-SA-NC 3.0).<a href="https://randomskk.net/projects/lightstrip/"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2008/06/final-lightbar-controller/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Modifying an HS-311 Servo for Continuous Rotation</title>
		<link>http://negativeacknowledge.com/2008/06/modifying-an-hs-311-servo-for-continuous-rotation/</link>
		<comments>http://negativeacknowledge.com/2008/06/modifying-an-hs-311-servo-for-continuous-rotation/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 16:17:43 +0000</pubDate>
		<dc:creator>Random</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Robotics]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://negativeacknowledge.com/?p=23</guid>
		<description><![CDATA[I&#8217;m having a play with robotics stuff now, and one of the first steps was to get something moving. I ordered some cheapo servos from ServoShop UK and had a play, they work fine. However, to use them as easy-to-drive motors for wheels and stuff, you need to modify them to have unlimited rotation (they [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m having a play with robotics stuff now, and one of the first steps was to get something moving.</p>
<p><a title="Distance-o-meter" href="http://www.flickr.com/photos/7320302@N07/2568351079/"><img src="http://static.flickr.com/3106/2568351079_e210acf87f_m.jpg" alt="Distance-o-meter" /></a></p>
<p>I ordered some cheapo servos from <a href="http://www.servoshop.co.uk/">ServoShop UK</a> and had a play, they work fine.</p>
<p>However, to use them as easy-to-drive motors for wheels and stuff, you need to modify them to have unlimited rotation (they normally only have 180 degrees). This means they can no longer go to an exact position, but can be driven in different directions and their speed controlled, all through timed pulses &#8211; so much easier than wiring a motor, gearbox, H bridge and then controlling all that! (and cheaper, too).</p>
<p><a href="http://www.societyofrobots.com/">Society of Robots</a> has a load of great tutorials, and <a href="http://www.societyofrobots.com/actuators_modifyservo.shtml">one of them</a> details modifying servos to get continuous rotation. I followed the tutorial through for the HS-311 servos I had, and it works nicely.</p>
<p>I also photographed each step of the way to make a mini-guide on modifying this specific servo, hopefully this will help out someone with these (fairly common) servos.</p>
<p>Click the picture to go to step one, then step through each photo in Flickr (you can see the thumbnail for the next photo under the Set title):</p>
<p><a title="Modifying an HS-311 Servo for Continuous Rotation" href="http://www.flickr.com/photos/7320302@N07/2569969633/"><img src="http://static.flickr.com/3256/2569969633_301de725fe_m.jpg" alt="Modifying an HS-311 Servo for Continuous Rotation" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://negativeacknowledge.com/2008/06/modifying-an-hs-311-servo-for-continuous-rotation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

