+ All Categories
Home > Documents > Bibliography - Carnegie Mellon Universitycode.arc.cmu.edu/archive/dmgftp/public_media/flexm... ·...

Bibliography - Carnegie Mellon Universitycode.arc.cmu.edu/archive/dmgftp/public_media/flexm... ·...

Date post: 08-Jun-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
58
79 ARCHITECTS “The Beauty of Ban.” Blueprint (June 2000): 46-50. Shigeru Ban’s the Japanese Pavilion, Expo 2000, Hanover, Germany. Carbajosa, Jorge and Javier Tejera. “All-purpose Pavilion.” http://www.fibersource.com/Textile_Arch/Cat-2.htm Cruickshank, Dan, ed. Sir Banister Fletcher’s A History of Architecture, 20th edition. Oxford, England: Architectural Press, 1998, 1655-1656. NA200 .F63 1996. Features Jørn Utzon’s Sydney Opera House. http://www.frit.ohio-state.edu/ncfs/conf.htm. Peter Eisenman’s the Greater Columbus Convention Center. Eisenman, Peter. “The Specter of the Spectacle.” Anymore (2000): 174-181. Article features the proposal for The St. George Ferry Terminal. Engel, H. Structure Systems. Preface by Ralph Rapson. New York: Van Nostrand Reinhold Company, 1981. Engel covers structure systems in terms of the module, whether concrete, steel or tensile structures. Einbinder, Harvey. An American Genius: Frank Lloyd Wright . New York: Philosophical Library, Inc., 1986, p. 6. NA737.W712 E56 1986. Frank Lloyd Wright was influenced in his childhood with the Fröbel Blocks. Fuller, R. Buckminster. Synergetics: Explorations in the Geometry of Thinking. New York: MacMillan Publishing Co., Inc., 1975. Q295 .F84 v.1. Tensegrity diagram based on Figure 401.00, Tensegrity Tetrahedron with “Me” Ball Suspended at Center of Volume of the Tetrahedron... (p. 789). Crippa, Maria Antoniett, ed. Living Gaudí: the Architect’s Complete Vision. New York: Rizolli International Publications, 2002. Image of Antonio Gaudí’s Sagrada Familia School Hoberman, Charles. “Faltstrukturen für temporäre Gebäude” (Temporary Unfolding Structures). Detail, vol. 36 no. 8 (Dec. 1996): 1184-1185. Bibliography
Transcript

79

ARCHITECTS

“The Beauty of Ban.” Blueprint (June 2000): 46-50. Shigeru Ban’s the Japanese Pavilion,Expo 2000, Hanover, Germany.

Carbajosa, Jorge and Javier Tejera. “All-purpose Pavilion.”http://www.fibersource.com/Textile_Arch/Cat-2.htm

Cruickshank, Dan, ed. Sir Banister Fletcher’s A History of Architecture, 20th edition.Oxford, England: Architectural Press, 1998, 1655-1656. NA200 .F63 1996. FeaturesJørn Utzon’s Sydney Opera House.

http://www.frit.ohio-state.edu/ncfs/conf.htm. Peter Eisenman’s the Greater ColumbusConvention Center.

Eisenman, Peter. “The Specter of the Spectacle.” Anymore (2000): 174-181. Articlefeatures the proposal for The St. George Ferry Terminal.

Engel, H. Structure Systems. Preface by Ralph Rapson. New York: Van NostrandReinhold Company, 1981. Engel covers structure systems in terms of the module,whether concrete, steel or tensile structures.

Einbinder, Harvey. An American Genius: Frank Lloyd Wright. New York: PhilosophicalLibrary, Inc., 1986, p. 6. NA737.W712 E56 1986. Frank Lloyd Wright was influenced inhis childhood with the Fröbel Blocks.

Fuller, R. Buckminster. Synergetics: Explorations in the Geometry of Thinking. NewYork: MacMillan Publishing Co., Inc., 1975. Q295 .F84 v.1. Tensegrity diagram based onFigure 401.00, Tensegrity Tetrahedron with “Me” Ball Suspended at Center of Volume ofthe Tetrahedron... (p. 789).

Crippa, Maria Antoniett, ed. Living Gaudí: the Architect’s Complete Vision. New York: RizolliInternational Publications, 2002. Image of Antonio Gaudí’s Sagrada Familia School

Hoberman, Charles. “Faltstrukturen für temporäre Gebäude” (Temporary UnfoldingStructures). Detail, vol. 36 no. 8 (Dec. 1996): 1184-1185.

Bibliography

80

Loeb, A. L. Space Structures: Their Harmony and Counterpoint. QA491 .L63.

Lynn, Gregg. Animate Form.———. Animate Form. New York: Princeton Architectural Press, 1999. NA737.L97 A4 1999.———. “Greg Lynn: Embryologic Houses.” Architectural Design, profile 145, vol. 70, no. 3

(June 2000): 26-35.

Meehan, Patrick J., editor of The Master Architect: Conversations with Frank LloydWright. New York: John Wiley & Sons, Inc. 1984, p. 216. NA737.W7 W68 1984.Frank Lloyd Wright on Fröbel Blocks.

MIT Kinetic Design Group“Case Studies in Kinetic Architecture.” http://kdg.mit.edu/Matrix/matrix.html

Otto, Frei. Movable Guyed Mast. http://kdg.mit.edu/Matrix/021.html

Russell, James S. “Will A New Wave Of Tropical Modernism Restore San Juan's Luster?”Architectural Record, vol. 190 (July 2002): 56. Features Toro Ferrer’s La Concha Supper Club

Sullivan, Mary Ann. Columbus, Ohio: Convention Center. © 1999http://www.bluffton.edu/~sullivanm/eisenman/conventioncenter.htmlPeter Eisenman’s the Greater Columbus Convention Center.

“Turning Torso, Malmö, Sweden.” Architecture (December 2002): 54-55.Calatrava, Santiago. Turning Torso Residential Tower, Malmö, Sweden.

Vogt, A. Le Corbusier, the Noble Savage: Toward an Archeology of Modernism. Cam-bridge, Massachusetts: The MIT Press, 1998. NA1053.J4 V6413 1998. translated byRadka Donnell. Vogt cites Marc Soltaire, who wrote about how Friedrich Fröbel’s peda-gogy influenced le Corbusier childhood upbringing. Soltaire, M. “LC et l’urbain: larectification du damier froebelian,” in La Ville et l’urbanisme après LC ( le Colloque de1987, à La Chaux-de-Fonds), ed. E. Tippet and I. A. Humair (La Chaux-de-Fonds, 1993),pp. 93-117. Friedrich Fröbel’s influence on Le Corbusier.

Vollers, K. Twist&Build: creating non-orthogonal architecture. Rotterdam, The Nether-lands: 010 Publishers, 2001: 69. images of Santiago Calatrava’s Turning Torso Residen-tial Tower, Malmö, Sweden.

81

COMMENTARY/MATHEMATICS

Abelson, Harold. & diSessa, Andrea. Turtle Geometry: The Computer as a Medium forExploring Mathematics. MIT Press, Cambridge, MA, 1981. QA462.A23 1980

Ask Dr. Math ®. “Pyramid.” © 1994-2004 The Math Forum.http://mathforum.org/dr.math/faq/formulas/faq.pyramid.html

“Disappearing Glass Rods.” © 2003 Royal Ontario Museumhttp://www.rom.on.ca/wwatch/teachers-kit/disappearing.htmlAcrylic plastic, its index of refraction.

Coxeter, H. S. M. (Harold Scott MacDonald). Regular Polytopes. New York: Dover,1973. QA691 .C68 1963.

Cromwell, Peter R. Polyhedra. Cambridge, U.K.: Cambridge University Press, 1997, p.192-193. QA491 .C76 1997. Cromwell explains the origin of valency from chemistry inrelation to the naming of the parts making up a polyhedron.

Frazer, J., Frazer, J., Frazer, P. “New developments in intelligent modeling.” In Proc. ofComputer Graphics 81 (1981): 139-154. Online Publications.

Fusco, Joseph. “Dihedrals and Equal Sided Polygons.” © JosephFusco.com. 1998-2003http://www.josephfusco.org/Articles/Dihedral/Dihedral1.html

Lyusternik, L. A. Convex Figures and Polyhedra. translated from the Russian by T.Jefferson Smith. New York: Dover Publications, Inc. 1963. QA 491 L4983.

Mortenson, Michael E. Computer Graphics Handbood: Geometry and Mathematics.New York: Industrial Press Inc., 1990. T385 .M6683 1990.

Whitehead, Ingrid. “Steel mesh and engineering wizardry unfold into a dome”. Architec-tural Record vol. 188, no. 10 (Oct. 2000): 79-80. Features Charles Hoberman’s Retract-able Dome at the German Pavilion at Expo 2000, Hanover, Germany.

82

Papert, Seymour———.Mindstorms: Children, Computers and Powerful Ideas. Basic Books, 1980———.The Children's Machine: Rethinking School in the Age of the Computer.

Basic Books, 1993. QA20.C65 P36 1980.

Parks, H. and Wills, D. “An Elementary Calculation of the Dihedral Angle of the Regularn-Simplex.” The American Mathematical Monthly vol. 109, no. 8 (2002): 756-758.

