This falls right into my current robotics project. I will be using my 68HC11 as the master controller for a couple of PICs. Slight dillemma to still deal with is the inter-processor communications (IPC). If I stay with two processors, then serial (RS232) will suffice, but more processors, then I need some form of network. This will be new to me. > -----Original Message----- > From: Thomas McGahee [SMTP:tom_mcgahee@SIGMAIS.COM] > Sent: Thursday, January 20, 2000 2:10 PM > To: PICLIST@MITVMA.MIT.EDU > Subject: Re: General walker stupidity: Divide and Conquer! > > Adam has brought up a good point. Distributed processing is > a very useful technique. Each sensor/microprocessor combination > has its own private interrupt mechanism, and a means to > respond quickly to the local stimulus. Such local action might > include some form of immediate action such as movement towards > or away from an object, and two-way *communication* with > a Master CPU that controls the "big picture". > > Other examples of specialized processing would be: > > An LCD controller that communicates serially; > > A "math co-processor" PIC that does all the math > stuff, and which you communicate with over > a serial line; > > A Data Ram that accepts an index number and then > returns a sequence of data such as ASCII text > string messages for the LCD, or Conversion Table Data; > > A Stepper Motor Controller that moves a stepper motor > to an "absolute position". You tell it "X=12,345", > and it moves from the current location to the one > specified; > > A Servo Controller that accepts an ID and a Position value and > then moves one (of several) servos to that position. > > > All of the above PIC based "distributed processing" functions already > exist. Many of them have been designed by members of this list. > Sometimes > two or three low-end PICs can do a job better than one expensive cpu. > > It is also often MUCH easier to program a Master CPU to control a > couple of "local intelligence" PICs than it is to try and program > a single PIC with limited interrupts to do all the tasks. As the > ancient Romans used to say, "divide and conquer". > > Fr. Tom McGahee > > > -----Original Message----- > From: Adam Bryant > To: PICLIST@MITVMA.MIT.EDU > Date: Thursday, January 20, 2000 1:22 PM > Subject: Re: General walker stupidity > > > >I would argue for a distributed approach using many lower cost > processors > >rather than 1 expensive processor. For the price of one HC11 > whatever > >processor you could purchase a 16F84 and a number of 12C508/9 OTP's. > The > >8 pin PIC's (including some of the newer ones that have onboard A/D) > are > >perfect for motor/servo controllers, sensor controllers, > communication > >controllers, etc. By distributing the processing required for motor > >control and whatnot to the small/cheap PIC's, the master controller > >(16F84) can concentrate solely on the higher level functions of > whatever > >behavior you want your robot to have. > > > >We (myself included) tend to think too much in terms of one > >microprocessor doing absolutely everything which usually ends up with > >extremely complex code. Whereas with the distributed approach, each > >component (motor, servo, sensor) has a limited job to do that can be > >coded much more simply. > > > >Typical hobby walker robots use 2 or 3 servos, 2 touch sensors, and > >possibly an IR ranging detector. Use one 12C508 to control the > servos, 1 > >508 to monitor the touch sensors, and 1 508 to handle the IR ranging. > >Use a 16F84 as the master and tie them all together with I2C and you > >would have a very powerful, flexible walker. > > > >Just my $.02 worth, > >Adam > >