Arduino - Looking for Suggestions

by billschreiber on Fri Nov 30, 2012 3:35 pm

Hello,

This is my first robot project, and I have had a lot of fun so far.

I am building a Roomba-like autonomous robot vacuum cleaner. I took an existing rechargable vacuum cleaner, added wheels, an Arduino and some whiskers when it runs into a wall so it will back up, turn a bit and go forward. I am using a 9V battery to power the Arduino and the existing 7.2 v rechargable NiCad battery to run the wheels and the vacuum itself. To control the power going to the motors, I use DPDT 3 position switches with some small servos to physically move the switch to the position I need. I started out with relays, but the power to keep them closed was > 3 watts so this seemed a less power intensive solution. If I was staring over, I would buy an H Bridge (didn't know they existed until after I built mine), but hey it works.

Question 1: I bought 2 battery powered screw drivers for $8 a piece to power the wheels. The thing doesn't track straight but always kind of edges to the right since one of the drills goes faster. What would be a good way to get it to track straight? I thought about resistors but it would be changing battery power for heat which seems inefficient. I also thought about ripping out my electro mechanical H Bridge and either make my own with transistors, diodes and caps or buy it for $2.50 from our kind hosts. Any suggestions I might have missed?

My next challenge is to have it find a charging station and recharge the 7.2V rechargable battery when it needs it. After a bit of research, I saw a video where a guy put an IR sensor in a tube and would rotate the tube until it sensed the IR from a VCR remote. From that, he could deduce where the IR source was in relation to his robot. The problem with that is a VCR remote creates a pretty narrow beam, has a limited range and also only works line of sight. I had thought about cleaning under my couch and just have the 5 remotes I lost 2 years ago pointing altogether outward. I could have the robot but if someone has a better solution, I would love to hear it. What algorithm have other folks used to solve this problem?

Thanks in advance.

Regards,

Bill
billschreiber
 
Posts: 4
Joined: Thu Nov 22, 2012 6:39 pm

Re: Arduino - Looking for Suggestions

by adafruit_support_bill on Sun Dec 02, 2012 8:50 am

1) The best way to get your motors to run at the same speed is to use PWM (Pulse Width Modulation) to vary the power sent to each motor. Most motor controllers use PWM for speed control.
2) The TV-B-Gone might be a good solution for you. It has 4 IR LEDs which you could mount at different angles to give you a wider spread. You could also replace the 2 narrow bean ones with wide beam ones for even wider coverage. https://www.adafruit.com/products/73
User avatar
adafruit_support_bill
 
Posts: 25514
Joined: Sat Feb 07, 2009 9:11 am

Re: Arduino - Looking for Suggestions

by billschreiber on Mon Dec 03, 2012 9:40 am

Support,

I hadn't thought of looking at the TV B Gone. I have 3 IR emitters I bought from you folks already plus several I scavenged from my kid's dead remote control toys. I will give them a try first and barring success using those, I will get the TV B Gone.

It sounds like my electromechanical H bridge will have to go if I want it to go in a straight line. I didn't understand what a motor shield did before.

Regards,

Bill
billschreiber
 
Posts: 4
Joined: Thu Nov 22, 2012 6:39 pm

Re: Arduino - Looking for Suggestions

by adafruit_support_bill on Mon Dec 03, 2012 11:13 am

Electromechanical (relay based) H-bridges still exist. But they are not fast enough to do PWM speed control. I have never seen a servo-actuated one though. 10 points for a novel solution! :D
User avatar
adafruit_support_bill
 
Posts: 25514
Joined: Sat Feb 07, 2009 9:11 am