Pololu Blog (Page 4)
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.
I am excited to announce the release of the Pololu USB AVR Programmer v2, a programmer for the popular AVR microcontrollers from Atmel.
Here at Pololu, we have been making AVR programmers for over eight years in order to support products like our Orangutan robot controllers and the 3pi robot. These programmers are used to transfer a compiled AVR program from your computer to the target AVR’s flash memory, allowing it to run the program.
From left to right: the original Orangutan USB Programmer, the Pololu USB AVR Programmer, and the Pololu USB AVR Programmer v2.
To support programming AVR microcontrollers running at 3.3 V, we added an adjustable voltage regulator that allows the programmer to set its own power voltage to either 3.3 V or 5 V. By default, the programmer will operate at 3.3 V, but it measures the voltage on its VCC pin and will automatically switch to 5 V if it detects a high-enough voltage on VCC. You can also disable the automatic switching and just set the programmer to always be 3.3 V or always be 5 V using our configuration software.
With the Pololu USB AVR Programmer v2, we made an effort to increase the programming speed for commonly-used types of AVRs, such as the ATmega328P. With the older Pololu USB AVR Programmer, if you wanted to program all 32 KB of the AVR’s flash memory, it would take about 6.8 s using the maximum ISP frequency of 2 MHz. With the Pololu USB AVR Programmer v2, it takes only about 4.8 s to do the same thing. Also, if your ATmega328P has a high-enough clock speed, you can increase the ISP frequency to 3 MHz and then it would only take 4.3 s. (These numbers are from tests done using AVRDUDE 6.2 in Windows.)
The Pololu USB AVR Programmer v2 has 470 Ω resistors on all of its I/O lines, which will help protect the programmer and your target system from damage in case there is a voltage mismatch or a short circuit.
Programming the fuse bits on an AVR has always been scary because you can accidentally program the wrong clock settings and brick your AVR. With the new Pololu USB AVR Programmer v2, it is a little less scary: the programmer provides a 100 kHz clock output that can be used to send a clock signal to your AVR, which can help you revive it when it has the wrong clock settings. We tested this on the ATmega328P and it probably works on many other AVRs as well. You should still be careful when setting the fuse bits though!
Like its predecessor, the Pololu USB AVR Programmer v2 can act as a USB-to-TTL serial adapter, so you can use it to debug or communicate with your projects over serial. We arranged the serial pins in a more standard arrangement that is similar to commonly-available FTDI USB-to-serial cables and breakout boards. The pins also come with a female header soldered in, so you can plug the programmer directly into a variety of Arduino boards and use it upload sketches via a serial bootloader.
The Pololu USB AVR Programmer v2 is compatible with commonly-used AVR programming software such as Atmel Studio, AVRDUDE, and the Arduino software (IDE).
You can use our open source configuration software for Windows, Linux, and Mac OS X, to change the configuration of your programmer and see useful information about it. We provide both a graphical user interface (GUI) and a command-line interface (CLI). Here is a screenshot of the GUI in Windows:
The Pololu USB AVR Programmer v2 Configuration Utility in Windows 10.
The Pololu USB AVR Programmer v2 uses a relatively new PIC microcontroller, the PIC1825K50. We sell a user-programmable break-out board for this microcontroller called the P-Star 25K50 Micro. One of the exciting features of this microcontroller is that it can do full-speed USB without needing an external crystal or resonator. The USB specification requires devices to have a clock that is accurate to within ±0.25%. On previous products, we usually had to add an external resonator or crystal to the board to meet this requirement. However, the PIC18F25K50 has a neat feature called Active Clock Tuning, which means that it can automatically tune its internal oscillator by monitoring the timing of the USB signals from the computer. This allows the internal oscillator, which is normally not very accurate, to achieve the accuracy needed for USB. This feature allowed us to make the programmer a little smaller and a little less expensive.
For more information, see the Pololu USB AVR Programmer v2 product page.
Our second-generation family of high-power motor drivers continues to grow with the release of our G2 High-Power Motor Driver 18v25 and G2 High-Power Motor Driver 24v21, discrete MOSFET H-bridges that can supply a brushed DC motor with up to 25 A of continuous current at up to 30 V or up to 21 A of current at up to 40 V, respectively. In addition, we’ve lowered the prices of the 18v17 and 24v13 versions to make them even more affordable.
The new G2 18v25 and G2 24v21 drivers’ double-sided design allows them to retain the same board dimensions as their 18v17 and 24v13 siblings, even though they can deliver significantly more power. The G2 drivers are half an inch shorter and can handle the same (or slightly more) current compared to the original 18v25 and 24v20 they are designed to replace, and they are less than half the size of the original 18v25 CS and 24v23 CS while offering basic current sensing functionality that can eliminate the need for a dedicated current sensor in some applications. As with previous G2 drivers, they also include reverse-voltage protection and a current limiting feature.
Pololu G2 High-Power Motor Driver 24v21 next to original high-power motor driver 24v20 and 24v23 CS.
Pololu G2 High-Power Motor Driver 24v21 and 24v13.
For more information about the G2 motor drivers, see their product pages at the links below.
This robot, created by theophil on Let’s Make Robots, uses a Rover 5 chassis with encoders, a MinIMU, sonar sensors, and a few expansion plates to do room mapping. Theophil modified the chassis to use Dagu Wild Thumper wheels, and made a custom 3D-printed adapter for connecting the wheels in a compact way. The program for the robot, which is available on GitHub, collects data from the sonar sensors about how far away objects are and creates a grayscale map where the darkness of a pixel corresponds to the robot’s confidence that an obstacle exists in that spot.
Example map made by theophil’s mapping rover.
The program also includes a movement algorithm meant to drive the robot along paths that take it close to many obstacles to increase the accuracy of the sonar sensors. More about theophil’s room mapping robot can be found in his Let’s Make Robots post.
In this post I will show you how to build an expandable robot platform based on a Raspberry Pi and an A-Star 32U4 Robot Controller. With this platform, the powerful Raspberry Pi can take care of high-level tasks like motion planning, video processing, and network communication, while the A-Star, which mounts to the Pi’s GPIO header, takes care of actuator control, sensor inputs, and other low-level tasks that the Pi is incapable of. The total cost of the parts I used is about $120. Continued…
Our A-Star 32U4 Robot Controller SV with Raspberry Pi Bridge is now available, joining the LV version we released six months ago.
Similar to its lower-voltage sibling, the Robot Controller SV is a general-purpose robot controller that includes dual motor drivers and other useful peripherals like pushbuttons and a buzzer. It also has the same level shifters and power circuit that allow it to easily power and communicate with a Raspberry Pi when mounted as an auxiliary controller. Like our other A-Star controllers, the A-Star Robot Controller SV built around an ATmega32U4 microcontroller and ships preloaded with an Arduino-compatible USB bootloader.
This SV version of the A-Star Robot Controller uses an efficient step-down switching regulator, enabling it to operate (and optionally supply power to an attached Raspberry Pi) with input voltages from 5.5 V to 36 V. Compared to the LV version, the Robot Controller SV can also supply substantially more current across its wide operating voltage range:
We’ve been working on some (long-awaited) I²C software to allow the A-Star to be used as a slave controller with a Raspberry Pi master, as well as an example project that shows how to build a robot with this setup. They’re nearly ready, so watch for them on the blog in the coming weeks. But don’t forget that the A-Star board can also be used by itself as a capable robot controller, as my recent sumo robot demonstrates.
To facilitate both of these uses, the A-Star 32U4 Robot Controller SV is available either assembled for use as a Raspberry Pi add-on or in a more barebones configuration that is suitable for customized assembly or standalone use. See those product pages and the user’s guide for more information about the robot controller.
We have released new versions of our MinIMU-9 and AltIMU-10 inertial measurement unit (IMU) modules, which use an I²C interface to provide nine independent rotation, acceleration, and magnetic measurements that can be used to calculate the sensor’s absolute orientation (the AltIMU also includes an altimeter). These v5 editions feature ST’s new LIS3MDL 3-axis magnetometer and LSM6DS33 3-axis accelerometer and gyro, which allow them to offer improved performance over previous versions at lower prices. The new versions are pin-compatible with the previous ones, though software written for older IMU versions will need to be changed to work with the v5 since the sensor ICs have changed.
We think these new boards combine the best ST MEMS sensors into compact boards at great prices. However, our older MinIMU-9 v3, AltIMU-10 v3, and AltIMU-10 v4 are still available for now at reduced clearance prices, so if you don’t absolutely need ST’s newest sensors on your IMU, these previous versions are still very good sensor boards to consider.
Here’s an updated version of our diagram showing where the new v5 modules fit in:
Evolution and release dates of Pololu carriers for ST’s MEMS sensors through January 2016.
Remember my super cool sumo robot? My sumo robot is different from regular sumo robots. It’s like my sumo robot is in the top percentage of mini sumo robots. Continued…