We are using robots to teach advanced embedded system programming at the Lucerne University (see “Sumo Robot Competition“). Students can buy the kit, and we are running out of available hardware. Time to produce a new series of robots :-). It took us a while to get to the next revision of the Zumo Robot, but finally the first one has been produced and assembled, and I think it is looking good :-).
As the previous robot, it is based on the Pololu Zumo chassis. It uses the same processor (Freescale/NXP K22 ARM Cortex-M4F running at 120 MHz). It is an evolution of the previous design, with the following changes/improvements:
- Reduced several parts to get below 100 components (less expensive to produce/populate). For example removed some pull-up resistors which now are handled by the microcontroller internal resistors, removed the MCP4728 DAC.
- Improved power circuit, better dealing with large currents drawn by the motors, improved decoupling circuit.
- Moved SWD header for better accessibility.
- Optimized layout, now using a dual layer instead of a four layer PCB.
- Changed motor position encoders from optical sensors to magnetic sensors.
The PCB size is about the same:
But the new PCB includes two ‘wings’ to keep the motors in place:
The biggest change is that we changed the optical encoders to magnetic ones. Pololu does that with their Zumu 32U4 robot too (great idea, Pololu!)
On the bottom side, behind the footprint for the infrared sensors, there are footprints for 4 hall sensors:
In earlier design we used optical quadrature sensors which was complicated with connectors and all the wires needed, plus the need for processing the raw sensor data (see Processing the Pololu Motor Shaft Encoders). Now magnetic encoders are used: small magnets attached to the motor shafts which then are sensed by the hall sensors. The motors with the magnets are placed underneath the hall sensors. That way only the two wires of the motors are connected to the PCB which greatly simplifies assembling a new robot:
Instead using connectors and wires to optical encoders ont he motors, only four wires are needed :-). It is still very easy to detach the robot PCB from the chassis if needed:
Several parts have been rearranged so they are easier to use and better accessible. The Nordic Semiconductor nRF24L01+ transceiver now can be placed directly underneath the optional Arduino shield:
That way the robot has be used for maze solving or line following without the need for an extra shield or hardware.
The new PCB has many advantages: simpler and better position encoding, fewer parts and less layers, and is still as powerful as the earlier revision. We considered to add extra sensors on the base PCB for distance measurement e.g. for Sumo mode, but there was not enough time. For this, we still can use the sensor shield (see “Sumo Robot Sensor Shield“).
Happy Roboting 🙂