Tuesday, June 28, 2011

Power

Well, the timing issues are resolved to some extent. I was able to control direction and right or left wheel decisions. Unfortunately, it seems I now have a power issue.

I have a 9-volt battery powering the processor, so if the motors drag the battery pack down too much, the processor won't attempt a restart. I experienced that with a Basic Stamp and someone else (I wish I could remember who) told me what the problem was. Processors get their own battery from now on.

The problem that I have experienced is that the 9-volt battery pack, powered by six 1.5 volt AA cells, is a little weak to power two motors at the same time. This design calls for four motors to run simultaneously. I don't have the power for that.

I have a 12-volt gel-cell that I think would do the job, except it would over-power the servo motors. I may try a battery for an R/C race car and see if it delivers better power. The gel-cell is pretty heavy for this chassis and motor torque. In addition, I will build a bus for the power in an attempt to keep a larger-diameter conductor in the power circuit.

More news as it happens. In a future post, I will also talk about modifying the VEX Tumbler design.

Sunday, May 15, 2011

Timing

Well, everyone says it's all about timing. Sometimes, it is.

In this case, the timing is down to milliseconds.

The project at hand is making a VEX platform run with an Arduino microcontroller. Should be simple enough. I looked up the specs for the VEX 3-wire servo motor and found that to control direction and speed is:
• PWM Input:1ms - 2ms will give full reverse to full forward, 1.5ms is neutral

• Dead Band:1.47ms - 1.55m

Simple enough- the dead band yields no revolutions, everything below the dead band turns the motor one direction and everything above turns it another within the 1ms and 2ms ranges. I selected a couple of pins for PWM on the Arduino and wrote some code using the analogWrite() command and worked within 1.00 and 2.00 ms. Or so I thought.

It didn't work.

I stripped the code down to writing directly to a pin with a particular value: analogWrite(10,1.50) and could not make it work. It just would not work.

Well, after getting some assistance, it appears the command should have been analogWrite(10,150) and the range was 100-250 with about 190 as neutral and about 180 to 200 as the dead zone. It's probably closer than that, and maybe I will research it further later, but for now, we are in the ballpark.

There will be more work to do- the motor runs faster in the 120-180 range than it does in the 200-250 range. It also runs in a different direction on each side of neutral, but one way is "forward" and the other is "reverse". I use the quotes because "forward" and "reverse" depend on which side of the chassis the motor is mounted. To move the robot forward, one motor runs "forward" and the other "reverse". at the same absolute value from neutral, the different directions run different speeds.

The result is that with the motors running different speeds, a straight line run becomes very difficult to maintain as the robot will turn in the direction of the slower wheel.

I have more work to do- running two motors draws more current than my circuit wants to deliver and this is a four motor platform.

And we missed the RoboRama because neither my son nor I had a running platform. Not even for show and tell or VEX unlimited class. I really wanted to get this VEX platform running; after all, VEX was kind enough to give it to me- I should get it running.

Pictures soon.

Your Host





Saturday, May 14, 2011

Arduino VEX

No, I am not dead. And neither is this blog. Yes, there has been a lull in the action lately; OK, for a long time. A friend once told me that "That work junk sure gets in the way of a lot of stuff!" He was right. Work has been overwhelming lately. I won't go into details as that is out of scope for this blog, but work has sapped my creative juices for many months now. I put some big issues to bed and hopefully can do some creative things now.

I would like to thank you for reading my post. I hope to post more often in the future.

Last fall the Dallas Personal Robotics Group (dprg.org) visited Innovation First International( http://www.innovationfirst.com/ ). makers of the VEX Robotics Design System ( http://www.vexrobotics.com/ ).  We were treated to an outstanding tour of the facility, met the executives and were generally wowed and overwhelmed. The IFI folks were kind enough to hand out some valuable  kits as we left. It was my understanding that we (the DPRG folks) were to take the kits and stress them somewhat. It seems that the kids in competition won't stress the kits. It would appear that stressing a kit to the point of failure would keep a school VEX team out of competition, so I can see why they don't do it. Our competitions are different, without so much on the line, so IFI has asked us for some stress testing.

I am getting to an Arduino tie-in here...

In particular, the IFI guys were interested in VEX robots running on some other processors, including Arduino. As I am one of "the Arduino guys", I received a VEX Protobot kit. This solves a major problem for me in that I find the programming kind of easy, but the engineering is problematic for me. With a rolling platform in kit form, the hard work (for me) is done. All I have to do is wire it up and program it. Right.

So, the project needs a name. VEX-duino? Maybe not.

I used the Protobot kit to build the tumbler chassis. It is a steel chassis with four servo motors driving four wheels. It was a simple enough kit to assemble. I will cover more as I move along, but the robot is a tumbler with an Arduino microcontroller and the first task will be to build it for competition in the "Square Dance" event for RoboRama 2011a- a twice-yearly event offered by DPRG. Rules are here: https://docs.google.com/document/pub?id=1NqZZQ4MnlD9Y1EGsEvkvKFXNPVXpH45YAd_l338y-3o&pli=1

More on this project later.

Once again- thanks for reading!

Your host