Older blog entries for davee (starting at number 9)

Sales of the Serial Sonar Decoder is doing better than expected. There is a new version coming down the pipe, It uses RJ11 cables instead of the original headers. Mainly we are adopting an interface standard that is based on a four wire standard and the RJ11 is a good standard to adopt.

Yesterday we added the ability to handle the Sharp GP2D02 IR sensor to the board. The Serial Sonar Decoder now handles the SRF04 and the GP2D02. We will probably have to rename it now, since it is no longer strickly a SONAR board.

The board defaults to the SRF04, but with a serial command, you can tell it to use the GP2D02 on a specific port instead.

The IR sensor gives excellent short range (4-30 inches) in tenths of an inch.

Look for it at wehali.com

22 Aug 2002 (updated 22 Aug 2002 at 07:10 UTC) »

Well, it's been a couple of weeks since my last entry. I've been distracted by another project involving a 'real' robotic project in the works.

As to the status of K2, the firefighting robot, I'm using a 2 liter soft drink bottle as the 'target' since the pyro sensor does not report heat as much as it detects the thermal difference of an object from what it thinks is the background temperature. Works as well for cold things as it does for hot. Anyway, I don't need a fire burning for this stage of the game. K2 can find the bottle, and navigate to within 5 inches of it using the pyro sensor and the sonar system. It still needs some fine tuning, but that's ok.

Between the motors, head servo, ADC for the pyro and the sonar, I've used 12 out of the sixteen available ports. I expect to need only two or three more ports for another infrared sensor to narrow the angle towards the fire and the extinquishing system. If it gets too critical, I can offload the sonar functions to one of my sonar coprocessors and gain 4 more pins.

It is interesting to watch K2 roam around a room, locate the fire and get closer to it. If I used a fan like most people do, K2 allready gets within 10-15 degrees and stops 5 inches from the target. At that range, it should have no problem blowing out the fire. I want to do better. I want to be able to shoot a stream of water or foam at the flame and put it out with a 'real' fire fighting system.

Anyway, the next step is to modify the K2 to align itself dead on to the flame before triggering the fire suppresion system.

I've also added a routine to patrol an area and look for fires while it is on patrol. This patrol routine will evolve to patrol the trinity house and return to the start point after putting out the fire.

Yesterday, I added an Eltec 442-3 pyroelectric sensor. It is great at detecting people and dogs at a pretty good distance. Candles are a bit different. It seems the best I could get it to detect that candle was about 18 inches. This might improve within the confines of the Trinity house.

Began development of subsumption architectire for the kanati class. Currently have three levels implemented. Still need to smooth things out os that the different functions can be performed without slowing down the movement. Mostly this will involve a kind of multitasking some of the levels. Since the Javelin Stamp doens not really support this, it will be simulated on board.

in the meantime, Sparky, our dog, is having fun playing with K1 as K1 chases it around the house at crawling speed.

Today, I added code to allow the movement of the bot in precise distances and turn in specific degrees. K1 can now navigate the trinity fire fighting contest's house. At least it traverses an open area that is modeled on the house. I've ordered an eltec 433-2 pyroelectic sensor to be mounted on the head. It does not have line sensors yet and we will see if they are needed. Since the bot knows where it it, it may not need them. We will see.

I've relocated the left and right sonar units to the sides, over the tires, looking directly right and left, as opposed to the 45 degree of center that they had been. This required a minor change in the code, but now I can detect a room simply by the range data from the side sonar units.

I plan on building a Trinity house for the development. Seems I have a few sheets of plywood out back that will come in handy.

After working out a few bugs (there are always bugs to workout), K1 does a wonderful job of exploring and avoiding objects.

Tonight, I added a servo 'head' to hold a scanning platform and wrote the code to handle the scanning process while K1 explores it's world. The scanning process occures concurrently with other operations via a background timer.

I still need to add code for the targeting sensor and tell it what to do when it sees a target, but it all is coming along quite nicely.

I've decided to build a fire fighting robot out of K1, so I will be looking for a UV sensor in the next day or two to mount on the head. Haven't added the sound board yet either, will save that for later.

23 Jul 2002 (updated 23 Jul 2002 at 18:04 UTC) »

After a few hours of tinkering with the code, Kanati-1 can now negotiate a maze. It doesn't do it well because it does not yet keep track of the world and it's place in it. It would do better if I was not using a random direction when it sees something straight ahead. That's going to take some time just playing with it.

I have the side sensors reacting further out than the center. This lets it react to somthing along side it before reacting to the front sensor.

If anyone has any good behaviors for dealing with obstacle avoidance, I'ld like to talk about.

Added a home page for Kanati project. It currently has one image of Kanati-1. goto Kanati Home to see it.

22 Jul 2002 (updated 23 Jul 2002 at 03:47 UTC) »

Kanati-1 LIVES!

As I expected, I used a CD jewel case for the chassie, mounted the three transducers about 45 degrees apart. May need to move them even farther apart but it never seems to bump in to anything with the avoidance range set to 4 inches.

I'm using a simple avoidance algorithm;

  public static void main() {
  int rc;
  k = new Kanati();     //create the robot object
  System.out.println("K1...online");
  k.sleep(5);
  k.moving=false;
  k.initializeSONAR();
  k.minRange=4;
while(true){
 //robot code here
   CPU.delay(100);

rc=k.checkSONAR(); k.moving=true; while (rc == 3){ k.move(); CPU.delay(1000); rc=k.checkSONAR(); } if (scanForTarget()!=0){ fire(); } else { k.avoid(rc); // not an enemy, avoid it }

k.moving=false;

} // while loop } // main

k is the instantiated kanati class (robot object) where all the real code is at.

The avoid routines determine which sensor detected the obstacle and acts accordingly. If object detected Forward, backup and turn in a random direction. If right or left, turn in the opposite direction.

That's pretty much it so far. I will post some pictures on my website tonight.

Created a Java class for robots based around the Javelin Stamp and Board of Education, both products of Parallax. Kanati-1 is the first product of that class. An experimental test bed, K-1 is just being used to develop the platform. See the Kanati-1 project for a description

sensors and motor working.

Still need to add the sound module, 4 pins, will have to develop a class for it before it goes online.

body will be added tomorrow.

I received my first Javelin Stamp today. Sweet! As a result, I now have a Java class for the Devantech SRF04 Ultrasonic Transducer.

I have a Basic StampII board to handle up to 8, but I just couldn't resist the urge to test the sensor with the Java based Stamp. I guess the next thing would be to I2C enable it. Hmmm.

X
Share this page