Pololu Blog (Page 25)
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.
We are happy to announce two new Pololu distributors:
Sun Light Electronics Pte Ltd is an electronics supplier in Singapore that was founded in 1992. They specialize in “ICs and transistors”, but as you can see from their website, they now carry far more than that, including a large selection of hobby, robotics, and prototyping products.
Virtuabotix, in Colorado Springs, CO, is an electronics hardware manufacturer and distributor. They specialize in open-source hardware and have their own family of Arduino-compatible boards called Versalino. Virtuabotix also sells products through storefronts at Amazon, Newegg, and eBay.
See our growing list of almost 200 distributors to find one in your area.
Erich, a professor at the Lucerne University of Applied Sciences and Arts in Switzerland, posted to our forum about a circuit he designed for the robots he’s building based on our Zumo chassis for his embedded system programming course. His Zumos are retrofitted with our micro metal gearmotors with extended backshafts and optical encoder board. The custom circuit he designed converts the analog output of our optical encoder boards to digital waveforms, which makes them more easily interpreted by microcontrollers and other devices. His board uses a Digital-to-Analog Converter (Microchip’s MCP4728) and four op-amps (Microchip MCP6004) to generate the modified quadrature output. The DAC can be controlled directly over I²C and can be calibrated automatically. After verifying that it works, Eric ordered a bunch more boards to use in his course:
We look forward to seeing how they work with the Zumos!
You can read more about Erich’s signal processing boards on this blog post from his website. You can follow the progression of the robots used in his course by visiting these forum posts:
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
We are now carrying four exciting new sensors from Interlink Electronics:
- 0.25″-diameter circle, short tail force-sensing resistor (FSR)
- 0.6″-diameter circle, short tail FSR
- 1.4″ × 0.4″ force-sensing linear potentiometer (FSLP) strip
- 4.0″ × 0.4″ customizable-length FSLP strip
The two force-sensing resistors (or FSRs, for short) are short-tail versions of the small, circular FSRs we already carry, which allows them to be integrated into applications with tighter space constraints. These sensors act just like variable resistors that depend on the applied pressure, so you can put them into a simple voltage divider circuit and measure the force on them with a single analog-to-digital (ADC) microcontroller input.
|0.6″-diameter short-tail force sensing resistor (FSR) next to a 0.6″-diameter FSR with a standard tail.|
The two force-sensing linear potentiometers (or FSLPs) take the force-measuring functionality of FSRs and add in the ability to detect the location of the force, all while being an entirely passive component that is incredibly easy to use.
|The two force-sensing linear potentiometers (FSLPs).|
These FSLPs are exciting because they enable fun new touch interfaces, not only for you to interact with your project but for your project to interact with the world. We decided to make a quick demo for the Las Vegas Mini Maker Faire 2014 to show just how easy it was to do something cool with this sensor. The video at the top of this blog post shows the demo in action.
In the demo, a 4.0″×0.4″ FSLP is used with an Arduino Uno R3 to meassure the position and pressure of the user’s finger. (For applications where space is tight, smaller modules like our Arduino-compatible A-Star Micro can be directly substituted for the Uno.) Using the strip requires four connections to a microcontroller and one additional resistor. Two of the required connections must be analog inputs. Four connections for one sensor might seem like a lot to deal with, but step-by-step procedures in section 5 of the sensor’s integration guide (513k pdf) make it easy to get the sensor working, and the Arduino code used in this demo is available on github to help get you started. A diagram of the connections made between the sensor, Arduino, and LED strip in this demo are shown below.
The connections shown in the diagram also work with the shorter 1.4″×0.4″ FSLP (referred to as “standard FSLP” in the integration guide), though the pin numbers that correspond to each of the sensors outputs (SL, D1, and D2) are different for the two sizes of FSLP. The pin numbers for each FSLP can be seen in Figure 9 of the FSLP Integration Guide. In the guide the 4.0″×0.4″ FSLP is referred to as a “10 cm FSLP”.
Once the Arduino reads the position and pressure data from the sensor, it sends signals to a WS2812B addressable LED strip that control the number of LEDs that turn on and their color. The further along the strip your finger moves the greater the number of LEDs that light up, and the more pressure you apply the more the color of all the LEDs changes from blue to red.
To make the demo easy to transport and able to be left on all day, a 9V wall adapter was used to power the Arduino and 5V step-down regulator. The power connections from the regulator’s 5V output to the power input of the LED strip were also simplified by using a DC barrel jack to terminal block adapter and a DC barrel plug to terminal block adapter. The structure of the demo was laser cut from 1/8″ clear acrylic, and aluminum standoffs were used as spacers.
If you guys do something cool with our force-sensing linear potentiometers or resistors, we’d love to hear about it!
Nick Moxley made a DIY seat mover (with two degrees of freedom) and shared his build on our forum. This racing simulator is powered by two of our Jrk 12v12 USB Motor Controllers with Feedback and controlled from the popular XSimulator software. The picture below shows Nick’s jrk motor controllers, which he modified by adding heat sinks for additional cooling.
This is one impressive build that I highly recommend checking out, especially if you are interested in making your own DIY racing simulator. You can find details about the parts he used (including where he found some of them) as well as many pictures documenting different parts of his build in Nick’s post on the Inside Sim Racing forum. A shorter version of this can be found in Nick’s post on our forum.
We posted about a Simulink library for the Zumo robot recently, and now a tutorial that teaches you how to use that library to program a Zumo robot with Simulink is available on the Adafruit Learning System. The guide walks you through setting up a Simulink model to make the Zumo follow a specific trajectory, then loading the generated code onto the Zumo to see it run.
Related post: Zumo robots programmed with Simulink by MathWorks
MathWorks, the producer of technical computing software including MATLAB and Simulink, has released a Simulink library for the Zumo robot. The library provides blocks that represent all of the sensors and peripherals on our Zumo robot for Arduino, making it possible to program an Arduino-controlled Zumo robot using Simulink.
These Simulink-programmed Zumo robots have made a few appearances on MathWorks’ MakerZone blog. This article discusses the math behind programming a robot to follow a line, modeling the control system as a harmonic oscillator.
MathWorks also used several Zumos as part of a demonstration at the Robot Zoo, part of the 2014 Cambridge Science Festival. You can read more about their Zumo demonstration, as well as their other robot exhibits, in their recap of the event.
Related post: How to program a Zumo robot with Simulink
We now have a second distributor in China: TinySine, an electronics manufacturer and retailer located in Hefei, Anhui province. They are initially carrying several of our products including the Maestro, Wixel, and A-Star.
TinySine, also known as Tinyos Electronics, ships worldwide with several express services as well as the low-cost Hongkong Post, so they are worth considering for your next project, wherever you are located. Please let them know if there is a Pololu part that you would like to see in their shop!
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:
|Schematic of a single bidirectional logical level shifter.|
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:
- When Lx, the lower-voltage input, is driven low, the MOSFET turns on and the zero passes through to Hx.
- When Hx, the higher-voltage input, is driven low, Lx is also driven low through the MOSFET’s body diode, at which point the MOSFET turns on.
- In all other cases, both Lx and Hx are pulled high to their respective logic supply voltages.
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.