Pololu Blog »
Pololu Blog (Page 5)
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.
Popular tags: community projects new products raspberry pi arduino more…
New product: Motoron M3H256 Triple Motor Controller for Raspberry Pi
Our Motoron M3H256 Triple Motor Controller for Raspberry Pi is now available! The M3H256 is a stackable I²C motor controller that can drive up to three brushed DC motors bidirectionally at voltages between 4.5 V and 48 V and continuous currents up to 2 A per channel. Unlike its M3S256 sibling, which is designed as a shield for an Arduino, the Motoron M3H256 is intended to stack on top of a Raspberry Pi (Model B+ or newer), similar to a HAT (Hardware Attached on Top). With an I²C address that can be configured uniquely for each board, a stack of Motorons let you control many motors at once without taking up lots of GPIO pins and PWM outputs from the Pi.
A robot with three omni wheels and motors controlled by a Raspberry Pi with a Motoron M3H256 Triple Motor Controller. A D24V22F5 regulator powers the Raspberry Pi. |
---|
If you decide not to plug it into a Raspberry Pi, the Motoron M3H256 can also be used in a breadboard or another custom setup with your own wiring:
|
|
The Motoron M3H256 is available in three different configurations similar to its Arduino shield counterpart: you can get one fully assembled with stackable headers and terminal blocks already soldered, a kit that lets you pick which of the included connectors to solder in yourself, or the board alone if you already have or don’t need connectors and standoffs.
And to help you get started using the Motoron with a Raspberry Pi, we have a Python library you can use to configure the M3H256 and send it commands:
import motoron mc1 = motoron.MotoronI2C(address=17) mc2 = motoron.MotoronI2C(address=18) # Clear reset flags to allow Motorons to run mc1.clear_reset_flag() mc2.clear_reset_flag() # Set up acceleration limits for Motoron #1 mc1.set_max_acceleration(1, 200) mc1.set_max_acceleration(2, 200) # Set up acceleration and deceleration limits for Motoron #2 mc2.set_max_acceleration(1, 75) mc2.set_max_deceleration(1, 250) mc2.set_max_acceleration(2, 80) mc2.set_max_deceleration(2, 300) mc2.set_max_acceleration(3, 75) mc2.set_max_deceleration(3, 250) # Drive the motors mc1.set_speed(1, -100) mc1.set_speed(2, 100) mc2.set_speed(1, 300) mc2.set_speed(2, 200) mc2.set_speed(3, 50)
We’re sure there are plenty of applications where the convenience and scalability of Motorons will be useful. What kind of projects can you think of that would make good use of one (or several)?
For more information about the Motoron M3H256, see the product pages and the comprehensive user’s guide.
New product: VL53L5CX Time-of-Flight 8×8-Zone Distance Sensor Carrier
I’m excited to announce the release of our new VL53L5CX Time-of-Flight 8×8-Zone Distance Sensor Carrier! Over the past several years, STMicroelectronics has introduced a number of FlightSense distance sensors, starting with the VL6180X, that use time-of-flight (TOF) measurements of infrared laser light to measure distances. Each new sensor has been more capable than the last (usually offering an increased range), but the VL53L5CX is more than just another incremental upgrade. What makes the VL53L5CX really special is its ability to take readings of multiple targets across a grid of multiple zones, allowing you to generate a depth map with up to 8×8 resolution and 4 m range.
A plot of a coffee cup as detected by a VL53L5CX time-of-flight 8×8-zone distance sensor. |
---|
Compared to sensors that only give a 1D measurement, the VL53L5CX does demand more from a microcontroller to support its operation as a 3D lidar. Initializing the sensor through I²C and processing its data requires a lot of RAM and program memory, so it is not practical to use the VL53L5CX with most 8-bit MCUs like the Arduino Uno. (The same was true for the VL53L3CX, which shares the VL53L5CX’s multi-target capability but does not have multi-zone capability.) We found that the Raspberry Pi Pico’s RP2040 microcontroller worked well for interfacing with the VL53L5CX, and other similarly powerful 32-bit controllers like an ESP32 should also work.
It’s fun to compare our VL53L5CX carrier with our other ST time-of-flight sensor boards because even though the boards are the same size (and pin-compatible), the VL53L5CX component itself is significantly bigger than its predecessors. We also switched from using 0603-size surface-mount resistors (0.06″ × 0.03″, or 1.5 mm × 0.8 mm) to 0402-size parts (1 mm × 0.5 mm) to help everything fit in the same form factor, and that makes for even more contrast with the large IC. As we refine our manufacturing abilities to let us work with more challenging parts like these, it’s nice to have more options for making things even more compact. (When can we try some 0201 parts?)
New products: DRV8874 and DRV8876 motor driver carriers
We’ve expanded our selection of motor drivers again with the release of some compact carrier boards for TI’s DRV8874 and DRV8876 motor drivers, which feature current sense feedback and adjustable current limiting. These three ICs and their boards are all very similar, differing mainly by the amount of current they can handle: in a TSSOP chip package, the DRV8874 delivers up to 2.1 A continuous on our carrier board and the DRV8876 does 1.3 A. The DRV8876 chip is also available in a smaller QFN package, so for a lower-current and lower-cost option, our DRV8876 (QFN) carrier can deliver 1.1 A continuously. All three versions can drive a single brushed DC motor at voltages from 4.5 V to 37 V.
|
|
|
The DRV8874 and DRV8876 drivers offer a choice of control modes that includes phase/enable (PH/EN) and direct PWM (IN/IN) as well as independent half-bridge control, which lets you drive two motors unidirectionally. With their wide operating voltage range and current sense/current limiting added in, this combination of capabilities results in some unusually versatile motor driver boards, especially considering their small size. (But if you need something that works with even higher voltages, consider our similar DRV8256E and DRV8256P carrier boards too, though those don’t provide current sense feedback.)
Comparison of the DRV8874, DRV8876, and DRV8256 motor driver carriers | ||||
---|---|---|---|---|
DRV8876 (QFN) |
DRV8876 |
DRV8874 |
DRV8256E DRV8256P |
|
Motor channels: | one | |||
Min. operating voltage: | 4.5 V | |||
Max. operating voltage: | 37 V | 48 V | ||
Max. continuous current(1): | 1.1 A | 1.3 A | 2.1 A | 1.9 A |
Peak current: | 3.5 A | 6 A | 6.4 A | |
Current sense feedback? | 2500 mV/A | 1100 mV/A | none | |
Active current limiting: | adjustable | |||
Size: | 0.6″ × 0.7″ | 0.6″ × 0.6″ | ||
1-piece price: | $5.95 | $6.95 | $9.95 | $12.95 (E) $12.95 (P) |
1 On Pololu carrier board, at room temperature and without additional cooling. |
Taking control of a typosquatting domain with a UDRP case
Have you ever mistyped our website as “polulu.com”? (It’s a common mistake.) Until recently, you would have ended up on the page shown above, full of ads and offers to buy the domain. Even worse, emails misaddressed to polulu.com would disappear without any notification, and the domain owner could easily have used it in phishing scams against our customers. We have been working on tightening up our domain security to fight this kind of abuse, and polulu.com was an obvious problem we needed to solve.
This post describes how we obtained polulu.com under the Uniform Domain-Name Dispute-Resolution Policy (UDRP). While the UDRP is supposed to be an efficient and accessible process, I could not find any clear step-by-step guides online, so I’m posting our experience both to help others and get feedback about what we could have done better. Continued…
New product: Motoron M3S256 Triple Motor Controller Shield
We’re excited to announce the launch of our new Motoron M3S256 Triple Motor Controller Shield! This I²C motor controller is designed to plug into an Arduino or Arduino-compatible board and control up to three bidirectional brushed DC motors at voltages from 4.5 V to 48 V with continuous currents of up to 2 A per channel. However, what really sets the Motoron apart from our other motor shields is that you can easily stack multiple boards to control even more motors at once!
Unlike basic motor driver shields that are best for driving just a few channels using the Arduino’s hardware PWM outputs, the Motoron M3S256 has its own on-board microcontroller with an I²C interface, letting you communicate with a stack of many controllers using only two I/O lines. Each Motoron can be configured to have a unique I²C target address, ensuring that every shield can be addressed individually and every motor can be controlled independently. For synchronized motion, you can even signal all the motors on several controllers to change speed at the same time with a single I²C command.
We provide an Arduino library for the Motoron that makes it easy to send it commands and configure its many settings, including motion parameters and error handling options. Working with multiple Motoron controllers is as simple as calling a few functions once you have set up their I²C addresses:
// Set up acceleration and deceleration limits for Motoron #1 mc1.setMaxAcceleration(1, 80); mc1.setMaxDeceleration(1, 300); mc1.setMaxAcceleration(3, 50); // Set up acceleration and deceleration limits for Motoron #2 mc2.setMaxAcceleration(2, 50); mc2.setMaxDeceleration(2, 200); // Drive the motors mc1.setSpeed(1, -800); mc1.setSpeed(2, 100); mc1.setSpeed(3, -100); mc2.setSpeed(1, -400); mc2.setSpeed(2, 50); mc2.setSpeed(3, 300);
Alternatively, if you are not using a microcontroller board with the standard Arduino form factor, it is almost as easy to use the Motoron on a breadboard.
A Raspberry Pi Pico on a breadboard using a Motoron M3S256 shield to control three motors. |
---|
The Motoron M3S256 is available in three versions with different connector options:
- soldered with stackable headers and terminal blocks
- as a kit with connectors included but not soldered
- as a board only with no connectors included
You might wonder why the assembled version comes with 3.5mm-pitch terminal blocks soldered in when the through-holes are spaced 5 mm apart. The answer is that the smaller 3.5 mm terminal blocks allow for more clearance when the shields are stacked, reducing the risk of shorting them to each other, but we still designed the board with bigger holes and wider spacing for maximum flexibility.
For more information about the Motoron M3S256, see the product pages and the comprehensive user’s guide. We have plans to expand the Motoron family with more versions including Raspberry Pi-compatible form factors and higher-power models, so expect more announcements soon!
New products: S13VxF5 step-up/step-down voltage regulators
We have released three new members of the S13VxF5 regulator family:
- 1A Step-Up/Step-Down Voltage Regulator S13V10F5
- 1.5A Step-Up/Step-Down Voltage Regulator S13V15F5
- 2A Step-Up/Step-Down Voltage Regulator S13V20F5
These lower-current variations are much smaller than the existing 3A Step-Up/Step-Down Voltage Regulator S13V30F5, but they can handle continuous output currents of 1 A, 1.5 A, and 2 A, respectively, with efficiencies from 85% to 95%. Like the S13V30F5, these smaller units accept input voltages from 2.8V to 22V and feature under-voltage lockout, output over-voltage protection, and over-current protection as well as thermal shutdown and soft-start, but they do not have reverse voltage protection or a disable input.
Each member of the S13VxF5 family has a fixed 5V output, and the components are optimized for different current capabilities. With the S13V20F5 in particular, we are offering a variant with a much more expensive inductor to squeeze out the most power we can in the smallest package.
Video: Demo Program on the Pololu 3pi+ 32U4 OLED Robot
This video steps through the demo program on our new 3pi+ 32U4 OLED Robot. The Pololu 3pi+ 32U4 OLED robot is a complete, high-performance mobile platform based on the Arduino-compatible ATmega32U4 MCU. The demo program shown in this video highlights many features of the 3pi+ including bump and line sensors, full 9-axis IMU (three-axis gyro, accelerometer, and compass), micro metal gearmotors and encoders, three user LEDs, and a 128×64 graphical OLED display.
This program ships on all 3pi+ OLED robots, both the assembled and kit versions. It is also included in the example sketches in the Pololu 3pi+ 32U4 Arduino library. More information about the 3pi+ demo program can be found in the user’s guide here.
"Serenade"; 3D Mixed-Media Artwork by Tammy Carmona
Artist Tammy Carmona recently used our laser cutting service to help create her 3D mixed-media artwork, “Serenade”, pictured above. Carmona writes about the piece:
This mixed-media composition takes classical elements of music, and combines them with art in a decadent, delicious “feast for the eyes”.
The piano-glossy notes, the authentic violin bows and an actual violin, the laser-cut butterflies, the preserved roses – each element brings a different sensation and a different meaning.
Themes of rebirth and remembrance permeate this piece. The old violin is reborn with bursts of flowers, the old bows have found a new life supporting musical notes, the flowers are real preserved roses.
The music notes were laser cut out of black cast acrylic, which we stock regularly. The title sign for the piece, pictured below, was cut from the same material and raster engraved. A nice feature of the cast acrylic used in this piece is that it turns frosty white when engraved, which provides high contrast engravings.
For a more detailed description of Carmona’s piece and additional pictures, visit her website here. More information about our laser cutting service can be found here.
|
|
Our Black Friday/Cyber Monday Sale has started!
Our Black Friday / Cyber Monday sale is back! Visit the sale page to see all the available deals and add the necessary coupons to your cart, including special discounts on the new Zumo 32U4 OLED robots we released earlier today. The sale runs through Monday, November 29, and most of the sale coupons can be used on backorders if we happen to run out of stock, but you should still get your orders as soon as possible since production of many items is limited by the global parts shortages, and lead times to make more can be long.
Please note that during the sale, our order fulfillment times might be longer than usual, but we will do our best to get your order shipped as fast as we can. Additionally, we are closed Thursday, November 25 for Thanksgiving. Happy Thanksgiving!
The Zumo gets a graphical display too: new Zumo 32U4 OLED Robot!
Our 3pi+ 32U4 robot got an upgraded OLED display earlier this year, and now it’s the Zumo’s turn with the release of our new Zumo 32U4 OLED Robot!
In many ways, this new version is just like the original Zumo 32U4: it’s a versatile tracked robot designed to be a capable Mini-Sumo competitor, but with enough sensors and extra features to enable lots of other applications. The Zumo 32U4 OLED adds to that versatility by replacing the original LCD (liquid crystal display) with a high-contrast graphical OLED display. With this monochrome 128×64 screen, you can present high-density data displays to help you analyze the Zumo’s status and sensor readings, or you can add some flair to your Zumo by showing eye-catching graphics.
We’ve updated our Arduino library for the Zumo 32U4 to add OLED display support as well as an LCD compatibility layer (the same way we did for the 3pi+), letting you easily convert existing programs to run on the OLED version or write new programs that will work on both old and new robots.
As with the LCD version, the new Zumo 32U4 OLED robot is available as a kit (with motors not included so you can select your own to customize performance) or as a fully assembled robot with your choice of 50:1, 75:1, or 100:1 motor options
|
|