Poly is a shareware program for exploring and constructing polyhedra. With Poly, you canmanipulate polyhedral solids on the computer in a variety of ways. Flattened versions (nets)of polyhedra may be printed and then cut out, folded, and taped, to produce three-dimensionalmodels. Pedagoguery Software Inc. http://www.peda.com/poly/

“Schlegel diagram.” January 2004, updated 28-03-2004http://www.ac-noumea.nc/maths/amc/polyhedr/Schlegel_.htm

Smith, Stanley. A mathematical investigation for the lay reader in polyhedra. New York:Addison-Wesley Publishing Company, Inc., 1976.

Weisstein, Eric W. “Discusion on dihedral angles.” © 1996-9 Eric W. Weisstein 1999-05-24. http://164.8.13.169/Enciklopedija/math/math/d/d207.htm

wikipedia.orgvarious math terms for graph theory.“adjacency List” http://en.wikipedia.org/wiki/Adjacency_list“Adjacency Matrix” http://en.wikipedia.org/wiki/Adjacency_matrix“degree of freedom” http://en.wikipedia.org/wiki/Degrees_of_freedom“graph theory” http://en.wikipedia.org/wiki/Cycle_%28graph_theory%29“William Rowan Hamilton” http://en.wikipedia.org/wiki/William_Rowan_Hamilton“Hamiltonian path” http://en.wikipedia.org/wiki/Hamiltonian_path“simplex” http://en.wikipedia.org/wiki/Simplex“traveling salesman” http://en.wikipedia.org/wiki/Traveling_salesman_problem

83

EDUCATION AND LEARNING

Bhavnani, S., John, B. and Flemming, U. “The Strategic Use of CAD: an empiricallyinspired, theory based course.” In Proc. of CHI’99, Pittsburgh, Pennsylvania, May 15-20,1999: 83-190. The inefficient use of complex computer systems is costly and a sourceof frustration. However, this scenario may be improved upon through the instruction ofstrategies, in a addition to specific application skills.

Lawson, B. “CAD and Creativity: does the computer really help?” Leonardo, vol. 35 no.3 (2002): 327-331. Is the lack of creativity from CAD programs due to the inherentnature of computer programs (i.e. is not the real thing), or is it possible that the limitedapplication of CAD programs stunts the designer? This paper argues that creative designrequires deep rather than shallow analysis and that current CAD techniques are notnecessarily promoting this.

Nilsen, E., Jong, H., Olson, J., Biolsi, K., Reuter, H., Mutter, S. “The Growth of SoftwareSkill: A longitudinal look at learning & performance.” In Proc. INTERCHI ’93, Apr. 24-29, 1993: 149-156. Nilsen et al. researched into factors that contribute to learning andskill in the application Lotus 1-2-3. Motor skills remain stable throughout the three-yearresearch period. However, cognitive skills were affected by menu structure and repeti-tion, among other factors.

Rand, P. “Design and the Play Instinct.” Education of Vision. edited by Gyorgy Kepes.George Braziller, New York, New York. Gilbert Highet says, that of the two powerfulinstincts which exist in all human beings and which can be used in teaching, one is thelove of play. Playing, therefore, is a modus operandi conducive to learning.

Resnick, M. “Pianos not Stereos: creating computational construction kits.” Interactions,vol. 3, no. 6 (Sep./Oct. 1996). Educational technology emphasizes consumption, a pas-sive state, instead of creativity, an active state. The design of computational constructionkits should keep the designer in mind. Education, not entertainment should be the goal.

Scarlatos, L., Landy, S., Breban, J., Horowitz, R. and Sandberg, C. “On the Effectivenessof Tangible Interfaces in Collaborative Learning Environments.” Scarlatos et al. proposethat tangible interfaces enhance learning by helping children to stay focused, think aboutthe problem in new ways, and arrive at a viable solution.

84

Wake, Warren K. Design Paradigms: A Sourcebook for Creative Visualization. NewYork: John Wiley & Sons, Inc., 2000. TS171 .W35 2000.

PHYSICAL/TANGIBLE COMPUTING

Aish, R. “3D Input for CAAD Systems.” Computer-Aided Design, 11(2)( Mar. 1979): 66-70.

Anderson, D., Frankel, J., Marks, J., Agarwala, A., Beardsley, P., Hodgins, J. Leigh, D.,Ryall, K., Sullivan, E., Ydida, J. “Tangible Interaction + Graphical Interpretation: A NewApproach to 3D Modeling.” In the Proc. of SIGGRAPH 2000: 393-402. Development inembedded computation, vision-based acquisition, and graphical interpretation are keytechnologies for creating computational construction toys. Anderson et al. review twomodeling systems: Computational Building Blocks and digitizing clay models.

Boyle, Michael. “Phidgets: Privacy Preserving Media Space.” Michael Boyle created thisproject in an advanced course on human-computer interaction instructed by SaulGreenberg in computer science department at the University of Calgary, Canada.http://www.cpsc.ucalgary.ca/grouplab/phidgets/gallery/

Camarata, Kennith Allen. Navigational blocks : an interplay between the physical andthe virtual. NA25 Th50287. Thesis (M. Arch.)--University of Washington, 2001.

Camarata, K., Gross, Mark D., Do, Ellen Yi-Luen. “Navigational Blocks: navigatinginformation space with tangible media.” In Proc. of ACM Conference on Intelligent UserInterfaces (2002).

Dewey, D. and Patera, A. “Geometry-defining processors for partial differential equa-tions.” In B. Alder, editor, Special Purpose Computers, pp. 67-96. Academic Press, 1988.

Eisenberg, M. and Gross, M. “Computationally-Enhanced Construction Kits: integratingtangible and computational media for construction and design.” 2003. Construction kitscan play an educational role for students. The added feature of computationally enhancedconstruction kits can further the educational strengths by adding feedback, advice andadditional data.

85

Esposito, C., Paley, W. B., and Ong, J. “Of mice and monkeys: A specialized input devicefor virtual body animation.” In Proc. of Symposium on Interactive 3D Graphics,Monterey, California (Apr. 1995): 109-114, 213.

Frazer J. H.———. “Use Of Simplified Three-Dimensional Computer Input Devices To Encourage

Public Participation In Design”, Proc. Computer Aided Design 82, ButterworthScientific, 143-151, 1982.

———. An Evolutionary Architecture, Architectural Assoc. 1995.

Greenberg, S. and Fitchett, C. “Phidegts: Easy development of physical interfaces throughphysical widgets.” In Proc. of the ACM UIST 2001 Symposium on User Interface Softwareand Technology, November 11-14, Orlando, Florida. ACM Press. www.cpsc.ucalgary.ca/grouplab/papers/ http://Phidgets.com

Greenberg, S. and Boyle, M. “Customizable physical interfaces for interacting withconventional applications.” Video Proceedings of the ACM UIST 2002 15th AnnualACM Symposium on User Interface Software and Technology. ACM Press.

Gorbet, M., and Orth, M. “Triangles: Design of a Physical/Digital Construction Kit.” InProc. of the Symposium on Designing Interactive Systems 1997: 125-128. This paperdescribes the design process and philosophy behind developing a new computationalconstruction kit as a computer interface, the Triangles project.

Kitamura, Y., Itoh, Y., Masaki, T., Kishino, F. “ActiveCube: a bi-directional user interfaceusing cubes.” In Proc. KES 2000: Fourth International Conference on Knowledge-BasedIntelligent Engineering Systems & Allied Technologies. Aug. 30 - Sep. 1, 2000: 99-102.Kitamura et al. designed a cube interface that interacts with a computer interface. Thedesigner can manipulate the physical cube, or change the cube through the computerinterface.

Lackner, T., Dobson, K., Rodenstein, R., and Weisman, L. Sensory Puzzles. Traditionaljigsaw puzzles off an engaging visual stimulus. However, by employing multiple senses -hearing, touch, and vision - the user experiences an enriched, interaction, especially thosewith various sensory abilities.

86

Lertsithichai, S. and Seegmiller, M. “CUBIK: A bi-directional tangible modeling interface.” InProc. of the Conf. of Human Factors in Computing Systems, CHI 2002: 756-757.

Martin, Fred. Robotic Explorations: A Hands-On Introduction to Engineering. UpperSaddle River, New Jersey : Prentice-Hall, Inc. 2001. TJ211 .M36645 2001.

Raffle, H., Parkes, A. and Ishii, H. “Topobo: A constructive assembly system with kineticmemory.” In Proc. of the ACM CHI 2004, April 24-29, Vienna, Austria, ACM Press.www.tangible.media.mit.edu/. 2003

Sharlin, E., Itoh, Y., Watson, B., Kitamura, Y., Sutphen, S., Liu, L. “Cognitive Cubes: atangible user interface for cognitive assessment.” In Proc. CHI 2002, Apr. 20-25, 2002,Minneapolis, Minnesota. 2002. Cognitive Cube offers an alternative to standard paper-and-pencil testing of 3D spatial skills.

Sutphen, S., Sharlin, E., Watson, B., Frazer, J. “Reviving a Tangible Interface Affording3D Spatial Interaction.” What are the qualities of a successful tangible interface? Discus-sion focuses on the Segal model, designed by John Frazer and his colleagues over twodecades ago.

Weller, Philetus Mike. “Espressocad: a System to Support the Design of Dynamic StructureConfiguration.” In proc. of Generative CAD 2004, June 12-15, Philadelphia, Pennsylvania.

