Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
206 views
242 pages
Mobile Robots Inspiration To Implementation-Flynn and Jones
Uploaded by
WASHINGTON
AI-enhanced title
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Download
Save
Save 11128_Mobile_Robots_Inspiration_to_Implementation-... For Later
Share
0%
0% found this document useful, undefined
0%
, undefined
Print
Embed
Report
0 ratings
0% found this document useful (0 votes)
206 views
242 pages
Mobile Robots Inspiration To Implementation-Flynn and Jones
Uploaded by
WASHINGTON
AI-enhanced title
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content,
claim it here
.
Available Formats
Download as PDF or read online on Scribd
Carousel Previous
Carousel Next
Download
Save
Save 11128_Mobile_Robots_Inspiration_to_Implementation-... For Later
Share
0%
0% found this document useful, undefined
0%
, undefined
Print
Embed
Report
Download
Save 11128_Mobile_Robots_Inspiration_to_Implementation-... For Later
You are on page 1
/ 242
Search
Fullscreen
me TOE SUEUR RIED aD mn Li melo mT oot wo DDS = oe Tee ES non 9 z= —a = veContents Preface to the Second Edition Preface 1 Introduction LL References 2 TuteBot 2.1 A Tutorial Robot 2.2 TuteBot Behaviors 23 Building TuteBot 24 Electronic components 2.5 Electronic Construction 2.6 Operation . 2.7 Exercises for the Reader 28 References 3 Computational Hardware 3.1 Rug Warrior's Design Strategy 3.2 Microprocessors 3.3. The Canonical Computer34 Expansion. . 35 Data Buffer 3.6 Rug Warrior Logic 3.7 Hardware-Software Interface i . 43° Printed Circuit Boards 44 Debugging 6.1 Locomotion 6.2 Adapting Mobile Platforms 6.3 Legged Locomotion 64 Construction Systems. . 6.5 Custom Construction 6.6 Exercise 6.7 References Motors 7.1 Variety Abounds 72 How a DC Motor Works CONTENTS 166 168 169 169 179 183 . 183 184 - 191 191 193 193, 199 CONTENTS. 73. Sizing a DC Motor TA Gears 7.5 Motor Data Sheets 7.6 Motors for Rug Warrior 77 Interfacing Motors : 7.8 Software for Driving Motors 7.9 References 8 Power 8.1 Batteries . 82 Recharging... . 8.3. Power Regulation . 84. Isolation 85 References Robot Programming 9.1. The Traditional Approach 9.2. Behavior Control . 9.8 Rug Warrior's Program. 9.4 Implementing Behavior Contre 9.5 Behavior Control in IC. . 9.6 What Did We Do? 9.7 References . 10 Robot Projects 10.1 Projects for Individual Robots. 10.2 Multi-Robot Projects. . 10.3 References 11 Robot Applications LL Dowa and Dirty : Making the Rounds... . 5. 11.3 In Harm's Way 4 Summary LS References = 208 aL 213 21s. 226 249 263 265 265, 272 23 278 281 283 288, 292 302 = 309 <3 a13 313, 324 = 835 337 - 338 = 2 3M 353 353x CONTENTS CONTENTS x 12 Robot Design Principles 355, F Robot Contests fad 2 G Color and ASCII Codes aa “38 ee as 357 Index 4st 2358 3e1 362 362 Ta Tse 135 Cooperation “et 136 Thoughts : SE as 18.7 Bnerise QS LIT Sses a ee Ts 367 B Rug Warrior Programs arr Bl Bode... i 2819 a 380 Ba Yove 7 32 BA Wimp a aeeee BS Follow Ge BG Echo i 286 BZ Sonic Commander “380 BS Aunllay Code i iy BD Velocity Control Code 21 “303 ee 307 Ga Stoptiee a a C2 Products. wa a D Trade Magazines aa E Data Books 435Preface to the Second Edition Welcome to the second edition of Mobile Robo plementation. In the five years since the o: y featured in TV shows and magazines, instruction in robotics is available at numerous high schools and colleges, dozens of robot contests are held annually around the world, robot clubs have sprung up everywhere, and thousands of web pages are devoted to robots, As we had hoped and expected, the pace of robotic development hhas quickened and the achievements of mobile robots have become ever more impressive. Thus, we felt it was high time to update, revise, and expand Mobile Robots to reflect this progress. ‘To the many readers of our first edition, we offer our heart-felt ‘translated into Japanese, -s and vetern roboti-xv Preface to the Second Edition Chapter 3 has been expanded. It no of how to add memory-mapped di The chapter on sensors, Chapter more driver code. Revisions to other ch o answer the oft asked questior robot?” we have a “But what can you do with a ww chapter, Chapter 10. Here a number ble for Rug, the robot pre: ‘Some projects even include crucial by commercial and. new chapter, |, contains examples of this ir continuing experience in robotics we have in optimal robot design. A third new 8 and advice we hope will be we list principles that have guided us toward the successful completion of robot projects Appendix B has been completely revised. I ix contained a single all-encompassing, but perhaps program, The revised appent ain easily understood programs for Rug Warrior. Preface to the Second Edition ~ Finally, a new appendix, Appendix F de ing list of robot contests, We have included the preface to the first edit ics by disassembling a wind-up clock. A child of today will le the black box of a digital clock only more black boxes. ‘of these boxes (integrated cireui ity.” You can still take off the top of the robot, poke around inside, change some things and sce what ns. This is a key goal for us: to open the black box and reveal ‘de. And it is for this reason that we strongly encourage robot of your own. A deep understanding of the ray can be attained not by reading, but only by doing. Rug Warrior and Rug Warrior Pro For the first edition of Mobile Robots: Inspiration to Implementation. ‘we developed a robot called Rug Warrior. Rug Warrior was a con- vonient vehicle for us as it gave us a consistent platform on which to hang our examy ned that. readers would acquire the components for Rug Warrior and build their own robots fromavi Preface to the Second Edition seratch. Toward that end we included in the first edition detailed information about how speci Unfortunately, building a robot from seratch is a especially if you do not have access to a full Many readers who tried to construct a robot in this way found that they learned much more about ordering from vendors, purchase requirements, and tracking down scarce comp. ling. It was the vocal distress of embedded in the text. This ing the book. Should we simp! form to the new robot even when the changes are not to the point under discussion? We resolved the problem by adopting a two-robot p Warrior continues in its original roll as our primary exat Rug Warrior's circuit board and components is provided for those stalwarts who wish to build from scratch, Significant new features -mented in Rug Warrior Pro™ are described separately. These sd not be lost to builders of Rug Warrior—an inex- iodule that effectively converts Rug Warrior into Rug Warrior Pro™ is available from the publisher. Acknowledgments Preface to the Second EditionPreface The design and construction of mobile robots is as much an art as a science. The intent of Mobile Robots: Inspiration to Implementation is to explain the skills involved in a manner amenable to as broad ‘an audience as possible. Our aim is to teach you, the reader, how to bul ‘the recent wide availability of home comp ‘mobile robots with an assortment of sensors and actuators is within the reach of nearly everyone, is designed to appeal to readers on a variety of levels and those eager to jump in and get their hands there are basic lessons on the tools of the trade and the craft of building things and long appendices of su of interesting robot parts. Chapter 2 the reader through a tutorial design exampl simplest robot, but nevertheless a complete system. This is TuteBot (for if robot comprised solely bump switches, and a few discrete eBot exercise should conjure up a make the robot better and act more intelligesmake up a robot: sensors, actt- he progression of gether the hard- bsystems of Rug Warrior: microprocessor-controlled sensors ‘ors, the mechanics of a locomotion system, and a capable Rug Warrior has enough sensors and actuators to ‘behaviors tt obstacles, moving tow but rather to put to- iat a generation of en: also have the is, to us, the real e: How can intelligent systems? As more software, how do we manage complexity? How do we coerce interesting behaviors to emerge? And in the end, how can such machines solve useful Broblems for us? We conelude our book in Chapter 10, nologies ‘we put all the pieces together to build we add more sensors, more actuators, an background of concepts iography at the end of the book. ile Robots has grown out of research at the MIT Artificial ‘AT) Labor: robot group. The hal cen the birth of a wide variety of arti some avoid obstacles, some maps, several walk and hides in dark comers. W how to organize the mentioned. T Preface _ x tensive engineering ‘we staged a Robot Talent SI ransferting much of this technology to the AI Lab as a whole, Students were given kits of parts and computers and were encouraged to pick their own prob- lems and solve them. Vacuum cleaners, laser tag-playing robot tonomous blimps, and cross-country skiers were a. few of the resi ical participants in the talent show. Photographs ft inced at the end of this section. We put together a 's manual before the event, outlining the basics of buil 1omous creatures, and handed it out to all the stu book sprang directly from that first manual. ns and experiences in building mobile robots over ot always matched, but the lessons learned have been invaluable and we hope to share these with you. Our method is to give general background in each chapter on how different robot sub- wen to ground the discourse in specific examples y for this book as a teaching aid. of code are sprinkled through- ‘own robots laid out k. A-gives the along with all the interface elec- actuators and B lists a program that iors, ‘The entire robot has been reduced. ‘ors, a very minimalist example of a 1em evolve step by in one place in informa wve found helpful. Appendix C low pages of, ver 150 su and distributors for robot parts, such as motors, prototyping equipment, electronic components, and power supplies. Hopefully, this collection will help you overcome the iner- tia of getting started, whether it be in a basement workshop or in a laboratory.oat Preface on new product announcements. Stay- y is crucial in making design decisions. We jeered in house one day would often become commercially available the next, or that components nals, and for staying just as this book is going to press, sroprocessor that we chose for Rug Warrior has gone out of Fortunately, however, the Motorola MC68HC81L throughout is upward compatible with the ply substitute that 1 few more tables that are handy to have in one place, such as the resistor color code and the ASCII code for alphanumeric symbols. As technology marches on, a book that emphasizes specific hard- ‘ware will quickly become outdated. But the art and the means and ‘the basic concepts survive, and these we hope to share with you. Cambridge, MA. ‘Anita M. Flynn rt 1993 Joseph L. Jones 1 Introduction ind the dras- recent years signed to fit together into an appropriate package suitable for carry- ing out the robot’s task. Where do we start?2 1. Introduction, From croprocessor and software to manage the complexity of large numbers of sensors and actuators, ‘The view. nother example robot, roprocessor becomes the heart of Rug Wa rior, and the following chapters describe the workings of mechat and electrical co frcuitry that enables ‘them to be driven from a microprocessor. Software-pri at ad nughout the book as each new perception or locomotion syster roduced. Although this book describes the details re oper- the role the envi- cleverness, How connected are sensing gence? How much of what we acknowledge merely a refiection of simple behaviors off of4 1. Introduction in artificial intelligence grew from of other fields. Cybernetics, in the 1940s and of research that tried to understand intelligence oped ical control theory. Its model of computation , and it tried also to understand intelligence in animals by modeling them as machines. Our example of TuteBot is very much i the same spirit as the early work in cybernetics. For instanco, Figure 1.2 illustrates the extent of TuteBot’s tal- ents, The long dashed lines at the bottom of the figure exemplify behavior, where TuteBot moves forward in a straight line ft for some period, and then proceeds forward again in a straig] ‘A number of mechanisms could be imagined necessary to achieve reward until a bump sensor on the front detects a col signal from the bump sensor directs both motors to reverse resistor-capacitor (RC) circuit, one for each wheel. If the RC circuit ‘on each wheel is set differently, one wheel will back up for a longer period of time than the other wheel, causing TuteBot to turn. When ‘TuteBot resumes forward motion, it no longer has the same heading and so avoids ramming the obstacle it first bumped. |A second behavior can be added to TuteBot using a similar strat- egy. If, during the forward motion, one wheel is allowed to turn faster than the other (for instance, by adding a resistor in series with one motor) TuteBot will move in an arc. The short dashed lines at the es. When this lescribed is trig- t backs up, turns toward the right, and proceeds ‘between the wheels causes the robot to veer off to the left again. The result of these two Introduction 5 {he erntegy, Tuteiot dmonstate wal following behave6 1. Introduction to follow along lowing, In the 1960s after cybernetics, and with the rise of the digit , the field of telligence was born, and came computational models of intelligence. The tions of, understanding of intelligence were the notions of repre- nguage interpreters, and problem solvers were some of t] demonstrations developed in this era of traditional AL. some of the ideas involved with representation led to problems when intelligence systems were designed for m fh the dynamically changing real world. Te: building a world-model representation from tho fusing of sensor data and then planning actions based upon that model. Com dottlenecks, noisy sensors, and models or sensor fusion, and Rug Warrior is our exam ideas in a subsumption arch Introduction z such a way that higher-level behaviors subsume lower-level behaviors ‘when the higher-level behaviors are triggered. the lowest-level behavior enables a wandering subsuming the wandering behavior. Random wandering would then » and inexpensi Rug Warrior, each very Figure 1.3. We think of could. We have built several versions different from the other. Two are shown s of robots rather to a Rug War re 1.3 has two drive wheels, center point, and a passive las ring around the robot which enable the robot to caster for three-point stal8 1. Introduction Figure 1.3. Rug Warriors I and 11, wendoring around thelr environment, bump- ing into chaiee and driving over books. discussed in Chapter 4.) is 3.4” 4.5” in size and contains a Motorola MC68HCI1A0 microprocessor, 32K bytes of memory, a serial port, two motor drivers, a piezoslectric buzzer, and a number of sensors. ‘Three bump sensors detect collisions, two near-infrared proximity detectors notice obstacles up to one foot away, two phatoresistors sense light level, a microphone listens for noises, and a pyroelectric sensor detects moving sources of heat (such as humans, cats, and, ‘oops, sometimes even fireplaces). Figure 14 illustrates a day in the life of these Rug Warriors. ‘bumps into the television set. As it turns left ie microphone detects a loud noise from the TV, which triggers a behavior to play “Bicycle Built for Two” on the robots is in the path, but the m pointed upward and miss it. then drives into the book, but the bump skirt detects the collision, causing the robot to back up and turn away to a new heading. It catches a peak of light intensity coming from the doorway, and a follow-light behavior ‘becomes activated, Rug Warrior I then leaves the room, roduction i 910 i 1. Introduction In the meantime, Rug Warrior II, the tank, has been following walls outside the room and now comes maneuvering down the hall- way. As it nears the open door, the wall-following behavior causes the robot to turn to the right, as if the wall were still there. As it does this, the cone of detection of the pyroelectric sensor sweeps past the space heater, mistakingly triggering a people-following be- havior. Rug Warrior If does not see its favorite book lying in the way and drives right over it. As it nears the space heater, the people- following behavior happens to time out and a hide-in-dark-corners behavior activates. This directs Rug Warrior Il to veer off on a new heading, wandering around until it lands in a shadow, where it sits granting a very tight coupling of perception to action, and from the interaction of many simple behaviors, complex emerge. The following chapters will expand on these ideas and reveal the details involved in making things work. 1.1 References A long history of research predates nouvelle AI. Some of the early ideas from cyberetics can be found in Norbert Wiener’s works (1948, 1961). Grey Walter (1950, 1951) built several vacuum tube- based robots that could home in on goals and exhibit learning be- haviors. Many years later, Valentino Braitenberg’s work (1984) with Inaginary vehicles ‘and actuators nicely Marvin Minsky ( }) proposed the notion of rm gence systems in which parallel processes interact to gent beh The first work on subs corporating the modularity of layered Brooks (1986). One influence during this time was work in the field of ethology, the study of animals in their environments, Riidiger Wehner (1987) underscored the fact that, in animals, many sensors 1.1 References a u are specifically matched to their environments. A paper by Brooks (19916) gives a more thorough exposition on the prior work and eon- tributing ideas that gave birth to behavior-based robotics. Brooks’ forthcoming book (Brooks 1998) spells out his approach in great de- ‘ail. We will return again to this subject toward the end of this book. But enough of history and philosophy. Let’s get started!10 i 1. Introduction In the meantime, Rug Warrior Tl, the tank, has been following walls outside the room and now comes maneuvering down the hall way. As it nears the open door, the wall-following behavior causes the robot to turn to the right, as if the wall were still there. As it does this, the cone of detection of the pyroelectric sensor sweeps past the space heater, mistakingly triggering a people-following be- havior. Rug Warrior If does not see its favorite book lying in the way and drives right over it. As it nears the space heater, the people- following behavior happens to time out and a hide-in-dark-comers behavior activates. This directs Rug Warrior II to veer off on a new heading, wandering around until it lands in a shadow, where it sits granting a very the interaction of emerge. The following chapters will expand on these ideas and reveal the details involved in making things work. 1.1 References A long history of research predates nouvelle AI. Some of the early ideas from cybernetics can be found in Norbert Wiener’s works (1948, 1961). Grey Walter (1950, 1951) built severe based robots that could home in on goals and exhibit learning be- haviors. Many years later, Valentino Braitenberg's work (1984) with inaginary vehicles i ‘and actuators nicely the modularity of layered Brooks (1986). One influence during this time was work in the field of ethology, the study of animals in their environments, Riidiger ‘Wehner (1987) underscored the fact that, in animals, many sensors 1.1 References u are specifically matched to their environments. A paper by Brooks (19916) gives a more thorough exposition on the prior work and eon- tributing ideas that gave birth to behavior-based robotics. Brooks’ forthcoming book (Brooks 1998) spells out his approach in great de- tail. We will return again to this subject toward the end of this book. But enough of history and philosophy. Let’s get started!2 TuteBot 2.1 A Tutorial Robot he more so, ifthe first plan intended to'help get you also illustrating some key points about designing a robot's intelligence system without becoming too encumbered in the myriad of details involved in creating a more sophisticated creature, We will show just how simple a robot can be ‘and launch you on your way to building one. Before proceeding to the more sophisticated Rug Warrior de- scribed in the next several chapters, we will begin here by construct- ing TuteBot—a robot which is simple yet complete. Do not under- estimate the elegance of simplicity, however. It is often the simplest solution which takes the longest to comprehend, and yet it is also often the simplest solution which illustrates the main lessons with the most clarity. Experienced designers of robotics and automation systems agree that the first way they design something is usually the most complex way. Difficulty usually arises when trying to simplify the system. ‘TuteBiot will sensors, actuators and computat a robot as a system, a collection of nal elements, can be organized inwo 2. TuteBot ire 2.1. TuteBot is robot that ions with obstacles, and be prow from such a way that intelligent actions re uli, TuteBot will consist of a circuit, a and two motors. Tt can be program tiometers. The entire robot and a few electronic compor Radio Shack and other electronic stores. What will the TuteBot be able to do? Its repertoire of behaviors will endow it with the capabilities to explore its world, escape from objects with which it collides, and follow along walls that it detects with its bumper. A completed TuteBot is shown in Figure 2.1. The front bumper acts as a sensor and detect \s with obstacles in its path, A trailing caster wheel maintains stability. Above the chassis is the battery case and mounted on top of the batteries is the breadboard jing TuteBot's electronic n response to certain stim- assis, a sensor, a battery, by adjusting two poten: re readily available from Technik is an excellent source of parts for designer can prototype mechanisms quickly wit ne shop. ‘The Fischer-Technik parts and pieces are available in multiple quantities. Catalogs are available and should be requested. 2.2 Tutelot Behaviors 1s (ae Lat Motor Driver types of mec! quite usable and widely available, and Meccano. ‘TuteBot’s brain is entirely analog circuitry. No cuits are required and almost all of the components, breadboard, can be found at a Radio Shack store. The only tools required to put TuteBot together are wire cutters, wire strippers, and possibly a soldering iron for making cormectors. An oscilloscope is not necessary although having one always makes debugging easier. A multimeter should suffice for debugging TuteBot. A block diagram of TuteBot, shown in Figure 2.2, illustrates how the bump sensor is, ‘ted to the actuators. The signal created when the bump sensor detects contact is sent to the motor-driver ci for each signaling the robot to back up. Adjustable timers associated with each motor driver determine for ho each wheel should reverse. 2.2 TuteBot Behaviors With a minimal amount of hardw: plemented on TuteBot. Figure 2.16 7 2, TuteBor GD GD GD if Forward Backward dong that occur when TuteBot strikes an obstacle. ‘The robot is initially moving directly forward toward the shoe. As it strikes the shoe, both motors are switched to reverse and the robot backs straight up. However, one motor stays in reverse longer than the other and robot begins to tum; in this case, the right motor reverses for a longer time period, causing TuteBot to turn to the right. At some the right motor stops reversing and both motors go forward, hopefully with a wide enough TuteBot bumps into the shoe A timing diagram which graphs this sequence of events is shown in Figure 2.4. The top graph depicts the signal generated by the ve signals which direct them to go , the bumper sends a binary signal to the adjustable timers—low for no-contact, high when an obstacle is struck. ‘The timers, in turn, provide a binary signal to the motor 2.2 TuteBot Behaviors wz Sigal rom tip sensor drivers—high for forward rotation, low for reverse rotation. Once activated, each timer continues to supply the low signal for a char- acteristic time. The motor drivers interpret this high or low signal by providing forward or reverse current to the motors respectively. Assume that the timers are set for delays of t seconds and tr secoinds for the right and left motors and that ty > > Alter encoun- tering an obstacle, the robot will backup for a time tj Tt will then turn to the right (the left motor turns forward, the right motor stays, in reverse) for a time t; — (. Tt will then resume moving forward in a different direction, thus avoiding the obstacle or repeating the sequence until it does avoid the obstacle. An additional behavior to emerge from the robot. If we bias the motors so th orward, one motor turns faster than the other, the robot will move in an are. This in speed can be implemented by adding a resistor in series with forward arcing behavior with the earlier back-and-turn18 2. TuteBot behavior, TuteBot can be coerced to follow a wall as was illustrated in Pigure 1.2. ‘To demonstrate this, one would place the robot with a wall to its so that, after encountering a bump, the turns right, and then heads forward in an arc wall again. For suitable settings of the parameters, it should be able to turn through a doorway and negotiate either inside or outside It is an important point here, that nowhere in TuteBot's simple brain does it have knowledge of what a wall is or what is required to follow a wall. Rather, the superposition of a simple set of r- fiex actions allows a more complex behavior to emerge. This idea of seemingly complex behaviors emerging from a collection of simple rules is the underlying notion of behavior control, which we intro- duced earlier. We will see more complex examples when we get to the microprocessor-controlled Rug Warrior, 2.3 Building TuteBot ‘TuteBot senses the world through a front bumper. It steers by in dividually changing the direction of its drive wheels, while a trailing caster wheel supports the robot. A simple relay, transistor, and ca- pacitor circuit provide all the computational power TuteBot needs, Figure 2.5 lists the parts needed to construct TuteBot. Most of the parts are available from Pischer-Technik. The remaining parts are easily obtained at Radio Shack or another electronics store, We will begin describing the construction of TuteBot by si through the mechanical layout of how to mount the motors and at tach the wheels, Motors for TuteBot ‘The Fischer-Technik motors have an attached worm gear, transfer box and large axle-mounted gear. Direct current (DC) motors usu- ally spin too fast and have too little torque to drive the loads o! wheels. “Gearing down” a motor causes a motor to spin more slowly 2.3 Bullding TuteBot i 19 Figure 2.5, TuteBot can be constructed from these oF similar parts20 2. TuteBot Figure 2.6, Assembly of the motor, tran and whoo! gear put of the gear stage, Thus, the ith more force. fer box and axle-mounted gear which are unique to ‘TuteBot a total speed reduction of about 30:1 reduction of betwee: explained in more detail The first step is to build the i wheel and gear assembly as shown in Figure 2.6. (Follow the same fing the right-side motor assembly.) The left and right, sides are the same except that one of the transfer boxes is upside down so that both 10-tooth gears are facing inward. The two motor-sides are joined by a connector block as shown ‘that this connector block is actually made 2.3 Building TuteBot the 222 2. TuteBot The TuteBot chassis can be constructed by f of steps outlined in Figure 2.9. the sequence Front-end assembly vo black single blocks onto either et lock. Then, holding the joined blocks blocks facing up, slide the two red. pieces Switch assembly ‘The switch slides into two red L-pieces; this s onto the front side of the front-end assembl Figure 2.9 (b).) ich-assembly slides constructed. (See Bumper assembly The ac 2.9 (0) ‘he completed bumper assembly slides onto the front side of the two single blocks on the top of the front-end assembly fal bumper is composed of seven pieces, shown in Figure Connecting power to the chassis Now we will connect the power block (battery pack) to the TuteBot chassis. The power block requires six AA alkaline batteries. Attach the wire-holder connector to the front right- block. (The power holes are on the back 2.3 Building TuteBot 23i 2, TuteBot Figure 2.10. power-boek Wire Connectors and bump switch. Two ‘make all four required connectors motors and switches. Hower be modified so that they Cut a Fischer-Technike red wire of the connector and black 22- ‘the connector. Make threo such nnector connect a two-inch green 22- gauge wire to the green connectors. For the fo1 gauge wire to each of the should be protected wi difference electrically, you gauge wire to cor motors at the rear of the chassis Plug the remaining connector (red to +, green to -) into the corresponding holes at the back of the pawer block. Now your TuteBot should look similar to that in step Is to mount the breadboard to attery he next section, we will discuss building the electronic try for TuteBot's brain. Once this has been assembled, mounting 1p of the constructed TuteBot should produce a robot resem: that in Figure 2.1, shown at the beginning of this chapter. re 2 fin 2.4 Electronic components Bofore we get into the specifics of the control system for TuteBot, 2.12 is a type of electrically controllable switch, TuteBot uses relays ed to its motors and thus, fa relay is that a small cur26 2. TuteBot coil can allow much larger currents to flow way a relay works Next come bipolar transistors, Bipolar transistors have three terminals: a base, lector, c, and an emitter, e. For a particular , the correspondence between these symbols and the phy ads can be found in the manufacturer's data book. Transistors can be used as amplifiers or switches. TuteBot employs transistors to supply a current sufficient to activate the relay. There are a great variety of transistors. Two of the important parameters mong them are amplification factor and maximum, power-handling A diode is but not the ot! to the “4” te marks the "" end. The triangle on in the direction current is allowed to flow, TuteBot uses diodes to isolate parts of the circuit and short out induced voltages of the wrong polarity. moving the type of switch, With the switch lever in one position, connection 24 Electronic components 27 between its two leads is broken. In the other position, connection is made, An SPST switch might serve as the power switch for TuteBot, if desired ‘To detect collisions, TuteBot uses a momentary contact switch. ‘These types of switches have an intemal spring that endeavors to keep the switch in one state as the switch lever or push button is pressed, the switch circuit is closed. When the lever is released, the circuit opens. Momentary contact switches with the opposite sense (open when pressed, closed when not pressed) are also available. ‘The current, J, that will flow through a resistor with resistance, R, given an ap- plied voltage, V, is I= V/R. is known as Ohm's Law. When current flows through a resistor, it must dissipate power. A resistor's capacity for dissipating power is measured in watts. In general, a resistor with a higher wattage rating will be physically larger than one with a smaller wattage rating. ‘To block direct current but allow the passage of alternating cur- trent, one uses a capacitor. Once connected to a voltage souree, such as a battery, current flows into the capacitor until it has accepted voltage across the capacitor constant. Sh causes a current to flow until the charge is depleted and the voltage ‘across the capacitor goes to zero, TuteBot uses capacitors as mem- ‘ory cells, The presence or absence of stored charge represents the robot's recent history, or state There are many different capacitor technologies. Most capacitors can be connected into a cireuit without regard for polarity. One type for which polarity is important is the electrolytic capacitor. ‘The leads on these capacitors are marked “4 and "" so that it is lear which way they should be inserted into the circuit. Electrolytic capacitors can generally store more charge in a smaller volume than other types of capacitors. The maximum voltage that can be applied to a correctly connected capacitor before damage occurs is listed as the WVDC (Working Voltage, Direct, Current) the leads together28 2. TuteBot 2.5 Electronic Construction 29 A potentiometers simply a resistor whose resistance is adjustable. rns in place before proceeding ‘Technik motors were chosen for TuteBot because they are casy to jegrate into the chassis and they happen to provide sufficient power ‘his application. shown. A breadboard a circuit and to make battery pack in this case, pack. ‘The space be- standard chips. Later on duce a number of other compon30 i 2. TuteBot 2.5 Electronic Construction 7 7 31 In the circuit for a robot’s brain, there are typically transducers connected side. For instance, on the input side, batteries and sensors act as input transducers. A battery converts chemical ‘energy into electrical energy, and a sensor converts a physical phe- from a mechanical form (say, the force acting on a bump to an electrical form. On the output side, motors, speak- ts, ote., act a8 output transducers, The motors on TuteBot In describing a circuit's behavior, one usually speaks of voltage across a device and current through it. One bit of confusion can arise due to a verbal shorthand of speaking of such things as “the voltage at point A”. What is meant and what would be more precise ‘would be to speak of “the voltage across the network between points ‘A and ground.” The verbal shorthand comes about because ground is usually taken to be the reference, 0 vol ‘The basic idea of TuteBot’s circuit is that the front bumper switch (SWI in Figure 2.13) generates a signal that tells the robot to back up. This bump signal is sent to each half of the circuit. ‘The diodes D2 and D3 act to separate the circuit: driving the left ‘motor from the eireuit driving the right motor so that they can in- dependently have specifiable time constants for how long each wheel should back up. The time constants are implemented with resistor- capacitor (RC) cixcuits that hold a voltage for a given amount of time, depending on the values of the resistor and capacitor. The timing signals from these RC networks then direct the motors to reverse direction for the specified amount of time. Some driver cir- cuitry to condition the signal to provide enough current to drive the motor has to be added at this point. This motor-driver circuitry is Figure 2.13. Schematic for Tutebot’s brain. implemented with transistors and relays. A bank of resistors may be added in series with one motor to regulate its speed in comparison to the other motor. ‘There are two ways to proceed at this point. One is to go ahead and just build the and not worry about understanding how it works. Simply build it, mount it on TuteBot's chassis, phug in the connectors and start playing with various behaviors by tweaking ae32 2. TuteBot ear xpenman 50d rc 2767 le Sears wrayer OVE HDEE ogy 70ND) yy PaIoND ain. A good understand potentiometers and adding resistors in series with the motors. ‘The ‘other way is to convince y last detail of the cireuit conti reuit description and together. The parts list for the cir- because the purpose chapter of getting started, an exact lay- portions of the graphs for a better ‘Use care when installing the diodes and the electrolytic 2.5 Electronic Construction 3 Figure 2.15. One possible layout of the Tutellot circuit. Figure 2.16. Details of the breadboard.34 2. TuteBot capacitors. ‘These devices are polarized. If they are installed the wrong way they may be damaged. Ibis a good idea to test the circuit as you go. first and check to see that it drives the motors as desired. With power applied and the motor not connected, check to see that pressing the bumper switch activ relays, [foperating properly, a lick will bbe heard, The bi R3 and R7, may need to be adjust if relays or tra 1an the ones specified are used. If the lay does not operate, choose smaller resistors until it does (but yo below about 100 2.) In general, it pays to be neat when breadboarding a circuit. Any Jckly throwing together a sloppy circuit is usually more than wasted in debugging time. Cut and strip wires to appro- priate lengths go they lie flat on the breadboard. Buy lots of different colors of hookup wire and stick to conventions for power and ground. If you use red for +9 volts and black for ground, then it becomes to the bottom horizontal row should be black. Another important tip before connecting power is to always “ohm and ground have not been breadboard. This prevents s Never remove components with the power on, Power do ‘the cizcuit does not work, first check with a voltmeter tl ‘the circuit that should be connected to power are actually rlts, and that all points which should be at ground actually read 0 V. While this all sounds rather obvious, you would be surprised at how many problems are caught by these few simply steps. 2.6 Operation For a more detailed exposition of the TuteBot circult of Figure 2.13, we break the system into modules and explain each 2.6 Operation 35 and normally closed connections. This type of relay double throw (DPDT) relay. It is the only electro: not available from Radio Shack in a $-volt variety. We can see for the right motor that the normally closed connection applies 9 volts across the motor. If the motor moves in the reverse direction, switch the leads going to the motor and it will then move forward. ‘This is true for the left motor also. Notice the light emitting diode (LED) is green when it is going forward and red when going in reverse Again, looking at the right motor-portion of the circuit, if Tute- Bot strikes an obstacle and the bumper switch is closed, a current flows through diode D2 charging capacitor C1. Simultaneously, cur- rent fiows through resistor R3 into the base of transistor Ql. ‘The base current causes QI to conduct—pulling current through the coil of the DPDT relay. When the current is provided to the relay, it switches from the normally closed state to the normally open state. ‘The motor terminal previously connected to +9 volts is now con- nected to ground, and the other terminal which was previously con- nected to ground is now connected to +9 volts. This causes current to pass in the opposite direction through the motor, making it spin in reverse. The LED should be red while motors are in reverse. As the reversing motors cause TuteBot to back up; its bumper is no longer pressed against the obstacle and the bimper switch, SWI, is no longer closed. With the switches open, thé RC «i is no longer fed to +9 volts. However capacitor CI continues ‘to supply current for a while to the base of the transistor and the ‘motor continues its reverse rotation. The capacitor discharges at a rate controlled by the resistors. At some point, QI ceases conducting, the relay opens and the motor resumes its forward rotation. Diodes D2 and D3 isolate the circuits so that the capacitor ean discharge at the desired rate (so that current cannot drain off C1 and begin charging the left. motor’s RC circuit) Figure 2.17 illustrates how the voltage across the right motor's ch time. With the switch closed, the battery (this voltage is taken as between peint A charges the RC ci36 2. TuteBot and ground) up to Vo. When TuteBot backs away from the obstacle and the switeh is opened, the voltage across the capacitor falls at fa rate determined by the values of the resistor and the capacitor. ‘To be more precise, this relationship is V = Voe~"/R°, where Vo is the power supply voltage. Figure 2.17(b) illustrates the RC network connected to the left motor. The smaller resistance in (a) causes the ‘current to drain away more quickly, keeping the robot's right wheel in reverse for a shorter time period than the left wheel. This causes the robot to turn to the left. The right motor turns in reverse for a period of time, which is determined by the following factors: © The size of capacitor, CL ‘* the value of bias resistor, R3. ‘¢ The amplification factor of transistor, Ql. ‘* The resistance of the potentiometer, RL ‘* The current level needed to activate relay KL. ‘A very brief motor reversal may be selected by setting the po- tentiometer to its smallest value. A reversal longer than the one ircuit is most easily achieved by increasing the value ly the product of Rand C which sets the time ‘this time lag as the duration during which the ‘two LEDs (6,7) are different colors (one red, the other green). ‘We can see how the changing currents set up by the RC network are able to activate and deactivate the transistor Ql by referring to Figure 2.18. Depending on the characteristics of the particular tran- sistors and associated circult components, a transistor can be used as either an amplifying device or as a switch. The TuteBot circuit requires the transistor to act as a switch as shown in Figure 2.18(a) ‘When base current is supplied, the switch closes and the load draws current because itis connected between power and ground (sce Fig- ture 2.18(b)). Our very simple model of how a transistor switch works shows that as long as the current flowing into the base of transistor Ql is greater than or equal to isot, the switch is on and current 2.6 Operation anime y) Figure = w 2.17, As long os the momentary contact switch is press, the voltage ‘between point A and ground or point B and ground will be equal to Vo. When base cu38 2. TuteBot Jow jsut; the transistor swit the load, A small base current: is ak large load current is allowed to flow. In itor is needed to set the base current for the transistor signals of the current flowing through the base igure 2.18(c). For the duration of time that "TuteBot is in contact with the obstacle and the RC circuit is charged up to Vo, the base current is large eno pletely on and eaturated—that is, the collector current has reached its maximum possible level, iggat |As TuteBot backs up from the obstacle, the bumper switch opens and the voltage drains off the RC network, the current through the Eventually, it falls to jyse, Where the tran- ‘hile even when the transistor ‘off” is not quite as sharp as motor) from normally closed to the normally sppens in the relay associated with each motor, ity of the voltages applied across them. For all ‘QL is on, current is pulled through the relay causing. the motor to switch from forward motion to reverse motion. The Figure 2.19(b), we can see ‘the relay and the resulting minal and ground First, as the transistor QL turns off, it causes load current to fiowing, This takes some to the time de ing diagrams of the current through Itage applied between one motor ter- 2.6 Operation 39 sustain the necessary magnetic field to keep the lever attracted to ‘the normally open pin, the relay switches back to its normally closed configuration. This occurs to the relay attached to the right motor ‘The lower graph in Figure 2.19 (b) shows the resulting voltage ‘change over time for one of the right motor’s terminals. The other ‘motor terminal, normally at 0 volts, switches to +9 volts when the bump switch hits an obstacle and reverts to 0 volts again (after the time lag set up by the RC network) after the bumper is released. A similar mechanism is implemented on the left motor except that its potentiometer, R5, is tuned to give a different time delay than for the right motor. ‘The robot can thus be programmed to turn more or less sharply by adjusting the potentiometer settings for each wheel Four other points are worth mentioning concerning the right mo- tor circuit of Figure 2.13. The first is the appearance of diode D4 across the DPDT relay. ‘The reason for adding this device to the relay is that the diode protects the circuit from the large voltages that are induced by collapsing magnetic fields in the relay coils when hm40 2. TuteBot the transistor turns off, If diode D4 were not there, the inductance of the coil would try to force the current flowing through it to keep ough transistor QU. Because QL has been opened, ‘the coil results in an increase in voltage at the col- this voltage exceeds the maximum rating that the ‘can withstand, it becomes damaged or blows up. tes this problem by providing a return path for the the transistor turns off it to note in the final circuit is that the capacitor C3 has been placed across the terminals of the motor. This capacitor attenuates the voltage spikes produced by the motor. ‘Typically, ‘these capacitors are soldered directly to the motor terminals rather than placed back at the circuit board. ‘Third, note that the directional LED turns green when the Tute- Bot is going forward and turns red when the TuteBot is going back- ward. Likewise note that when TuteBot is turning, one LED is red and the other green, ‘The LED is parallel to the motor in the TuteBot cireuit. Finally, note that a “resistor ban! between the relay and the right motor. bank is for matching ‘the speeds between the two motors. Which motor should be con- nected to the resistor bank is something which must be determined by experiment. Although the motors and geartrains are supposed to be identical, in reality they are not. ‘These differences manifest themselves as mismatches in the speed tat which the wheels turn. To make the adjustment, power-up the ‘TuteBot and allow it to roll across the floor. It will make a long arc in one direction or the other. If it turns to the left, then the right motor is turning faster; attach the right motor to the resistor bank in series. Otherwise, attach the left motor, With n resistors wired in parallel, the total resistance Rr, of the resistor bank increases as each resistor, R, is removed: Rr = (1/n)R. The more resistance we place in series with the motor, the less current will flow and Il turn, Add or remove resistors until both motors rotate at the same speed. ‘TuteBot is now complete and ready to go. ‘Try ww different environments. Try adding the wall discussed earlier to bias the motor speeds so the bbe connected in series 2.7 Exercises for the Reader 41 forward in an arc by inserting a resistor bank. If TuteBot goes too fast and falls apart when it crashes into things, electric tape, double sticky tape, Velero™, and glue work wonders with breadboards and with Pischer-Technik components, Have fun! 2.7 Exercises for the Reader wall. As an exercise, try to devise an additional behavior (possibly requiring another component or two) which will cause the robot to go straight until it encounters a wall and then begins to follow the wall. ‘Think about all the different ways you might add one or more photoresistors (response to light) to the TuteBot circuit. How about 2 thermistor (response to temperature)? What behaviors are pro- ‘duced in each case? Can you make a TuteBot that follows a light such as a flashlight? 2.8 References n this chapter were designed to be sim- ‘ight be the case that many people feel more at home with a computer-controlled robat than with the analog clectronics of TuteBot. If so, proceed to tlle next chapter describing Rug Warrior's microcontroller brain. However for back Photovore, sh driven robot oe42 2. TuteBot Figure 2.20. This MIT robot, known st Photow ‘of light seeking be nly analog base, Photovore is also described in The Oh Manual, (Flynn et al 1988), fom which this book grew. A picture (1989) ye August 1991 is- printed circuit can be purchased ldresses and phone numbers urers. Also, please note that kits are available 1 TuteBot and Rug Warrior from A K Peters, Computational Hardware behavior of a software-based robot, at a keyboard,44 3. Computational Hardware is book in order to real examples of com- using every pin of the chip to attach as many sen- Furthermore, we have endeavored to rdware features of the MC68HCI1AO, such + system and the analog-to-digital converters, to nterface circuitry to sensors and motors. In to strive for a single-board robot. ates the microprocessor board for Rug Warrior II sitting atop Rug Warrior's ts ter hardware, peripheral ci reached the goal of to incorporate and sensors on and cables manageably 1 int of this book, readers can go on to build better machines. Consequently inside them, how they iat features they have for handling peripherals, and how 3.1 Rug Warrior's Design Strategy 45 and sensors, program them. While we use the specific example of the Motorola MC68HC11A0 throughout, the text is generall microprocessors because Whi hardware attributes for othe underlying principles are the same as those described here. specific example that we will explain'in this chapter is lustrated in Figure 3.2. This circuit is the computational heart of Rug Warrior, When building Rug Wartior from scratch, the reader should acquire copies of the Motorola reference manuals for the MC68HC11A0, as these are th source for documentation and are obviously more detailed than our discussion here. Motorola data books can be ordered from the Motorola sales office, The phone number is given in Appendix E. The complete schematic for Rug ‘Warrior, which includes the sensors and actuators in addition to the microprocessor yy shown in Figure 3.2, is given in Appendix A. 3.1.1 Interactive C In addition to choosing a specific piece of hardware for the micropro- cessor, we also had to pick some specific pieces of software in order to produce our examples, which are threaded throughout the book. a ene46 3. Computational Hardware 43.1 Rug Warrior's Design Strategy 47 bly language programming consist specific instruction set designed for the microprocessor you choose. he programmer writes code using a set of mnemonics sequences that can be down hough higher-level language pro- tasks, assembly language is often 1g a robot in order to direct the microproces- r drive its motors. Because we have srocessor for Rug Warrior, we use mnguage in our examples. language, and then translates that code for a specific machine using a program In the research laboratory, we this book and for Rug Warrior, we have ch ‘as more readers will likely be familiar with its syntax. Specifically, the version of C we have chosen to use for creating code that will run on the MC68HCI1A0 is Interactive C (or simply IC). IC was developed by Randy Sargent and Fred Martin of the MIT Media Laboratory for an MIT undergraduate design course. IC runs on several versions of the MC68HC11 microprocessors and includes such- useful features to initiate and terminate processes tind to execute :mediately—without the need to first compile, link, ‘The interactive nature of IC is extremely useful when bot program. PCs, Macintoshes, and Unix machines. make Mobile Robots tractable for a cherupale to download the IC e« ———————————— An updated, expanded, and supported48 3. Computational Hardware version of IC is also available for a modest fee from Newton Research Labs. 1e website www.newtonlabs.com for more information, Other C compilers are also available for the MC68HC11 Motorola. (among others) maintains a library of freeware for the MC68HC11 including C compilers. Follow the links from Motorola's site: www.mcu.motsps.com/freeweb/areas.amcu.html A number of commercial products also exist. Dunfield Develo} (www.dunfield.com), sells a C compiler for the MCt likely to be more stable and better supported than the freeware soft- ware available over the web. Now let us turn our attention to a general discussion of micro- processors and everything you ever wanted to know about computers that might be helpi jgning your own robot. 3.2 Microprocessors sit Programming an inexpensive, bare-bones microprocessor, such as the one we Rug Warrior, differs in some important ways from programming moze familiar personal computers, workstations, and mainframe computers, ‘The differences generally relate to the mi- ‘croprocessor's limited computational resources. Typically, such a microprocessor can utilize only a small amount of memory, has no mass storage, and runs at a slower cycle time than its more capable counterparts, (On a large computer, several layers of abstraction (such as the operating system, a high-level programming language and an ap- plication program) stand between the user and the underlying, ma- chine. These layers are useful because they obviate the need for the programmer to understand the details of the particular proces- sor implementation and its low-level interaction with the peripheral hardware. Unfortunately, the computational overhead required to ‘maintain such abstraction barriers is usually unacceptable for the simplest microprocessors. In most cases, it is necessary for the pro- grammer to fully understand the bit-level interaction between the processor and the devices it controls. The only abstractions avail- able will be those constructed by the programmer. Recently, an important subelass of microprocessor has become available, the highly integrated microcontroller. A microcontroller 3.3 The Canonical Computer 49 yessor, memory, ion pathway by combines the small size, low power consumption, and computational abilities of an inexpensive microprocessor with the signal-processi proficiency of discrete circuits. In particular, ‘monly include such built-in amenities as a serial line (for communi- cating directly with a terminal or host computer), analog-to-digital converters, timers (for capturing events or activating hardware), and pulse counters. These features greatly simplify system design. Be- fore the advent of the microcontroller, to achieve the sensing and actuation requirements of a robot, it was necessary to construct a system consisting of numerous printed circuit boards connected to- gether. One or more cards were devoted to the processor and the ‘memory; separate cards were required for each sensing and actua- ‘ion function. Today, the size, complexity, power consumption, and cost of such a system can be reduced by using a microcontroller to perform all the processing tasks in one chip. In spite of @ myriad of variations, computers até basically sim- ilar. Figure 3.3 shows the block diagram of a genétic computer, reduced to its essential components. A computer consists of a. pro- cessor which executes instructions; memory, which stores instruc- tions and data; ports which interface the computer to its peripherals (“the outside world”); and a bus which provides the co pathway among processor, memory, and ports 3.3 The Canonical Computer It will be instructive as we go along to compare this abstract view of a computer (Figure 3.3) with two other illustrations. The first is the block diagram of the MC68HC11, shown in Figure 3.4, and the ba50 3. Computational Hardware second is the schematic of Rug Wé jor’s logic board, shown earlier processors come in families, and family members are numbering pattern. The MC6SHC11 fam- the same instruction set and use the same assembly language. For instance, the MC68HCI1A0 and the MC68HC11E2! are two mem- ly. The MC68HCI1A0, which we have ‘chosen for Rug Warrior, is at the low ond of the line, Individual members of a family also have suffix designations that differentiate the package types available. ‘The suffix FN on the MC68HCILAOFN designates a 52-pin square version. ‘This is the square chip situated in the center of Rug Warrior's board, illustrated in Figure 3.1 3.3.1 The Processor ‘The processor, or central processing unit (CPU), is the controlling element of the computer. Its function is to execute instru after another. The execution of an instruction effects some change in the state of the microprocessor. This may be reflected as an alteration of the value of a memory cell, the contents of an internal register, of the voltage on a line connected to a port. Instruction execution occurs at a rate fixed by and synchronized system clock. This internal clock is driven by an external 3SHCLIAO, the output of an 8.000 megahertz (MHz) crys- (as shown in Figure 3.2), of 2 MHz, The chip 1e to be used by exter- lock eyeles required for an is divided by 4 to produce a clock ft js synchronizing si tions require at least two cycles. 1um of 1 microsecond. The longest Ts labaling schetne the 8 following the HC in MCSSHCSIIE2 he chip posse on-chip EEPROM momory 7 fotorola, sod by permission. (1980) tions (which do division) take 20.5 microseconds. In order to execute an instruction, the microprocessor must first fetch’'the instruction and any required data over the bus from its memory. 3.3.2 The Bus A binary value stored at a particular location in memory is accessed when the CPU places the address of the location on the bus. The range of addresses available, known as the address space, is fixed by ‘the width of the bus. In t idth refers to the number of bits (usually carried by parallel The MC68HCL1 has a 16+ to select any one of 2", or 65, as 61K). At each of these locations an 8-bit (=1 byte) data value se52 3. Comput Hardware 3.3 The Canonical Computer 33 f 2 plexes data and address signals. When it wishes to read or write a value to memory, it must first assert the address on all 16 address lines; it must then write data to or read data from the § lines that previously corresponded to the low 8 bits of the address. Whether address or data is present on these Tines is specified by the state of control signals on other lines. Figure 4.5 illustrates how the address lines, data lines and control lines are organized on the bus in order to enable the reading or writing of values to memory. Elements other than memory locations can be accessed via the bus, A port, which allows interaction between the microprocessor and external devices, may be present. Depending on its nature, the port appears to icroprocessor as a memory location that can be read from and/or written to. To the outside, the port consists of ‘a sot of lines to which a voltage can be applied and/or from which a voltage can be generated. 3.3.3 Memory Computer memory is divided into classes based on whether or not the contents of the memory can be altered, and if so, and how that alteration occurs. The major classes of memory are: ‘© random access memory (RAM), '» read-only memory (ROM), and # programmable read-only memory (PROM). ‘That is, whatever data is stored vanishes when the power goes off. It is also pos is simply normal RAM encasec once encoded at the factory cannot be changed. Finally, PROM memory is le and possesses a mech: lows the user to program it at least once and pos: An important subclass of PROI erasable programmable read-only memory). EEPROM allows both read and write operations but with some restrictions. ‘The memory altered more than a specified (large) number of times, 1 may take much longer than with RAM (milliseconds as ‘opposed to nanoseconds). non type of erasable PROM, called EPROM, the chip. le to design applications that need almost no components other than the microprocessor chip itself In particular, the MC68HCI1A0 chip employed by Rug Warrior hhas 256 bytes of on-chip RAM or ROM. The MC68HC811E2 version has 256 bytes of RAM, 2K of EEPROM, and no ROM. And the MC68HCIIE9 has 12K of ROM, 512 bytes of EEPROM, and 512 bytes of RAM. otsa 3. Computational Hardware 3.3.4 Ports A port is the microcontroller’s conné ‘computer for which a port the outside world. A -y location is said to have (0). Other architectures are possi- Figure 3.6 illustrates how the memory-mapped I/O is arranged for the MC6SHCILA0 used on Rug Warrior. The MC68HC11A0 has five ports, labeled A through B. ‘Typically, a microprocessor, ‘as opposed to a microcontroller, has either no ports or ports that support only digital inputs or outputs. Ports on the MCBSHC11, four to output, and one to either function, (Please refer to Figure 3.4 throughout this discussion of ports) A timer-counter system is, associated with port A. The input lines, PAO through PA2, can be changes state, the time of latched into an internal counter. changes state (from high to low or low to high), an internal counter is incremented. These operations, handled by the hardware of the microcontroller, are truly automatic. Once the hardware bi set up in the proper way, n ictions need be executed to perform ‘these functions. ‘The MC68HCI1 has four modes of operation. The actions of some ports depend on which mode has been selected. In the ex- panded multiplexed mode, the microcontroller uses ports B and C ‘as a part of the bus. In single-chip mode on the other hand, the mi- crocontroller assumes that no external memory is available, so the operation of an external bus is not supported. In this case, port B operates as a digital output port, where each line is a dedicated binary output, and port C operates as a digital I/O port, where each line may be individually configured as input or output. ‘The 3.3 The Canonical Computer seer map used by Rug. hhexidecimal (base 16) U TET Figure 3.7.1 possible wo but ports a rocessor. his is done by ‘hip for edo dcsing modes are specia (0 the mi © Ur aan rod to enhanc crete loge (integrated circu bootstrap mode, used ‘test mode, ieroprocesso:56 3. Computational Hardware Port D has six lines. Each may be configured as either a bi- nary input or output. The lines of this port serve two other im- portant functions, as well. The low-order lines, PDO and fare part of the communication system. Using these two li possible to connect the chip to a terminal or host computer. The high-order lines, PD2 through PDS, form a high-speed synchronous data-exchange facility that can be used to network a number of MC68HCtis. Finally, port E can be used either as a general purpose 8-bit dig- ital input port or as an 8-channel analog-to-digital (A/D) converter. Each channel has 8 bits of resolution. When the A/D converter fea- ‘ture is activated, voltages in the range of 0.0 to 5.0? are converted to binary numbers in the range of 0 to 255. Applying, say, 2.5 V to pin PEO and reading the associated A/D result register would return a value of 128. If the microprocessor of choice does not have enough ports or if ure 3,7 shows how we would go about adding, port, First, design custom circuitry to perform the required inter- face to the sensor or actuator. Next, build a circuit to decode an address, Chips such as the MCT4HC688, which can compare two sets of 8 lines, simplify construction address decoders. Choose an address not currently mapped to any other device. Finally, build a data buffer that will output its contents in response to signals on the select line and the control lines of the bus. 3.4 Expansion In Section 3.3.4 we noted that it is possible to construct additional memory-mapped ports. In this section we will elaborate on one simple method for accomplishing this expansion. Port expansion circuitry is divided into two components: address decoding and data buffering. The method we describe simplifies the problem by per- forming only partial address decoding. Ihe range depends on the reference voltages at pins Vit and Vt these are set 0.0.0 V and 5.0 V respectively 3.4 Expansion 87 3.4.1 Address Decoding Port expansion circuitry connects to the microprocessor’s address and data bus. It is the responsibility of the expansion circuit to read data from the bus or write data to the bus, These operations must happen only when a preselected address is referenced and then during just the proper portion of the clock cycle when the microprocessor is ready to send or receive the data. We begin’ by considering the address decoding portion of the circuit (see Figure 3.8). ‘To map a byte of data from an I/O port into a particular spot in ‘the microprocessor’s memory space of 65536 total bytes, 16 address bits must be specified. This mapping feat requires a circuit to com- pare two 16 bit quantities—the address currently on the bus and the ‘Address of the data port. When the addresses match, the address decoder activates a select line, The second part of the expansion circuit, the data buffer, reads data from the bus or writes data to the bus during the short time when the select line is in the proper state. ly, address decoding is accomplished using at least two hips. ‘There is, however, a way to get by with a much simpler one chip circuit if we can accept a partially specified address That is, our circuit will examine (decode) only some of the address bits and ignore others. oo38 3. Computational Hardware coding is done using a decoder because a thr and C inputs outputs. For exampl 0, 0, and 1, respect ‘Three other control signals are also required to activate TAHC138's outputs. Inputs G1 must and G2A an must be low. If we connect the MC6SHCII’s A15 addres G2B then any time A15 is high, outputs from the 74HC! be disabled. This is the behavior that we require, because whe is high the microprocessor is addressing high memory (addresses of $8000 and higher). (See Figure 3.6.) This is where external memory tated and peripheral devices must not respond to addresses in ‘that range, Also, we do not want peripheral devices to collide with bytes in the lowest part of memory, $0000 to SOOFF or $1000 to $103F, be- cause those are the addresses of the microprocessor’s on-chip RAM and the control and status registers, respectively. By requiring Ald ‘to be high, we will avoid that part of memory. We do this by invert iy during the high part of the clock cycle should pe- ripheral devices read or write to the bus—this can be ensured by E to input Gl. Now we can use A12, A13, and R/W to further device. Using the R/W signal makes certain that an input and ai ‘output device will never try to access the bus at the same time. Four ‘outputs of the T4HC138 chip select output devices and four others select input devices. Putting this all together and representing the binary value of A13 by A and the value of A12 by B we seo that one of the outputs of TAHCI38 chip will be active any time the microprocessor selects address of the form %01A Broocoaccccexx. Where x represents, jon’t care,” and % indicates a binary number. For example, if the microprocessor writes a value to the binary address: %0100000000000000 (that is $4000 hex) then the signal 3.5 Data Buffer 59 Address Range Inputs Outputs 0x4000 - Ox4FFF Isel0 Ose10 0x5000 - OxSFFF Iseli Oseli 0x6000 - Ox6FFF Isel2 Ose12, 0x7000 = Ox7FFF Tsel3 Ose13, Osel0 will become active for a portion of the bus cycle. The data (one byte) that the microprocessor writes can be read by a peripheral device if that device latches (loads and saves) the data present on the data bus at that time. Or, if the microprocessor reads the address $4000, a peripheral device should lata to the data bus while the signal Isel0 is low. In fact, the highest four bits of the address are decoded, Isel0 and Ose become active for any address in the range $4000 to S4FFF. Any peripheral input device must place its data on the bus when one of Isel0 to Isel3 is low (the device must choose one). Any output device must latch data from the bus only when one of Osel0 to Osel3 is low (again the device must pick one of the signal 3.5 Data Buffer ‘The data bulfer circuitry must respond in a particular way when the ‘address decoder decides that the microprocessor wishes to access the expansion port. Please refer to Figure 3.10. The circuit shown is that of the RuglO™ Stackable Expansion Module, SEM. Consider first an input operation. We wish to interpret voltages appearing on the INO - IN7 lines of connector J4 as eight bits of data, to be input into the robot. INO - IN7 are connected to the inputs of ‘but to connect RaglO’ RuglO™ and RugUp™ avesthe TAHC244 Normally, the outpu driven neit low. As long as pins 1 the 74HC244’s outputs are in a high impedance stat feature of any chip co to the data bus as is the T4HC244. If the TAHC244 tried jose a voltage on the bus at times when it signals from the 7HHC244 would con what ever other signals were on mention. nt when the microprocessor is ready to read data fable line) to go fer signals are present at itten by run Rug Warrior (see Figure 3.2) ee62 3. Computational Hardware 3.6.1 Power ‘The power switch on Rug Warrior turns on or off power to the micro- controller and sensor circuits while separately cont going to the motor driver chip. It also selects run mo« load mode. is supplied to the MC68HC11A0 throu connected to VSS. A three-pole, three-position switch controls power to the ci ‘The center position is off. In the down pos downloaded to the microprocessor from a h all circuit components receive power and a previously stored program 3.6.2 The Clock ‘An 8,000 MHz crystal provides an accurate and stable time base for Rug Warrior. Such a circuit is eritical to the proper functioning of any microprocessor because every operation is synchronized by the lock. 3.6.3 Reset Pressing the reset button pulls the RESET line low. (A signal name written with an overbar means that the signal is asserted when low.) When this happens, the microprocessor halts—it stops executing in- structions. After the button is released and the RESET line goes high again, the microprocessor restarts its program from the begin- ning. 3.6.4 Mode Selection As stated above, the MC68HCII has four operating modes: single~ iplezed mode, special bootstrap mode, and , only the special bootstrap and expanded des are of interest to us, A particular mode is selected according to the voltages placed on the MODA and MODB lines. When the power switch is in the Download position, MODA and MODB are both low. This places tthe chip in the special bootstrap mode, where it is possible to load a 3.6 Rug Warrior Logic 63 scontroller’s memory. With the program just loaded will begin to of the DS1233M low-voltage inhibit chip. 3.6.6 The Serial Line In order to program a microcontroller, we must communicate with it in some way. The MC6SHCI1 facilitates this with a b rial line, On a host computer, programs ean be typed, assembled to a form understandable to the microprocessor. the machine language form of the program is downloaded to ‘common problem has perform the interface function. We have chosen to use a M. chip for this purpose because it allows full-duplex operation transmit and receive at the same time) and no components besides the chip itself are needed, 3.6.7. External Memory ‘The HMG62256LP-12 RAM chip holds Rug Warrior's 32K-byte exter- ‘nal memory. This is exactly half the total memory that a MC68HC1L can directly address. 32K block fills the upper half of memory, ————E64 3. Computational Hardware ‘the address space from the addresses $8000 to SFFFF, as illustrated in Figure 3.6, In single-chip mode, the MC68HCI1 assumes that no external memory is available and so it is free to configure ports B and C as general purpose I/O ports. In the expanded Jexed mode that we use for Rug Warrior, however, the MC6SHC11 must use ports B and C to implement the address and data lines needed to access external memory. In this case, these ports cannot be used for 1/0. ‘This is the design choice made for Rug Warrior. There is, however, ‘a special chip called a port replacement he MC68HC24. When added to the circuit, this chip makes ports B and C available even while operating in the expanded multiplexed mode. Each byte of the 32K memory space can be addressed by using only 15 address lines, Together, ports B and C provide 16 lines, so line is used to select the memory ‘The high part of the 15-bit address is formed using port B lines PBO through PB6. Port C lines PCO through PC7 form the low part. Line PB7 selects the HM62256LP-12 memory chip. Any ad- dress of $8000 or above has the highest-order line asserted; that is, PBT outputs a 1. Thus, the memory chip is selected and will re- spond only wher rocontroller asserts an address of $8000 or more. Addresses below this number are ignored. The signals from PBI, the low-voltage inhibit chip, and the B pin of the MC68HC11 ‘memory chip’ ine. (The output of a NAND gate uts are high.) ‘The RAM chip is ed sufficient voltage to operate, when the system clock is in the proper part of its cycle, and when an address ‘0f $8000 oF higher is specified. If we wished to expand Rug Warrior's sense of PB7 and connecting it to the new RAM chip's T new chip would be selected only when PB7 output a 0. This would deselect the first memory chip. At the beginning of a memory read or write cycle, port C outputs the low part of the address (bits 0 through 7) and port B, the high part (bits 8 through 15). Control signals then cause the low part 3.7 Hardware-Software Interface 65 of the address to be latched by the 74HC573 chip. After latching has been enabled, the 74HC573 chip will continue to output to the memory chip the signal first sent to it by port C, even when data on port C later changes. Thus, during the second part of the read/write cycle, the lines of port C are free to be used as data lines either to ‘write data to or read data from the memory chip. (The AS and RW lines from the microprocessor determine this.) This dual use of the port C lines is known as mulliplezing. 3.6.8 Battery Backup As the contents of the external memory chip are volatile, some ex- tra mechanism is required if we wish for the robot to remember its program after the power is turned off. We have chosen a scheme of battery backup for the RAM chip. A very helpful property of chips using CMOS technology is that they require only tiny amounts of current to maintain their state. ‘Thus, we have routed power from the battery directly to the suppl 3 the memory chip (bypassing the power switch). choice has essen lly no impact on how long the battei however, as the current required to maintain the contents of the RAM is only about one microamp. The 74H1C is part of the enabling circuitry for the mé jower to the NAND chip, we can make sure that RAM is, rer the power in the main circuit is switched off er alternative is j RAM chip which RAM thi AM chip is only 3.7 Hardware-Software Interface Software controls hardware and hardware supports software, The na- ture of this relationship is the topic of this section. In what follows, ‘we will assume the reader has some familiarity with programming in56 3. Computational Hardware language. After an aside concerning number format- ll begin with an example of what actually goes on when 8 program runs. 3.7.1 Representing Numbers to be able to easily refer to numbers in bases 2, 10, and 1 respectively, as binary, decimal, and hexadecimal, or hex). from the context, ing table for repro- and in C language | Assembly language | _IC language “Trace [Prefix Example | Prefix Example 2 | % morte | ob — obor11i011 10 193 13 is | s 873 ox ox7B The base 2 representation for the decimal number 123 is 01111011 ‘The syntax of our assembler requires us to specify this as %01111011 so that it understands that we mean the binary number 01111011 imber 1,111,011. The syntax fe have us write 123 in binary form as ObOI111011. Si numbers are specified using the $ prefix for our assembl prefix for IC. The prefix Ob for representing binary numbers is part of IC but is not included in standard C. 3.7.2, An Example ‘The details of writing a workable program and loading it into the be explained later. For the moment, we will le three-instruction program has already been Figure 3.11 illustrates the changes that take place in two of the microprocessor's internal registers and an output port when the fol- owing fragment of a program runs: 3.7 Hardware-Software interface 67 Program Memory Internal resisters Port D wwe 00 Care ek to Som EH sip wae Be su sine Fd Step 2 ~o SS fneaG LAA #7 Load 7 anto accumulator 4, # means inmediate ADD #13, Aaa 13 to accumlator A STAA $1008 Store contents of A to port D The left column of Figure 3.11 (labeled Program) shows the code written by a programmer. In this case, the program consists only of ‘the names of instructions and arguments for these instructions, ‘The second column, Memory, displays the contents of memory (in hexadecimal) after the program has been loaded. ‘To translate the code supplied by a programmer into the internal representati machine code) used by the microprocessor, another ine language code, which happens to be the number $86. This LDAA instruction is stored at memory location $8000. The numbers into which the instruction mnemonics are converted are also known as opcodes. Following $86 in memory is 7, the argument that will be used by this instruction, _—68. 3. Computational Hardware 3.7 Hardware Sofware Interface 69 ‘The third column reports the state of two special registers in- ternal to the microprocessor. The program counter, or PC, is the ‘microprocessor’s way of keeping track of where it is; the value stored in the PC is the address in memory of the instruction the micropro- cessor is about to execute or the argument it is about to fetch. Note ‘that the box representing the PC is twice as wid ing memory locations and other registers. Thi PC holds a 16-bit address while the others hold ‘The MOSH all computations te not possible to directly add the contents 0 that of another. Rather, one value must be loaded into the accumulator and then the next must be added to the contents of the accumulator. The MC68HCI1's accumulator A, one of its two 8-bit accumulators, is shown beside the program counter Figure 3.11 Finally, port D, which resides at location $1008 in the memory ‘map is shown in the last column, The purpose of the program is to change the value stored at memory location $1008 and thus the limes connected to port D.* itor A are arbitrary and unknown. When the program mn, the microprocessor uses the address stored in the first instruction opcode, $86. It then increments the PC. Interpreting this instruction tells the microprocessor two things: how to find the instruction’s operand and what to do with the operand. In this case, the value fetched from the memory location pointed to by the PC, location $8001, is the operand, 7. (An operand is a data value that is processed by an instruction in some way.) LDAA further instructs the microprocessor to place this value into accumulator A. By the beginning of Step 2, accumulator A holds 7 and the PC points at the next instruction, ADDA #13. Again, we use the PC to fetch the operand, 13, but the ADDA instruction causes its operand to be added to the contents of accumulator A. Step 3 shows the result 7 +13 = 20 decimal or $14 hex. The last statement, STAA $1008, finally effects a change in the world outside the microprocessor. This command causes the con tents of accumulator A to be transferred to port D. The argument of STAA is the address where the data is to be stored. The binary rep- resentation of $14 is %010100. ferproted by the hardware of port D as a set of voltages to be output. In particular, pins PDO, PDI, PD3, and PDS are set to 0 V, ins PD2 and PD4 are set to 5 V. From the schematic of Puig Warrior's sensors and actua- tors (see Appendix A), we observe that make LEDs (light emitting diodes) 1 and 3 glow. 3.7.3, CPU Registers ‘The MCGSHCL1 has several registers internal to its CPU, besides the two introduced in the preceding example. Figure 3.12 offers a graphical representation of the register set we will describe more fully later. Accumulator A and its twin, accumulator B, are both &-bit regis- ters used for performing arithmetic computations, Some instructions treat these registers as if they were a single 16-bit accumulator. In this case, accumulators A and B are referred to collectively as the double accumulator, accumulator D. ‘The register known as the stack pointer (SP) is used to hold a 16-bit address. ‘The operation of this register will be explained later in the context of the stack (see Section 3.7.9). Registers that hold 16-bit values IX and TY are known as index registers. They are used by the indexed-addressing mode to access instruction operands. Additionally, register IX is used by the division instructions. ‘The condition code register (CC) is an &bit register that holds information about recent CPU operations, Each bit of this register The [Ds dascribed in the example are present on Rug Ws eliminated70 3. Computational Hardware CELETTTT Acme, PITTTTT cme “AEE eam COCITETITTITTTIT) Pc - Program counter Figure 3.12. ‘The internal rogisters of the MCSSHCI1 deseribe the processor's has a special purpose (described in the MC68HCL1 documentati zero by, say, the ADD instruction, the effect on the condition code register is the same. Other bits signify other conditions. If the most recently processed instruction produced a negative number, then the N bit is set. which are discussed later, (see Section 3.7.7), the bits in the condition code register to determine whether or not to transfer control to another part of the program. We can think of these bits as flags. When some condition is met, the corresponding flag is raised—the bit is set to 1. When the registers appear in the memory map. way to access these registers is through ‘the use of special instructions. Certain microprocessors do, however, map their internal registers to memory. 3.7 Hardware Software Interface 7 3.7.4 Instructions and Operands jcroprocessor is the set of primitive op- wads. In the above example, the ie LDAA instruction was 7. The instruction stored that number in accumulator A. The operand of the ADA instruction was 13. Executing ADA added this number to accumulator A. An instruction can locate its operand in several ways. In the ex- ample; LDAA and ADA both used a form called immediate addressing. With this method, the operand itself is stored in memory following the instruction code. Figure 3.14 illustrates an example of immediate addressing, In an assembly program, the programmer specifies how the oper- and is to be found by the way the instruction’s argument is written, 4 sign in front of the numbers 7 and 13 in the program in Figure 3.11 indicates to the assembler program that these numbers should be referenced using immediate addressing. ‘The following list sum- ‘marizes the operand-addressing schemes used by the MC68HC11. Immediate: The operand itself follows the instruction code program stream, ‘The argument is prefixed by.#. Example: ADDA #$2F means that the hex value $2F should be added im- ‘mediately to the value of accumulator A. Extended: The argument is the address of the operand. Two bytes are required to form the address (given the 64K address space of the MC68HCI1). ‘The argument has no prefix. Example: JSR subr_too. Direct: Direct addressing is similar to extended addressing except that it takes one less byte to specify the operand. The first 256 bytes of the address space are sometimes called the zero page. Because the high-order byte is always 0, this portion of the memory (which corresponds to the MC68HCI1's on-chip RAM) can be addressed with only 1 byte. The argument again requires no prefix. Brample: LDAA variable
You might also like
Home Robotics - Maker-Inspired Projects For Building Your Own Robots (PDFDrive)
PDF
100% (2)
Home Robotics - Maker-Inspired Projects For Building Your Own Robots (PDFDrive)
260 pages
Internship Report - Robotics
PDF
75% (4)
Internship Report - Robotics
45 pages
Robot Builder Guide
PDF
100% (5)
Robot Builder Guide
66 pages
How It Works - Book of Robots 2nd Edition
PDF
100% (1)
How It Works - Book of Robots 2nd Edition
148 pages
How It Works Book of Robots
PDF
80% (10)
How It Works Book of Robots
148 pages
123 Robotics Experiments For The Evil...
PDF
No ratings yet
123 Robotics Experiments For The Evil...
357 pages
Home Robotics - Maker-Inspired Projects For Building Your Own Robots (PDFDrive) PDF
PDF
100% (1)
Home Robotics - Maker-Inspired Projects For Building Your Own Robots (PDFDrive) PDF
162 pages
The LEGO BOOST Idea Book - 95 Si - Yoshihito Isogawa
PDF
No ratings yet
The LEGO BOOST Idea Book - 95 Si - Yoshihito Isogawa
269 pages
Isogawa Yoshihito The Lego Boost Idea Book 95 Simple Robots
PDF
83% (6)
Isogawa Yoshihito The Lego Boost Idea Book 95 Simple Robots
269 pages
The Unofficial Guide To Lego Mindstorm Robots Size A4 PDF
PDF
50% (2)
The Unofficial Guide To Lego Mindstorm Robots Size A4 PDF
266 pages
Unit 3 Robotics
PDF
No ratings yet
Unit 3 Robotics
7 pages
Revobot User Manual PDF
PDF
No ratings yet
Revobot User Manual PDF
245 pages
A Beginners Guide To Robotics
PDF
No ratings yet
A Beginners Guide To Robotics
9 pages
Design, Program
PDF
No ratings yet
Design, Program
109 pages
Robotics Project
PDF
No ratings yet
Robotics Project
18 pages
Computer Controlled Robots
PDF
No ratings yet
Computer Controlled Robots
52 pages
The Arduino Robot Robotics For Everyone by Prakshobh Prakash Gaimar
PDF
No ratings yet
The Arduino Robot Robotics For Everyone by Prakshobh Prakash Gaimar
236 pages
Robotics - Wiki
PDF
No ratings yet
Robotics - Wiki
79 pages
Feb-Mar 2000 DCD
PDF
No ratings yet
Feb-Mar 2000 DCD
63 pages
Robotics: Lecture 1: Introduction To Robotics
PDF
No ratings yet
Robotics: Lecture 1: Introduction To Robotics
44 pages
The Lego Boost Idea Book by Yoshihito Isogawa
PDF
No ratings yet
The Lego Boost Idea Book by Yoshihito Isogawa
268 pages
Robotics Report
PDF
No ratings yet
Robotics Report
12 pages
SumoBot Handbook
PDF
No ratings yet
SumoBot Handbook
22 pages
Technical Science II Robotics Hand Guide
PDF
No ratings yet
Technical Science II Robotics Hand Guide
34 pages
Students Guide For Making Your Own Small Robot
PDF
No ratings yet
Students Guide For Making Your Own Small Robot
76 pages
Computer Wegvzdfbsdfhrth
PDF
No ratings yet
Computer Wegvzdfbsdfhrth
13 pages
Document 24
PDF
No ratings yet
Document 24
23 pages
Biped New
PDF
No ratings yet
Biped New
86 pages
Complete Motor Guide For Robotics: Technology Workshop Craft Home Food Play Outside Costumes
PDF
No ratings yet
Complete Motor Guide For Robotics: Technology Workshop Craft Home Food Play Outside Costumes
15 pages
Ibot - Robotics Club of Iit Madras Tutorial 1.1.1 Build Your Basic Bot
PDF
No ratings yet
Ibot - Robotics Club of Iit Madras Tutorial 1.1.1 Build Your Basic Bot
21 pages
Robots Applications
PDF
No ratings yet
Robots Applications
29 pages
NAME:K.Rakesh REGNO:14BEC0764 Subject:Coa Slot: G1
PDF
No ratings yet
NAME:K.Rakesh REGNO:14BEC0764 Subject:Coa Slot: G1
17 pages
The Unofficial Guide To Lego Mindstorms Robots
PDF
100% (1)
The Unofficial Guide To Lego Mindstorms Robots
226 pages
Crash Course - 21st Century Robotics
PDF
No ratings yet
Crash Course - 21st Century Robotics
4 pages
I.What Is A Robot?
PDF
No ratings yet
I.What Is A Robot?
12 pages
How To Build A Robot at Home
PDF
No ratings yet
How To Build A Robot at Home
37 pages
The MagPi Issue 6 en
PDF
No ratings yet
The MagPi Issue 6 en
32 pages
Motivation Is Key To Success. Why Build A Robot? What Are Your Motivations? Do They Look Cool? Want To Join A
PDF
No ratings yet
Motivation Is Key To Success. Why Build A Robot? What Are Your Motivations? Do They Look Cool? Want To Join A
7 pages
Engineering Design Journal
PDF
No ratings yet
Engineering Design Journal
12 pages
How To Build Your First Robot Tutorial - : Beginners
PDF
No ratings yet
How To Build Your First Robot Tutorial - : Beginners
7 pages
An Introduction To Robotics
PDF
No ratings yet
An Introduction To Robotics
4 pages
Robotics Tutorial
PDF
No ratings yet
Robotics Tutorial
5 pages
Inpl ANT Trai Ning REP ORT ARO Bot, CHE Nnai: Submitted By, S.Vigneshwaran
PDF
No ratings yet
Inpl ANT Trai Ning REP ORT ARO Bot, CHE Nnai: Submitted By, S.Vigneshwaran
6 pages
Mobile Robots Inspiration To Implementation - Flynn and Jones PDF
PDF
No ratings yet
Mobile Robots Inspiration To Implementation - Flynn and Jones PDF
242 pages
Robot
PDF
No ratings yet
Robot
10 pages
Robotic For Beginer
PDF
No ratings yet
Robotic For Beginer
5 pages
Manual No1
PDF
No ratings yet
Manual No1
153 pages
Book List
PDF
No ratings yet
Book List
1 page
Mobile Robots Inspiration To Implementation-Flynn and Jones PDF
PDF
No ratings yet
Mobile Robots Inspiration To Implementation-Flynn and Jones PDF
242 pages