Product

The i*CATch Wearable Computing Toolkit

Image

• Introduction

The i*CATch toolkit was developed to make wearable computing accessible to everybody, and especially to make it easy to use in the classroom. It is designed to be plug-and-play, and has a high degree of reusability (we can usually manage over 99% survival rate for our modules). We have used it in multiple classroom settings so far with good results.

We have successfully manufactured the i*CATch toolkit using fairly conventional manufacturing techniques, and therefore we can offer the toolkit to interested parties. We're working out purchase logistics right now, but if you are interested in getting a set, please contact us at csetoy_at_comp.polyu.edu.hk (replace the " _at_ " with the usual "@" symbol). A standard set includes a construction platform bus, the main board, a serial adaptor for USB, a light sensor, an ultrasonic sensor, a switch, an LED module, a buzzer and a vibration motor. We will also do our best to accommodate different modules.

• Publication

Grace NGAI, Stephen C.F. Chan, Vincent T.Y. Ng, Joey C.Y. Cheung, Sam S.S. Choy, Winnie W.Y. Lau and Jason T.P. Tse. "i*CATch: A Scalable, Plug-n-Play Wearable Computing Framework for Novices and Children". Proceedings of the Twenty-Seventh Annual SIGCHI Conference on Human Factors in Computing Systems (CHI 2010) Atlanta, GE: April 2010. Honorable Mention Award. [PDF]

• Getting started: Arduino programming (only Arduino version 0012 or above is supported)

The best way to get started is to install and run the sample program that is provided. It is a very simple program that tests each of the modules in turn.

  1. Download and install the Arduino IDE
  2. Download and unzip the i*CATch library to your hard drive. It contains code that the Arduino needs to recognize the i*CATch sensors.
  3. Copy sensor.h and sensor.cpp to your Arduino setup path (on Windows, it is likely to be something like C:\arduino-0012\hardware\cores\arduino\)
  4. Download and open the Sample Code in the Arduino IDE.
  5. Use the serial adaptor and connect the USB cable to the i*CATch main controller board
  6. Select the correct settings on the Arduino IDE. (Under Tools→Board, pick "Lilypad Arduino with ATMega128", under Tools→Serial Port, pick the correct COM port of your USB connection.)
  7. Press the upload button on the Arduino IDE and the Reset button (on the right hand of the i*CATch main board) to compile and download the program into the i*CATch main board.
  8. Connect the main board, the power supply and the necessary modules to your construction platform (the sample program uses the following modules: ultrasonic sensor, light sensor, infrared sensor, switch, vibration motor and the buzzer).
  9. Keep the USB cable connected to the main board and press the serial monitor button on the Arduino IDE (baud rate: 9600). This opens the serial monitor window that will show the textual output from the program.
  10. The program will start running.

• Getting Started: i*CATch Hybrid Text-graphical Integrated Development Environment

The hybrid text-graphical IDE is another way to program the i*CATch toolkit.

• Getting started: Programming in Python

The i*CATch toolkit is also designed to be programmable in Python. Unlike programming using the Arduino IDE or the i*CATch IDE, the Python code is not native to the Arduino. Rather, the Python program runs on the desktop computer, which then sends commands to the i*CATch main board via a serial (wired or wireless) link.

Programming in Python via "remote control" offers some advantages over programming directly onto the Arduino board, especially for teaching programming. Mainly, print() statements can be used for user I/O and debugging, which is a great help!

Because of the pyserial Python serial library, right now, programming in Python for i*CATch is only possible on a Windows platform. We hope this changes soon, keep your eyes on this page for updates.

Getting Started with programming in Python:

  • Download and install Python (version 3.0 or later).
  • Download and execute the Python Serial Library (pyserial, Windows only, Python 3.1 version or above.), which will install the serial libraries for Python.
  • Download the Python i*CATch library and move it to the directory where the Python libraries are located (On Windows, it is something like "C:\Python31\lib\")
  • Decide what mode of communication you are going to be using between your desktop and the i*CATch main control board. Anything that can emulate a serial link (and can connect to the main control board) should work; we have successfully used Bluetooth and Zigbee; USB should also work.
  • Connect the communications device to the serial port on the main board on the "left hand" of the figure (example). If you're using Bluetooth, pair that device with your desktop's Bluetooth connection.
  • Check and write down the name of the communication channel on your computer (on Windows, it will be something like "COM40", you should be able to get that under the Control Panel.)
  • Download the sample Python program and modify the parameter in the connect() method.
  • Start running the program. Enjoy!

Now that you have gotten started, here's the iCATch API in Python

 

• I2C Addresses for Hardware Modules

I2C requires that each module has its own address. Here are the Module Addresses for each module.

• Getting your own kit

We have successfully manufactured the i*CATch toolkit using fairly conventional manufacturing techniques, and therefore we can offer the toolkit to interested parties. We're working out purchase logistics right now, but if you are interested in getting a set, please contact us at csetoy _at_ comp.polyu.edu.hk (replace the " _at_ " with the usual "@" symbol). A standard set includes a construction platform bus, the main board, the serial adaptor for USB, a light sensor, an ultrasonic sensor, a switch, an LED module, a buzzer and a vibration motor. We will also do our best to accommodate different modules.

• Building your own construction platform

More to come later...

• Making your own modules

More to come later...