Let's Make Robots!


Scuttles about detecting people, light, and objects
ScuttleV103.bas24.41 KB

Scuttle: to scurry or to run hurriedly or furtively with short quick steps - Seems appropriate.

The name came to mind just watching it scuttle around. It is just a little experiment with an old "Skater" base I kept around off an old toy of my son's. Seemed worth keeping - Left/Right skid steer layout by two small motors makes for easy control. Three AA batteries in the bottom originally powered it and I'm using those for the motors. I needed CPU / Accessory power so I used the 9v but also wanted symmetry so have two mounted up. I will have them both in parallel soon allowing longer run times.

Base Chassis - Motor Relay Board


The motor driver board is basically a relay based H Bridge that uses three inputs to control motion. Left motor direction, Right Motor Direction and Stop/Go. Default is all off, L & R relays default to forward. Taking the Go/Stop pin high engages the "power" relay that drives both motors. Flipping L/R directions gives steering and backwards movement. The board has motor and transistor/relay power isolated so eventually I could pulse width modulate the main motor power source if desired to control overall speed, but not left/right individual speed.


Currently Scuttle has one PIR sensor that is used to detect people, animals, etc. Current code just makes him runs forward for one second, turn around for one second (which is near 180 degrees on our carpet), runback and turn around again waiting for the PIR to turn off. Fun with the dogs and cat at least. If you keep triggering motion after he runs back he will turn around to get away from you.


However, front feelers will be added soon (Done 10/16/2012) and a Sharp IR distance sensor (or two), two LDR's for light level sensing (Done 10/16/2012) and two microphones are being mounted on a round PCB board for the front or head of the bot. This will allow basic light seeking / avoiding, object avoidance, and let me experiment with tracking rough sound levels. A transistor driven speaker is also being wired up to allow basic bleeps and blops for feedback using the FreqOut command on the BX24 brain. Nothing special, just something to play around with.

Rear view, RS232, Switches, BX Homebuilt board



I realize the sound input will not be too useful when he is driving due to noise but plan to obtain sound samples while stopped. This is similar to the PIR that triggers all the time he is moving with people around because it looks like the people are moving. :-/

Without any odometry he really has no clue where he's at but he scuttles around well enough to have fun with.



Update 10/16/2012
Mini Speaker Tucked InsideAdded a mini speaker with a transistor driver for sound output and the "Head" to it with two LDR's for light sensing and replaced the front feeler mount with new switches and feelers. He can now follow light, run away from light, and self navigate to some degree. Sharp IR sensor should be in soon for front mounting to avoid having to bump.

Rough code currently allows tracking light or dark and settling when it's light/dark enough, follow the flashlight and respond to feeler bumps. He makes a startup sound and some sounds when he is happy about the light conditions.I can select light seek / avoid by holding left or right bumpers closed on power up.

Next code update will be to default to 1) find light for a minute or until bright enough, 2) switch to find dark spot, turn around facing light and activate PIR mode. When it "sees" someone it will run out, play a sound and restart the process. Simple playful stuff is all I'm looking for anyhow.



Update 10/23/2012 - IR Sensors/Code Update

IR sensors mounted up front and now working in code. (See main master pic at top) I ended up with a front facing and an front upwards facing solution. The front handles robot level objects while the upwards looking one is intended to keep the robot from going underneath things that it shouldn't such as the couch, some chairs, etc. The front vertical feelers work with this too but not always. Next will be to add a front lower sensor or feeler to handle edges as well as getting stuck on objects it can't quite drive over. I would also like a back sensor/feeler at some point.

I've updated the code to handle the IR sensors as well as run through the three basic "modes" the robot has: Light Seek, Light Avoid and PIR. You can trigger it in light avoidance and watch it find a comfortable low light area. It then sits for the idle timeout period and jumps to light seeking mode until it finds a "BrightEnough" spot. After a bit it then changes to PIR mode waiting for a person to trigger it at which the the cycle can start over. I've played with the code to wait until a person or just wait for "IdleTime" to jump to the next mode. Still need some "Eye Protection" though as the LDRs can easily get wasted if he runs under something hard. Fun to watch run around the room, etc though. Will post a new video soon.

Added the v1.03 Version of the BX24 code here - nothing perfect, just a working model

Still To Do:

1) Rear feeler or sensor

2) Front lower edge detector - QRB-1114 or just a feeler?

3) Code updates to better handle not finding light/dark enough, better bump handling

4) Rechargable 9v batteries (ordered 10/20/2012)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I like the trick you say you used to toggle light/dark seeking (holding the bumpers down on initialization). Looks very cool and versatile! I like your labeling on the relays as well, haha -- very organized.

Nice work, I love the compact and simple design (rogue toys are the best). The items you have planned seem pretty interesting - looking forward to your updates :)


Added a mini speaker, LDR's and feelers to Scuttle. Little more fun with light seeking / avoiding and bump options now. IR sensors should be here shortly so feelers will hopefully not be needed as often. Feelers are fine for some things but wihtout a full front face to bump underneath the kitchen cabinets, etc is a normal problem.


Reactivity versus simplicity? Can it be that you use delays for the timing problem?
Yes, I just have it stop, settle a bit and then check sensors. The PIR needs to warm up on power up and also has a time out value after it triggers. You see it sit with the red led on the BX24 while it checks for the PIR to turnoff. I will do similar with audio inputs to get a clean signal of the environment. Of course bumps and LDR can be read and acted upon and subsumed as needed.