Weller, Philetus Mike, Gross, Mark D., Do, Ellen Yi-Luen. Espresso blocks : self-configuringbuilding blocks. NA25 Th53054. Thesis (M. Arch.)--University of Washington, 2003.

Wrensch, T. and Eisenberg, M. “The Programmable Hinge: toward Computationally En-hanced Crafts.” In Proc. of UIST 1998, November, San Francisco, California, pages 89-96.

87

PRODUCTS AND SOFTWARE

“Castle Island’s Worldwide Guide to Rapid Prototyping.”http://home.att.net/~castleisland/. Article on rapid prototyping.

Catia modeling software. www.catia.ibm.com

Greenberg, S. and Fitchett, C. “Phidgets: Easy development of physical interfacesthrough physical widgets.” In Proc. of the ACM UIST 2001 Symposium on User InterfaceSoftware and Technology, Nov. 11-14, Orlando, Florida. ACM Press.www.cpsc.ucalgary.ca/grouplab/papers/

http://handyboard.com/cricket/. Cricket interface.

Gross, M. “FormWriter: A Little Programming Language for Generating Three-DimensionalForm Algorithmically.” In Proc. of CAAD Futures 2001, Eindhoven, 8-11 July 2001: 577-588.

Johns, W. E. “Notes on LEDs” © 2003 W. E. Johnshttp://www.gizmology.net/LEDs.htm

Kiryakoza, Steven. “The LOGO Programming Language”. website, 1997.http://www.engin.umd.umich.edu/CIS/course.des/cis400/logo/logo.html

http://llk.media.mit.edu/projects/cricket/about/index.shtmlCricket interface is a unified electronics kit allows one to build various electronicprojects. This is similar to LEGO(tm) Mindstorms. The initial concept model with a flexsensor utilized the Cricket Serial-IR interface. The Cricket communicates at 9600 baudwith the host computer, running on a 9v battery. www.gleasonresearch.com.

Persistence of Vision Raytracer (POV-Ray). http://povray.orgThis 3D software allows designers to create ray-traced images through the power ofscript. The programming language can be utilized to create parametrically based designsthat can be animated.

PGCE IT LOGO website. May 2003. http://www.pgce.soton.ac.uk/it/logo/.Website dedicated for LOGO programming language.

88

www.Phidgets.comImage from www.cim.mcgill.ca/~jer/research/phidgets/projlab/images/phidget.jpg

Shape Tape(tm) is produced under the license of the Canadian Space Agency byMeasurand. http://www.measurand.com/products/shapetape.html

http://www.tekcad.com/. TekCAD Pro. is an engineering software that integrates finiteelement methods (engineering) into the design environment, through allowing the user tocreate and manipulate complex geometric structures.

“What is Logo?” website. © 2000 Logo Foundation.http://el.media.mit.edu/logo-foundation/logo/index.html

TOYS9-tile game. http://encyclopedia.thefreedictionary.com/N-puzzle

http://abstract.cs.washington.edu/~dougz/cgi-bin/photo.pl? Zometools image

http://www.asmilan.org/teachers/mwhaley/hbody4.jpg. K’Nex image.

Britton, Jackie. © 1996 to 2003 [email protected]———. “Alphabetical list of architectural toys.” http://www.architoys.net/toys/

toylist1.html. This is an extensive list of construction toys with the architecturalspirit in mind.

———. Froebel image from Architoys.net. http://www.architoys.net/toys/toypages/froebel.html

http://www.chem.sunysb.edu/msl/LEGO/logs.html. Lincoln Logshttp://www.chem.sunysb.edu/msl/lego/llog_5.jpg. Lincoln Logs image.

“ERECTOR SET.” The Great Idea Finder.http://www.ideafinder.com/history/inventions/erectorset.htm

Long, Eric. http://www.si.edu/lemelson/centerpieces/ilives/images/hoberman2.gif. Imageof a child playing with the Hoberman sphere.

89

Watson, B. Fröbel Gifts and Blocks. 1997. http://www.geocities.com/Athens/Forum/7905/fblinflc.html. This website covers how contemporary children’s building block wasdeveloped by the pedagogue Friedrich Fröbel.

Watson, Bruce. the Man Who Changed How Boys and Toys Were Made: the life and timesof A.C. Gilbert, the Man Who Saved Christmas. Penguin, 2002

Wetzel, George. Erector set image from: http://www.architectoys.com/covers_gif/72thumb.jpg

http://www.yesterdayland.com/popopedia/shows/toys/ty1079.php. Tinker Toys.

90

Appendix A - Survey of Construction Kits

Figure 100. Wooden construction kits.

Figure 101. Metal construction kits.

91

Figure 102. Plastic construction kits.

92

Figure 103. Electronic and Computational construction kits.

93

Appendix B - Evolution of Hub Development

Figure 104. Evolution of hub development.

94

Appendix C - List of Materials

Acrylic Strut .5" SquarePurchased at Clear Cut Plastics Inc. (www.clearcutplastics.com)507 North 36th Street, Seattle, WA 98103.

BasicStamp Microprocessor (BasicStamp 2 module)Purchased at Parallax, Inc. (parallax.com), stock number BS2-IC.Package: BS2-ICPackage Size (L x W x H): 1.2"x0.6"x0.4"Environment: 0o - 70oC* (32o - 158o F) **Microcontroller: Microchip PIC16C56cProcessor Speed: 20 MHzProgram Execution Speed: ~4,000 instructions/sec.RAM Size: 32 Bytes (6 I/O, 26 Variable)Scratch Pad RAM: N/AEEPROM (Program) Size: 2K Bytes, ~500 instructionsNumber of I/O pins: 16 +2 Dedicated SerialVoltage Requirements: 5 - 15 vdcCurrent Draw @ 5V: 8 mA Run / 100µA SleepSource / Sink Current per I/O: 20 mA / 25 mASource / Sink Current per unit: 40 mA / 50 mA per 8 I/O pinsPBASIC Commands: 36PC Programming Interface: Serial Port (9600 baud)

CricketThe Cricket is based on the Microchip PIC series of microprocessor. User programsare downloaded to the Cricket via its infrared communications system. TheCricket has a button that when pressed triggers it to run the program that wasdownloaded to it. LEDs on the Cricket indicate when it is running a program orsitting idle, the state of the two motor outputs, and indication of infrared transmission.

The Cricket grew out of Fred Martin's work with Programmable Bricks. TheCricket project has had many contributors, but has been primarily created by FredMartin, Brian Silverman, Bakhtiar Mikhak, and Robbie Berg.

* Surface-mount 16F84 CPU @ 1 MHz * Two 1A, 9v motor outputs

95

* Two resistive sensor inputs * 600 baud IR communications * 2048 bytes of user memory (1792 program, 256 data) * Beeper, pushbutton, LEDs

HandyBoard microcontroller systemThe Handy Board is based on the 52-pin Motorola MC68HC11 processor, andincludes 32K of battery-backed static RAM, four outputs for DC motors, aconnector system that allows active sensors to be individually plugged into theboard, an LCD screen, and an integrated, rechargable battery pack.

Information at www.handyboard.comPurchased at www.gleeson.com

LED (500TSW4D Super White)500TSW4D InFaN Super White (15 degrees) - Bin 3b9,300 millicandellaBest and brightest T1 3/4 water clear 5mm white led lamp. Color: InGaN white.Intensity: 8 cd (typical)at 3.3V. Viewing angles: 15 Deg. Solder leads with stand-off. For optimal colorization and intensity (9.3 cd), forward voltage of 3.3V isrecommended.

The brightness of LEDs is measured in millicandela (mcd), or thousandths of acandela. Indicator LEDs are typically in the 50 mcd range; "ultra-bright" LEDscan reach 15,000 mcd, or higher (the 617 nm Luxeon Star (part number LXHL-NH94) can reach 825,000 mcd)

Purchased at Unitech Systems Inc. / LC LED Inc. (www.lc-led.com)

Mercury Tilt Switch

Photosensor (Photocell, 0.27" x 0.24")100 ohms - light. 50K - dark.0.27" x 0.24" plastic encapsulated ceramic package. 1.5" leads.

Purchased at All Electronics Corporation (www.allelectronics.com),catalogue number PRE-22.

96

Rollerball Momentary Switch (Roller Level Switch)Single poll double throw, contacts rated at 5 amperes, 125/250 VAC.

Purchased at Radio Shack, item number 275-017A.

Rotational Potentiometer (100K Linear PC Mount Potentiometer)100K resistance. Linear taper. Center detention 6mm diametershaft, no threaded bushing.

Purchased at All Electronics Corporation (www.allelectronics.com),catalogue number LPT-100K.

Silicone Rubber (Oomoo 25)Easy to use silicone rubber compound that features one-to-one by volume mixratio (no scale necessary). Has a low viscosity for easy mising and pouring. Potlife 15 minutes. Demold in 75 minutes. Color: light blue.

Purchased at Smooth-On, Inc. (www.smooth-on.com)

