The Orangutan LV-168 is a full-featured controller for low-voltage robots. Thanks to a step-up voltage regulator, you can power this Orangutan with two or three 1.2-1.5 V batteries while maintaining 5 V operation for its Atmel mega168 AVR microcontroller and your sensors. A pair of discrete, low-voltage H-bridges deliver up to 2 A continuous per channel to get the most power out of low-voltage motors.
Overview
The Orangutan LV-168 robot controller, the fourth release in our line of
Orangutan robot controllers, is a complete control solution for small robots powered by two or three NiMH cells (or similar batteries). The small (2.15" x 1.9") module includes a powerful Atmel ATmega168 AVR microcontroller, two bidirectional motor ports each capable of providing 2 A (continuous), a removable 8-character x 2-line liquid crystal display, a buzzer, three user pushbutton switches, and two user LEDs. Eight general-purpose I/O lines with up to eight analog input channels allow for adding sensors or expanding the system.
|
Orangutan LV-168 features (top view). |
The Orangutan LV-168 incorporates a step-up voltage regulator that generates 5 V from the lower input voltage, enabling the mega168 to run at its full speed of 20 MHz and allowing the use of sensors that require 5 V. Two discrete H-bridges using low-voltage MOSFETs allow efficient control of two bidirectional DC motors drawing up to 2 A each (continuously). The motor drivers can briefly deliver up to 5 A each, but each motor is protected by a resettable fuse that is triggered by excessive temperature. If a motor draws much more than 2 A for more than a few seconds, the voltage to the motor will be reduced, but normal operation will resume once the board has cooled down. An on-board temperature sensor can be connected to ADC6 for some (limited) feedback about the board temperature.
Like our original Orangutan, the Orangutan LV-168 is based on Atmel's mega168 AVR microcontroller, which features 16 Kbytes of flash program memory, 1024 bytes of SRAM, and 512 bytes of EEPROM. Because the user has direct access to the microcontroller, any development software for Atmel's AVR microcontrollers, including Atmel's free
AVR Studio and the
WinAVR GCC C/C++ compiler, is compatible with the Orangutan LV-168. An in-circuit programmer, such as our USB AVR programmer, is required for programming the Orangutan LV-168; we offer a
combination deal that lets you save when you buy a programmer with your Orangutan. We provide an extensive set of software libraries that make it a breeze to interface with all of the integrated hardware. These libraries come with a number of sample programs that demonstrate how to use the various components on the Orangutan LV-168. This robot controller is also compatible with the popular Arduino development platform.
The Orangutan LV-168 is designed to operate off of three NiMH cells, which corresponds to a voltage range of 2.5-4.5 V. In a typical application, you might power your Orangutan LV-168 with three AA batteries, for example. However, the unit can operate from two or four NiMH cells with some limitations. At lower voltages, the effectiveness of the motor drivers will be reduced, and the 5 V step-up regulator's output current will be reduced. Beyond 5 V, the step-up regulator will cease operation and the input voltage will show up on the Vcc line; the components on the board can operate to 5.5 V, but some sensors you use might have a 5.25 V limit.
The Orangutan LV-168 matches the outline of a 3 AA battery holder almost perfectly, allowing you to combine the two into a single, compact unit.. Such a battery holder or a pre-assembled pack of similar size (often available as a cordless phone battery pack) will help you get up and running quickly.
Specifications & On-Board Hardware
- overall unit dimensions: 2.15" x 1.9"
- input voltage: 2-5 V
- 2 bidirectional motor ports (2 A continuous per channel, 5 A maximum per channel)
- programmable 20 MHz Atmel ATmega168 AVR microcontroller (16 KB flash, 1 kB SRAM, 512 bytes EEPROM)
- 8 general-purpose I/O lines, 6 of which can be used as analog input channels
- 2 additional analog input channels (ADC6 & ADC7) can be accessed on the board
- removable 8-character x 2-line LCD
- buzzer tied to one of the mega168â€Ã¢â€žÂ¢s hardware PWMs
- 3 user pushbutton switches
- 2 user LEDs
- temperature sensor optionally connected to ADC6
- user potentiometer optionally jumpered to ADC7
=======================================
Dimensions
Size: |
2.15" x 1.90" |
Weight: |
35 g |
General specifications
Processor: |
ATmega168 @ 20 MHz |
RAM size: |
1024 bytes |
Program memory size: |
16 Kbytes |
Motor driver: |
discrete MOSFETs |
Motor channels: |
2 |
User I/O lines: |
8
1 |
Max current on a single I/O: |
40 mA |
Minimum operating voltage: |
2 V |
Maximum operating voltage: |
5 V |
Continuous output current per channel: |
2 A |
Peak output current per channel: |
5 A |
Maximum PWM frequency: |
10 kHz |
Reverse voltage protection?: |
Y |
External programmer required?: |
Y |
LCD included?: |
Y |
Notes:
- 1
- All 8 can be used as digital I/Os and 6 can be used as analog inputs. Two additional dedicated analog inputs can be accessed on the PCB if their jumper connections to optional hardware are removed.
=======================================
Documentation and other information
Pololu Orangutan SV-xx8 and LV-xx8 User's Guide(Printable PDF:
svxx8_lvxx8.pdf)
User's guide for the Pololu Orangutan SV-168, SV-328, and LV-168 robot controllers.
Pololu AVR C/C++ Library User's Guide(Printable PDF:
pololu_avr_library.pdf)
Information about installing and using the C/C++ libraries provided for use with Pololu products.
Pololu AVR Library Command Reference(Printable PDF:
avr_library_commands.pdf)
A reference to commands provided in the Pololu C/C++ and Arduino libraries for the AVR.
Programming Orangutans and the 3pi Robot from the Arduino Environment(Printable PDF:
orangutan_arduino.pdf)
Guide to making the Arduino IDE compatible with the 3pi robot and the Orangutan SV-168, Orangutan LV-168, and Baby Orangutan B robot controllers, including Arduino libraries for interfacing with the all of their on-board hardware.
Application Note: Using the Motor Driver on the 3pi Robot and Orangutan Robot Controllers(Printable PDF:
motor_driver_application_note.pdf)
Detailed information about the 3pi Robot, Orangutan SV-328/168 and LV-168, and Baby Orangutan B motor drivers, including truth tables and sample code.
Application Note: MLX90614ESF SMBus Communication with Orangutan Robot Controllers(Printable PDF:
mlx90614esf_smbus_orangutan.pdf)
A guide for implementing the SMBus (I²C-compatible) protocol for the MLX90614ESF temperature sensor on the AVR-based Orangutan robot controller series. The guide includes sample code for taking temperature readings.
File downloads
- Pololu AVR Development Bundle for Windows (release 110624)(173MB exe)
- This bundle contains the software you need to get started programming AVRs in Windows using the Pololu USB AVR Programmer: the WinAVR tools, Atmel AVR Studio 4, the Pololu AVR C/C++ Library, the Pololu USB AVR Programmer drivers and software, and the Pololu Orangutan SVP drivers.
- Orangutan LV-168 quick-start sheet and schematic(256k pdf)
- Sample AVR Studio project for the ATmega168 to blink an LED(9k zip)
- This is a sample AVR Studio project that will blink an LED on an Orangutan with an ATmega168 microcontroller: Orangutan mega168, Orangutan LV-168, Orangutan SV-168, Baby Orangutan mega168, and Baby Orangutan B-168.
- AVR Studio test program for the Orangutan LV-168(69k zip)
- C code for the mega168: This is the program used to test each Orangutan LV-168 before it ships and is part of the program that comes pre-loaded on each Orangutan LV-168. It interfaces with all of the on-board hardware and can be used as a starting point for your own programs. This program requires the
Pololu AVR library (libpololu). Please see the Orangutan LV-168 user's guide for more information about using this test program.
- AVR Studio demo project #1 for the Orangutan SV-168 and LV-168(14k zip)
- C code for the mega168: This project demonstrates the fundamentals of using I/O lines on a mega168. Each line of the source code is commented, and there is a short tutorial in comments at the start of main() on using AVR I/O and on C bit-logic. The program will alternately flash the two user LEDs until you ground the general-purpose I/O pin PD0 (the right-most of the eight user I/O lines at the top of the board). Grounding pin PD0 will cause the program to pulse the buzzer pin instead of the LED pins, causing the buzzer to play a note. While intended for use on the Orangutan SV-168 and LV-168, this program will run on the Baby Orangutan B-168 and can serve as a useful example on how to use the ATmega48/168 I/O lines. It will run on the Baby Orangutan B-328 with some minor modifications.
- AVR Studio demo project #2 for the Orangutan SV-168 and LV-168(16k zip)
- C code for the mega168: This is a slightly more advanced program that demonstrates triggering actions with the user buttons and controlling the buzzer using one of the mega168's hardware PWMs (as opposed to the processor-intensive software buzzer control we used in Demo 1). The program will cause the buzzer to play while the user buttons are held down. The button held down determines the frequency of the note the buzzer plays.
- AVR Studio demo project #3 for the Orangutan LV-168(29k zip)
- C code for the mega168: This project demonstrates analog-to-digital conversion, use of the LCD, and control of the motor ports. Specifically, it uses the mega168's analog-to-digital converter to monitor the position of the user potentiometer. It displays the potentiometerâ€â„¢s position on the LCD and drives the two motor ports based on this position.
- AVR Studio demo project #4 for the Orangutan LV-168(29k zip)
- C code for the mega168: This project demonstrates the use of the mega168's UART, interrupts, and reading the on-board temperature sensor. To make full use of this demo, you will need a source capable of producing logic-level (TTL) serial transmissions at 115.2 kbps. The
Pololu Orangutan USB programmer can be such a source if you switch the blue shorting block to the USB-to-serial-adapter position and connect its TX pin to pin PD0 on your Orangutan LV-168. Don't forget to also connect the programmer's ground pad (labeled G) to ground on your Orangutan. Then start up a terminal program such as Hyperterm or Tera Term Pro, connect to your serial adapter's COM port, set the baud for 115.2 kbps, and start typing characters. You should see the characters appear on the top row of your Orangutan LV-168's LCD while the bottom row displays the output of your board's temperature sensor. If you touch the board near the temperature sensor, you should see this reading rise.
- MCP9701 datasheet(522k pdf)
- Datasheet for the MCP9701 temperature sensor used on the Orangutan LV-168.
Recommended links
- WinAVR
- A free, open-source suite of development tools for the AVR family of microcontrollers, including the GNU GCC compiler for C/C++.
- AVR Studio
- Atmel's free AVR integrated development environment (IDE) that works with WinAVR's free GCC C/C++ compiler.
- ATmega168 documentation
- Atmel's product page for the ATmega168.
- Pololu Orangutan Forum Section
- The Orangutan discussion section of the Pololu Robotics Forum.
- AVR Freaks
- AVR community with forums, projects, and AVR news.
- Tutorial: AVR Programming on the Mac
- Customer Michael Shimniok has written a guide to programming AVRs (the Orangutan LV-168, specifically) using the Mac.
=======================================
FAQs
On the Orangutan LV-xx8 and SV-xx8, there seems to be a "normal"Â power connection and an "alternate"Â power connection. Can you explain what the "alternate"Â is for?
The two power connection options are just different physical options for connecting to the same electrical nodes. For instance, many small battery packs come with a 0.1" female connector that could be plugged into a male header soldered into the alternate power location. For other power sources, such as a battery holder with wire leads, the screw-style terminal blocks might be a better option.
Are the motors and microcontroller on the Orangutan LV-168 powered off the same battery? Does that mean the Orangutan LV-168 can only handle using up to 5.5 V to drive motors? That seems like an odd limitation given the relatively higher-current motor drivers you are using.
The Orangutan LV-168 uses the same power source for both motors and logic. The unit is specifically designed for low-voltage operation, with a step-up regulator for getting 5 V to the logic and extra low-voltage MOSFETs for the power circuitry. The controller is targeted at low-voltage toy motors such as those in the
Tamiya gearboxes, which do draw several amps at low voltages.
My Orangutan LV-168 came with a small bag of capacitors what are these for? Are they 0.1 uF caps for motor suppression? Do I need to solder them onto the board somewhere?
The capacitors are indeed for motor noise suppression. They are 0.1 uF caps, and we provide six of them so that you can put three on each motor: one across the leads and one from each lead to the case. It might not be necessary to put all three on some motors, but it is crucial on some noisy motors such as those in the
Tamiya educational kits.
No recommended products at the moment.
No recommended products at the moment.