Wednesday, July 22, 2009

Cannibot Report Untrue

The alleged cannibot's manufacturer strongly disputes the Fox News report, saying that the self-fueling bots only process plant matter like twigs, grass, and wood chips. They further state that, since desecration of the dead is a war crime under the Geneva Conventions, they would not consider that as a potential fuel source. Fox News for its part has now retracted the story liked above; the link now goes to a stub saying that the bots are strictly vegan and pointing to a corrected story.

Since they make no pretense of defending their original sensationalistic story, this appears to be a major mistake on the part of Fox News and on my part for uncritically accepting their story.

Saturday, July 18, 2009

Some Interesting Robot Footage

At the beggining of this PJTV segment.

Note: I only recommend the first 1:45 or so for the footage. After that, I didn't find the ensuing discussion of robotics or AI particularly entertaining or informative. The political viewpoint of the panelists may also prove annoying to some.

Thursday, July 16, 2009

Cannibots (Update: Not So Much)

My title isn't exactly correct for this article, since these battlebots won't be feeding off of each other, but instead human and animal carcasses.

While it's a neat idea to make use of carrion and corpses as a fuel source, I'll go out on a limb and predict that these will almost immediately be misused. Problems with international law and regulations saying one must house, feed, and give trials to wounded prisoners? Just send a bunch of these robots in with convenient "bugs" that accidentally let these bots feed on the still living. Don't want to sacrifice low-level personnel to torture inmates? Just let a cannibot into a room full of restrained prisoners and see how fast someone talks once the first guy gets slowly consumed. Added bonus: they can be mass produced and they're great for domestic crowd control too.

Update (7/22/09): The bot's manufacturer strongly disputes the Fox News report, saying that the bots only process plant matter like twigs, grass, and wood chips. They further state that, since desecration of the dead is a war crime under the Geneva Conventions, they would not consider that as a potential fuel source. Fox News for its part has now retracted the story liked above; the link now goes to a stub saying that the bots are strictly vegan and pointing to a corrected story.

Since they make no pretense of defending their original sensationalistic story, this appears to be a major mistake on the part of Fox News and on my part for uncritically accepting their story.

Wednesday, July 8, 2009

Propeller Christmas Tree

While testing its input and output pins in the breadboard, the Propeller chip blinks a slew of LEDs -- reminding me of a strand of Christmas lights.

Prop Prep

In addition to working further with the BoeBot, I've gotten some more advanced components including this breadboard kit based around the Propeller chip. The Propeller chip includes a central CPU and then eight satellite "cog" processors that can independently do tasks. And it comes in a single 40-pin DIP package that costs about $12. The cogs can run tasks at 80 MHz, allowing them to process video at reasonable resolution in real-time.

This weekend I celebrated Independence Day by putting together the kit. Here are some snapshots from the assembly process:

Monday, July 6, 2009

Better Behaved Bug

I played around with the photoresistor alignment and the relative settings of the two potentiometers and was able to get more desirable behavior from the photophilic bug, so I thought I'd post two more short videos:

Heading towards the light in an adjacent room:



Following a flashlight beam in a dark room:

Second Soldering Project: Photophilic Bug

I had a second cheap and simple soldering project to finish which I had bought roughly a month ago. It's a simple robot that uses two vibrating DC motors as "legs" and has two photoresistors as eyes. If it senses no light, it stops. If both photoresistors sense lights both motors turn on and the bug charges forward. If one photoresistor senses light and the other one does not, the one in the dark turns off the motor to the opposite (i.e., the light-facing) side, causing the bug to pivot back toward the light. It also has two potentiometers to allow one to calibrate the sensitivity of the photoresistors on both sides so it can follow, for example, a flashlight beam on the floor of a dark room.

That's the theory. In practice, the alignment of the photoresistors and the calibration of the potentiometers is a little difficult. As you'll see, I can generally get it to follow light, but it often goes in circles or senses stray reflections and heads into corners and gets stuck. I could probably spend some time to calibrate it better, but I did it for the soldering practice rather than to create a robot I could steer acurately.

Due to the locomotion system, it's useless on carpet. But as you'll see, it's surprisingly fast on my kitchen floor.

Brief Intro:



Showing the difficulties of steering the bug:



Charge!:

Saturday, July 4, 2009

Robotic Hummingbird

Brief article here. Here's the video:



It seems like a cool and important first step.

RC Low-Pass Filter

Using the oscilloscope, I examine the behavior of a simple low-pass RC circuit. The circuit has R = 150 KOhm and C = .01 μF, for an RC constant of 1.5 ms and an f3dB of 100 Hz.

Thursday, July 2, 2009

Camera can see what you cannot

Updated with slightly better video....



This is the camera I'm using here.

3...2...1...and...video!

Tuesday, June 30, 2009

Finding f3dB: More Oscilloscope Fun

 

Above is a Bode plot of signal strength vs. frequency captured by my oscilloscope for a simple low-pass circuit I built. The low-pass consisted of a 10k resistor and a 10 nF capacitor. If you do the math, and your resistor and capacitor values are exact, that gives you an f3dB* point of 1/(2*pi*R*C) = 1/(2*pi*.0001) = 1500 Hz (approximately).

