<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>robots.net blog for tbenedict</title>
    <link>http://robots.net/person/tbenedict/</link>
    <description>robots.net blog for tbenedict</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sun, 12 Oct 2008 19:04:47 GMT</pubDate>
    <item>
      <pubDate>Thu, 19 Jul 2007 02:51:56 GMT</pubDate>
      <title>19 Jul 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=33</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=33</guid>
      <description>The AVR Dragon rocks.  I used it to debug an ATtiny85 with&#xD;
some LED blinker code running on it, and it worked like a&#xD;
champ.  My next project is a gravity racer (or "downhiller")&#xD;
for a local club challenge.  The idea is to take the idea of&#xD;
the soapbox derby (a gravity race involving a twisting&#xD;
curving course) and scale it down to the size of the&#xD;
pinewood derby.  Oh, yeah, and make a robot that drives it.&#xD;
&#xD;
&lt;p&gt; So what's the appeal?  No motors!  No drive wheels!  So the&#xD;
things wind up being pretty dirt cheap.  If you read all the&#xD;
pinewood derby forums, you'd be convinced that the Secret of&#xD;
Speed is smooth axles, perfectly axisymmetric wheels, low&#xD;
drag, etc.  For this?  So far the Secret of Speed seems to&#xD;
be not hitting stuff and tuning the servo loop that handles&#xD;
steering.  (So far none of the ones built at our club has&#xD;
navigated the 8' straight track without smacking wall... &#xD;
This isn't that easy a challenge.)&#xD;
&#xD;
&lt;p&gt; So I'm planning to use an ATtiny84, which has the 16-bit&#xD;
timer I need for driving the servo.  (I could do a single&#xD;
servo on an 8-bit timer, but I've already got servo code&#xD;
written that uses the 16-bit timer.)  The ATtiny84 can do&#xD;
debugWIRE, so this'll be the perfect opportunity to try the&#xD;
Dragon out on a for-real project.  (WOOT!)&#xD;
&#xD;
&lt;p&gt; I'm looking forward to the build and to the tuning that'll&#xD;
happen afterward.  Should be a fun robot.&#xD;
&#xD;
&lt;p&gt; The NEXT track the club's going to run is a full-blown&#xD;
slalom course.  I'll be curious to see if the best-tuned&#xD;
straight-track cars perform well at all in the curves.&#xD;
&#xD;
&lt;p&gt; Tom&#xD;
&#xD;
</description>
    </item>
    <item>
      <pubDate>Sat, 16 Jun 2007 02:10:58 GMT</pubDate>
      <title>16 Jun 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=32</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=32</guid>
      <description>Dragon Steak with some Squid&#xD;
&#xD;
&lt;p&gt; I picked up an Atmel AVR Dragon + STK500 bundle from Digikey&#xD;
a while back to compliment my AVRISP mkII.  It's an&#xD;
outstanding combo for the $50 I spent&#xD;
on it.  The STK500 came pretty much ready to go, and made it&#xD;
worlds easier to program the stockpile of AVR chips I've&#xD;
built up.  I'm pleased as punch with it.&#xD;
&#xD;
&lt;p&gt; The Dragon is also an impressive piece of hardware, but I&#xD;
didn't really get going on it until recently.  It'll do&#xD;
debugWIRE, JTAG programming and emulation, ISP programming,&#xD;
HV programming, oooh, it gives me the shivers...  Except it&#xD;
didn't come with any cables, and you basically have to wire&#xD;
it up differently for each device.&#xD;
&#xD;
&lt;p&gt; I ran across a neat Instructable, though, that had a nice&#xD;
way to make some general-purpose cables:&#xD;
&#xD;
&lt;p&gt; &lt;a&#xD;
href="http://www.instructables.com/id/EVM00HSXH6EZ7C8ZID/"&gt;http://www.instructables.com/id/EVM00HSXH6EZ7C8ZID/&lt;/a&gt;&#xD;
&#xD;
&lt;p&gt; I've got parts ordered to build a set of these cables.&#xD;
&#xD;
&lt;p&gt; In the process of researching all this, though, I ran across&#xD;
some posts on &lt;a&#xD;
href="http://www.avrfreaks.net"&gt;http://ww.avrfreaks.net&lt;/a&gt;&#xD;
with some great names for things.  One refered to the AVR&#xD;
Dragon + STK500 setup as a Dragon Steak.  Another refered to&#xD;
the breakout cables for the Dragon as squid cables.  So once&#xD;
all the bits show up next week and I get everything crimped&#xD;
together, I'll have a dragon steak with a side of squid. &#xD;
Can't beat it.&#xD;
&#xD;
&lt;p&gt; (A quick aside:  If you ever need to build a cable with a&#xD;
lot of tiny crimp connectors, best thing you can do is get a&#xD;
job at a place that has a lot of crimping tools so you don't&#xD;
have to shell out the $500-1500 for a tool to make a $15 cable!)&#xD;
&#xD;
&lt;p&gt; Anyway, I'm looking forward to using debugWIRE for one of&#xD;
the projects I'm working on.  It takes over the AVR chip&#xD;
you're using it on and clocks it one command at a time so&#xD;
you can step through your code on a live, running piece of&#xD;
hardware.  I know there are simulators for the AVR, and I&#xD;
use them.  But it's tough to fake input to a simulated ADC.&#xD;
 With debugWIRE I won't need to.  I'll be able to see what&#xD;
the actual ADC is seeing: my sensors.  I'm stoked.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Sat, 12 May 2007 20:36:04 GMT</pubDate>
      <title>12 May 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=31</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=31</guid>
      <description>Shallow Blue lost at UNI.  Not that I was entertaining any&#xD;
huge hopes, but I confess to feeling a little disappointed I&#xD;
went out that early.  (Of course I lost to 2Strong2Bad,&#xD;
which was pretty cool to see no matter what.)  Already&#xD;
planning for next year.  But after watching the ExSpurt Mule&#xD;
matches, I'm pretty sure I'll lose next year, too.  Bring it on!&#xD;
&#xD;
&lt;p&gt; On another note I finished my first real honest to goodness&#xD;
robot using the Pololu Robotics Orangutan controller.  It's&#xD;
a line follower I've had on my bench for months called&#xD;
Speedy.  To be honest the Orangutan is massive overkill for&#xD;
the project, and I was planning to use a Baby-Orangutan&#xD;
(which weighs a measly 3g).  But my Baby-O is tied up in&#xD;
another project, and I had to get it finished by Monday for&#xD;
a club meeting.&#xD;
&#xD;
&lt;p&gt; I learned something in the process:  When you're tuning a&#xD;
new PID loop, ALWAYS make sure your batteries are up to&#xD;
snuff.  I did all my tuning with a 9V depleted to 6V (little&#xD;
did I know), so the tuning was disappointing, the speed even&#xD;
more so.  A battery swap this morning put a smile on my face&#xD;
when I saw the higher speed it was getting, and made me&#xD;
laugh when I thought of the time I spent yesterday doing&#xD;
loop tuning.  Anyway, it should be a fun day of tuning.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Wed, 4 Apr 2007 20:54:34 GMT</pubDate>
      <title>4 Apr 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=30</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=30</guid>
      <description>Shallow Blue is in the mail to UNI's mail-in mini-sumo&#xD;
competition.  Yahoo!  This will be Shallow Blue's first&#xD;
appearance off-island, so I'm excited as excited can be.&#xD;
&#xD;
&lt;p&gt; Please please please, if you are hosting a robotic&#xD;
competition, consider adding mail-in entries for at least&#xD;
some of your events.  This is my first time entering an&#xD;
event off-island.  I hope it's not my last.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Wed, 4 Apr 2007 00:12:38 GMT</pubDate>
      <title>4 Apr 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=29</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=29</guid>
      <description>Lots has happened since the 0.2 release of Orangutan-lib.  I&#xD;
got my ThereminVision II system, and managed to barf things&#xD;
up before I ever got it running (adding "Don't solder chips&#xD;
onto boards at 5am before I get my coffee" to the list of&#xD;
don'ts).  I'm hoping a little creative re-soldering and&#xD;
maybe part replacement will get the beastie up and running.&#xD;
 Can't wait!&#xD;
&#xD;
&lt;p&gt; In other news the last of the parts for my line follower&#xD;
showed up.  I'm re-designing the motor mounts and bot&#xD;
chassis to cut weight.  It's already a little too&#xD;
over-budget on weight for my liking.  If I can shave things&#xD;
down under 150g with battery, I'll be happy.  (If I can swap&#xD;
batteries and get it down under 120g, I'll be a lot&#xD;
happier.)  I'm already looking at making custom wheels for&#xD;
it.  Trying to get those in under 5g apiece, with tire. &#xD;
Only time will tell.&#xD;
&#xD;
&lt;p&gt; I'm working on the software tx-only UART code for&#xD;
Orangutan-lib.  Doesn't look like it should be too heinous,&#xD;
but I'd like to leave the option open for defining more than&#xD;
one.  This will take some testing.  Might be time for&#xD;
another release soon!&#xD;
&#xD;
&lt;p&gt; My line follower will be the first robot I build that uses&#xD;
Orangutan-lib, so I'm pretty stoked to see how it turns out.&#xD;
 The next one is going to be a downhill racer, project to be&#xD;
announced.  And once the ThereminVision II stuff is up and&#xD;
running, the mini-sumo that it's destined to run on will&#xD;
also run on Orangutan-lib.  Proof's in the pudding.  Hope it&#xD;
all works! &#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Thu, 8 Mar 2007 03:18:46 GMT</pubDate>
      <title>8 Mar 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=28</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=28</guid>
      <description>The 0.2 rev of Orangutan-lib has been released:&#xD;
&#xD;
&lt;p&gt; http://orangutan-lib.sourceforge.net&#xD;
&#xD;
&lt;p&gt; It's a WinAVR/AVR Studio 4 library for the Orangutan family&#xD;
of robot controllers from Pololu.  The current rev of the&#xD;
library include support for ADC, digital I/O, code to drive&#xD;
the on-board buzzer, code for the LCD, relay-style motor&#xD;
control, PWM motor control, pin change interrupts, code to&#xD;
drive up to eight R/C servos, and hardware serial UART code.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Fri, 2 Mar 2007 01:11:10 GMT</pubDate>
      <title>2 Mar 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=27</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=27</guid>
      <description>Things I've learned while working on Orangutan-lib:&#xD;
&#xD;
&lt;p&gt; * It pays to have spares:  I managed to damage my one&#xD;
Orangutan while testing motor code.  Waiting on the mail.&#xD;
&#xD;
&lt;p&gt; * It pays to do range checking:  My first pass at R/C servo&#xD;
code didn't do any range checking because "it added too much&#xD;
overhead" (my own words to myself when I made that&#xD;
bone-headed decision.)  Har de har har!  The first time I&#xD;
passed it an out of range value it stripped gears.  (My&#xD;
servo code now does range checking.)&#xD;
&#xD;
&lt;p&gt; * It doesn't pay to do electronics when you're sick:  Loose&#xD;
wire.  Live power.  Bad judgment.  Melted plastic.  'Nuff said.&#xD;
&#xD;
&lt;p&gt; * It pays to breadboard:  I *thought* that resistor network&#xD;
I had was the type with a common ground.  Luckily I learned&#xD;
it wasn't before I soldered anything down.&#xD;
&#xD;
&lt;p&gt; * It doesn't pay to do software development when you're&#xD;
sick:  No melted plastic, but lots of "Aroo?" moments. &#xD;
Which leads me to...&#xD;
&#xD;
&lt;p&gt; * It pays to do version control:  Several times now I've&#xD;
backed out my "Aroo?" moments by checking out a previous rev&#xD;
of my source.  Subversion is cool!&#xD;
&#xD;
&lt;p&gt; All in all the past few weeks have been entertaining.  I've&#xD;
learned a lot, built a lot, programmed a fair bit, and can't&#xD;
wait to get over this cold and go to the post office.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Wed, 7 Feb 2007 23:07:47 GMT</pubDate>
      <title>7 Feb 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=26</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=26</guid>
      <description>Two bits of news:&#xD;
