Jump to content
43oh

Houston Robot Project Underway


Recommended Posts

  • 3 weeks later...
  • Replies 43
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Hi all,   I've recently started on my robot project using an old Tamiya RC car for a chassis. Bought a Basic Stamp to tinker with and it's interesting but so limited.   My name is Tim Wasson, I'm

You could just put a 3-4 wire header on the target board and use the LaunchPad as an in-circuit-programmer.

Here you can see the sparkfun motor controller that is used.  The grey wires go to the '430 and power, and the heavy wires are from the motors.  The controller is hot-glued to the top of the batter ca

Posted Images

Henry the Robot got a head, body, and motherboard!

 

I've got the I2C serial generally working to send data from a master to multiple slaves over the serial bus on the motherboard.

 

I've also mated up a Launchpad to a RadioShack board so I can connect the Launchpad directly to the motherboard as well and power the digital electronics from the USB port.

 

Still not crawling on his own, but things are moving along...

 

Writeup and videos available on the blog site:

 

http://henrytherobot.com/?p=82

Link to post
Share on other sites
Henry the Robot got a head, body, and motherboard!

I've also mated up a Launchpad to a RadioShack board so I can connect the Launchpad directly to the motherboard as well and power the digital electronics from the USB port.

 

I like your use of the Radio Shack boards. I just found those yesterday based on a TopHatHacker recommendation. It looks like you used the Universal Component PC Board with 780 Holes Model: 276-168 $2.99. They seem to be a great match for the launchpad form factor. One of the few things priced reasonably at Radio Shack.

 

-rick

Link to post
Share on other sites
Henry the Robot got a head, body, and motherboard!

I've also mated up a Launchpad to a RadioShack board so I can connect the Launchpad directly to the motherboard as well and power the digital electronics from the USB port.

 

I like your use of the Radio Shack boards. I just found those yesterday based on a TopHatHacker recommendation. It looks like you used the Universal Component PC Board with 780 Holes Model: 276-168 $2.99. They seem to be a great match for the launchpad form factor. One of the few things priced reasonably at Radio Shack.

 

-rick

yes, that's the exact one. I just took the feet off the launchpad, stuck some 10 pin headers at the appropriate distance, and soldered the launchpad directly to the pins. I could have put the female headers on the back of the launchpad and that would make it removable at the expense of board height, although with the female headers on the back side it would not be very useful as a standalone board. Plus, the pins extending past the surface of the launchpad make a handy place to clip test leads without taking up female pins that I might want to hook up with wires.

 

You're right, it's a pretty good value, there are cheaper boards that size, but they aren't terribly handy. Depending on where you mount the launchpad on the RS board, there is enough room towards the bottom of the board for about 4 other ICs, so it would make a pretty handy "permanent" Launchpad prototyping setup - in other words, purchase a launchpad to permanently mount to each board. It would save programming the chip, pulling it out, putting it into the target board, taking it out, programming it again, pulling it out, etc. If I had to start over now, I'd seriously consider this, if I thought I could get Launchpads from TI in quantity and reliably. I do feel a little bad using them that way, but if they want to sell it for that price, who am I to argue?

 

The stripboard is from futurlec and is an awesome buy at just $1.50, you just have to wait 3 weeks for it to ship from China.

 

The smaller daughter boards are Radio Shack as well, they are also a good value at $1.99 and work fine with an MSP430 and about 2 or 3 other devices. They have a nice layout for one or two rows of ICs and have a power and ground strip that run the length of the board. On the rear motor control board, I have the MSP430, an 8 pin dip socket to hold two transistors, and a 14 pin socket for the relay and it all fits nicely with enough room to spare that you can make the wiring fairly neat.

 

I did try their "two for one" boards that also sell for $1.99, but they don't seem very useful: They have either a DIP pinout with non-standard spacing around the edge, or they are all isolated pads which makes wiring a pain. I've quit using them.

Link to post
Share on other sites
  • 3 weeks later...

Hello, wanted to use my first post to say that i think this is an awesome project!

It's probably the one that pushed me into ordering the launchpad :) i searched for MSP430 Robot on Youtube after seeing a robot project on the official page, and then i saw Henry. Being a hobby programmer and lifetime gadget and tech enthousiast, i instantly wanted my own robot, ofcourse... ;)

 

