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.
Looks cool with the sun glasses. The coolest looking bot I have ever seen. I love it!
Love when he plays with the drum sticks!! Well done!
I wonder if you will design more complex drum sequences  :)
Yes! More complex drumming is on the way. That was just a simple sequence to test him out. I want to see how much memory I have left in the Picaxe-08M to program in several drumbeats, speaker sounds, maybe even dance moves.
He's looking really cool with the shades  :)
I hope you make it.. maybe with random routines you can have a bunch of different drumming patterns.  ;)

That was my original thought. I coded two sequences each for the bass thumper, tom drum, and speaker click. I was going to run through each combination, to have eight possible songs. The idea was to bit-wise add one of two bass sequences with one of two tom drum sequences and one of two speaker click sequences.

Unfortunately, there's just not enough space in the 08M to code that, and also navigate. Just for fun I might do a version of his code that just sits still and plays, so I can at least see how it would have worked. If I do, I will definitely do a video of it.

 

I soon found with the 08M, 14M and 20M that the memory was always too limiting. With Bot 08M I at least had the advantage that less code was required to drive a servo than the circuits mentioned in this post.

True, but I knew I'd be limited when I bought the 08Ms. However, it felt like overkill for some bots to get a 28x.

I learned a lot by having to deal with the limitations. I had to be inventive for everything, from dealing with just one sensor, to coming up with new circuits to programming. Those are lessons I can take forward to other designs.

Blind Lemon was definitely fun and a good learning experience. There's still some code tweaks I want to do before I post the code.

I think my next 08M project will use two of the DAGU mini servos hacked for continuous rotation. Then we'll see what else I can do with an 08M. ; j

 

Just saw new video, awesome!! And... your lemon is really blind :)) Haha, love it! :D

Well done! Untill I read how you did it I thought you had abandoned the 08M. Another idea is similar to Charlieplexing where your output goes to 2 transistors with biasing resistors. If the output is high then it turns on the NPN transistor. If the output is low then it turns on a PNP transistor. Open circuit (or changing the output to input) causes both transistors to turn off. If you add some diodes and capacitors then alternating the output at a high enough frequency will turn on both transistors with the capacitors keeping the transistors on for a short period after the output has changed.

Otherwise you can always just use a serial/parallel IC with latched outputs.

So another economic thing I was re-using parts of the Y-Bridge driver.

I in fact bought a 4-channel, 2-line mux IC, which was supposed to let me switch the outputs of the Picaxe. Similar to your serial/parallel IC concept. However, I needed more current to drive the drumstick motors than the Picaxe could put out. Then I thought, hey, I've already got some transistors from the dual Y-Bridge that I won't be using, but the mux IC couldn't handle those sort of currents. So...

I used a relay instead and switched the two forward outputs of the Y-Bridge to drive the drumsticks instead. I don't need the reverse output, so I switch the Picaxe output that normally drives reverse, and use if for the speaker.