&#xD;
&lt;p&gt; In the next ten days or so I'll be able to order an&#xD;
Orangutan-X2.  My plan is to have Orangutan-lib ported to it&#xD;
as quickly as possible, and to make sure all future&#xD;
development on Orangutan-lib can run on all three Orangutan&#xD;
devices.  This'll be fun!&#xD;
&#xD;
&lt;p&gt; The other bit of news is that after a lot of dinking around&#xD;
with some Parallax QTI sensors for my line follower, I&#xD;
finally figured out how the little beasties work.  The&#xD;
datasheet for the QTI doesn't do a great job of explaining&#xD;
it.  It took a fair bit of digging into the Parallax forums&#xD;
before I got a good handle on things:&#xD;
&#xD;
&lt;p&gt; Basically the QTI sensor is a photoreflector that feeds a&#xD;
charge integrator.  The output pin of the QTI looks at the&#xD;
integrator, not the sensor itself.  This is not typically&#xD;
how transistor-based sensors are wired up.  I have my own&#xD;
theory as to why Parallax did things this way, but without&#xD;
tearing one apart I can't really test it.&#xD;
&#xD;
&lt;p&gt; Anyway, the post that unraveled this gave this advice for&#xD;
reading a QTI:&#xD;
&#xD;
&lt;p&gt; 1 - Set your sensor's I/O line to output and bring it high.&lt;BR&gt;&#xD;
2 - Wait 0.23ms for this to discharge the QTI's capacitor.&lt;BR&gt;&#xD;
3 - Bring the sensor's I/O line low and switch to input.  At&#xD;
this point the I/O line should be in tri-state mode, and&#xD;
present high impedence to the QTI.  Essentially the QTI's&#xD;
capacitor is now isolated.&lt;BR&gt;&#xD;
4 - Wait 0.23ms for the sensor to charge its capacitor.&lt;BR&gt;&#xD;
5 - Read the I/O line through the ADC.&lt;BR&gt;&#xD;
&#xD;
&lt;p&gt; I really really wish Parallax had made this more clear in&#xD;
their documentation.  I wouldn't have stumbled around as&#xD;
much, and I might not have even selected the QTI in the&#xD;
first place.  I really was after a continuous analog device.&#xD;
&#xD;
&lt;p&gt; In any case my complaints have to end here.  Parallax QTI&#xD;
sensors are in use on scads of robots, and they do a good&#xD;
job of keeping bots in the ring and following the line.  I&#xD;
just wasn't using them correctly.  And since I'm not using&#xD;
them on a Basic Stamp, I hadn't bothered to look at the&#xD;
sample code to see how they were reading them.  My bad.&#xD;
&#xD;
&lt;p&gt; In any case Speedy is back on track, Orangutan-lib is still&#xD;
on track, and I might even be able to build out my 4WD mini&#xD;
sumo some day.  Can't complain.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Fri, 26 Jan 2007 00:59:11 GMT</pubDate>
      <title>26 Jan 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=25</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=25</guid>
      <description>It's my first foray into the wonderful world of Sourceforge!&#xD;
 I moved the Orangutan AVR library over to Sourceforge, and&#xD;
