Build The BioSTAMP
Raise Your Robot’s IQ with a Drop-In PIC Chip
Dan Ramirez, an accomplished engineer, is a robot enthusiast with a wealth of knowledge to share on use of PIC chips in robots. His account of using his “BioSTAMP” configuration is not so much a straight tutorial as a narrative of his journey into PIC chip robotics explorations. This discussion is supported by a library of parts lists, code files, tables, figures and more that can be downloaded in one ZIP file here (right-click and "save target as"). Moreover, Dan is happy to answer any questions that arise as you explore his narrative “knowledge base” on his BioSTAMP project. Email Dan at mgatron@aol.com.
--the editors
What is a Bionic STAMP, you might ask? Well, if you watched TV in the 70's, you probably have seen "The Six Million Dollar Man." The basic premise of the show is that astronaut Steve Austin played by Lee Majors, was outfitted with Bionic replacements for his legs and arms, and one eye, after a terrible flight-test accident, "...we can make him better, stronger than before." What does this have to do with building robots? The Bionic STAMP (“BioSTAMP” for short), is a powerful drop-in replacement for a Parallax STAMP BS2/BSX/BSP chip (I’ll refer to BS-based applications as "STAMP") that will similarly increase your robot’s capabilities. To do this, simply plug the BioSTAMP into your own STAMP application using the special DIP-24 adapter socket interface that I have developed (more below) and program the BioSTAMP in C rather than PBASIC as is commonly done.
Using the Biostamp you will find that you will be able to develop sophisticated robotics behaviors including line following, navigation (Triangulation and Trilateration algorithms) and obstacle avoidance behaviors using Vector Force Fields (VFF) and Vector Force Histograms (VFH). The BioSTAMP will provide the extra SRAM, Flash and EEPROM for your programs since these algorithms require large resources. This extra power does not come for free. However, if you are willing to pay for this extra processing power, I will show you how to work around some of the challenges you may encounter building the BioSTAMP.
BIOSTAMP FEATURES
The BioSTAMP should enable your favorite robot to think faster and remember more using the DSPIC30F6014 micro-controller that is programmed in C instead of the slower tokenized (interpreted) PBASIC language that the Parallax STAMP uses. Your STAMP projects can be developed initially using the Parallax STAMP and then hopped up in a similar manner to modifying your car with a high performance engine kit, or you can use it on multi-processor based projects while saving money. Although the DSPIC30F6014 is presently limited to speeds of 120 MHz (30 MIPS), other members of the DSPIC33F family will soon support up to 40 MIPS.
Comparing specific hardware features of the STAMP and the DSPIC30F6014 as shown in their respective data sheets, you will find that you get a true 16-Bit micro-controller with 8KB SRAM for your variables versus 32 bytes for the STAMP. In addition, you get 128 KB Flash for your programs as compared to 16KB for the STAMP. You also get five timers (Timer0..Timer4), five capture and compare registers (CCP) and interrupt support with multiple priority levels. In addition you get a myriad of communications interfaces including the I2C, SPI and Serial RS-232 interfaces using the on-chip Synchronous Serial Port peripheral (MSSP) and two Universal Synchronous Asynchronous Receiver Transmitters (UARTs). The Vex controller that comes with the Vex starter kit also contains an 8-Bit Microchip PIC18F8520 MCU that is no match for the high-end 16-Bit dsPIC30 micro-controller. You can verify these facts by comparing the their respective data sheets located at www.microchip.com and www.parallaxinc.com by just searching for the appropriate part numbers.
Analog features include up to sixteen 12-Bit A/D channels that allow you to read up to 16 sensors very accurately and an astounding 68 Digital I/O pins allow you to control almost anything you want. The BioSTAMP also provides you with something no Parallax STAMP has to date, and that is access to incredible Digital Signal Processing (DSP) functions as well as standard floating point math, and trigonometric and scientific functions. The Change on Notice (CN) digital inputs come in very handy for detecting bumper switches, limit switches and keypads or pushbutton switches.
The new 30 MIP dsPIC30F4011 Motor Controller which I am using for another variant of my BioSTAMP for the Vex Hero 2007 robot Motion Subsystem also provides the DSP signal processing hardware (MAC) and floating point to handle most motor control algorithms. It includes the necessary hardware to generate the necessary Pulse Width Modulation (PWM) signal generation necessary to drive the motor amplifier and also provides the Quadrature Encoder Input (QEI) necessary to read the position, speed and direction from the motor’s encoder. In addition the dsPIC30F4011’s timers are used to compute the motor’s speed (tachometer) and acceleration required for advanced motor control algorithms, for example: Proportional Integral control (PI) and Proportional Integral Derivative control (PID). It also includes two UART for Communications with a host laptop or PC used to display menus and output and one SPI interface used to communicate with a master SPI controller while acting as a peripheral to it. Peripherals necessary for controlling motors and reading sensors include five Channels of Pulse Width Modulation (PWM) to control the power for up to five DC Motors.
Microchip’s future dsPIC33 Motor Control MCUs when available in 2007 will provide even more memory 128K Flash 8K RAM and 40 MIPS performance, and I am looking forward to migrating this application to it as soon as it is available.
The price that you pay for these extra performance features and lower unit cost is a relatively higher initial startup cost and you have to learn a more complicated DSPIC30F6014 C software development tool chain. The information that I provide in this article along with article references should help you on your endeavor to develop your own high performance BioSTAMP board.
HERO 2007 ROBOT
The Who, Tommy: Hear Me ...
See Me ...
Feel Me ...
Touch Me
These are the some of the lyrics from the Rock Opera "Tommy" by The Who, and in essence they summarize what an autonomous robot is required to do in order to perform its daily tasks.
The main purpose for building the BioSTAMP is to use it as part of the Sensor Subsystem used to control my Vex based Hero 2007 autonomous robot shown in the photos 1a-b. The robot is currently featured on the Vex Forum, so you can see for yourself the progress I have made by checking out the following link: www.vexforum.com

