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.
Wednesday, July 22, 2009
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.
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.
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:
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:
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!:
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
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.
Labels:
electronics,
low-pass filter,
oscilloscope,
RC filter
Thursday, July 2, 2009
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.
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.)
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.
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:


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:
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.
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.
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.
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
Thursday, June 4, 2009
Adventure in Woodworking
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.
And I learned an assembly lesson while putting that together: don't blindly assume that all screws and nuts should fasten tight. I got annoyed playing around with their disposable assembly tools and got out my ratchet set to tighten down a big nut and screw. Only after a minute or two of efficient tightening did it dawn on me to wonder why the nut hadn't held tight yet and was still moving readily: the screw and nut were the support of a hinge from the table part of the bench to the leg! So for the assembly to fold for storage, the nut couldn't be made immobile. I had dented the leg a little in my overzealousness, but it's really just a cosmetic problem.
On Friday, I went to Home Depot to get the wood for the work surface. I must have picked the wrong day. I walked around for 20 minutes or so looking at the options and searching for a worker to help me. Finally, seeing no one, I found an electronic "Push here for assistance" box which summoned a worker, who was busy helping someone else. After another 15 minutes or so of waiting, he came back to tell me the guy who could actually help me would come shortly.
This entailed more waiting, after which the wood supplies manager came to talk to me, visibly impatient and stressed. Having to metaphorically hand hold a newbie who barely knows the difference between a screw and a hammer, didn't improve his tension. I told him what I was thinking about and the work surface dimensions of 50" x 30" I'd decided on. He got a pained look on his face, shook his head a little, and stared up and to the side in thought. I continued explaining but he still seemed unhappy, so I asked what the problem was. The problem was that 24"x48" was the closest he had to my size. After that, I'd have to work with the next precut size of 48"x96" and cut it down to size. But his saw to do that was broken at the moment, although it might be fixed the following day.
I also asked about cleats and he showed me something suitable that came in 8' sections. I asked about having that cut, since I only needed 4' at most, but he said that the thickness was below the minimum of what they would cut with their saws. After extracting some advice on screws and how many to use, I let the palpably distressed man tend to the many other matters on his mind.
Since I've done exactly no woodworking since middle school shop class, I decided to get sufficient, but cheap materials to learn on. So I got the 8' cleats and a 48"x24" surface.
Saturday, I cut the cleats, marked the measurements out on the surface where to attach the cleat and screws, and drilled pilot holes in the surface. I had went out from the late afternoon until after dark and I didn't want to run drills, etc. after 11 pm.
Sunday, I fastened the cleat up in the vice and started driving the screws in. I learned a couple of things. First, I should have clamped the cleat to the worksurface at the ends. The screws went flush in the middle, but at the ends went partway into the cleat and then pushed it away from the surface. Second, I should have drilled wider/deeper pilot holes (although I was using wood screws that claimed I shouldn't have to use pilot holes at all) and/or used a lubricant. In my inexperience, I wound up having to strip the screws to get them all the way down. Actually, even on the highest torque setting, the cordless drill would usually just barely get them down to the surface; I'd have to use my body weight and a manual screw driver to tighten them down flat.
This left me with the 4 or so screws at the ends that had pushed the cleat away a fraction of an inch while going in. I tried using a hammer to solve this on my balcony, but after a few hits, I was making a lot of noise for my neighbors and I was leery of doing damage to the material of the balcony floor -- I'm on the 2nd floor, so I didn't want the underside to crack from the stress. So in the evening, I took the table out to an abandoned commercial parking lot and beat it mercilessly for a few minutes to get the cleat and screw heads flush with the surface.
I probably should have used countersinked the holes a little, but that didn't occur to me until after the screws were in. When I started, I naively assumed the drill would tighten the screws partially into the surface on its own.
Anyway it's not pretty, but it should be functional for light work. I can always build something more rugged in the future better and more efficiently should I need it.
Close it back up.
A BoeBot is Born
Or assembled. Here is a compilation of snapshots of key points in the initial assembly of the BoeBot:
Subscribe to:
Posts (Atom)
