Let's Make Robots!

Blind Lemon

Drives around, bumps into things, plays beats, backs up and moves on.
AttachmentSize
lem1_4.bas4.32 KB
lem1_5.bas5.17 KB
lem1_8.bas5.84 KB
lem1_9.bas6.21 KB

Most Recent Update:

Uploaded new code (v1.9) that introduces some 'shuffle' to Blind Lemon's beats. Thanks for the tip, Frits!


Intro

 

Blind Lemon is now a functional drum bot...

and he's gone YDM with his new look!

This simple robot handles basic navigation and is armed with a bass drumstick thumper at the rear and a high hat drumstick on his left side. His front bumper switch is used for collision detection. He currently has three drumbeats he alternates between.

My goal with Blind Lemon is to get as much out of the little Picaxe-08M as I can. I used my dual Y-Bridge motor control design so I could drive with only 3 processor outputs, rather than 4 outputs for a traditional dual H-Bridge. That left me one dedicated input and one input/output.

That wasn't enough, so I added a DPDT relay. One Picaxe output controls the relay, and now I can get double duty from the other four pins.

Pin3 on the Picaxe-08M is a dedicated input and is being used for the bump switch. The other three switches allow motor control in one mode and drum and speaker outputs in the other. 

Chassis

Base

The circular base is 1/8 inch fiberboard. Rectangular notches are cut for the motors, which are mounted with small wood blocks as supports and hot glue.  

Wheels

The wheels are home made from prescription pill bottle caps and hot glue. Two Arexx rollers from DAGU keep Blind Lemon from pitching forward or backward. 

Now that Blind Lemon is looking so fine, I may upgrade his wheels. The ones I want to use are a little smaller in diameter, and the hole for the axle is too big for the motor shafts. If I can come up with a good way to mount them, I'll lower the motors to fit the smaller diameters. The wheels are nice black ones and it'll look great next to Blind Lemon's paint job.

Sensors

Blind Lemon is... well, blind. The only sensor he has is the bump switch mounted on the front. Sort of a "walking cane". An unintended, but welcome function of the round base and the placement of the wheels and bump switch is that when Blind Lemon hits a wall or other flat vertical surface, he tends to rotate until he is facing it squarely and the bumb switch is activated. You can see this pretty clearly in some of the videos.

Motors

The motors are two DAGU 3V gear motors, which are appropriately yellow in color. That was the main reason I chose them (not).

The motors for the drum sticks are these little guys, suggested by fritsl for his YDM.

Power

Four AA batteries in a vertically mounted battery case sit at the centerline of the base. It is attached with hot glue (what else?)

Speaker

There's a small speaker taken from a broken toy, which is hot glued underneath the base. The wires for the speaker feed up through a small hole in the base.

Cover

I really like the look I came up with for Blind Lemon. The cover is the bottom of an old scots whisky carton. His shades are the lenses from some clip on sunglasses I had. The frame broke, so they were useless to me.

 

Circuitry

Picaxe-08 Protoboard 

Here's the Picaxe-08 Protoboard populated with the dual Y-Bridge circuit... just fits!

 

Auxilliary Board

To the left of the vertical battery box you can see a green circuit board used for auxilliary circuits. Primarily it holds the 4PDT relay (in yellow) that switches between motor control for motion and drumming. The power switch is to the left of the auxilliary board.

Adding the relay added a lot of wires between the auxilliary board and the Picaxe Protoboard, which is why there are so many wires inside Blind Lemon now. 

 

Programming

Description

Blind Lemon drives forward until his bump switch is hit. Then he plays one of three stored beats before backing up,turning and continuing on. The next time his switch is bumped, he will play the next beat in sequence.

Code

The commented code is uploaded as a file attachment to this post.

Version 1_4 is the first real release.

Version 1_5 optimized code and added a 'dance' routine.

 

Comment viewing options

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

Inspired by ignoblegnome's usage of 08M's input/output pins I did some searches on the other day. I faintly remembered hearing something about tri-state outputs of microchips somewhere and so I found this: http://www.user.dccnet.com/wrigter/picaxe/08M%20sea%20of%20keys%20and%20touchpad%20encoder.htm

If I understood correctly (I'm still in the very beginning of the electronics learning curve) that is some kind of example of what OddBot described above. I think I'll try that tri-stating when my 08M arrives.

Hope this was useful.

You and OddBot bring up some really interesting ideas! I have to let them stew for a bit and see what comes up.

I have another Picaxe-08M just waiting for the right idea...

This circuit should allow you to control speed and direction of a motor with a single digital output.

Tri_state_output__2_schematic.jpgAdjusting your dutycycle between high and open circuit will PWM the speed of the motor. A negative pulse will activate the relay reversing the direction of the motor. A capacitor on the base of the BC327 transistor will keep the relay on for a short period after you activate it allowing you to continue PWM the motor speed. You may need to experiment with the capacitor value to find a suitable timing period. 

 

Do you need a special kind of relay for this to work? The kind that only requires a short pulse to switch position, but stays in its new position after the pulse? What is the official name for such a relay? A latch perhaps? What about the diagram symbol?

Or is this all taken care of by the extra capacitor-delay you describe? A specific hack for this blind melon that only needs to reverse for a second or two and then move forward again?

Beautiful diagram BTW. As always. Snubbing diodes over inductive loads, suppression capacitors over noise sources. All in the exact right spot and such a clear layout. I am collecting this bot, just for that!

These two circuits are pretty cool. Thanks for posting them!

In the schematic bellow, A high input will drive one motor, a low input will drive the other motor. High impedance turns both motors off and alternating between high and low turns both motors on. The capacitors are optional. They keep the motors on briefly after the signal changes so that when turning both motors on they will still run at 100% dutycyle.

Tri_state_output__schematic.jpg

This might be usefull for driving 2 drumsticks from a single digital output.

Note: there is a small mistake in this circuit, each transistor should have a 1K resistor in series with it's base.

I tried Oddbot's schematic above but it drives both motors when input pin is set to high impedance (or I did something wrong :-). After almost 2 days of fooling with different schematics I finally came up with this:
Tristate schematic

When the input is low both leds are off. High input will drive one led (or motor, I used leds when breadboarding) and high impedance the other. I'm still learning the basic electronics so I give no guarantees but at least I got it working on breadboard :-)

Here's the code I used (with Picaxe 28 project board and 28x1):
main:
' D1 off D2 off
low portc 0
pause 1000
' D1 off D2 on
high portc 0
pause 1000
' D1 on  D2 off
dirsc = %00000000
pause 1000
goto main

 

the wheels may look tacky (pun intended) but the body looks pretty sexy. Should put a chrome dome on top.

Blind Melon?

 

BTW: Nice tires!

Good guess, but you need to go back further in time.

http://en.wikipedia.org/wiki/Blind_Lemon_Jefferson