PHOTO 1A, PHOTO 1B – The images above and below demonstrate how I wired the 24 Pin Parallax BSX adapter socket harness and also shows how I mounted the external components necessary to communicate with the BioStamp with a 115 K Baud high speed serial link. These components include a MAX233 IC and a 20 MHz oscillator that are mounted using spare through-holes.

In the near future, a collection of BioSTAMP(s) serially networked to the main laptop controller will complete the brain and nervous system for the Hero 007 robot. Each BioSTAMP will give my Hero 2007 its Bionic sight, hearing and other super sensing and motion capabilities that it needs to carry out its mission. It accomplishes this technical feat by providing the 1.7 GHz laptop main controller with necessary sensor information and by sending precise PWM motor commands to the Vex motors via a Pololu Serial Servo Controller that can handle up to 8 Vex motors or servos. I have also designed other BioSTAMP variants using Microchip’s dsPIC30F4011 to control up to two DC Geared motors and to read the Quadrature Encoder Interface (QEI) so that I can read the Vex Optical Encoders for PID Control of the Vex motors and other DC motors. The BioSTAMP is also the main controller for other of my Vex based robots.
TRADEOFFS
It is not my intention that the BioSTAMP become a direct replacement for an original STAMP, since as I mentioned before, original STAMP devices are very convenient and easy to use. Because of their compact size, and rich instruction set which is very easy to learn, they are great for prototyping robot applications.
On the other hand the STAMPs aren't cheap, $59 for a STAMP and $99 for the STAMP BSP-40, as compared to the Microchip DSPIC30F6014 at $17 plus the $18 adapter board and other discrete components. The high unit cost of the Parallax STAMPs and their clones makes prototyping multi-processor designs or a fleet of robots very expensive and presently Parallax STAMPs do not have the rich set of hardware peripheral features needed for PWM, A/D data collection and communication that the dsPIC family has.
BUILDING THE BIOSTAMP
The BioSTAMP board is a relatively simple design with low parts count consisting of a couple of IC(s) and a few discrete components. In addition it has the following interfaces.
The STAMP adapter socket and harness are the keys to interfacing the DSPIC30F6014 micro-controller to a standard 24 Pin STAMP DIP. This adapter allows me to super-charge some of my other STAMP based hardware designs and applications that currently use the Parallax STAMP.

