Serial interface for controlling robotic arm.

Dependencies:   Axis mbed

You are viewing an older revision! See the latest version

Homepage

Program uses a LPC1768 processor for controlling a robotic arm. The basis for the program is the Axis () class which uses a PID controller to actuate a DC motor with quadrature encoder feedback.

The Axis Class has 3 dependencies (MotCon, LS7366LIB, and PID. The class encapsulates the required functionality of controlling a DC motor with encoder feedback through pin assignments, and SPI bus, and a pointer for the limit switch source.

The LS7366 encoder interface IC off-loads the critical time and counting requirements from the processor using an SPI bus interface for the class. The Axis class then uses a state machine to perform trapezoidal movement profiles with a Ticker class. Parameters can be adjusted through the serial interface using a FT232RL or similar USB to serial interface IC for computer communication.

The MotCon class is a basic class that defines a PWM output pin and a single direction signal intended to control an H-Bridge motor driver IC. On the prototype I use an MC33926 motor driver for each motor.

/media/uploads/jebradshaw/20151217_141308.jpg .

Above is the prototype for the controller. Oringinally, a PCF8574 I/O expander was used to read the limit switches by the I2C bus. This has now been re-written to use 6 external interrupts directly for the limit/homing switches. Six motor driver breakout boards using the MC33926 motor driver chip were used to drive the motors.

/media/uploads/jebradshaw/100_2490.mp4 Short homing and calibration demo.

I use the mbed online compiler to generate the .bin file, use bin2hex to convert it and upload the hex file using Flash Magic to the processor with the serial bootloader. I prefer to use the FT232RL usb to serial converter IC for PC comms due to the high level of reliability and USB driver support (typically already built in Windows 7+). I've started putting this on a PCB and hope to finish by the end of the month (Dec 2015).

Joe B


All wikipages