I'm going to take a slight different approach. Not going that far with neural networks, more focusing on a central brain, But several MSP430's will be involved eventually, and probably also interacting with eachother in case of urgent events. Collision course onto a wall at high speed (3mph ; ) for instance, seems pretty critical to a harmless little robot. Although i would not be pleased myself either.

 

So enthoustically read/watched your motherboard and i2c connection of the lot. Probably the way to go for me as well. One launchpad to drive the main clock, gather/send signals, and interface with the other msp's that control motors, sensors etc

As for brains, i plan to use the OpenPandora for that(http://www.openpandora.org). That way i could also do an override and control it with the analog nubs of the pandora.I'm expecting the serial connector for that any day now, and later on might attach a bluetooth module to the robot, there was a project working somewhere, so should be possible and documented (not looked into that yet though).

 

Anyway, great job already, and looking forward to the updates.

 

Cheers!

 

MarkoeZ

 

p.s. For now, got leds blinking in several patterns on multiple clocks, nowhere near henry yet :P

But blinkmode is set by PC keypresses (in terminal, over serial), now building a testboard that nicely slots onto the launchpad to start motor drive experimenting. Colleague is hopefully bringing a decent sized RC car this weekend.

Will start project page when i actually have something to show.

Link to post
Share on other sites

The Dollar store is great for some neat items to hack salvage for electronics parts.....LOL!

 

First steps of success tonight! Henry the Robot (named for my late uncle who got me into electronics over 30 years ago), propelled himself under his own control! I got the PWM timer controls all set up and working, and he was able to crawl around at low speed, completely disconnected from the outside world, without relying on the Launchpad! No directional controls yet, however.

 

Instead of getting a 3.3 volt regulator (since Radio Shack was closed), I went to the dollar store. Did you know they sell perfectly good dual AA battery cases cleverly disguised as little fans? So for $1 (which is 29 cents less than Fry's), I got a battery holder, a little motor, and to top it off the spinner on the fan prop turns out to be a little centrifugal led board!

 

While there, I picked up a pre-built 5 digit 7 segment LCD counter display. They had them mislabeled as "pedometers". I'm going to try to have the motor control board be able to use it for a display, just clear it, and fake the bounces up and down on the pedometer to give an output on the display.

Link to post
Share on other sites
  • 2 months later...

I've been trying to get back to my Henry project, and did some digging into different possible serial bus standards.

 

It turns out that part of the HDMI spec includes a CEC (consumer electronics control) bus, which is a 1-wire partyline serial bus similar to I2C but with the idea of broadcast addresses.

 

http://wiki.novoflight.com/index.php?title=HDMI-CEC_Overview

 

The protocol is quite simple, the length of time the line is held low determines the logical value. It's designed to support plug-n-play, where logical addresses are handed out similarly to DHCP.

 

Given that it's one wire, I think I could afford to have any given controller in the robot connected to 3 to 5 of his neighbors. Then each of those neighbors could be connected to other neighbors, etc, etc.

 

Pros:

very simple protocol,

best use of pins

 

Cons:

15 max devices addressable on a single bus

slow bit rate (per the spec, about 500k bits per second, although I could simply crank it up if I'm not trying to talk to a spec-compliant CEC device.

 

Thoughts?

Link to post
Share on other sites
  • 2 years later...

After a long hiatus, I'm back to working actively on my robot, Henry.  Originally he was supposed to be massively parallel and built on a Tamiya RC car chassis.

 

About 2 years and 3 or 4 redesigns later, I realized that if I didn't have a robot moving around under it's own power, it was all pretty pointless.

 

I am regrouping around a smaller, simpler chassis - the Radio Shack 'RC Moonwalker' toy. It's an IR remote control with differential steering.  They also make the same thing in a more 'stand-up' form.  These are currently on clearance for $12.97.

 

You can find them at: 

http://www.radioshack.com/product/index.jsp?productId=21541036

 

The plastic gearmotors are worth $10 on their own, and the IR controller works quite well.  I'm going to re-purpose it to twiddle pins on the 430, giving me a basic interface.  You don't need PWM, as the robot moves at a reasonable pace without modulating the speed.  The body of the rover is transparent yellow plastic (passes IR easily).  Plus, it comes with an awesome and totally non-functional parabolic dish antenna, which is just dying for a silver coating, a photo-resistor, and a micro-servo to spin it.  Now that is VERY robotic..

 

I'm using a Sparkfun motor drive breakout board, and if I had to do it over again I would just use the simple TI 1A quad half-H chip.  For sight, I have a midrange Sharp IR distance sensor, which I'll mount in the 'cab' of the bot.  The plastic 'tires' on the drive wheels will slip before the motors stall, so it's quite robust if it backs into things.  Because of the slippage, odometry will be effectively useless, but then I don't drive to work based on dead-reckoning either.

 

The Launchpad won't fit inside the body, but it will sit on the back of the body (like a flatbed truck).  I'm using female headers with ribbon cable soldered to them for connecting the Launchpad (V1.5) to the bot, and I'm running a G2553.

 

I'm not giving up on the parallel concept, and I expect that I'm going to dust off my 'puppynet' serial packet networking code, which will get me 3 separate serial multi-drop peer-to-peer networks using just 4 pins.  It's just too cool an idea to not finish up.

 

I've also revived www.henrytherobot.com, although there isn't really any content yet.  I'll upload some pictures tonight, and hopefully a video of Henry be-bopping around on the floor.

 

Tim

Link to post
Share on other sites

Here you can see the IR controller that I've hacked.  The IR controller motor driver outputs now goes to 4 input pins on the '430, and the '430 is running the motor controller.  So he functions as a 'remote controlled' robot right now, but only because that's what his software says to do right now.

 

The IR controller was easy to hack, it runs fine off 2 AAA batteries (same as '430) but I did have to add 5k and 10k pulldown resistors on the outputs of the IR motor driver because they would float high if they weren't being driven.  You can see them in the pictures.

post-173-0-80860300-1396881582_thumb.jpeg

post-173-0-82090300-1396881595_thumb.jpeg

post-173-0-50274400-1396881622_thumb.jpeg

Link to post
Share on other sites

This is the Launchpad with the msp430G2553.  The Launchpad is hot-glued to the radioshack breadboard.  I used female connectors and soldered the ribbon cable strands to the pins on the female connectors, so it's possible to unplug if needed.  Inputs are pins 2-5, motor controls are 9,10,12,13, Sharp IR sensor is 14 (but inop right now...)

 

Note the use of 30 gauge wire-wrap wire as cable bundles.  Easier, smaller, and lighter than zip ties.

post-173-0-36088800-1396881871_thumb.jpeg

Link to post
Share on other sites

Here you can see the sparkfun motor controller that is used.  The grey wires go to the '430 and power, and the heavy wires are from the motors.  The controller is hot-glued to the top of the batter case to keep it out of the way.

 

The Sharp IR sensor is hot-glued to the underside of the Radio Shack breadboard-style PC board.  The sensor has a slight downward tilt, although perhaps not enough to keep me from running off the edges of things.  The Sharp sensor has a simple analog output which will be read on pin 14 of the 2553.

 

The top level board is supported on 4 legs of 22 gauge solid hookup wire, which just set in holes on the robot chassis which were meant for mounting the original body.  These 4 wires are quite strong enough to hold the board in place.  The board is easy to remove and tilt off the body for work, and if he really smashes into something, the wires will let the board easily pop off and hopefully avoid damage.  They don't pop out even if Henry is moving as vigorously as possible.

 

The Terminal Block is from Radio Shack, small Euro style, and is hot-glued to the robot chassis and provides access to power (3v, 4.5v, and Gnd).  The white wire goes to the middle of the battery pack to supply the 3v when the USB cable is not connected.

 

You can also see the original power button, which I flipped upside down.  It is used to control the motor power, which is handy because then you can single step and debug code while hooked up to the robot without it trying to run around on you.

post-173-0-64403200-1396882128_thumb.jpeg

post-173-0-21958900-1396882144_thumb.jpeg

post-173-0-35834300-1396882155_thumb.jpeg

Link to post
Share on other sites

Worked on the 'navigation table' for Henry last night.  The idea is basically that you can put an entry into a table in RAM that will have call a routine at a given number of 'tics' from now, where a tic is some time period that you find relevant.  Once the tics counts down to zero, the routine is called and that section of the table can be re-used.

 

When avoidance movements need to be performed, the existing table entries will have their 'tics' counters bumped up to compensate for the time to perform the avoidance movement.  This is going to be my general approach to sequencing, as it's the easiest way I can come up with to allow multiple subsystems to have their own 'state machine', and still account for unexpected inputs which may need to affect the state timing of other subsystems.

 

There's more of a write up on my blog.  Hope to have obstacle avoidance working by the end of the week.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...