Sliding Potentiometer (50K Linear Slide Potentiometer, 2.9" long)50 K. Linear taper. 2.9" log. 2" travel.

Purchased at All Electronics Corporation (www.allelectronics.com),catalogue number LSP-50KL.

SureLink RF Transceiver (SureLink 900 MHz RF Module* Data DTE transfer rates of 1200 Baud to 115k Baud* RF Transfer rates from 48000 bps to 76.8 kbps* Range up to 1000 feet (dependent upon environment)* Scratch pad flash memory of 128 bytes* Long battery life of up to 5 hours of operation* 16 run-time selectable channels* Data Encryption mode allows you to send data discreetly (128-bit key code)* Built-in error correction for all data transmissions* Free PC software available.

Purchased at Parallax, Inc. (parallax.com), stock number 30065.

97

Appendix D - Cricket Interface Code

Figure 105. Cricket GUI with program (screen shot). The Cricket Logo code loops through checking thesensor and then waiting .4 seconds.

98

property showing : ""set sPort to ""loadbrowser()

tryset sPort to open serial port "printer port usb" baud rate 9600repeat

set ch to serial port read sPort for 1if ch - "" then

set value to ASCII number (last character of ch)if value < 10 then --55

IEPage(0)else if value < 14 then --60

IEPage(5)else if value < 16 then --70

IEPage(15)else if value < 20 then --75

IEPage(30)else if value < 30 then --80

IEPage(60)else if value < 40 then --85

IEPage(75)else if value < 50 then --90

IEPage(90)else if value < 65 then --110

IEPage(105)else if value < 80 then --115

IEPage(120)else if value < 110 then --125

IEPage(120)else if value < 180 then --140

IEPage(150)else if value < 255 then --150

IEPage(170)else if value < 180 then

IEPage(180)end if

elseend if

end repeatclose serial port sPort with waitingset sPort to ""

on error theErr number errNum

Appendix E - AppleScript Code for Web Browser

99

if sPort is not "" thenclose serial port sPort

end ifreturn "ERROR:" & theErr & "---" & errNum

end try

on loadbrowser()tell application " Internet Explorer"

Activateset defaultPage to ("file:///thalamus/arch504/FlexM/html/

default.html")GetURL defaultPage

end tellend loadbrowser

on IEPage(html)tell application " Internet Explorer"

set htmlPage to ("file:///thalamus/arch504/FlexM/html/" &html & ".html")

GetURL htmlPageend tell

end IEPage

100

/*file name: cube_topology.ic author: Markus Eng date created: May 4, 2003 revision date: February 9, 2004*/

// main ()// checkHubs()// motor(port, LED_on)// sensorHubs(lightHub)// readHub(thisHubPort)// motor(port, LED_off)// sendConnections()// sendAngles()

int NO_OF_HUBS = 4; // there are only four motor portsint NO_OF_SENSORS = 4;int LED_OFF = 0;int LED_LOW = 15;int LED_HIGH = 25;int LIGHT_ON_THRESHOLD = 18; // analog threshold for high intensity LED.int SENSOR_PORT[4][4]; // hold sensor port #sint motor_ports[4];int CONNECTIONS[5][5]; // topology connections, n= NO_OF_HUBS

// CONNECTIONS[lightHub][sensorHub]=sensorFaceint CONNECTION_LIST[8][5];float BRIEFLY = 0.4; // sleep timeint serial_ignore=0;int connection_del = 99; // delimeter for connection packetsint angle_del = 97; // delimeter for angle packets

void main(){ reset(); // Shuts off LEDs (motor ports) clears the // LCD screen disable_pcode_serial();

// SENSOR_PORT[ hub_number ][ sensor_number ] = analog(#) // hub socket Handyboard port SENSOR_PORT[1][1] = 2; // sF armF, OrangeRed --> analog(1) SENSOR_PORT[1][2] = 3; // sG armG, BlackOrange --> analog(2) SENSOR_PORT[1][3] = 4; // sH armH, RedBlack --> analog(3)

Appendix F - HandyBoard Interactive-C Code

101

SENSOR_PORT[2][1] = 16; // s4 arm0, OrangeRed --> analog(16) SENSOR_PORT[2][2] = 17; // s5 armA, BlueOrange --> analog(17) SENSOR_PORT[2][3] = 18; // s6 armB, RedBlue --> analog(18) SENSOR_PORT[3][1] = 22; // s7 arm1, BlueRed --> analog(22) SENSOR_PORT[3][2] = 23; // s8 arm2, GreenBlue --> analog(23) SENSOR_PORT[3][3] = 24; // s9 arm3, RedGreen --> analog(24)

// hub1 red C = 5 // orange D = 6 // black E = // hub2 blue 5 = 20 // red 4 = 21 // orange 6 = 19 // hub3 red 1 = 24 /// blue 2 = 25 // green 3 = 26 checkHubs(); // initialize with turn on light in each hub

// and see if any other blocks can see it printf("\n\n ****Waiting****");

while (1) { // after checking hubs, // wait for input from serial port

printf("\n Waiting "); if (serial_getchar(serial_ignore)) { // acknowledge receiving character from host // computer application printf("\n Received %d", serial_ignore); checkHubs(); printf("\n finished checking hubs"); sleep( 3.0 ); disable_pcode_serial(); }}}

void reset() { // Shuts off LEDs (motor ports) and clears theLCD screen int lightHub; // Sending Hub for (lightHub = 1; lightHub < NO_OF_HUBS; lightHub++ ) { motor( lightHub, LED_OFF ); // Shuts off light in hub } printf("\n\n"); // Clears the 1st line on the LCD}

102

void checkHubs() { // Turns on light in each hub & // checks if any of other hubs can see it

int lightHub, sensorHub;

// Sending Hub, Receiving Hub, Socket loop through cubes, check // whether they are attached to any other cubes

for (lightHub=1; lightHub < NO_OF_HUBS; lightHub++){ motor(lightHub, LED_LOW ); // Turns on light in hub printf( "\n"); // Clears display

// Displays which hub is on (lighthub) printf( "\n Hub %d on: ", lightHub);

// allow a latency time for the light to register sleep(BRIEFLY);

// Checks whether all the other cubes can see the lightHub sensorHubs(lightHub); motor(lightHub, LED_OFF ); // turn off light in hub sleep(BRIEFLY); } sendConnections(); send_Angles(); // Send the angle data from the hub printf("\n all hubs checked"); // Clear 1st line LCD}

int sensorHubs (int lightHub) { // given a lighted hub (lightHub), loops thru all hubs, // printing when the hub sees the lighted hub.

int sensorHub, sensorFace, socketNode; for ( sensorHub=1; sensorHub < NO_OF_HUBS; sensorHub++ ){ if ( sensorHub != lightHub) { // printf("\n\n**SENSING HUB %d", sensorHub); sensorFace = readHub( sensorHub );

// If socket sees light, return the socket# if (sensorFace > 0){ CONNECTIONS[lightHub][sensorHub]=sensorFace; }}}}

103

int readHub(int thisHubPort) { // check whether this hub can see the light

int sensorCount, lightVal;

// for each face in the hub for (sensorCount=1; sensorCount < NO_OF_SENSORS; sensorCount++) { // thisHubPort]!= sensorHub lightVal = analog(SENSOR_PORT[thisHubPort][sensorCount]); if (lightVal > 0) // this list the sensor readings independent // of connection (ambient lighting) printf("\n%d face %d hub %d", lightVal, sensorCount, thisHubPort); printf("\n");

// if the anlog port reads the light, if ((lightVal > 0) && (lightVal < LIGHT_ON_THRESHOLD)) { return sensorCount; }} return -1; // no light}

int sendConnections (){ // converts the triplets to 4-tuples: lightHub, lightSocket, // sensorSocket, sensorHub

// i=lightHub, j=sensorHub, SensorHub socket, lightHub socket int i, j, s1, s2; int n = NO_OF_HUBS + 1;

for (j=0; j<n; j++) { for (i=0; i<n; i++) { s1 = CONNECTIONS[i][j]; s2 = CONNECTIONS[j][i]; if ((s1*s2) != 0) { CONNECTION_LIST[0][0]=i; CONNECTION_LIST[0][1]=s2; CONNECTION_LIST[0][2]=s1; CONNECTION_LIST[0][3]=j; printf("\n (%d %d %d %d)", i, s2, s1, j);

104

// delimiter: starting connection node in LISP serial_putchar(connection_del); serial_putchar(i); // send lightHub serial_putchar(s2); // send lightHub socket serial_putchar(s1); // send sensorHub socket serial_putchar(j); // send sensorHub }}} serial_putchar(155); // delimeter: no more connections to send}

int send_Angles() { // cycles through hubs (i) and sends the 3 angles per hub

int i, j, angle_port, angle_value;

for (i=1; i<NO_OF_HUBS; i++) { serial_putchar(angle_del); // delimiter: start of angle packets serial_putchar(i); // Hub number for (j=1; j<NO_OF_SENSORS; j++) { angle_port = SENSOR_PORT[i][j] + 3; if (angle_port > 3) { angle_value = analog (angle_port);

// angle value connecting the sockets serial_putchar(angle_value); printf("\n\n Hub %d <%d %d", i, j, angle_value); }}} serial_putchar(155); // delimeter: end of angle packets}

void disable_pcode_serial() /* necessary to rcv chars using serial_getchar */{ poke(0x3c, 1);}

int serial_getchar(int c){ // printf("\n Serial Port open"); while (!(peek(0x102e) & 0x20)); /* wait for received character */ return peek(0x102f);}

105

Appendix G - Synchronization of Hub Communication

Table 3. This table measures how timeout periods (column B) and pauses between operations in the PBasiccode (column C) affect the communication efficiency between the base station and the hub. I tracked numberof commands sent (column D), acknowledgements from the other party (column E), timeout periods(column F) and lost connections (column G). From this data I deduce that longer intervals for timeouts andpauses for both the base station and the hub yield the best success in sending/receiving data asynchronously.Likewise, briefer intervals correspond to less success.

column H = received/sent - time_out/sent - no_link/sent column P = received/sent - time_out/sent - no_link/sent Best case scenario: H=1, worst case H=-2.

Index = column H + column P Best case: Index=2, worst case Index=-4

106

Appendix H - Flowchart of PBasic Code for theBasicStamp 2 Base Station

Figure 106. Flowchart for BasicStamp 2 base station code - part 1.

107

Figure 107. Flowchart for BasicStamp 2 base station code - part 2

108

Appendix I - Flowchart of PBasic Codefor the BasicStamp 2 Hub

Figure 108. Flowchart for BasicStamp 2 hub code.

109

'{$STAMP BS2}'{$pbasic 2.5}' File......SureLink_pointA.BS2' Purpose...Demo data transmission with two Surelink Modules' Author....Parallax

'----[ i/o def]---link PIN 15dout PIN 7din PIN 0

'----[constants]---baud CON 84+$4000LED_on CON 10LED_off CON 11poll_hub CON 12power_off CON 15briefly CON 1500

last_hub CON 4 ' four hubslast_sensor CON 6 ' six sensors 1-3 (LEDs), 4-6 (pots)

'----[variables]---x VAR Byteackn VAR Bytesensor VAR Bytehub_light VAR Nibcheck_hub VAR Nib

'----[initialization]---Initialize: PAUSE 250 HIGH 7

Appendix J - PBasic BasicStamp 2 Base Station Code

110

'----[program code]---Main: GOSUB Check_link FOR hub_light = 1 TO last_hub ' cycle through the 4 hubs SEROUT dout, baud, [hub_light] ' contact the hub (1-4) DEBUG CR, "Waiting for ackn from hub ", DEC hub_light PAUSE briefly GOSUB Get_ackn ' wait for a response back from hub_light IF (ackn = hub_light) THEN ' verify the right hub responded SEROUT dout, baud, [LED_on] ' send a "10" to turn on the light. DEBUG CR, "Hub ", DEC hub_light, " is ON." PAUSE briefly GOSUB Check_hubs ENDIF SEROUT dout, baud, [LED_off] NEXT DEBUG CR, "All hubs checked."

Check_link: IF link = 0 THEN No_link DEBUG CR, "linked" RETURN

Check_hubs: FOR check_hub = 1 TO last_hub ' cycle through all the hubs, IF (check_hub <> hub_light) THEN ' except the hub_light ' contact hubs other than hub_light SEROUT dout, baud, [check_hub] PAUSE 2000 GOSUB Get_ackn ' wait for response from check_hub IF (ackn = check_hub) THEN DEBUG CR,"got response from", DEC check_hub GOSUB Poll_hub_sensor ENDIF ENDIF NEXT RETURN

Get_ackn: SERIN din, baud, 500, Get_ackn, [ackn] ' receive ack RETURN

111

Poll_hub_sensor: SEROUT dout, baud, [poll_hub] ' send instruction to poll hub's sensors DEBUG CR, "sending poll request" PAUSE briefly FOR sensor = 1 TO last_sensor SERIN din, baud, 500, nodata, [x] ' read the 6 sensor values PAUSE 100 DEBUG DEC x, TAB NEXT RETURN

No_link: DEBUG "no link", CR PAUSE briefly RETURN

Nodata:DEBUG CR, "- "GOTO main

112

Appendix K - PBasic BasicStamp 2 Hub Code

'{$STAMP BS2}'{$pbasic 2.5}'{$PORT COM2}' File......SureLink_pointB.BS2' Purpose...Demo data transmission with two Surelink Modules' Author....Parallax

'---[hardware]---' photosensor -- 330 ohm 1/2 watt 5% resistor (ora, ora, bro)' (VDD, VSS, ports 1-3)' rot pot -- 270 ohm 1/2 watt 5% resistor (red, bro, bro)' (VDD, VSS, ports 4-6)' LED -- 67 ohm 1/2 watt 5% resistor (blu, gra, bla)' (VSS, port 12)' VDD port -- .1 microF ceramic capacitor' (VDD)

'----[ i/o def]---link PIN 15dout PIN 7din PIN 0

'----[constants]---Baud CON 84+$4000Timeout CON 1500Hub_id CON 2 ' hub identifierLED_port CON 12 ' LED port connectionLED_on CON 10LED_off CON 11Poll_hub CON 12Power_off CON 15Briefly CON 1500

'----[variables]---cue VAR Nib ' calling cue fromcmd VAR Bytex VAR Bytesensor VAR Bytesensor_val VAR ByteInstr_msg VAR Byte

113

'----[initialization]---Initialize: PAUSE 250 HIGH 7

'----[program code]---Main: GOSUB Check_link DEBUG CR, TAB, "Waiting for Cue" GOSUB Wait_for_cue ' wait for a cue, repeats if no cue DEBUG CR, TAB, TAB, "Waiting for Instruction" GOSUB wait_for_instr STOP

Check_link: IF link = 0 THEN No_link DEBUG CR, "Linked" RETURN

No_link: DEBUG CR, "No link" GOTO Check_link

Wait_for_cue: DEBUG "." ' listen for a cue, repeats if no cue SERIN din, Baud, Timeout, Wait_for_cue, [WAIT (Hub_id), cue] ' send acknowledgement SEROUT dout, Baud, [hub_id] DEBUG CR, TAB, "Sending out ackn", TAB, DEC hub_id RETURN

Wait_for_instr: DEBUG "." ' listen for an instruction SERIN din, Baud, Timeout, Wait_for_instr, [cmd] 'SEROUT dout, Baud, ["Instruction ", cmd, " received from ", hub_id] DEBUG CR, TAB, TAB, "instruction ", DEC cmd

SELECT cmd CASE LED_on ' turn on the LED GOSUB Turn_on_LED DEBUG CR, TAB, TAB, TAB, "Turning LED on hub ", DEC cue PAUSE briefly

114

CASE LED_off ' turn off the LED GOSUB Turn_off_LED DEBUG CR, TAB, TAB, TAB, "Turning LED off hub ", DEC cue PAUSE briefly

CASE Poll_hub ' poll the hub sensors GOSUB Poll_sensors DEBUG CR, TAB, TAB, TAB, "Polling sensors hub ", DEC cue PAUSE briefly

CASE Power_off ' turn off the power END DEBUG CR, TAB, TAB, TAB, "Power off hub ", DEC cue PAUSE briefly

CASE Hub_id GOTO Wait_for_instr DEBUG CR, TAB, TAB, TAB, "Just my ID ", DEC cue PAUSE briefly

CASE ELSE DEBUG CR, TAB, TAB, TAB, "Unrecognized command: ", DEC cmd DEBUG CR, TAB, TAB, TAB, "Resetting hub." PAUSE briefly GOTO main ENDSELECT GOTO main

Turn_on_LED: TOGGLE LED_port DEBUG CR, TAB, TAB, TAB, TAB, "Hub ", DEC hub_id, " light is ON" PAUSE briefly RETURN

Turn_off_LED: TOGGLE LED_port DEBUG CR, TAB, TAB, TAB, TAB, "Hub ", DEC hub_id, " light is OFF" PAUSE briefly RETURN

115

Poll_sensors: DEBUG CR, TAB, TAB, TAB, TAB, "Sensors 1-6" FOR sensor=1 TO 6 ' Cycle through ports 1-6 for sensor readings. HIGH sensor RCTIME sensor, 1, sensor_val ' Measure RC charge time. SEROUT dout, Baud, [sensor_val] DEBUG CR, TAB, TAB, TAB, TAB, "Sensor ", DEC sensor, ": ",

DEC sensor_val PAUSE briefly NEXT RETURN

116

Appendix L - Sensor Readings from RF Hubs

Table 4. Light readings from photosensors on the wireless hubs using the RCTIME function in PBasic.Lighting conditions are: no light, ambient light (overhead fluorescent lighting), ambient socket pointing up,side, down and covered. Sensor readings are in the PBasic word format (16-bit). The maximum value is65535.

Table 5. Angle readings for potentiometers on the wireless hubs using the RCTIME function in PBasic.Sensor readings are in the PBasic word format (16-bit). The maximum value is 65535.

117

Appendix M - Daughterboard Circuits

Figure 109. Photosensor electrical diagram (left) anddaughterboard wiring (right). The 330 ohm resistorsconnect the photosensors to the BS2 ports 1-3. Resistorsalso connect to Vss and to individual .1 µFarad (10 millionthof a farad) capacitors. Because of limited Vdd ports, thecapacitors are bundled in threes, connecting the sixcapacitors to two Vdd ports.

Figure 110. Potentiometer electrical diagram(left) and daughterboard wiring (right). 270 ohmresistors connect the rotational potentiometers tothe BS2 ports 4-6. Resistor also connect to VSS,to individual .1 µFarad capacitors. Capacitorsconnect to the Vdd ports.

Figure 111. LED electrical diagram (left) and daughterboardwiring (right). LED connects to a 67 ohm resistor, and VSS.Resistor connect to BS2 port 12.

118

;(go-demo); (set-up); (make-serial-b); (setq *gw* 'window...); (update-button); (get-another); (wait-for-input); (draw-model); (draw-model); (draw-graph (do-topo-packets *serial-b-in*)); (clear-graph); (draw-nodes); (draw-node); (node-socket-pos); (draw-node); (draw-angle-values (do-geom-packets *serial-b-in*)); (node-angle-pos)

;; SERIAL COMMUNICATION FROM HANDYBOARD;;=====================================

; open a serial stream on the printer port(make-serial-b)

;; Reads the topology info via the USB-serial port;;-------------------------------------------------

(defun do-topo-packets (stream) (print "RECEIVING TOPOLOGY DATA") (print "(sending-Hub sending-Socket receiving-Socket receiving-Hub)") (print " ") (read-topo-packets stream))

Appendix N - Lisp Code for Topology Node Diagram

119

(defun read-topo-packets (stream) ; get the header (let ((header (char-code (tyi stream)))) ; if it's 155, done. (cond ((= header 155) nil) ; else, if it's 255 get next packet. ; matches delimiter in cube_topology.ic ((= header 99) (print "---") ; construct the list of packets. (cons (read-topo-packet stream) (read-topo-packets stream))) (t (print "repeat topo packets") (read-topo-packets

stream)))))

(defun read-topo-packet (stream) ; read the next four bytes: ; sendingHub, sendingSocket, receivingSocket, receivingHub (print (list (char-code (tyi stream)) (char-code (tyi stream)) (char-code (tyi stream)) ; and trim the last (trailer) byte. (char-code (tyi *serial-b-in*))))) ;(read-topo-packets *serial-b-in*)

;; Reads the geometry info via the USB-serial port;;-------------------------------------------------

(defun do-geom-packets (stream) (print " ") (print "RECEIVING ANGLE DATA") (print "(Hub# angle-A angle-B angle-C)") (print " ") (read-geom-packets stream))

120

(defun read-geom-packets (stream) ; get the header (let ((header (char-code (tyi stream)))) ; if it's 155, done. (cond ((= header 155) nil) ; else, if it's 255 get next packet. matches delimiter ; in cube_topology.ic ((= header 97) (print "---") ; construct the list of packets. (cons (read-geom-packet stream) (read-geom-packets stream))) (t (print "repeat geom packets") (read-geom-packets

stream)))))

(defun read-geom-packet (stream) ; read the next four bytes: ; sendingHub, angle_A, angle_B, angle_C (print (list (char-code (tyi stream)) (char-code (tyi stream)) (char-code (tyi stream)) ; and trim the last (trailer) byte. (char-code (tyi *serial-b-in*)))))

;; DRAW GRAPH;;==============================================

(defun setup() (make-serial-b) (setq *gw* (make-instance 'window :view-size #@(400 400) :window-title "FlexM Node Graph")) (add-update-button));(setup)

(defun get-another (ignore) (wait-for-input) (draw-model))

(defun add-update-button () (add-subviews *gw* (make-instance 'button-dialog-item

121

:dialog-item-text "update" :view-position #@(275 360) :view-size #@(75 25) :dialog-item-action 'get-another)))

(defun wait-for-input () (cond ((not (stream-listen *serial-b-in*)) (print "xx" *serial-b-out*) (wait-for-input))))

(setq *node-pos-array* (make-array '(4)))(setf (aref *node-pos-array* 0) (make-point #@(120 120)))(setf (aref *node-pos-array* 1) (make-point #@(320 120)))(setf (aref *node-pos-array* 2) (make-point #@(320 320)))(setf (aref *node-pos-array* 3) (make-point #@(120 320)))(setq *node-radius* 20)

(defun draw-nodes () (dotimes (n 4) (let ((nodepos (aref *node-pos-array* n)))

; draw the circles (draw-node nodepos 0) ; draw the three sockets for each circle (dotimes (s 3) (set-fore-color *gw* *orange-color*) (frame-oval *gw* (subtract-points (node-socket-pos n s)

#@(10 10)) (add-points (node-socket-pos n s) #@(10 10)))) ; draw the node numerals (set-fore-color *gw* *black-color*) (move-to *gw* (add-points #@(-10 28) nodepos)) (set-view-font *gw* 16) (princ (1+ n) *gw*))))

122

(defun draw-node (p x) ; p is position, and x is a switch (set-fore-color *gw* *black-color*) (cond ((= x 0) ; draws circles for initial setup (frame-oval *gw* (subtract-points p #@(20 20)) (add-points p #@(10 10))))) (cond ((= x 1) ; fills circles for connected nodes (paint-oval *gw* (subtract-points p #@(20 20)) (add-points p #@(10 10))))))

(defun node-socket-pos (n socknum) (add-points (aref *node-pos-array* n) (make-point (- (* socknum 15) 20)

-28)))

(defun node-pos (n) (add-points (aref *node-pos-array* n) (make-point 0)))

(defun clear-graph () (set-fore-color *gw* *white-color*) (paint-rect *gw* 0 0 400 360) (set-fore-color *gw* *black-color*) (draw-nodes));(clear-graph)

(defun draw-graph (connections); each connection is a 4-tuple (from_hub, from_socket, to_sock, to_hub) (clear-graph) (dolist (c connections) (get-point (move-to *gw* (node-socket-pos (from-hub c) (from-socket

c)))) (draw-node (node-pos (from-hub c)) 1) (set-fore-color *gw* *orange-color*) (paint-oval *gw* (subtract-points (node-socket-pos (from-hub c)

(from-socket c)) #@(5 5)) (add-points (node-socket-pos (from-hub c) (from-socket c)) #@(5 5))) (set-fore-color *gw* *blue-color*) (sleep 0.5) (set-pen-size *gw* 6) (get-point (line-to *gw* (node-socket-pos (to-hub c) (to-socket

c))))))

123

(defun node-angle-pos (n socknum) (add-points (aref *node-pos-array* n) (make-point (- (* socknum 30) 35)

-25)))

(defun draw-angle-values (angles) ; code is similar to draw-nodes() (dolist (a angles) (dotimes (n 4) (let ((nodepos (aref *node-pos-array* n))) (setq x 0) (cond ((= (elt a x) (+ n 1)) ; draw the three sockets for each circle (dotimes (s 3) ; draw the node numerals (set-fore-color *gw* *orange-color*) (move-to *gw* (add-points #@(-8 -18) (node-angle-pos n s))) (set-view-font *gw* 14) (princ (nth (+ 1 s) a) *gw*))))))))

(defun draw-model () (draw-graph (do-topo-packets *serial-b-in*)) (draw-angle-values (do-geom-packets *serial-b-in*)))

;; ACCESSING parts of the hub in the read-topo-packets();; each connection is a 4-tuple (from_hub, from_socket, to_sock, to_hub)

(defun from-hub (c) (1- (first c)))(defun from-socket (c) (1- (second c)))(defun to-socket (c) (1- (third c)))(defun to-hub (c) (1- (fourth c)))

;; ACCESSING angles of the hub in the read-geom-packets();; each geom packet is a 4-tuple (from_hub, angle_A, angle_B, angle_C)

(defun angle_A (c) (second c))(defun angle_B (c) (third c))(defun angle_C (c) (fourth c))(defun get-point (x) (list (point-h x) (point-v x)))

(defun go-demo() (setup) ; wait for windowing environment to come back with window (sleep 0.2) (draw-model))

124

(load "thalamus:Desktop Folder:MCL 4.3:Examples:serial-streams.lisp")

(defun convert-angle (angle) (cond ((> angle 180) (setf angle 175)) ((> angle 140) (setf angle 150)) ((> angle 120) (setf angle 120)) ((> angle 110) (setf angle 105)) ((> angle 100) (setf angle 97)) ((> angle 90) (setf angle 90)) ((> angle 70) (setf angle 75)) ((> angle 60) (setf angle 60)) ((> angle 50) (setf angle 52)) ((> angle 40) (setf angle 45)) ((> angle 30) (setf angle 37)) ((> angle 20) (setf angle 30)) ((> angle 10) (setf angle 20)) ((>= angle 0) (setf angle 15))))

(defun arm2 (r1 g1 b1) (setq *length* 5) (setq *radius* .3) (set-color r1 g1 b1) (cylinder *radius* *length*) (forward *length*) (sphere (* *radius* 2)) (back *length*))

(defun vertex2 (angle1 angle2 angle3) (set-color 200 200 200) (sphere .1) (arm2 255 50 0) (right angle1) (arm2 0 0 255) (roll (- 180 angle2)) (right angle3) (arm2 255 0 0))

Appendix O - Lisp Code for Geometry

125

(defun display-serial-data-graphically (olda oldb oldc) (print "---") ; get a char, if it's zero then (when (= 0 (char-code (tyi *serial-b-in*))) ; get the next three chars as angles. (let ((a (print (convert-angle(char-code (tyi *serial-b-in*)))))

; red 1 (b (print (convert-angle(char-code (tyi *serial-b-in*)))))

; blue 2 (c (print (convert-angle(char-code (tyi *serial-b-in*))))))

; green (when (or ; check to see if values a, b & c have changed by more than 2 (> (abs(- a olda)) 2) ;|a-olda|>2 (or (> (abs(- b oldb)) 2) ;|b-oldb|>2 (> (abs(- c oldc)) 2) ;|c-oldc|>2 )) ; clear the window (clear-model *3dbn-win*) (vertex2 a b c) ) (display-serial-data-graphically a b c))) (display-serial-data-graphically olda oldb oldc))

(defun setup () (make-serial-b) (display-serial-data-graphically 0 0 0));(setup);(dispose-serial-b)

126

Figure 112. Surelink jumper settings on the control panel.

Figure 113. Surelink com port settings on the control panel.

Appendix P - Surelink Control Panel Configuration

127

Figure 114. Surelink memory configuration on the control panel. This shows the memory configuration for aHub 3 in peripheral mode.

128

Commands Reference

Command 1st Byte (Binary) 2nd Byte (Binary) 3nd,4rd,.X Bytes (Binary) Response from SureLink RFmodule in []

NOP X1111111b NoneRead RF Status X1100000b [Ack w/Data]Connect X0000000b LLLLLLLLb UUUUUUUUb [Ack or Nak]Disconnect X0000001b Always [Ack]Read Status X0000010b [Ack or Nak]Read /Status X0000011b [Nak or Ack]Write Register X0100000b XAAAXCCCb (Data*CCC) [Ack or Nak]Read Register X0100001b XAAAXCCCb [AckData or Nak]Write Flash X0110000b XBBCCCCCb (Data*CCCCC) [Ack or Nak]Read Flash X0110001b XBBCCCCCb [AckData or Nak]Erase Flash X1000000b [Ack or Nak]Send Serial DataX1010000b XXXCCCCCb (Data*CCCCC) [Ack or Nak]

Response Reference

Code Binary Encoding ASCII Encoding Description

Ack 01101011b ‘k’ Command was completed successfullyNak 01100010b ‘b’ Command errorAckData 010CCCCCb Command was completed successfully and

CCCCC + 1 bytes of data followsAckSerial * 001CCCCCb Serial data was received from a Peripheral ModeSureLink RF

module and CCCCC + 1 bytes of data followsLost Link * 01101100b ‘l’ RF connection to a Peripheral Mode SureLink waslostUndefined 01111000b ‘x’ Invalid Command

NOTES:X represents a “do not care”[] represent responses from a SureLink RF module() represent variable length data blocks to a SureLink RF moduleLLLLLLLL, and UUUUUUUU represent the lower and upper bytes of the 16 bit Unit AddressAAA represent a SureLink RF module register addressCCC and CCCCC represent the data count minus 1

BB represent the block address of the Flash memory* These responses can come at any time. They have no correlation to a command.

Appendix Q - Surelink Control Panel Reference

129

Appendix R - Index

Symbols

3D graphicsCatia 87FormWriter 70FormZ 4POV-Ray 2

A

Abelson, Harold. & diSessa, Andrea 81ABS plastic 48ABS printer 78accordion bus 28, 29acoustics 6acrylic strut 37, 38, 94

index of refraction 81acrylonitrile butadiene styrene. See ABS

plasticActiveCube. See Kitamura et al.,

2000; Sharlin et al., 2002adjacency list 54, 58, 72adjacent (graph theory) 54Aish, R. 84

Building Block System 10ambient light 36, 38analog port

connection diagram to HandyBoard 62, 64Interactive-C programming 61, 63

Anderson et al., 2000 5, 84Computational Building Blocks 14, 77, 92

animate-form. See Lynn, Greg: Embryo HouseAppleScript 55

code for web browser 56, 98arc. See directed edgearchitects

(bibliography) 79Ban, Shigeru 17, 18, 79Calatrava, Santiago 18, 79Eisenman, Peter 18, 79Ferrer, Toro 79Frei, Otto 22, 79Fuller, R. Buckminster 9

Gaudí, Antonio 16, 80Gehry, Frank 16Jorge Carbajosa and Javier Tejera 22Le Corbusier 5, 80Lynn, Greg 14, 80Utzon, Jørn 17, 80Wright, Frank Lloyd 8

architoys.net/toys/toylist1.html 8asynchronous communication 66, 105AutoDesk Architectural Desktop. See CAD

Programs: AutoCad

B

ball and socket 28, 29Ban, Shigeru 79

Japanese Pavilion, Expo 2000 17Barcelona, Spain 16BasicStamp 2 microprocessor

44, 53, 78, 94. See Camarata, Ken:custom BasicStamp 2 board

asynchronous communication 105base station code 112

flowchart 106component in the flexible hub 44diagram for sensor input 45hub code 112node diagram programming 71processor speed 61switching platforms 64

bend sensorconcept model 30, 39

coding 55bending and flexing typologies 28, 29Bhavnani et al., 1999 3, 83

Einstellung effect 4K’nex™ 5

bivalve 28, 29Bobrow, Daniel 70Building Block System. See Aish, R.

C

CAD Programs

130

3D input for CAAD systems 84AutoCad 4, 78Bhavnani et al., 1999 3Catia 87creativity 83inefficient use 83Lawson, B. 83rapid prototyping 48

Calatrava, Santiago 79Turning Torso residential tower 18

Camarata, Ken 84custom BasicStamp 2 board 44Navigational Blocks 12

capacitordaughterboard for the BS2 45

Carbajosa, Jorge and Javier Tejera 79all purpose pavilion 22

Catia. See also 3D graphicschem.sunysb.edu 8chemistry 54circuit 54Cognitive Cubes

Kitamura 86Columbus Convention Center. See Eisenman,

PeterColumbus, Ohio 21combinatorial optimization 72compound hinge 28, 29. See universal joint:

concept modelcompression struts 9Computational Building Blocks. See Anderson

et al., 2000computational construction kits 10. See

Eisenberg, M. and Gross, M.; physicaltangible computing: (bibliography)

Building Block System. See Aish, R.Computational Building Blocks. See Anderson et

al., 2000Electronics Lab 92Intelligent Modeling Systems. See Frazer, J.Machine Readable Models. See Frazer, J.Quasar Robot 92

Solar House 92Triangles. See Gorbet and Orth, 1997

computer programs. See 3D Graphics; CADPrograms; products and software: (bibli-ography)

computing processor 11. See Dewey, D and A.Patera

concrete frame 19construction kits 90

Arkitex 90, 91Arkitoy 90Bilt E Z 90, 91Bungalow Blocks 90Computational Building Blocks. See Anderson et

al., 2000Cuboro 90Electronics Lab 92, 93Erector Set 8, 23, 88, 90, 91Fröbel Blocks 90Geomag 90Intelligent Modeling Systems. See Frazer, J.Junior Architect 90K’nex™ 9, 23, 89LEGO™ 23LEGO™ Technic 5Lincoln Logs 89, 90Magnastiks 90, 91Magnetic Geomag™ 5Magnetic Toy 90, 91Matador 90Phidgets. See Greenberg and Fitchett, 2001Quasar Robot 92, 93Ramagon™ 5Segal Model. See Frazer, J.Solar House 92, 93Tinker Toys 8, 23, 89, 90Topobo. See Raffle et al., 2003; Raffle et al.,

2004Triangles. See Gorbet and Orth, 1997Triangles & Narratives. See Gorbet and Orth,

1997universal constructor. See Frazer, J.Wenebrik 90, 91Zometools™ 5, 89

131

Zoob™ 5, 28, 29Coxeter, 1973 75craft

computationally enhanced. See Wrensch, T. andEisenberg, M.

creativityAnderson et al., 2000 5

Cricket interface 53, 87, 94. See also robot-ics

AppleScript Code 56processor speed 61

Crippa, 2002 16Cromwell, 1997 54cube 75CUBIK. See Lertsithichai and Seegmiller,

2002curtain wall structures 19cycle. See circuitcycle (graph theory) 54

D

daylighting 6DEBUG function. See PBasicdebugging window 66degree (graph theory) 54degree of freedom. See DOFdelimiter

Interactive-C programminggeometry 64topology 63

democoncept model 56

design paradigms 84Dewey, D. and Patera, A 11, 84dihedral angle 75, 82directed edge (graph theory) 54discrete optimization 72dodecahedron 75DOF 27

E

echinoderm 28, 29education and learning theory 83

collaborative learning environments 84creative visualization 84designing and playing 83interaction vs. entertainment 83Nilsen et al., 1993 83spatial skills 86

Einbinder, 1986 5Einstellung effect 4Eisenberg, M. and Gross, M. 85Eisenman, Peter 79

Columbus Convention Center 21St. George Ferry Terminal 18

elbow joint 28, 29Embryo House. See Lynn, GregEngel, Heinrich 19, 79

hypar surfaces 17Erector set. See Gilbert, A. C.Esposito et al., 1995 85

Monkey™ 14Espresso Blocks. See Weller, Mike PhiletusEuler, Leonard 73Eulerian circuit 73exoskeletal bending 28, 29expansion board. See HandyBoard microcon-

trollerExpo 2000 17

F

FDM 48Ferrer, Torro 79Feurzeig, Wallace 70flashlight game 33, 57, 76, 78flexible curve 28, 29flexible joint 27flexible model 1

132

FlexMdemo

concept model 56flexible hub geometry 74

detail of socket on the flexible hub 41, 50evolution of flexible hub 25evolution of hub development 93flashlight game 33flexible hinge concept model 93geometry 39hardware and software components 24microprocessor code

geometry 61HandyBoard interactive-C 61

model with three hubs 71rapid prototyping model 49, 93socket design 35strut design 37topology 32wireless communication 44

asynchronous 66wooden cubes 34, 36, 93

FormWriter 53screen shot 70

FormZ 4fractal geometry 72Frazer, J. 10, 81

Intelligent Modeling Systems 10Machine Readable Models 10Segal model 10Universal Constructor 10

Frei, Ottomovable guyed mast 22

Fröbel Blocks. See Fröbel, FriedrichWatson, 1997 5

Fröbel, Friedrich 5, 8, 77, 80, 89Fuller, R. Buckminster 79

synergetics 9tensegrity 9tensegrity diagram 9

fused deposition modeler 48. See FDM

G

Gaudí, Antonio 80Sagrada Familia School 16

Gehry, Frank 16generatrix 16geometrical surfaces 23geometry

programming for 58, 61Gilbert, A. C.

Erector set 8gimbal. See universal jointginglymus joint. See elbow jointgirders and panels 78gooseneck 28, 29Gorbet and Orth, 1997 85

Triangles 10, 11, 12, 14, 92Triangles & Narratives, 2000 92

graph theory 54, 78Greenberg and Boyle, 2002 84

Privacy Preserving Media Space 15Greenberg and Fitchett, 2001

Phidgets 15, 85, 87, 92, 93Gross, 2001 70, 87gumby flexible hub 30gyroscope 43

H

Hamilton, Sir William Rowan 72Hamiltonian circuit 72, 76HandyBoard microcontroller

37, 40, 44, 78, 95expansion board 62Interactive-C programming 61node diagram programming 71processor speed 61switching platforms 64

Hanover, Germany 17heaving 27Hilbert curve 72hip joint 28, 29Hoberman, 1996 9

133

Hoberman, C. 80Hoberman, Charles

Retractable Dome (Expo 2000) 22host computer

Interactive-C programming 64html 53hub ID

PBasic programming hub 67hypar surfaces 17. See Engel, Heinrichhypertext markup language. See html

I

ideafinder.com 8iMac

processor speed 61infrared transmitter 55Intelligent Modeling Systems. See Frazer, J.Interactive-C

FlexM HandyBoard code 100

K

kinetic memory 14Kitamura et al., 2000 85

ActiveCube 92K’nex™ 5, 9Königsberg, Seven Bridges of 73

L

La Conch supper club. See Ferrer, TorroLackner et al. 86Lawson, B 83Le Corbusier 5, 80leaf spring 28, 29LED 34, 36, 38, 39, 40, 57, 95

component in the flexible hub 40component in the wooden cube 35, 36connection diagram to HandyBoard 62Interactive-C programming 61, 62, 63PBasic programming base station 67programming for topology 58

LEGO™ 5, 9. See Computational Building

BlocksLertsithichai and Seegmiller, 2002

CUBIK 13, 86light attenuation 37light sensor. See photosensorlight-emitting diode. See LEDLincoln Logs. See Wright, Frank LloydLisp

program for geometry 74, 124topology node diagram 71, 118

listening mode. See PBasic: SERIN functionLoeb, A. L. 80Logo 70

Cricket 53, 55, 76loop (graph theory) 54low-rise tordo 20Lynn, Greg 80

animate-form 14

M

Machine Readable Models. See Frazer, J.Magnetic Geomag™ 5Malmö, Sweden 19Martin, F. 86Martin, Fred 94. See also Cricket interfaceMeehan, 1984 5mercury tilt switch 42, 43, 61

programming for the model's geometry 61wiring diagram 42

metal wire core 28, 29Microchip PIC microprocessor 94Microchip PIC16C56c 94microprocessor

Microchip PIC16C56c 94Motorola MC68HC11 95

millipede 28, 29minimal surfaces. See Engel, HeinrichMinsky, Marvin 70mollusk 28, 29Monkey™. See Esposito et al., 1995motor port

134

connection diagram to HandyBoard 62setting value

Interactive-C programming 63Motorola MC68HC11 processor 95Movable Guyed Mast. See Otto, Frei

N

natural hinge 28, 29Navigational Blocks 84. See Camarata, Kennickel-titanium alloy. See nitinolNilsen et al., 1993 4, 83nitinol 28, 29node diagram 71non-orthogonal architecture. See Vollers, K

O

orientationprogramming for the model's geometry 61

Otto, FreiMovable Guyed Mast 22

P

Pajeau CharlesTinker Toys 5, 8

Papert, Seymour 70parametric modeling 23Parks, H. and Wills, D. 82path 54PAUSE function. See PBasicPBasic 53

DEBUG function 66debugging window 66PAUSE function 66programming

BasicStamp 2 base station 67, 109BasicStamp 2 hub 67flowchart for base station 100, 107flowchart for hub 108hub 112

RCTIME function 116SERIN function 66

PDA 13personal digital assistant. See PDAphalanges 28, 29Phidgets 77. See Greenberg and Boyle, 2002:

Privacy Preserving MediaSpace; Greenberg and Fitchett, 2001:Phidgets

photosensor 34, 39, 40, 95component in the flexible hub 40component in the wooden cube 35connection diagram to HandyBoard 62Interactive-C programming 62, 63PBasic programming base station 67PBasic programming hub 68wireless hub readings 116

Piaget 70pin hinge 28, 29pinless hinge 28, 29Pioneer Square district, Seattle 12pitch, yaw and roll 43pitching 27polyhedra, regular 75polymers. See ABS plastic; acrylic

strut; silicone; surgical tubingpotentiometer

angle readings from wireless hub 116Interactive-C programming 63node diagram programming 71PBasic programming hub 68programming for geometry 61

POV-Ray 2, 87Privacy Preserving Media Space. See

Greenberg and Boyle, 2002: PrivacyPreserving Media Space; Greenberg andFitchett, 2001: Phidgets

Q

QuickLink board. See Surelink RF transceiver

R

Raffle et al. 86

135

Topobo, 2003 92, 93Topobo, 2004 14, 92

Ramagon™ 5Rand, P 83rapid prototyping 48, 78, 88raytracing engine

POV-Ray 2RCTIME function. See PBasicre-configurable spaces 13resistor

daughterboard for BS2 45Resnick, M 83robotics 86rollerball momentary switch 35

component in the wooden cube 35rolling 27rotational potentiometer 31, 42, 49, 96

component in the flexible hub 42

S

Sagrada Familia School. See Gaudí, AntonioSan Juan, Puerto Rico 16Scarlatos et al. 84Schlegel diagram 53, 54sea urchin 28, 29Segal model. See Frazer, J.sensor readings

wireless hubs 116, 117sensory puzzles 86serial port

AppleScript code for web browser 56Interactive-C programming 63PBasic programming base station 67programming for topology 58

SERIN function. See PBasicSeven Bridges of Königsberg 73shape memory alloy. See nitinolShape Tape™ 87Sharlin et al., 2002 86silicone 39, 77, 96

concept model casts 28, 29, 30

Oomoo 25 30skull vertebra 28, 29sliding potentiometer 40, 96

component in the flexible hub 40connection diagram to HandyBoard 64

sliding potentiometersInteractive-C programming 64

SMA. See nitinolSmith, Stanley 82spinal column 22, 28, 29splines 21St. George Ferry Terminal

proposal 18steel frame 19structural stability 6suitcase strap 28, 29Surelink RF transceiver 46, 53, 78, 96

component in the flexible hub 44detail of component 46diagram of wireless setup 47

surgical tubing 30, 39, 77surging 27swaying 27Sydney, Australia 17Sydney Opera House. See Utzon, JørnSynergetics. See Fuller, R. Buckminster

T

tangible interaction + graphical interpretation84

tangible interface 3tangible modeling interface 13Tejera, Javier. See Carbajosa, Jorge and Javier

TejeraTekCAD Pro. 78, 88tensegrity. See Fuller, R. Buckminstertensile folding structure 22tensile structure systems 19tetrahedron 75tilt switch. See mercury tilt switchTinker Toys. See Pajeau, Charles

136

Topobo. See Raffle et al.: 2004topology 78

Interactive-C programming 61node diagram programming 71programming for 57

toys. See Computational ConstructionKits; Construction Kits

(bibliography) 88traveling salesman problem 72Triangles 85. See Gorbet and Orth, 1997Turning Torso Tower. See Calatrava, Santiago:

Turning Torso residential towerturtle geometry 70, 81twisters 1-5 20twisting structures 19. See Calatrava, San-

tiago: Turning Torso residential tower

U

umbrella 28, 29umbrella flexible hub 31, 40, 48, 78undirected edge 54Universal Constructor. See Frazer, J.universal joint 28, 29

concept model 31Utzon, Jørn 80

Sydney Opera House 17

V

valencychemistry 54graph theory 54

vehicle suspension springs 28, 29video conference 15virtual body animation 85virtual reality markup language. See VRMLVogt, 1998 5Vollers, Karel 19, 81

buildings that twist 20VRML 1

W

Wake, Warren K. 27, 84web browser 56Weller, Mike Philetus 13, 48, 86widgets. See Greenberg and Fitchett, 2001:

Phidgetswireless connection

PBasic programming hub 67wireless hub

asynchronous communication 66PBasic programming hub 68

Wrensch and Eisenberg, 1998 24, 86Wright, Frank Lloyd 5

Fröbel Blocks 81Wright, John Lloyd

Lincoln Logs 8

Y

yawing 27

Z

Zometools™ 5Zoob™ 5, 28, 29


Recommended