PHOTO 2A, PHOTO 2B - These show how I plugged the BioStamp into the 24 pin Stamp BSX socket of a TAB Robot kit which I purchased at a local Barns & Noble bookstore. I am using this robot as a test platform to provide it with advanced robotic behaviors.
I was able to map the BioSTAMP DSPIC30F6014 I/O pins to the familiar STAMP 24 I/O pins in order to make the STAMP adapter harness. I used this harness as an experiment to plug into my TAB Robot’s STAMP BSX socket as shown above in Photo 2b and also my AntiqueBot’s STAMP BSX socket as shown below in Photos 3a and 3b. Notice in the figure how only a small subset of the DSPIC30F6014 micro-controller I/O pins from all those available are mapped to the STAMP adapter board. For my Hero 2007 robot, I chose not to use the harness at all since I required most of the micro-controller’s I/O pins. Special care must be taken while mapping the power pins (VSS, VDD). The mapping suggested here is arbitrary, since any convenient mapping of I/O pins may be used as long as it is consistent in your application. The 40 Pin Parallax STAMP BSP-40 may also be mapped to the PIC in a similar manner, using a standard 40 Pin DIP wire wrap socket.

PHOTO 3A, PHOTO 3B (below) - These show how I integrated the Bionic Stamp into my Stamp BS2 based AntiqueBot robot. It will now be able to function correctly as an independent robot that avoids obstacles, detects the presence of objects and executes various preprogrammed behaviors that were not available to it because of the limited memory and processing speed constraints imposed by the original Stamp BS2 that controlled it.

