![]() |
![]() |
||
|
|||
Microcontrollers and Single-Board Computers
The 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.
Arduino
The 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.
Arduino Resources
PIC Processors
PIC 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 Resources
Below, you will find links to various tools that I like for
PIC programming. These work for me quite well.
Zilog Z80 - Hitachi 64180
My 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.
|
|||
![]() ![]() Join us on Yahoo!Groups ![]() Join us on ![]() |
|||
Copyright © 2019, Arbuckle Technology Society, All Rights Reserved Website Design by WebAmphibian.Com |