You are currently viewing a selection of posts from the Pololu Blog. You can also view all the posts.
Level shifting is a common issue when interfacing multiple microcontrollers or other digital logic devices. For example, you cannot directly connect an Arduino running at 5 V to the Wixel, which runs at 3.3 V. Our Wixel Shield for Arduino contains several level-shifting circuits to help you do this.
In some cases, such as connecting a digital sensor output to your microcontroller, a simple voltage divider or transistor inverter might be good enough. However, in many cases a better solution is necessary. I²C, for example, is a common protocol that makes use of a bidirectional communication line. Luckily, a relatively simple circuit consisting of a MOSFET and two pull-up resistors can be used for general-purpose bidirectional level shifting:
We have used this level shifter circuit on many of our breakout boards operating at a lower voltage, such as the MinIMU-9. It works like this:
The circuit works for any pair of voltages (within the limitations of the MOSFET) and can be used with most common bidirectional and unidirectional digital interfaces, including I²C, SPI, and asynchronous TTL serial. You can read more about it in NXP’s application note on I²C bus level-shifting techniques.
Today we released a logic level shifter board featuring four of these bidirectional channels:
Our board can convert signals as low as 1.5 V to as high as 18 V and vice versa, so you can use it for almost any logic-level signals that you might encounter in your project. It is also, as far as we know, the smallest bidirectional logic level conversion board out there:
Note the use of a more internationally-appropriate size reference than our traditional U.S. quarter. After we put together this image, nobody believed that the board was actually that small, but we verified it several different ways to make sure.
Anyway, with this board’s small size, low cost, and versatility, we think it is something that everyone should have in their toolbox. For more information or to order, see the product page.
Get FREE copies of Circuit Cellar magazine’s May issue and Elektor magazine’s May issue with your order, while supplies last. To get your free issues, enter the coupon codes CIRCUIT0514 and ELEKTOR0514 into your shopping cart. The magazines will add 6 ounces and 7 ounces, respectively, to the package weight when calculating your shipping options.
Looking for a way to pump up your next project? Let the Muscle Sensor v3 from Advancer Technologies do the heavy lifting!
This small, easy-to-use, 1″ × 1″ board measures muscle activation via electric potential; this is referred to as electromyography (EMG). The sensor measures, filters, rectifies, and amplifies the electrical activity of a muscle; as the muscle flexes, the output voltage increases, resulting in a simple analog signal that can easily be read by any microcontroller with an analog-to-digital converter (ADC), such as our A-Star or an Arduino.
The engineers here were pretty excited to play with these when we got our first samples, as many of us hadn’t used anything like it before. While thinking of various ways to test the sensor, a few of us remembered this ridiculously awesome video of Terry Crews making music with his muscles. (Gets me every time! #MuscleEnvy.) Without getting ahead of ourselves, we decided to try something much quicker and more straightforward with some of our electronics.
In the demonstration video at the beginning of this post, you can see the muscle sensor in action as it measures the muscle activity of my bicep. The demo uses the muscle sensor with a Maestro servo controller to update the position of a hobby RC servo based on how hard I flex. The setup was very simple; the analog output signal from the muscle sensor is connected directly to channel 0 on the Maestro, and the two boards share a common ground. The muscle sensor is powered by two 1S LiPo batteries and the Maestro and servo (connected to channel 1) are powered from a separate 6 V battery pack.
The Maestro script we used is very similar to the “Using an analog input to control servos” example script provided in the Maestro user’s guide with a couple of modifications. We changed the scaling of the input channel (since our signal was from 0 V to 3.7 V) as well as the channel numbers to match our setup. The whole script is only a few lines long:
# Sets servo 1 to a position based on the analog input of the Muscle Sensor v3. begin 0 get_position # get the value of the muscle sensor's signal connected to channel 0 6 times 4000 plus # scale it to roughly 4000-8092 (approximately 1-2 ms) 1 servo # set servo 1 accordingly repeat
We can’t wait to see all of the amazing things you come up with when you engage your brain (and your muscles) with this sensor!
Inevitably, if you work with electronics long enough, you will encounter a wire that is too long, too insulated, or too connected (to the wrong thing), and while you might be able to MacGyver your way out of the situation with a pair of scissors or a suitably hardy set of teeth, nothing beats a good wire stripper. With that in mind, we set off in search of some good, basic wire strippers that would get the job done well without breaking the bank. Our favorites were a set of multi-purpose wire strippers and cutters that feature comfortably curved and cushioned grips and a nose that can be used as pliers. One version works with 10 to 20 AWG wires and another works with 20 to 30 AWG wires. (The stripping holes are labeled with the gauge of solid-core wire for which they are intended; for stranded wire, use the next larger hole.)
We have expanded our selection of miniature tank tracks to include a variety of colors. The new tracks are identical in function to the black miniature track links, but now come in blue, red, and yellow. Track links of different colors can be combined to create fun and interesting patterns to give your robot some added character.
These miniature track links work great for small indoor robots, especially on carpet, and they are compatible with a variety of injection-molded sprocket sets such as:
Get a FREE copy of Circuit Cellar magazine’s April issue with your order while supplies last. To get your free issue, enter the coupon code CIRCUIT0414 into your shopping cart. The magazine will add 6 ounces to the package weight when calculating your shipping options.
For other issues and more information, see our Free Circuit Cellar Magazine Offers page. All issues are now available for shipping worldwide!
Get a FREE copy of Elektor magazine’s April issue with your order while supplies last. To get your free issue, enter the coupon code ELEKTOR0414 into your shopping cart. The magazine will add 7 ounces to the package weight when calculating your shipping options.
For other issues and more information, see our Free Elektor Magazine Offers page. All issues are now available for shipping worldwide!
Today we released a general-purpose AVR microcontroller breakout board, the A-Star 32U4 Micro. But before I get to the A-Star (A* for short), I would like to mention some of our history with AVR boards.
Some of our history with AVR boards
It has been almost ten years since we introduced our Orangutan Robot Controller, which featured an AVR microcontroller, dual motor drivers, and user-friendly features like a display and buzzer. Over the years we expanded the line, making larger, more complicated Orangutans like the Orangutan SVP as well as the miniature Baby Orangutan.
I have used the Baby Orangutan in many of my own projects, because I like its simplicity and small size. Ironically, the built-in motor driver gets in the way when I want to use a newer motor driver such as the DRV8835 in a project, since valuable PWM pins are unavailable. So I have built my more recent robots using minimal microcontroller breakout boards without motor drivers, such as Arduinos and the Wixel. (I posted about my latest such project last week.)
Our focus has been on boards that include motor drivers, and we have not had a really simple microcontroller board for people who don’t want the motor driver. Even though there are far more powerful controllers available, 8-bit AVR microcontrollers continue to be popular in the community, and the basic AVR breakout board is something we have wanted to make for a long time.
Introducing the A-Star 32U4 Micro
That is why I am excited today to announce the A-Star 32U4 Micro, a Pololu breakout board for Atmel’s ATmega32U4 AVR microcontroller:
Compared to the popular ATmega328P microcontroller that we used on several Orangutan models, the ATmega32U4 is a newer processor with features like more analog inputs, more PWM outputs, and, most importantly, USB support. The USB connection, which we have broken out to a Micro-B connector, makes programming easy and enables interesting projects involving connections to a PC.
Also, since the ATmega32U4 is used on the Arduino Leonardo, Arduino Micro, and many other breakout boards, there is a large community with experience using the microcontroller. To support this community, we are shipping the A* with an Arduino-compatible bootloader and have followed Arduino conventions including pin numbering and LED connections.
Since we wanted to make a minimal breakout board, we decided to make it as small as we could, hoping that it would be small and cheap enough to go into (and stay in) almost any project. The result is that the A-Star 32U4 Micro is, as far as we know, the smallest ATmega32U4 breakout board available. It is even smaller than some AVR boards with less powerful microcontrollers that implement USB support in software and have only a few general-purpose I/O lines available.
Now that we have reached a reasonable extreme on the minimal end, we intend to expand back toward more integrated features, eventually replacing our older Orangutan robot controllers with versions offering more modern power handling and perhaps other features like inertial measurement sensors. What would you like to see in an integrated robotics or automation controller? Did we leave out too much on the A-Star 32U4 Micro? Please let us know in the comment section.
For more information, see the A-Star 32U4 Micro product page.
These new 130-size motors are great for applications that require a lot of power in a small package. They are a generic alternative the Solarbotics RM2 motors, which have the same form factor and nearly identical performance. With a free-run speed of 17,000 RPM at 3 V, they are great for upgrading projects driven by lower-power 130-size motors. For example, see this post from last year about upgrading flywheel NERF guns. This motor is also compatible with our larger Pololu plastic gearmotors (228:1 offset, 120:1 offset, 200:1 90-degree, and 120:1 90-degree) and Solarbotics plastic gearmotors (GM2, GM3, GM8, and GM9).
For more information see the Brushed DC Motor: 130-Size, 3V, 17kRPM, 3.6A Stall product page.
We’ve released an updated version of our dual VNH5019 motor driver shield for Arduino. The VNH5019 is a great solution for driving high-power motors, with each chip able to supply up to 12 A continuously at 5.5 V to 24 V. However, the original version of our dual VNH5019 shield was designed before the Arduino Uno R3 was released, so it lacked pass-throughs for the four new pins (SCL, SDA, IOREF, and an unused pin) introduced by the R3 and present on all newer Arduinos. This makes it harder to stack other shields with it, especially ones that make use of the new I²C pin location. The latest board revision adds these pass-throughs to make the shield fully compatible with the Uno R3 pinout.