The Velleman oscilloscope will automatically do a sweep of a frequency range you select and plot a graph as it collects data. When it's finished, you can get horizontal and vertical cursors to show you exact data values on the graph. In the graph above (click on it to get a larger version), the starting plateau is at about 5.4 dB. So 3db down from that is about 2.4 db, which is where the horizontal blue line is at. The vertical blue line shows where the horizontal line intercepts the curve: tracing this back to the frequency (x) axis gives you f3db. When you do that, it corresponds to a frequency of about 1200 Hz, which is pretty close to the calculated f3db. (You can see the values for these lines in blue at the center bottom of the graph. The y axis is Voltage or V, the x axis is frequency or f.)


*Note: f3dB is where the signal is attenuated by 3 decibels from its full strength or equivalently when its amplitude is approximately .7 of its maximum (.7 = 1/sqrt(2)). It's used as a conventional measurement point in frequency-dependent circuits. In general, you want to make sure any signals you're interested in preserving are well to the good side of f3db in the circuit fragment you're designing. Also, the f3db point corresponds to the power/intensity of the signal being halved, which may explain its significance better.
Posted by Picasa

Diode I vs. V

 

We all learned Ohms law at some point: V=IR. This means for a resistor, the current is just V/R or that there is a linear relationship between I and V. (That is, plotting I vs. V for a given resistor would give you a straight line with positive slope 1/R.)

This linear relationship between I and R does not hold for semiconductor devices, as the above graphs for I vs. V of a Silicon diode show. In fact, the relationship is roughly exponential for a moderate range of currents (below 20 milliamps). Eventually as the current through the diode rises, the voltage levels off and the graph becomes more like an S. Then past a certain current, the diode sizzles and you need a new diode.

So, basically the idea of a diode is to severely restrict until a certain threshhold voltage across it is reached (roughly .6 V for a silicon diode). Once that threshhold is reached, the voltage drop across the diode stays relatively constant across a wide range of currents, as long as you don't exceed the diode's maximum current. (Or put a voltage directly across it.)
Posted by Picasa

Sunday, June 28, 2009

Bluetooth Remote Control Boebot

Original version, just using the Boebot's own serial communications termimal, which is a bit clunky to use:



At this point, the Boebot is like an unoptimized remote-controlled car.

And then using a simple C# program I wrote to transmit and receive information from the Boebot:



Now that I have my own program controlling the information flow, I can make it more fluid. In this last video I'm using both mouse clicks (though my screen framing didn't let you see it) and the pressing/holding of keys to send information to the Boebot. So you could easily use mouse movements to allow you to manipulate the robot. Or start sending more complex commands by certain mouse clicks or keyboard combinations.

As I mention at the end, I'm also collecting information transmitted from the Boebot to the computer. At the moment, I'm just getting a series of letters (R, L, F, B) to indicate the direction of each step. But it wouldn't be that much more difficult to hook up multiple sensors to the Boebot and get information from all of them to either display to the user or to store/analyze the data.

Thursday, June 25, 2009

Velleman Oscilloscope

Here's a screenshot of it in action. The blue is the signal of interest. The red is a square wave the unit is generating itself that I'm using as a trigger.



The blue line is the video portion of the output of my Flip camera. Note: for more detail, click on the image and use your browser's magnification function. At 2x magnification, you can clearly see the back porch burst oscillations (see graph below for labels of portions of the curve). If you measure them out, their duration comes pretty close to 2.5 microseconds, as the standard dictates.


For reference, here's a graph from Cornell University on the signal encoding in NTSC:


Posted by Picasa

Wednesday, June 24, 2009

Improved IR Roaming BoeBot

Same idea as before, but with a slightly improved decision algorithm that is less susceptible to getting locked in a loop of forward-backward oscillation in front of an obstacle.

Stroboscopy Fan Fun



Playing with my newly soldered flasher in a dark room with a box fan.

IR Roaming BoeBot



The BoeBot here is configured with its IR LEDs and IR detectors pointed ahead of it like crustacean eyes. Its running a simple loop which:

1) Sends a pulse to the LEDs (making them emit IR light)
2) Checks the detectors to see if any of the light was reflected AND
a) Moves straight ahead if neither detector registered reflections
b) Or moves away from a single side that registered a reflection
c) Or moves backward if both detectors registered a reflection

It can get reasonably far with this simple loop. It does have a main weakness that if it approaches objects dead on in the right arrangement, it can get stuck in an infinite (or at least until the batteries die) loop of backing up until it just doesn't detect something then going forward a little and detecting it again. Sometimes the slight randomness of when it senses the objects and the wheels turning or sliding can wiggle it out of such a loop over a few minutes. Other times it gets stuck.

This brief video also shows that the two-IR sensor arrangement has some blind spots. This happens in almost any arrangement: if you align them straight ahead, it may clip things at the side without detecting them. If you make it too cross-eyed, it may register reflections from objects on the left on the right sensor (or vice versa) and react incorrectly. If you make it too bug eyed, it may not see things straight ahead. It would be best to have a third sensor to detect things directly ahead.