will continue development and support over there.  The&#xD;
supported command set is still pretty small, but it's enough&#xD;
to make a robot move about and sense what's going on in the&#xD;
world around it:&#xD;
&#xD;
&lt;p&gt; &lt;a&#xD;
href="http://orangutan-lib.sourceforge.net"&gt;http://orangutan-lib.sourceforge.net&lt;/a&gt;&#xD;
&#xD;
&lt;p&gt; The re-write on the library and examples is complete, so I'm&#xD;
back to developing new code.  Command sets in the pipe&#xD;
include servo control, quadrature encoder feedback, and&#xD;
count up / count down timers.  The timer code is being&#xD;
debugged, and the servo code is next.&#xD;
&#xD;
&lt;p&gt; Once I have working servo code and timer code, the next&#xD;
trick is to get a Mark III chassis, motors, wheels, sensors,&#xD;
and Tigerbotics tires, and see if I can make an&#xD;
Orangutan-based Mark III that can out-wit my existing Mark&#xD;
III.  After that, I'll finish the 4WD rolling chassis I've&#xD;
been holding off on, move the sensors over to that, and go&#xD;
from there.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
    <item>
      <pubDate>Mon, 1 Jan 2007 02:37:49 GMT</pubDate>
      <title>1 Jan 2007</title>
      <link>http://robots.net/person/tbenedict/diary.html?start=24</link>
      <guid>http://robots.net/person/tbenedict/diary.html?start=24</guid>
      <description>No real update on the Orangutan library.  At the suggestion&#xD;
