91.548 home
mtg 13: aibo robots
• info html
mtg 12: laser cutter
• assignment/readings html
mtg 9: motion control
• assignment/readings html
mtg 8
• assignments html
papers: programming drawings
• the further exploits of aaron, painter pdf (from kurzweil site)
• hpgl pdf
mtg 7
• assignments html
mtg 6
assignments html
papers: kids programming
physical programming pdf
tang interfaces/storytelling pdf
mtg 5
mtg 5 assignments html
papers: computational toys
technologies for lifelong kindergarten html
dolltalk pdf
curlybot pdf
mtg 4: Botfest project planning
murphy paper
mtg 3: LogoChip & Bus Devices
metacricket paper html pdf
UML305DEV board assembly pdf manual pdf LogoChip
  download html
  start pdf
  intro pdf
  tech pdf
  lang ref pdf
  PIC 16F876 pdf
lab 3 html
mtg 2: Ambient Displays
  lab 2 html
mtg 1: Handy Cricket
  lab 1 html
     reference pdf
     inside-hc pdf
resources student pages project movies ikonboard LogoChip links

91.548 Lab 1: The Handy Cricket

due February 5

  1. Experiment with the Handy Cricket and the Cricket Logo software. Play with motor and sensor commands. Display sensor data back on the the Cricket Logo screen.

  2. Experiment with the Cricket's IR communications primitives send, newir?, and ir. Get one Cricket to trigger another Cricket to do something.

  3. Create a multi-Cricket application whereby the Crickets pass a software token from one to another (“multi” >= 2). When a Cricket has the token, it should display some behavior to make this evident (e.g., beeping or turning on a motor output). Then this Cricket should be able to pass the token to another Cricket. Are there any problems in accomplishing this? Are the problems of a fundamental nature, or just implementation details?

  4. Devise an experiment to determine if Cricket Logo arrays use 0 or 1 as an index for the first array element. (The Cricket Logo documentation does not specify.)

    You may wish to refer to the Cricket memory map at http://handyboard.com/cricket/tech/. See also the Cricket Logo commands “examine byte” (eb) and “deposit byte” (db).

  5. Put a program on the Cricket that continually transmits sensor values (e.g., loop [send sensora]). Write a program that runs on a conventional desktop/laptop computer or a PDA that reads these values off the serial port* and displays them in some visual fashion (e.g., the music visualizations made by your desktop MP3 player).

    * Note: Open the serial port with settings 9600-N-8-1.


    If you get done with all of the above, then:

  6. Read the information at http://handyboard.com/cricket/tech/ regarding the Cricket's byte code language and communications protocol. Write an application that interacts with the Cricket and causes it to turn on its motor port. The sequence of steps is as follows:

    1. Open the serial port for 9600-N-8-1 communications.
    2. Go through the cricket-check sequence and retrieve the decimal 135 acknowledgment value. Make sure to trap and discard the hardware and software echoes.
    3. Use the set-pointer command to point to an arbitrary address in memory.
    4. Load in the code for a, on.
    5. Set the pointer back to the initial location of the code.
    6. Send the run command.

For each of these exercises, prepare up a written description and/or circuit diagram and/or code listing (as appropriate) explaining what you did and how you came to believe your interpretation of what was going on was correct.

Last modified: Thursday, 29-Jan-2004 16:52:09 EST by fred_martin@uml.edu