Microcontrollers and Single-Board ComputersThe number and type of microprocessing systems available to ATS members has grown by leaps and bounds in the last few years. Below we will try to cover a few of the more popular ones.
ArduinoThe Arduino is, by many accounts the "defacto" single board embedded controller system favored by many in the robotics community. This system, with it's good mix of analog to digital (A/D) and digital input output (DIO) pins, along with it's easy programming have made it a veritble cottage industry all by itself.
PIC ProcessorsPIC processors, produced by MicroChip, are very popular among the robotics community. These chips offer many desirable features that make them well suited to this task. Among the more interesting are:
Additionally, they are small and require few external components to either run or program. They run from a fairly wide voltage range (many can be connected directly to batteries thus eliminating the need for voltage regulators).
There are a number of languages, assemblers, and tools available for PIC processors. This caused me quite a bit of confusion early on in my dealings with this processor. Some of the players in my confusion were Parallax and Ubicom (formerly Scenix) who manufacture different versions of the same chips. Both of these companies use what I can only call a 'macro' version of the Microchip assembler. These macros make using the Microchip instruction set somewhat easier, but at the cost of a bit of obfuscation of what is actually going on on the chip. You see, each of the Parallax format instructions actually may be several Microchip instructions.
The Parallax version of the assembler language has a few advantages. Number one is that it is the native assembler format for the Scenix chips. These chips are basically a souped up Microchip without many of the on-chip peripherals (no A/D converters for instance), but they run four times faster than the PIC processors. Thus, if your robot code exceeds the operating parameters of the PIC processor you started on, you can "move up" to a Scenix processor, and if you were using the Scenix format assembler code, most of what you had labored to create would port to the new Scenix chips without modification.
Parallax pre loads Microchip processors with what amounts to a BASIC interpreter on the chip. Their tool set differs in that it is targeted at doing BASIC in a GUI based tool. These chips have gained wide acceptance as the "best" portal into the micro-controller world of robots. However, as one might expect, they process your code quite slowly. Thus, doing intricate coding, relying on the CPU clock cycles of various code segments to get a specified timing value for a given robot function is nigh to impossible.
PIC ResourcesBelow, you will find links to various tools that I like for PIC programming. These work for me quite well.
Zilog Z80 - Hitachi 64180My own robot experiments started with the Hitachi 64180 chip, a 1M version of a Zilog Z-80. The 64180 also had two serial ports (with on-chip UARTS), several timers, and numerous other improvements on the basic Z-80.
My then room mate and good friend was working on his ECEN senior project, a computer console multiplexor. For this project he used the Hitachi 64180. In the process of developing this project, he wrote a monitor system, affectionately called "MONROM", that allowed for single stepping of the processor, setting interrupt vectors, etc. He later allowed me to make use of this in developing my own stand alone 64180 CPU card.
Once my card was working, I then undertook finding an operating system (of some sort) to make use of this card for a robot. At the time, most all operating systems were both disk based, and proprietary (thus pricy). While looking around USENET, I came across several versions of FORTH for the Z-80 platform. Once I had a keyword in my hand, I hit the OSU Libraryand found Threaded Interpretive Languages : Their Design and Implementation by R. G. Loeliger. This book was a gold mine of information about FORTH, and presented an abbreviated version of it already ported to the Z-80 architecture. I took this source code, along with various code snippet from "MONROM" and came up with what I dubbed "Card Forth".
BasketBot was simply too large for the apartment that I was living in at the time. Heck, it's still too large, even though I've got a house now. In any case, I took the lessons learned in that experience and went a different approach for my second 64180 project, a micro mouse.
My micro mouse never reached completion. It was designed around the same 64180 core, and I still have the computer. It shared much of the same circuit diagram as BasketBot (hey, why jinx a good thing), but never saw movement.
Join us on
Join us on
Copyright © 2020, Arbuckle Technology Society, All Rights Reserved
Website Design by WebAmphibian.Com