of Jan on the Pololu forums, I took a side tangent to turn&#xD;
all my earlier notes and code snippets into a series of&#xD;
single-file examples for how to make the Orangutan do a&#xD;
specific task.  The idea isn't to make the library&#xD;
unnecessary, but to give people examples that explain how&#xD;
things are working "under the hood" so to speak, so if the&#xD;
library doesn't quite fit their needs, they know how to&#xD;
start tweaking (and why!)  Five examples so far, plus the&#xD;
library itself.  Now I need to replicate those examples for&#xD;
the library!&#xD;
&#xD;
&lt;p&gt; In any case here's where it's living:&#xD;
&#xD;
&lt;p&gt; &lt;A&#xD;
HREF="http://vix.dyndns.org/~benedict/robotics/orangutan"&gt;Orangutan&#xD;
Library &amp;amp; Examples&lt;/a&gt;&#xD;
&#xD;
&lt;p&gt; I'll likely start this as a project as well.  I've got&#xD;
enough of the library done to finish Speedy, my line&#xD;
follower.  So hopefully some day soon I'll get back on that one.&#xD;
&#xD;
&lt;p&gt; Another project that's coming up is a microcontroller&#xD;
controlled underwater ROV.  It'd still be a remotely&#xD;
operated vehicle, but with smarts on board the tether can be&#xD;
a lot lighter, and it's easier to expand the ROV's&#xD;
capabilities.  (Want temperature sensing?  Plug one in!)  &#xD;
&#xD;
&lt;p&gt; &lt;A HREF="http://www.protacraft.com"&gt;Protacraft&lt;/a&gt; is about&#xD;
to start&#xD;
selling neutrally buoyant tether cable with two 14AWG power&#xD;
wires and 3 twisted pairs in it for $2US per foot.  This&#xD;
would be a perfect tether for what I'm thinking of.  With&#xD;
the Orangutan library coming along, the addition of serial&#xD;
I/O routines would let me use an Orangutan at the top and a&#xD;
Baby-O at the bottom.  With SPI routines added to the&#xD;
library, I could install more A/D ports than I could&#xD;
reasonably use.&#xD;
&#xD;
&lt;p&gt; But that's a project for another day.&#xD;
&#xD;
&lt;p&gt; Tom</description>
    </item>
  </channel>
</rss>