Communication between the host and the BioSTAMP is done using the serial interface. Special provisions were made to map the DSPIC30F6014 RC6/TX, RC7/RX I/O pins to the MAX233 Serial Driver IC. In addition the serial port TX and RX lines were also mapped to the corresponding STAMP pins in the adapter socket, thus emulating the Parallax STAMP serial I/O functionality.
POWER SUPPLY (JP1)
The power requirements for the BiosSTAMP board are quite modest. Jumper, JP1 is used to connect the +5 Volt power supply shown in the schematic in Figure 2. This is all that is required to power the Bionic STAMP board, but a separate +5 Volt Lab power supply connected to VSS and VDD, may also be used. A power LED connected between the VDD and VSS using a 220 to 470 Ohm resistor in series to limit the current provides an indication of when the board is powered up.
I2C INTERFACE (JP5)
The BioSTAMP board provides access to the I2C interface, using jumper JP5 as shown in Figure 1. It connects the SCL, SDA and GND signals to an I2C Slave device and it uses the Master Synchronous Serial Port peripheral (MSSP) hardware to support the I2C 7-Bit and 9-Bit communication protocols in both Master and Slave configurations. The I2C interface is handy for reading and writing to serial I2C EEPROMS and various I2C devices commonly found in robotics such as sensors and controllers. The biggest feature that makes I2C devices appealing for robotics applications is that they may be networked via a two wire bus using only two pull-up resistors.
SPI INTERFACE (JP2, JP3)
The high performance SPI communication interface is accessed using jumpersJP2-JP3 located on the BioSTAMP board as shown in Figure 1, that connects the SI1, SO1, SS_BAR, SCK1 and GND pins to an SPI Slave device. It utilizes the Master Synchronous Serial Port peripheral (MSSP) on-chip peripheral to connect to various SPI Slave devices using the four standard SPI communication modes. The SPI interface is handy for reading and writing to serial SPI EEPROMS and other SPI devices commonly found in robotics such as sensors, controllers, real-time clocks, etc.,.
ICSP/ICD2 RJ-11 CONNECTOR (JP4)
The ICSP/ICD2 connector shown in Figure 1, as jumper, JP4 on the BioSTAMP board is used to connect the board to the Microchip In Circuit Debugger (ICD2) using the VPP/MCLR, RB6/PGC, RB7/PGD, VSS and VDD pins. In addition to debugging BioSTAMP applications the ICSP connector also allows you to program the DSPIC30F6014 micro-controller directly using In Circuit Serial Programming (ICSP). This is much easier to use than the older method of removing the micro-controller to erase and program it.
HIGH SPEED SERIAL INTERFACE
Communication between a Host PC or laptop and the BioSTAMP is done using a 115.2 K Baud serial link connected to the jumper, JP9, located on the BioSTAMP board as shown in Figure 1. The TX, RX and GND pins are connected to a DB9 RS-232 connector enabling a Host micro-controller or PC or laptop to talk to the BioSTAMP and is used to display menus, display messages to the operator, display debug output and also allow the user to input commands and data. This is all accomplished by using the on-chip Addressable Universal Synchronous Asynchronous Receiver Transmitter (UART) hardware. Inside the DSPIC30F6014 two UARTs are available that make the BioSTAMP capable of handling up to two serial ports with its on-chip UART1 and UART2 hardware peripherals.
The DSPIC30F6014 support speeds of up to 115.2 K Baud but I can also specify the more conservative speeds of 9600, 19200, or 38400 Baud for serial I/O applications. My Parallax STAMP equivalent serin and serout functions use the UART1 peripheral to implement serial I/O configured to 9600 Baud, 8 Data bits and 1 Stop bit. This is unlike the Parallax STAMP that allows you to select the baud rate as part of the serin and serout instructions and also have the added flexibility to specify any I/O pin as a serial I/O pin. I have tested this at other baud rates which only required making a small change to the serial port initialization logic.
QUADRATURE ENCODER INTERFACE (QEI)
The next step towards obtaining precise motor speed or position control is to use some kind of sensor feedback that gives an indication of the motor's actual speed and direction. The sensor usually used for this purpose is called an optical encoder shown in Photo 6, below. Other types of encoders exist such as rotary encoders and magnetic Hall Effect encoders, in addition to variable resistors which can provide a resistance or voltage value proportional to the number of turns it has made. These encoders are connected somehow to the shaft of the motor whose speed and direction is being monitored. These encoders can be read via the standard Vex Controller or by using the dsPIC30F4011 QEI interface, or by using the dsPIC30F6014 digital CN inputs as demonstrated in the Microchip application notes below.