Also the vertical placement of the sensors is important. You'll see in the video that it can hit things that aren't as tall as it. So mounting the sensors as close to the ground would be best. (You can't point them at the ground too much or it will always go back since its only registering reflections or their absense; it has no ability to "see" with any resolution and detect patterns. So these sensors are like primitive animals light-sensitive spots.)

Finally the IR sensors register objects differently depending on their color and texture and how well they reflect or absorb this IR frequency. So it detects my hand at 5-6", a white wall at closer to a foot, a mirror well over a foot away, and sometimes doesn't detect black objects until it collides with them. So it should have a back-up sensing system like whiskers or a bumpers.

Monday, June 22, 2009

1st Soldering Project: Will It Work?

Here's a short video of me testing my first project. It took me about 2.5 hours to finish in two sessions.

Noob Soldering

Yesterday, I watched a couple of hours of videos on basic soldering techniques. Today, I decided to try soldering up a simple kit I got a month ago at the local electronics store. It's nothing fancy -- just a small, adjustable LED flasher.

I think the circuit is called an astable oscillator, a simple oscillator based on two RC circuits and two NPN transistors. Each transistor is configured in a common-emitter configuration and it's collector current charges an RC circuit, which then feeds into the base (input) of the other transistor. So it produces a square wave-type pattern based on the capacitor amd resistor values.

I'm using the 63/37 tin-lead eutectic mix rosin-core solder Bart got me recently. After watching the videos, the lower melting point of this alloy and the "feedback" you get when you make a successful connection seemed better to start with than lead-free solders. Once I get proficient at making connections with leaded solder, I'll try lead-free solders to see how difficult they are.

Unfortunately, the flip camera doesn't seem to focus well at close range (and has no real focus adjustment). Also the box fan and the solder fume fan Bart got me kind of obliterate the scintillating commentary I was providing. But you'll get an idea of what I was doing.

Since I wasn't a speed demon anyway and I found doing this in front of a camera a little distracting, I only solder up the first resistor.

Boe-Bot Calibration Test

In the first, brief Boe-Bot video, the servos were about all that was hooked up. So we saw the CPU send pulses through a couple of the pins, which told the servos to rotate.

Now, we see the first video of the Boe-Bot moving by itself. This entails a lot of repetitive calibration -- adjusting the pulse frequencies and the number of pulses to send to each wheel to get the bot to move forward in a straight line and to do simple turns. So, one has to take a guess, program it in, load it into the robot, then move the robot to a smooth surface, align it, and see if it moves in a straight line. If it doesn't, go back to the computer, hook the bot back up, and lather, rinse, & repeat.

This took a while to get mostly straight lines and close to 90 degree turns. By that point, the batteries were starting to weaken -- and that affects how the servos run and how straight the lines traveled are or the angle of the turns. I got it pretty satisfactory one night then had to go to bed. When I came back to it a couple of days later I found it was no longer going straight over a couple of feet or making crisp turns; so I started calibrating again. In the course of 30-60 minutes of recalibrating, the behavior changed again and reverted to values close to -- but not exactly -- what they were previously. Needless to say, this gets a little frustrating.

Also, due to the increased drag of carpet, the calibrations on a smooth lineoleum or tile floor won't be the same as on carpet. This means -- you guessed it -- more calibration! I chose the kitchen floor since it had long tile lines against which to judge straight lines and right angles. After seeing the bot's behavior change within about 10 minutes during calibration as mentioned above, I decided I would not spend time trying to do dead reckoning or precise distance/angle/speed calculations on the bot. Without a more stable voltage supply or some independent way of calibrating the wheel movements, it seemed like it would be time wasted.

Don't worry, I wouldn't presume to make you watch the boring repetition process. But here's about 30 seconds of the boe bot doing it's version of a close-order drill.

Friday, June 5, 2009

Come Drive With Me!

A vanity video testing my camera and tripod while errand running.

Thursday, June 4, 2009

Adventure in Woodworking


Posted by Picasa

Though admittedly a very small one...

Up til last weekend, I had only one table in my small apartment -- the dining room table I bought when I moved here 12 years ago. It's taken up by my computer stuff, so I really have no place to work. Per Bart's suggestion, I looked at a few affordable workbench/vice models like the one he emailed me about a couple of weeks ago. Or these from Costco.

One common complaint about these was that the rotating vice handles/gears were plastic and often broke during shipping. So I tried to find one locally, only to learn that most places don't want to take up valuable shelf/floor space and only have them available online. After a few days looking, I did find a cheaper no-name model locally. It's not as nice as the B&D model, but it was also less than $20. Since I'm not going to be doing any heavy work, I figured that would be a good model to learn on....

Click here to see the rest of the lengthy story.

A BoeBot is Born

Or assembled. Here is a compilation of snapshots of key points in the initial assembly of the BoeBot:

It's Alive!!

Here's a short video of me doing my initial servo testing of my BoeBot kit.