Pololu Blog (Page 14)
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.
One of our customers posted about his balancing robot on our forum. A Raspberry Pi Model B is the central controller for the robot. It communicates with a RoboClaw motor controller for motor control and measures the angle and angular velocity with a MinIMU v2. The RoboClaw also decodes quadrature encoder signals for measurements of position and velocity. The drivetrain is made entirely of Pololu parts: 37D metal gearmotors with encoders, brackets, mounting hubs, and wheels.
The robot’s control algorithm allows it to correct for both positional and angular disturbances, and it can be controlled wirelessly. To develop the control system, this robot builder measured the step response of the motors using the encoders.
For more details about how the control system was developed, see the forum post.
Pololu forum user Martin_H posted about his robot that plays the Tower of Hanoi with paper blocks. An RP5 chassis drives along a track, locating itself with electrical tape seen by QTR sensors. It serves as the base for a custom robot arm made from U-channel and driven by servos. The robot is controlled by a Baby Orangutan B-328 Robot Controller.
The forum post has a parts list and more details.
One of our customers motorized his crank-powered adjustable-height desk by using a brushed DC motor to drive a chain that turns the crank. He details the project in this blog post. He described the project as a “learning experience”. He started with a Pololu Simple Motor Controller 18v7, which unfortunately did not survive a stall when driving an 18 V drill motor. Some drivers survive over-current situations better than others, but our general recommendation is to choose a motor driver with a continuous current rating above the stall current of your motor.
Cordless drill motors—which typically don’t come with a datasheet—can easily draw tens of amps when stalled. Note that the “peak” current rating is not usually relevant, since a driver might only be able to withstand that current for a few milliseconds. Also, you need to be especially careful when operating at high voltages: an 18 V battery can easily generate spikes above the 40 V limit of this driver if connections are made or broken while the system is powered.
After some technical support from Brandon, he switched to the beefier Pololu Simple High-Power Motor Controller 24v12 (and a lower-current motor with a datasheet, and a current-limiting power supply) to control the motor connected to his drive mechanism made from Actobotics parts. The Simple Motor Controller’s support for limit switches also came in handy for cutting off the motors when the desk reached the maximum or minimum height. He also added some LEDs for under-desk lighting.
After the electronics and mechanisms were all working, he used the Pololu USB Software Development Kit to create a C# desktop application that controls the Simple Motor Controller over USB.
The build log along with more pictures and videos is in this blog post.
Mike Kohn, creator of “remote control food”, used a pair of Pololu Wixel programmable USB wireless modules to control a drag racing “Christmas tree” (the traffic lights used at the start of a drag race) and finish line electronics. They communicate wirelessly (with the Wixel’s TI CC2511F32 integrated 2.4 GHz radio transceiver), timing the race and displaying the result on 7-segment LCDs. Instead of using C like most of our customers, Mike tried out his own 8051 assembler naken_asm on this project, even rewriting our example radio communication code himself in assembly. The system has break beam sensors at both the start line (to detect false starts) and the finish line. Each sensor is made from two inexpensive parts: a red diode laser and a light sensor transistor.
His assembly source code, schematics, and additional pictures and vidoes are available on his web page.
In his blog post, Will Moore shows off his sleek line follower that uses an analog circuit for the PID control. The circuit is made from passive components and operational amplifiers, and the PID constants can be tuned with the potentiometers on the top. The build uses a pair of Pololu 50:1 micro metal gearmotors and motor brackets.
For more details, including schematics, performance analysis, and an additional video, see the blog post.
The Mission Pinball Framework is open-source software for running physical pinball machines. It can be used to control a re-themed pinball machine or a completely custom one. The framework supports using Pololu Maestro USB servo controllers to control RC hobby servos to create interesting pinball mechanisms. More details on using the Maestros with the pinball framework are available in their detailed documentation.
MINTomat lets you operate two robot arms and a wirelessly controlled custom robot based on a Pololu Zumo chassis to dispense a gumball in an roundabout way. Their custom Zumo board is controlled with FreeRTOS on an NXP ARM Cortex-M4F, and uses a Nordic Semiconductor nRF24L01+ 2.4 GHz transceiver for wireless communication with other parts of the system. A few Pololu VL6180X time-of-flight distance sensor carriers are used for obstacle detection and navigation. The cabinet is illuminated with LED strips. A detailed build log is available at this blog post.
During Build18 2017, “an annual engineering festival held by the Electrical and Computer Engineering department at Carnegie Mellon University and run by students”, a team of CMU students presented a goldfish-steered mobile fish tank that allows the goldfish to decide where to drive. The robot is controlled by a Raspberry Pi and uses some Pololu parts listed below. They posted a video of the robot on Facebook, and their project webpage has a description and a parts list.
Robert Cowan, former host of the SparkFun Friday new product videos, has made a series of videos on his YouTube channel about building a robotic snow plow. The videos includes the parts he uses, design decisions, and iterations he made along the way. Many components of the robot are reused wheelchair parts. In part 2, he uses a Pololu Simple Motor Controller 18v7 to control the linear actuator for the plow’s tilt mechanism from an RC transmitter.
What do you need to turn a Romi chassis into a functioning robot? Here are some Romi projects from the community, as well a couple of our example builds:
A variety of controllers can be used with the Romi, but until now you have had to figure out lots of wiring to connect everything together. You will always need some wiring to connect your own sensors or other devices, but we have been trying to make it easier to get started, beginning with the Romi power distribution board and motor driver board, which help simplify some of the more difficult parts. Our new Romi 32U4 Control Board is the culmination of this product line: a complete controller solution for the Romi that integrates power, motor control, and an Arduino-compatible microcontroller.
Romi power distribution board, motor driver board,
Here is how it looks when connected to a Romi Chassis with motors and encoders plugged in, as well as the optional LCD:
Features of the Romi 32U4 Control Board
Pinout diagram of the Romi 32U4 Control Board (ATmega32U4 pinout, peripherals, and board power control).
- Reverse-protected battery power switch circuit
- Powerful 5 V, 2 A switching regulator
- Dual 1.8 A DRV8838 motor drivers
- ATmega32U4 microcontroller with Arduino-compatible USB bootloader
- 16 free general-purpose I/O ports including 10 analog inputs
- LCD connector
- Three user buttons
- Five indicator LEDs (2 for power, 3 user-controllable)
- Battery voltage monitoring
- Quadrature encoder inputs
- Four general-purpose level shifters
- 3-axis I²C accelerometer
- 3-axis I²C gyroscope
- Raspberry Pi connector with I²C interface and HAT EEPROM
Raspberry Pi interface
Microcontrollers like the ATmega32U4 are great for fast, timing-sensitive operations such as reading sensors or driving servos, but their computing power is very limited compared to devices like the Raspberry Pi. That is why we built a Raspberry Pi interface into this board: to give you the option to expand your robot beyond what is possible with a microcontroller. This could be useful for anything from advanced applications like computer vision or room mapping to simply letting your robot share status updates on Twitter. Here is a Romi assembled with a Raspberry Pi:
When connected, the control board supplies power to the Raspberry Pi and connects to it as an I²C slave device. We include the ID EEPROM required by the HAT specification, though we have not found it particularly useful, so we ship it blank and unlocked for you to experiment with.
Our Arduino library gives example code for I²C connectivity, and you can check out our Raspberry Pi tutorial for the A-Star 32U4 Robot Controller, which we will be updating for the Romi 32U4 Control board.
For more information about the Romi 32U4 Control Board or to order, please see its product page.