Saying farewell to another project/friend, Frank

Everyone fell in love with Frank because of his cute smile and, well, the fact that he had a “normal” name. With my proposal for a new project (coming soon), I needed some parts on a $0 budget. As a result, both of my running Arduino projects have been taken apart to reallocate the parts to this new project. While the new project won’t be using each and every part from Frank, it will be one of the largest projects I’ve ever done if it all works out.

Here are all of the parts I used to make Frank:

frankpartsThanks for following this project. It was fun doing a conventional robot. I will eventually do one again, but right now I need a fresh project. Details on that will come when it’s ready.

Meet Frank 1.5

I’m happy to present a new video showing off some changes to Frank, my Arduino robot:

Here are the changes to him since the first video:

  • The LED is almost never off. The songs may do its own thing with it, but it transitions between red, green, and blue as he roams about.
  • A couple of switches were added so I didn’t have to plug wires into the breadboard to power things on. Unfortunately, I only have two switches so I couldn’t add one for power to the Arduino board.
  • More tape everywhere to keep things on him better.
  • He can now sing the Canadian national anthem. I thought that made sense since he now wears a Canada flag pin.
  • I replaced a lot of the prototyping breadboard wires with my own hand-cut wires. It reduces the amount of extra wire piled up on him.
  • The biggest improvement is that Frank now checks both of his sides while he’s roaming. Before, if he was heading toward a wall on an angle, he wouldn’t pick it up and would roll right into it. Now, he’s a bit more cautious and I haven’t had any similar problems.

So there you have it. I think the only thing to do now is replace everything cardboard on him (except his head for some character) with a more durable material. Only then would I bring him up to 2.0.

Thanks for reading!

Frank’s shaving

Just thought I’d quickly mention… The PLC elevator simulation has been stressing me out. I’ve had to redo portions of the code over and over and it’s just bleh right now. I’m rusty with my ladder logic so I’ve been sidetracking myself with Frank and Cities in Motion 2. Anyways…

Watching Adafruit’s Ask an Engineer streams every week (well, I only started watching them a couple weeks ago) always get me in the building mood. I figure it was a good time to give Frank a little love because I always feel awkward just sitting there watching an hour long stream.

Most of the clean up was just cutting down wires and replacing some of the tape. Some additional tape on the undercarriage components have done him well. The speaker was almost always hanging off but now it’s much more secure. I replaced a lot of the prototyping jumper wires with my own cut wire. It still looks like a mess, and probably always will given his small size, but it’s better than before.
IMG_20130810_231718

Personal touches are what make Frank so lovable! Frank was involved in a nasty collision with a door, and it wasn’t pretty. He almost lost his original smile because of the rough shape of his head, but I kept that layer of the cardboard and reinforced it with new pieces behind it. Frank is also proud to be Canadian.

IMG_20130810_232054

There were a few other things I wanted to clean up but would require a soldering iron, and I don’t have one that I really want to use… I have two cheap irons that don’t have power adjustment or even a proper stand so…

The next thing to do is to work on the code. There are a couple of things I want to do to make Frank a little more smarter and efficient, along with adding some extra songs to his repertoire.

Thanks for reading!

No one is perfect.

This applies to robots too. Looking at you Frank.

It didn’t take long to realize the design flaws in him. First, let’s take a look at the top.

IMG_20130725_112353

Before even programming him and powering him on, I realized the first flaw. The breadboard where all of the electrical junctions are is right up to his rotating head. While it hasn’t caused too many problems, the path of his head goes over a few pins in the breadboard, wiping out a few connection options. He hasn’t yanked out any wiring just yet, but I always have that fear in mind when he’s roaming about.

The next problem is his head. Cardboard is easy to work with because it’s a material that’s just lying around the house and easy to cut. Unfortunately, it doesn’t make a good head. The connection to the servo was made by tape. It held up great for a while, until he hit a door and beheaded himself. I tried using some pins to give it some more strength and to connect it to the servo horn a little better, but it’s not really working. His head tends to flop around a bit when he’s moving.

Now let’s take a look at the underside:

IMG_20130806_102653

So the first quick problem is the speaker tends to fall loose from the carriage. It takes just a quick squeeze to get it back on. Not a huge problem.

The biggest problem on the underside are the two servos. Originally, there was a cardboard bar going across connected to the underside of each servo to keep them secure and level. Unfortunately, as he was roaming around, the bar was picking up hair and dirt, even ants (not the best idea to test him out in a kitchen in the summer).  He’s an explorer, not a janitor. The bar was removed, but now the servos sort of bend inward with his weight on the two wheels (as expected, that’s where the battery packs are, the heaviest parts on him).

