- By: Ken Gracey Published: 23 December, 2013 5 comments
Teachers have asked Parallax for larger robots and curriculum to support them. While we’ve always had the larger robot now known as the Arlo Robotic Platform System, we haven’t had much in the way of code support.
About a month ago, we gave Andy Lindsay a full Arlo platform mounted up with a few HB-25s and Propeller ActivityBoard. If you don’t know Andy, he’s a real key to Parallax’s educational success (i.e., where Andy goes, the excitement flows!). We asked Andy if he could spend a day porting the ABdrive program to Arlodrive, making any adjustments in the underlying C code libraries to let Arlo run ActivityBot code. Both platforms have 64 tick/revolution encoders, servo pulse inputs (with HB-25s on the Arlo), and Propeller Activity Board controllers, so we figured this would be quite easy for Andy. Sure enough Andy succeeded and within a day or two his Arlo roamed the office like an ActivityBot!
Now, with a simple substitution of #include arlodrive.h in place of #include “abdrive.h” at the beginning of each code example your Arlo can be calibrated like an ActivityBot and run ActivityBot code. The code uses one channel from each ActivityBot encoder with this schematic:
The servos are replaced with HB-25s, but the single-channel encoders are wired the same (we’ll work towards quadrature encoder support next). Special consideration to assembling an Arlo that runs ActivityBot code is the power supply. A regulator provides 6V to the Propeller Activity Board and the HB-25s are connected directly to 12V. It’s also necessary to have a separate power switch for the main logic power supply and the motors.
Arlo has a different number of millimeters of travel per encoder tick and a different turning radius for the number of ticks per degree turned, but once you determine the right distance and speed constants you’ll see the same ActivityBot performance but in a large platform capable of carrying 20 lbs. (Motor Mount and Wheel Kit Molded Plastic) to 60 lbs. (Motor Mount and Wheel Kit Aluminum) of payload. This is exciting because you can start to do productive, real tasks with a larger chassis.
Before trying any ActivityBot applications, make sure to first use ArloCalibrate. ArloCalibrate is equivalent to the ActivityBot calibrate example on this page:
After loading code to EEPROM and finding an open spot on the floor, it will be necessary to:
- Turn all power off.
- Turn system power on but leave motor power off.
- Press and release Activity Board's reset button.
- Wait a couple seconds.
- Turn on motor power and wait for it to try to do something.
- Press and release Activity Board's reset again after the HB25s are convinced they are getting servo signals. This last step is required only during calibration because it’s crucial to capture all encoder measurements, from the very start of the program.
Stephanie has also written a program that uses the infrared remote control, an SD card loaded with sounds and a Ping))) ultrasonic distance sensor for semi-autonomous control. She’s quickly learned how to integrate several different ActivityBot programs into a single multicore example.
Please let us know what you think about running ActivityBot code in an Arlo platform. You’ll likely want us to ease the wiring and setup process. If that’s one of your requests, you’ll be happy to know that we’ve got a complete Arlo Switch Plate in design, which will be available separately in the near future. The Arlo Switch Plate will provide a fused connection point for the batteries and HB-25s, along with switches and a 6V output for the Propeller Activity Board.