Pololu Blog (Page 38)
Welcome to the Pololu Blog, where we provide updates about what we and our customers are doing and thinking about. This blog used to be Pololu president Jan Malášek’s Engage Your Brain blog; you can view just those posts here.
In the United States, the first Monday of September is Labor Day, a holiday celebrating the contributions of workers. As a robotics company, we appreciate all the physical and creative work that goes into the creation of “labor-saving” devices, and we hope you will join us in celebrating these efforts, perhaps by spending the long weekend working on your own robotic creations.
We are having a big Labor Day sale throughout the weekend, with 15% discounts on over 400 products when you use the coupon code LABORDAY14. Note that we will be closed on Monday, so orders placed after 2 PM Pacific Time on Friday, August 29 will be shipped on Tuesday, September 2.
When the Raspberry Pi Model B+ was released last month, one of the most exciting features for us was the availability of a second hardware PWM output that can be used for motor control (previously, only a single hardware PWM output was available on the Model A and Model B). Two is a really useful number for robot builders, since that’s what you need for a basic robot platform, so we thought it would be a great time to make a dual motor driver kit for the Raspberry Pi.
The new Pololu DRV8835 Dual Motor Driver Kit for Raspberry Pi B+ is a minimal, low-cost motor driver expansion board based on the Texas Instruments DRV8835 dual motor driver, one of our favorite motor driver chips for small robots like the Zumo because of its excellent combination of size, cost, and performance. We carry a basic breakout board for this chip and just released an Arduino shield based on the DRV8835 last week.
Pololu DRV8835 dual motor driver kit (assembled) on a Raspberry Pi Model B+.
When assembled, the board plugs into a 2×17 block of pins on the Raspberry Pi GPIO header. Power and motors are connected to a separate block of pins, and you can use the included terminal blocks for easier wiring. The board takes an input voltage of 2 V to 11 V and provides two bidirectional motor channels capable of 1.2 A continuous or 1.5 A peak. You can also reconfigure the board for a single channel with twice the current.
Bonus feature – power your Raspberry Pi from your motor supply!
The Raspberry Pi requires a regulated 5 V supply, which is usually provided via the Micro-B USB power port. This is fine for a stationary setup, since you can just use a USB wall power adapter. On a battery powered Raspberry Pi-based robot, however, you need to somehow incorporate your own 5 V regulator capable of supplying about 500 mA. To help simplify your project, the motor driver kit includes a connection point for a three-pin regulator with the standard VIN-GND-VOUT pinout.
In the picture below you can see a complete setup using the motor driver board and our Step-Up/Step-Down Voltage Regulator S7V7F5 to drive two Pololu plastic gearmotors and power the Raspberry Pi from a set of four AA NiMH cells. This regulator is a good match for the range of input voltages of the DRV8835, though below about 4 V you might need something with higher current capability.
Driving motors with an assembled Pololu DRV8835 Dual Motor Driver Kit on a Raspberry Pi B+. A step-up/step-down regulator provides 5 V to the Raspberry Pi.
For more information, including schematics, pinout diagrams, and example Python code, see the product page.
LVBots held a looped maze solving competition at Pololu on August 7th. It worked a lot like the maze solving competition we held in May, except we advanced to a maze that had loops. Adding loops might not seem like much, but it makes solving mazes fundamentally more challenging. Instead of being able to follow a simple strategy like always turning left, the robots need to keep track of where they are in the maze in order to find an efficient path through it. The video shows the robot runs superimposed, making them easy to compare.
Robots based on the 3pi once again dominated. Ben’s 3pi: Ghost has an especially fun provenance: it is serial number 0J17, which is a very early production unit that David gave to Kevin for his birthday back before Kevin worked at Pololu. Ben’s ridiculously optimized/calibrated code from many years ago somehow worked only on our earliest 3pis, which had motor brackets that we painstakingly injection molded by hand and 3D printed wheels and ball casters. Now that he has kids, Ben doesn’t have as much time for hours of fine tuning, so his era of dominance will likely come to an end as soon as he runs out of access to ancient 3pis.
Are you in the Las Vegas area? Check out the LVBots Meetup page to get involved.
We just released the P-Star 25K50 Micro, a programmable breakout board for Microchip’s PIC18F25K50 microcontroller. Although we have been using PIC microcontrollers since our very first product, the P-Star 25K50 Micro (abbreviated P*) is our first product where the PIC microcontroller can be programmed by the user. The P-Star 25K50 Micro is the same size as our AVR-based A-Star 32U4 Micro, and we designed it with the hope that it would be small and cheap enough to go into (and stay in) almost any project.
The PIC18F25K50 has 32 KB of flash program memory, 2 KB of RAM, and built-in full-speed USB functionality. Applications can be developed using standard Microchip PIC compilers and development tools (such as MPLAB X and XC8).
The P-Star 25K50 Micro can be programmed via its proprietary USB bootloader using our open source software that is available for Windows, Linux, and Mac. The bootloader uses 8 KB of flash memory, leaving 24 KB for the user. Alternatively, an ICSP programmer can be used to erase the bootloader and access the full 32 KB of program memory. (Since the bootloader cannot be recovered, we recommend this option only for those who are comfortable programming exclusively with an external programmer.)
The P-Star 25K50 Micro features a precision 16 MHz crystal, a USB Micro-B connector, and three user-controllable LEDs. A voltage regulator and power selection circuit allow the board to be powered from either USB or an external 5.5 V to 15 V source, while a resettable PTC fuse on the USB VBUS supply and reverse protection on VIN help protect it from accidental damage.
P-Star 25K50 Micro pinout diagram.
Compared to the popular ATmega32U4 microcontroller, the PIC18F25K50 has nearly the same performance and memory capacity, but it also has some compelling features that are missing on the AVR. For example, the PIC18F25K50 uses the PIC18 architecture, which has two interrupt priority levels: interrupts can be assigned to either level, and a high-priority interrupt routine can run in the middle of a low-priority one. This powerful feature is what enables our Maestro servo controllers to generate precise servo signals while still using low-priority interrupts to assist with serial communication and other tasks. Unlike the ATmega32U4, the PIC18F25K50 can operate at full speed down to 2.7 V (though the brown-out reset on the P-Star is activated at 2.85 V by default).
The PIC18F25K50 also has a 5-bit digital-to-analog converter (DAC), which is a fun feature not available on many 8-bit microcontrollers.
A 3 kHz triangle wave generated by the 5-bit digital-to-analog converter (DAC) on the P-Star 25K50 Micro.
For more information, check out the P-Star 25K50 Micro page, and let us know what you think in the comments.
We are excited to announce the addition of two new motor drivers to our selection of Arduino shields: the Pololu DRV8835 Dual Motor Driver Shield for Arduino and the Pololu A4990 Dual Motor Driver Shield for Arduino. These miniature shields are low-cost, basic dual motor drivers for your Arduino or Arduino-compatible board. When connected to an Arduino, each provides two channels of bidirectional PWM motor control suitable for driving small brushed DC motors. The boards include various handy features like reverse protection, multiple power and motor connection options, and the ability to customize some of the pin mappings. Our open-source libraries provide a convenient way to get started controlling these motors with an Arduino.
Selecting a motor driver shield
Pololu DRV8835 Dual Motor Driver Shield for Arduino, top and bottom sides.
Pololu A4990 Dual Motor Driver Shield for Arduino, top and bottom sides.
The main practical difference between the shields is their input voltage range, so most people should probably select a shield based on their desired power supply. Here are some details:
Our DRV8835 shield, based on the DRV8835 motor driver from Texas Instruments, has an input voltage range of 2 V to 11 V and can deliver a continuous 1.2 A (1.5 A peak) on each channel. It is suitable, for example, for battery-powered robots similar to the 3pi or Zumo. As a bonus feature of our shield, you can parallel the motor outputs to get a single channel with twice the current capability.
Our A4990 shield uses the Allegro A4990 and is specifically intended for higher-voltage applications, such as projects powered by a 12 V or 24 V battery. It has an input voltage range of 6 V to 32 V and can deliver a continuous 0.65 A (0.9 A peak) per channel. The A4990 can detect and signal a variety of errors like over-temperature and short-circuit, allowing more sophisticated control and monitoring.
Basic breakout boards available
Congratulations to our summer interns!
If you carefully inspect the back of the boards, you will notice “TKern” and “izzyg” etched in copper. These inscriptions commemorate the internships of Ted Kern and Ismael “Izzy” Gomez, Las Vegas natives who were indoctrinated in Pololu design philosophies this summer while creating these new products. We wish Ted and Izzy good luck as they head/return to college at CMU and MIT!
Robert Stephenson (blobbington) posted about his robot dinosaur, Roboceratops, on the Trossen Robotics forums. Roboceratops is a small robotic dinosaur built to resemble a member of the Ceratopsian group. It uses a total of 14 servos for movement that are commanded through two of our Mini Maestro 12-Channel Servo Controllers, which are controlled by serial commands from his custom hand held controller. The controller is directly wired to Roboceratops and uses an Arduino Mega 2560, an LCD screen and two 3-axis joysticks. Robert wants to improve his design by making it wirelessly controlled and battery powered, and he plans to eventually make Roboceratops autonomous.
Roboceratops is mainly constructed out of laser cut MDF, but the legs are made from aluminum square bar. Upholstery foam was added to the legs to make them look more like real legs. The case of the controller and the neat carrying case at the end of the video also appear to be laser cut.
Forum user Erich uses our Zumo chassis as a platform for teaching robotics, but instead of using the Zumo shield, he has been making his own custom electronics that let it do many more things. One of his most recent projects, which he describes in this forum post, involves a control board he designed that uses a Freescale ARM Cortex-M4F running at 120 MHz. He says it is capable of running WiFi, USB, GPS, and processing encoder signals in real-time.
Erich also used the ElecFreaks’ joystick shield to run his modified Zumo, which sounds like a lot of fun! For more information on this project, including some of the problems he had to overcome to get it all working, see this forum post or visit Erich’s website.
Erich has posted to our forum about his projects before; you can find a list of the forum posts he made that we blogged about below:
March 2013: Zumo Robot with FRDM-KL25Z Board
September 2013: Zumo Robot with Pololu Plug-in Modules
October 2013: Zumo Robot with Pololu Plug-in Modules, assembled
December 2013: Zumo Tournament Videos
Get a FREE copy of Circuit Cellar magazine’s August issue with your order, while supplies last. To get your free issues, enter the coupon code CIRCUIT0814 into your shopping cart. The Circuit Cellar magazine will add 6 ounces to the package weight when calculating your shipping options.
For back issues and more information, see our free Circuit Cellar magazine offers.
And don’t forget that free copies Elektor magazine’s double-sized July/August issue are still available.
Our new stepper motor bracket is designed to work with typical NEMA 17-size stepper motors like our 42×48mm and 42×38mm units (including our 42×38mm stepper motor with 28cm lead screw). It is made from 3mm-thick black anodized aluminum, which makes it both light and strong, and slot cutouts allow for plenty of mounting flexibility.
For more information, see the product page.
Securely connecting and mounting the electronics for your robot or other project is a key step in taking it from a prototype to a finished design. These perma-proto boards from Adafruit use the same basic through-hole layout as standard solderless breadboards while allowing for permanent solder connections, which makes it easy to transfer your electronics from one to the other.
We are now carrying four types of perma-proto boards:
The flexible perma-proto board is made of a thin polyamide film that allows it to be bent, flexed, and cut to fit your project. This version is 3.1″ × 1.7″ (similar in size to the half-size board) and only 0.005″ thick. It contains 30 rows of pins and three mounting holes.
Each board uses 47 mil (1.2 mm) diameter through holes to accommodate parts with thick leads and is through-plated for strength, which means that the pads are less likely to be ripped of during soldering or rework.