Few months back I was working on a “table-top” robotic platform and I posted some stuff about various parts of the project. Never posted a picture on how actually looks…
I started this project as I always wanted to have a compact development platform that I can use to test or develop new features on my desk fast and not wasting time, resources and energy building a “final” solution that is very inconvenient to to use for testing and debugging and may need to change it several times.
Since i try to make all my code as much as possible generic, separating the low level MCU access by using as much as possible macros, whatever I write on LPC12xx will work on LPC17xx or even AVR with minimal or no changes.
So back to my toy…
Is a small board (10×8 cm) with everything self-contained:
– 1 LPC1225 (Cortex M0, 8 Kbytes RAM, 64 Kbytes FLASH);
– 1 32 Kbytes I2C EEPROM;
– 4 Quadrature Encoders;
– 4 Micro-gearbox Motors (100:1);
– 4 H-bridges to drive them (2 Amps per motor at peak);
– MPU-650 as Accelerometer and Gyro (3+3);
– 1 XBee socket (can be used for Bluetooth, WiFi or XBee);
– 1 LDO for 5v and 1 LDO for 3.3;
– 4 headers for IR proximity sensors;
– 4 LED for directions, 1 on each corner;
– 1 I2C header;
– 1 SPI header;
– 2 UART headers (1 shared with XBee socket);
– 1 2×5 JTAG header.
Most of the basic functionality is working:
– PWM control for each of 4 motors;
– PID control for each motor;
– Over-current monitoring;
– Store configuration data to EEPROM:
– Support for MPU-650, calculate yaw, roll and pitch angles;
– Serial communication with host over XBee/WiFi;
– Battery monitoring;
– Support for Over-The-Air firmware update.
Is still in prototype stage, already redesigned the layout and fix some initial design issues to get it more compact and have space to fit the battery on top of the PCB also added SPI RAM support for maps (?), no GPS though. Anyway, the newer version will be able to take an extension board on top, for future development…
When I’ll have time will connect one of my CTS modules and write some code to get it running.