Archive for September 2009
Continue from part 1…
About the H-Bridge and motors.
There’s a lot of H-Bridge CI’s on market today. The most used on DIY robots are:
My experiency with SN754410 is good. It’s a good device, friendy DIP package (don’t say the same about L298). But (always there’s a “but…”) it’s have a great voltage drop across the internal transistors. If you put 6V at Vmotor and a 1A load, you get Vmotor – 2V, so only 4V to the motors. For my robot I want a more efficient H-Bridge. L298 and L293D are bigger devices, have the same problem than SN754410 and… I hate L298 package. So, I move to a new device.
Fortunately, at same time I find the Toshiba’s TB6612FNG dual motor driver. It’s a really nice device, with a good package (SSOP24 300MIL). TB6612FNG specifications:
- Motor voltage (VMOT): 4.5 – 13.5 V
- Logic voltage (VCC): 2.7 – 5.5 V
- Output current maximum: 3 A per channel
- Output current continuous: 1 A per channel (can be paralleled to deliver 2 A continuous)
- Maximum PWM frequency: 100 kHz
Pololu have it in a nice breakout board, very friendly (above). After some test, they are chosen for GUI v1.
GUI v1 is little robot I was design over the last months. I have already made some other robots, but I don’t even finishing most of them. This design has various issues, and challenges. But it’s almost finished. Now I’ll post some steps of your design and construction. If you like it, visit my project page a LetsMakeRobots. It’s a awesome site with a lot of robots and good people.
First, going to my desires: I want a little robot, with little wheels and little motors. They need to be battery powered, but a little battery.
Some things I want my robot to do:
- Line following;
- Maze resolve;
- Wireless communication;
- USB wired communication;
- Self-charge your battery;
- Have a lot of LEDs (because LEDs are fun!);
So, with this great inspiration I begin it’s prototype. Maybe what I said now sounds a little amateur, but, when I have started, I don’t have a clear idea of how the final robot looks like, but I knew that your lines should be clear, without wires growing up.
I hate deals with hardware, so I decide that for the robot body I want use a PCB. The initial result was good enough to encourage me:
Now, the nightmare begin: solder every part to PCB and wire all. I like, but I hate this.
The robot have the follow parts:
- PIC18F252 was MCU, running at 20MHz;
- 7 reflectance sensors, QTR-1RC;
- Dual Motor Controller, TB6612FNG;
- 2 Micro Gear Motor 30:1;
- Step-Up converter, NCP1400 for 5V;
- 3.7V LiPo battery;
About the MCU:
The PIC18F252 has the PIC Tinybootloader inside, for speed up the code development. Bootloaders have their issues, but my design is for a robot with easy upgrade capabilities. I like that everyone how like to change their software, can do this without bought a PIC programmer.
I don’t use all pins, but a think that for the final version, some other PIC is a better choice (like PIC18F452).
About the sensors:
The digital version translates the reflectance into the capacitor discharge time, so with a common digital I/O port, and a counter, you can differentiate from a White surface (more reflective) from a Black surface (less reflective). The circuit below is show their use with a ordinary digital I/O on the MCU:
The analog version (QTR-1RA) needs a ADC line on MCU. Most of MCUs today have one, so don’t worry about your choice.
Now I have to sleep. Tomorrow I’ll post the next steps. Bye.