I’ve been wondering what to do next. There are a few options:

  • I can continue playing around with his current build. All that means is toying with the programming, trying to make him a little smarter with what he’s got.
  • I can rebuild him using better materials and planning.
  • I can salvage his parts to create a new project.

In the most likely case, I’ll probably go down the list in that order. Hmm.

This was a great learning experience in planning, building, and troubleshooting. I hope you learned something too. Thanks for reading!

Night lights, with Frank.

What kind of light show sits in darkness waiting for showtime? I’ve got this simple ambient sequence where all of the lights are on while the RGB LEDs cycle through some colors. Here’s a video if it, with Frank standing guard. Perhaps if I ever find a song with a dramatic start (like the intro to World of Color), it could start with this and then proceed with the show. For now, try not to fall asleep.

Can you hear me now?

Frank is not one of a kind. There are plenty of robots just like it. The tutorial for using the ultrasonic range sensor is basically the core of a robot like this (the sensor plus some logic and servos). With that, I wanted to add some special touches.

As other people have commented, there are some personal touches that give Frank some personality. It begins with the smile on his face!

One of the features that made it into the project is the speaker. Like I said in the last post, the speaker was from a lab kit from school that we never used. With the speaker, Frank can now give some audible feedback. At this point, he sings a couple snippets of songs with the push of a button, which is a little unintuitive since you have to chase after him to push it. This is a result of when things don’t work out the way you wanted or expected.

IMG_20130729_135423

Arduino is easy to shop for with plug-and-play boards readily available. I bought that sound sensor pictured above. The description for the product said where to plug in three wires and you’re off. Unfortunately, I haven’t found it to be that simple. Maybe I’m missing something, but I can’t get any change in analog readings unless I blow air at it. In tutorial videos, a simple snap is enough for it to detect a change in sound, so I’m kind of stumped. Some quick searching leads me to believe that these aren’t the greatest sensors to work with. My hope was that a clap would start and stop Frank, and a double clap would have him sing. I hope to eventually get it working. Eventually.

Other than that, that was more or less the plan with my budget being $100 (which I used almost completely on budget).

With what Frank is now, I want to work on making him a little more aware of his surroundings, particularly a wall that he will hit on one of his corners. I hate to say it, but other than some code clean up, I haven’t really worked on it since I released that video of him. I also want to work more with the speaker, add some additional songs, maybe give some personality feedback (like “hello” in tones or screaming).

I’m currently back at my LED shows, hoping to have a new one ready for Friday. There’s a minor change that has created additional sequences for me, but I haven’t even covered the original hardware configurations here yet! Thanks for reading and stay tuned for more!

“Frank” the robot makes his debut

My past Arduino projects haven’t been ones you’d associate with the word “robot”. I finally wanted to dive into the conventional sense of the robot and build a basic roaming robot that I would add onto. With that, “Frank” was born (not sure where I got the name from, but I like it).

I got a lot of inspiration from just Googling “Arduino robot”. There were many other robots already existing that look just like Frank — but made of better materials. I really don’t mind my projects having exposed wires and cardboard everywhere. With everything looking makeshift, it reminds you that you made dis.

My planning started with picking a microcontroller. I’ve only used Arduino Mega compatibles before but for a project that I knew wouldn’t need so many I/O’s and that would have a smaller footprint, I went with the Uno (a real one). I got all of the parts off of RobotShop.com except for a tactile button and a switch I harvested from an old RC car, and an 8-ohm speaker I got with a school lab kit but we never used. They’ve got a Montreal warehouse so their cheapest shipping (around $6) usually takes just a day or too.

IMG_20130722_145440

Frank is equipped with an ultrasonic range sensor that will detect if there’s something in front of him so he can react appropriately. He moves around using two continuous rotation servo motors. That’s pretty much the base objective I was going for, and I’m satisfied to say that I’ve completed that, though there is still some fine-tuning to do. If he’s not going completely parallel to a wall next to him and just slightly going toward it, he’ll eventually crash into it because he’s only looking forward. I tried to have his head turn to look around him but it wasn’t working so he’s just looking straight ahead for now.

So now that I had a base, I wanted to add my little (almost gimmicky) features. On the underside of his carriage, there is the 8-ohm speaker.  Right now he can sing a bit of Vengaboys’ Vengabus and Daft Punk’s Get Lucky. There will definitely be more added to his repertoire eventually.

IMG_20130725_112353IMG_20130725_112339

The next post about Frank will talk about features that didn’t work and future feature additions. I’ll also be cleaning up the code, hopefully making him a bit smarter. Thanks for reading!

Code is available here.