Top view of my AntiqueBot showing all of its electronic modules including a joystick used to train it.
The Vex Optical Encoder is constructed from an optical disk that provides equal regions of light and dark (grating) which allow light from an LED to pass through the clear regions while being blocked in the dark regions. Using its output you can determine the motor's RPM and direction which is used by a Proportional Integral Derivative (PID) algorithm. It allows you to perform closed loop control with feedback in order to monitor the motor's speed so as to match the set point speed.
| |
BioSTAMP File Library
Click Here to download all the BioSTAMP library files listed below as a compressed ZIP file (right-click and select "save target as")
Figures
Figure 1 – This schematic shows how the BioStamp board is constructed, and as you can see, it is a relatively simple design with low parts count, using a 20 or 40 MHz oscillator, a RJ11 6P6C connector socket used for the ICSP and ICD2, and a 24 pin DIP Stamp adapter socket.
Figure 2 – This schematic shows you how to build the adapter socket needed connect the BioStamp to other Parallax Stamp based hardware, by mapping a subset of the DSPIC30F6014 I/O pins and hardware peripherals to the equivalent Stamp BS2/BSX/BSP Stamp I/O pins, with special provisions for the Power and Serial I/O Pins as shown in the schematic. The Stamp BSX part shown in the figure is just a 24 Pin DIP socket used to plug into any Stamp based hardware.
Figure 3 - The +5 Volt Power Supply shown in the schematic can be used to power the Bionic Stamp, or a separate +5 Volt lab power supply connected to Vss and Vdd, could be used in its place. The circuit can be built on a separate board or it can be mounted on the Bionic Stamp board, using any remaining space, if surface mount components are used.
Listings
Listing 1 – I took advantage of Timer1 module to implement my version of the STAMP pause instruction using PIC18 C. It pauses for one millisecond just like the STAMP.
Listing 2 – I used the CCP module to implement my version of the STAMP pulsin instruction. Notice that in my version of the pulsing function, I had to restrict the use of I/O pins to use only the dedicated CCP pins unlike the STAMP which can use any available I/O pin.
Listing 3 – Is a simple example showing how are used the pause, serin and serout functions to display text messages to the Hyperterminal on a Laptop or PC using the serial RS-232 port and read data back from the serial port. The complete application source code is in file biostamp.c
Listing 4 - shows you how to use the shiftout and pulsout functions to control a MAX7219 LED Display. The complete application source code is in file max7219.c.
Listing 5 – demonstrates using the pulsin and pause functions to read a Sony IR remote command. The complete application source code is in file sonyir.c.
Listing 6– Is an example that demonstrates floating point math by generating a table of Sines, Cosines and Square Roots and displays them on the display using the function Serout with Hyperterminal. The complete application source code is in file biomath.c.
Tables
Table 1 – Is a comparison of a BioStamp (DSPIC30F6014) hardware architecture to the architecture of the Parallax STAMP BSX microcontroller. Although the Stamp is faster in terms of raw processing speed, the PIC has much more RAM and on-chip hardware peripherals which the Stamp has to simulate in firmware, and other Microchip microcontrollers such as the PIC18FX520 are capable of running at up to 40 MHz.
Table 2 – Is a list of all the available PBASIC instructions currently simulated on the BioStamp. The complete PBASIC instruction set has not been simulated at this time, and the calling sequences and parameters vary from the original. The reader is free to contribute to it using my initial BioStamp firmware as a starting point.
Table 3 – Shows the pin I/O mapping of the BioStamp board to the pins of the Parallax Stamp BSX. Utilizing this table I was able to make the Stamp adapter harness for the BioStamp using a 24 Pin DIP and wire-wrap wire as shown in Figure 2. Other than connecting the corresponding Power, Tx, and Rx pins, the mapping suggested here is arbitrary, since any convenient mapping of I/O pins may be used as long as it is consistent in your application.. |
PROGRAMMING THE BIONIC STAMP
When programming the PIC based Bionic STAMP, a one time investment of $188 available from Digikey #DV164007-ND, (power supply included) for the ICD2 In-circuit Debugger/ Programmer is required. Another option is to purchase the ICD2 + PICDEMO2, which includes the Wall Transformer power supply, and allows you to also develop applications on the DSPIC30F6014F452 that is part of the PICDEMO2 prototype board, also available from Digikey #DV164006-ND for $229. A separate programming module adapter is available for $39 (40 Pin DIP) Digikey #AC162049-ND. The first option is the least expensive yet allows you to develop code for the Microchip Flash Based micro-controllers.
I also highly recommend Myke Predko's book [2], to develop C applications on PIC devices since it has many neat PIC C specific robotics applications that use the HI-TECH PICLITE C compiler instead of the Microchip DSPIC30F6014 C compiler. Myke is a wizard with the PIC architecture and following his excellent examples will get you on your way to developing your own applications. Unfortunately the PICLITE C compiler does not support the DSPIC30F6014 microcontroller, but I have been able to re-host most of Myke’s applications by making minor changes to the code and then recompiling them using DSPIC30F6014C.
The software tools required are MPLAB which is available as a free download from Microchip and DSPIC30F6014 C which is available from Microchip as a 30 Day Demo (free download) and the commercial version may be purchased for $495 from Microchip.
SIMULATED STAMP FUNCTIONS
Taking advantage of these new features that are now available from the BioSTAMP requires that you write your new application in DSPIC30F6014 C or that you convert your current STAMP application to the equivalent DSPIC30F6014 C code. This is accomplished by using the equivalent function from the simulated STAMP function library that I provide with the BioSTAMP project files located on the Circuit Cellar WEB site.
I developed my own library in DSPIC30F6014 C representing a subset of PBASIC statements and these are shown in Table 2. These functions are not optimized for speed or code size at this time, but just work in a similar manner to the PBASIC statements. They include the following functions: pause, shiftin, shiftout, high, low, input, output, etc. The calling sequences for my simulated versions of the PBASIC functions have been altered slightly from their original form in order to distinguish them from PBASIC instructions and avoid confusion. I have not completed simulation of all the functions, but as a challenge, the reader could complete the remaining PBASIC statements using the framework that I provided. The necessary library file that I developed including: stdio.c, portutil.c and timeutil.c and the C header files stdio.h, portutil.h and timeutil.h and many more are located provided on the Robot Magazine WEB site.
Those of you who enjoy programming in assembly language may want to hand optimize the simulated STAMP functions by rewriting some of my C functions directly in assembly while keeping them callable from DSPIC30F6014 C. The advantages of doing this are that the Bionic STAMP is able to control most STAMP applications while at the same time providing additional features such as faster processing speed, floating point, Trigonometric functions, Scientific functions, Analog to Digital conversion (A/D) hardware PWM, interrupts, timers, and such, that are not available in the Parallax STAMPs at this time.
Some concrete examples of using the BioSTAMP equivalent functions are in order. The first example shown in Listing 1, from my biostamp.c application, demonstrates the pause, serial input and serial output functions to display messages to the Hyperterminal on a Laptop or PC using the serial RS-232 port.
32-BIT IEEE754 FLOATING POINT SUPPORT
Why do you need floating point? You might ask. Well if you want to scale sensor readings, compute PID Motor Commands or perform Triangulation algorithms, you might want to use floating point to make the programming easier. You can do this without having to resort to fixed point math tricks, which tend to cloud up the meanings of the equivalent floating point equations. The Windows Hyperterminal screen capture of output from my biomath.c application that was run directly on the BioSTAMP as shown in Photo 4, should give you an idea of some of the BioSTAMP’s incredible number crunching abilities that are far beyond what a Parallax STAMP can do.
The DSPIC30F6014 Compiler and libraries provide the simplest form of floating point which includes 32-Bit IEEE754 floats and the standard arithmetic operations "+", "-","/" and "*". Even though you can include the Trigonometric and Scientific functions and get your program to compile and link, they will not run correctly because Microchip still does not support them at this time, and double precision floats are not available either. This is an area where Parallax STAMPs are at a disadvantage with competitors such as the Atom and BASIX STAMPs that provide 32-Bit IEEE754 Floating Point support the way you would expect Basic to work. It is the primary reason why I was motivated to develop the BioSTAMP.
I developed my own subset of the Trigonometric and Scientific functions which I wanted for Triangulation and other Navigation Algorithms that normally use floating point functions (the Sine Cosine functions in particular). Using the C floating point and serial I/O libraries that that Microchip provides for the Bionic STAMP, you too can take advantage of the dsPIC's floating point capabilities available to the BioSTAMP by just including the C header file "<math.h>" in your application.
APPLICATIONS
So why not use the BioSTAMP on your next robotics application or gadget, or use it to upgrade an existing robot? I started using the BioSTAMP on it when I plugged my adapter socket mentioned previously into the STAMP 24 pin socket on top of the TAB Robot’s controller board. In order to give the Bionic STAMP a real workout and show you how I used it on one of my latest robotics projects,
My Hero 2007 robot is currently a work in progress, which you can see in the Vex Forum Gallery. Soon it will be able to function as an independent robot that avoids obstacles, detects the presence of objects and executes various preprogrammed behaviors that were not available to it because of the memory and processing limitations imposed by the original STAMP that controlled it.
My AntiqueBot is yet another example of how I plan to use the BioSTAMP as a drop-in replacement for the current STAMP BSX micro-controller, in order to give it more sophisticated behaviors. It should be able to function as an independent robot that avoids obstacles, detects the presence of objects and executes various preprogrammed behaviors that were not available to it because of the limited memory and processing speed constraints imposed by the original STAMP.
Algorithms that can be executed on the Bionic STAMP which would be very difficult to do run on the Parallax STAMP include:
- Advanced Optical Encoder, tachometer QEI, and PID Control applications (See Microchip Application Notes listed below)
- Triangulation/Trilateration
- Navigation
- Obstacle Avoidance
- Vector Force Fields (VFF)
- Vector Field Histograms (VFH)
- Fast Fourier Transforms (FFT)
- Proportional Integral Derivative (PID) control
- Kalman Filters
- FIR/IIR filters
FUTURE UPGRADES
Looking into the future of robotics, the promise of even faster processing speeds are in the works from microcontroller vendors such as Microchip, Motorola and Atmel. Currently, other variants of the DSPIC30F6014FXXX support processor speeds of up to 40 MHz and according to my sources, the next version of the DSPIC33F silicon should also be able to handle 40 MIPS. With the introduction of the latest 16-Bit DSPic DSP processor from Microchip that should be available soon, which uses the same DSPIC30FXXXX core instruction set for ease of portability and use, should be boom to hobbyist since it is another drop-in option that tops out at 40 MIPS. The DSP capabilities will be put to good use during mixed signal processing applications such as PID Servo Motor control, Fuzzy Logic algorithms and Neural Networks necessary for truly autonomous robots.
CONCLUSION
With the Bionic STAMP in place, your SUMO robot should be able to leap over your opponent in a single bound or at least keep a safe distance away by using its bionic enabled lightning fast reflexes. It is true that using a high end surface mount microcontroller such as the DSPIC30F6014 or the Motorola 68HC12 makes it more difficult to prototype and develop applications yourself because of the specialized equipment and tools required, but the rewards after that initial investment are great, especially if you use these new controllers for research and commercial applications. In addition to this you also learn how to deal with the new technologies including Surface Mount Technologies (SMT).
ABOUT THE AUTHOR
Daniel Ramirez is a Senior Software Engineer with more than 12 years experience working with real-time embedded systems and holds a Bachelor’s and Master’s degree of Engineering and Computer Science from Northeastern University. He can be reached via Email at mgatron@aol.com.
REFERENCES
books:
[1] H. R. Everett, “Sensors for Mobile Robots: Theory and Application”, AK Peters, Ltd., Natick, MA 1995
[2] Predko, Myke , “Programming Robot Controllers”, McGraw-Hill, 2003
articles:
[3] Ramirez, Daniel, "Robot Sensor Controller Board", Issue 136, Circuit Cellar, November 2001.
[4] Microchip Technology Inc., "MPLAB IDE SIMULATOR, EDITOR USER'S GUIDE", document # DS251025E, 2001.
[5] Microchip Technology Inc., "MPLAB-CXX COMPILER USER'S GUIDE", document #DS51217B, 2000.
[6] Microchip Technology Inc., "MPLAB-CXX REFERENCE GUIDE", document # DS51224B, 2000.
[7] Ramirez, Daniel, "Build Your Own Four-Function Calculator", Issue 157, Circuit Cellar, August 2003.
sources:
Microchip Technology Inc 1-800-344-4539, WEB site, (www.microchip.com)
Bellin Dynamic Systems, Inc., (www.beldynsys.com)
Parallax Inc., 1-888-512-1024, WEB site (www.parallaxinc.com)
links:
www.vexforum.com
www.vexfan.com
www.seattlerobotics.org/encoder/200108/using_a_pid.html
www.engin.umich.edu/group/ctm/PID/PID.html
www.tcnj.edu/~rgraham/PID-tuning.html
www.microchip.com
microchip application notes:
GS002
Measuring Speed and Position with the QEI Module
AN901
Using the dsPIC30F for Sensorless BLDC Control
27-Jun-2005
AN908
Using the dsPIC30F for Vector Control of an ACIM
27-Jun-2005
AN957
Sensored BLDC Motor Control Using dsPIC30F2010
23-Jun-2005
AN962
Implementing Auto Baud on dsPIC30F Devices
27-Jun-2005
AN984
An Introduction to AC Induction Motor Control Using the dsPIC30F MCU
27-Jun-2005
AN992
Sensorless BLDC Motor Control Using dsPIC30F2010
26-Jul-2005 |