" /> Julian Bleecker: January 2007 Archives

« December 2006 | Main | February 2007 »

January 26, 2007

Arduino Workshop: An Introduction to Microcontrollers for Interactive Media and Art-Technology with Arduino

An Introduction to Microcontrollers for Interactive Media and Art-Technology with Arduino

Download The Arduino Workshop Notes and Tutorial Code


February 18, 2007

This one-day workshop introduces the Arduino open-source microcontroller platform, a sophisticated i/o board designed for easy development using a simple programming language and a user-friendly, cross-platform (Windows, MacOSX, Linux) free development environment.

The Arduino programming language is an implementation of Wiring, itself built on the award-winning Processing environment.

For art-technology projects and interactive media, the Arduino makes it simple to develop interactive device-art, taking inputs from a variety of switches or sensors, and controlling a variety of lights, motors, and other outputs. Arduino projects can be stand-alone, or they can be communicate with software running on your computer (e.g. Flash, Processing, MaxMSP)

The Arduino board is based on one of the more popular industry microcontroller product lines — the Atmel ATmega8. This allows users to tap into more sophisticated features of the ATMega8 as the need arises, including interrupts, SPI, TWI (I2C), USART and A2D conversion. The Arduino is also an excellent, easy entry point for rapid prototyping of concepts that may eventually migrate to a custom embedded design.

This workshop will be held at the Zemeckis Media Laboratory at the Robert Zemeckis Center for Digital Arts at 3131 South Figueroa Blvd on Sunday February 18, 2007, from 10:30-6:30.

Participation is limited to 10 members of the University of Southern California community (faculty, students, staff, etc.) Email me to confirm your participation at bleecker at usc dot edu.

You will need your own Arduino board, USB Cable (A to B), and a laptop compatible with the Arduino IDE. You will need to bring your own computer, laptop preferably.

(Caution: Order your Arduino sooner rather than later. There is at present only one supplier in the US and they tend to run out of stock at times.)

If possible, install the Arduino environment following the instructions available on the Arduino web site.

At the workshop, you will be required to purchase for yourself a small kits of parts and supplies, the approximate cost will be less than $30. The kits will be yours to keep and use in future projects.

The workshop will cover Arduino fundamentals, installing the Arduino environment, basic input/output, and physical interfaces to software (Arduino to Processing). As an option, more advanced users will work with interfacing the Arduino to external sensors using I2C protocols.

* Purchase the Arduino
http://www.sparkfun.com/commerce/product_info.php?products_id=666

* Purchase a USB Cable (A to B) if you don't already have one. Make sure it is really A to B and not mini A or another variant.
http://www.sparkfun.com/commerce/product_info.php?products_id=512

* More about the Arduino
http://arduino.cc

* More about Processing
http://processing.org

January 25, 2007

DIY Media? Fan Art in Google Earth

Fan Art In Foo Camp Google Earth Mosaic
Fan Art in Google Earth (click for the super high-res, high megabyte version)

Tom Coates reminds me that at Foo Camp 2006, "Google" flew the Google Earth Plane over the O'Reilly campus and took some pictures from the Google Eye View. Supposedly, this'll go into the real, normal, human Google Earth imagery next month (February). There's a Cylon raider in there and Space Invaders, and lots of camper's lying on their backs facing up. (I'm in there somewhere.)

Here are photos of Tom, Chris, Jane and the rest scrambling around to get it all done and patch up the pieces of paper that kept blowing away:

www.flickr.com/photos/julianbleecker/sets/72157594254983199/

Thanks Tom: www.plasticbag.org/archives/2007/01/on_space_art_in_sebas/

Technorati Tags: , , ,

Pico Cricket

For his Ph.D. work, Jean-Baptiste Labrune has captured some cool line-ups of a trio of tinkerers microcontrollers for young and old.

The Pico Cricket there in the middle is something like the Lego building block approach of microcontroller tinkering. It looks nice and inviting, whereas the Arduino and Arduino Mini are cool but sort of feel like they could nick you like a barb if you're not careful. Both devices are great ways to learn how to make your own stuff, which is what matters most nowadays — making your own fun things, distractions, pet toys and devices.

The Pico Cricket comes with a bunch of sensors you can connect to, whereas with the Arduino, you'd have to construct your own electronics to sense anything. Pico Cricket seems like a great environment for younger kids just learning about how things can be connected to other things so that stuff can happen. Word is, Pico Cricket and a fist full of sensors will set you back about $200.

Check out Jean-Baptiste's research blog for much more insight.

Backyard SMT Work

No-Lead, Room Temp Solder Paste

I put together an informal little application note on working with surface-mount technology in your backyard. Mostly it's my experience based on techniques I learned from others, and some links to supplies. It's remarkably easy, or easier than I imagined it would be. As I've been told, and have now proven to myself, anyone with decent craft-working skills, patience, a set of tweezers and one of those jeweler's head-rigs can make small things relatively easily.

January 24, 2007

VXML Grammar Support

Here's an example of a VXML using a grammar with options:

<!DOCTYPE vxml 
   PUBLIC "-//BeVocal Inc//VoiceXML 2.0//EN"
   "http://cafe.bevocal.com/libraries/dtd/vxml2-0-bevocal.dtd">
 <vxml version="2.0" 
   xmlns="http://www.w3.org/2001/vxml"
   xml:lang="en-US">
<property name="nuance.core.tts.ResourceName" value="en-US.English-Male2"/>
<property name="inputmodes" value="voice"/>
<!-- this is generated dynamically during the IVR session -->
<!-- it's the caller id, essentially -->
<var name="caller_min" expr="session.telephone.ani"/>
<var name="number_dialed" expr="session.telephone.dnis"/>
<property name="termtimeout" value="0.1"/>
<!--property name="interdigittimeout" value=".5"/-->
<!--property name="termchar" value=""/-->
<property name="bargein" value="true"/>
 <link next="/class/index.jsp">
 <grammar version="1.0" mode="voice">
  [ (again) ]
 </grammar>
</link>
<link next="alav_intro.jsp">
  <grammar type="text/gsl">
    [ (reload) (dtmf-1 dtmf-1 dtmf-1) ]
  </grammar>
</link>
<link next="hangupandcleanup.jsp">
  <grammar type="text/gsl">
    [ (reset) ]
  </grammar>
</link>
<catch event="connection.disconnect.hangup">
    <data name="hangupandcleanup" src="http://alavs.techkwondo.com/hangupandcleanup.jsp"/>
</catch>
<catch event="error">
    <data name="hangupandcleanup" src="http://alavs.techkwondo.com/hangupandcleanup.jsp"/>
</catch>
<form id="question_1_friend_individual">
 <property name="timeout" value="15s"/>  
 <catch event="nomatch" cond="true" count="1">
<prompt bargein="true">Sorry, I can only recognize numbers between two and seven feet. Please try again.</prompt>
 </catch>
 <catch event="nomatch" cond="true" count="2">
<prompt bargein="true">Sorry, I didn't understand you. I am assuming you are three two.</prompt>
   <goto next="question_2_friend_individual.jsp?feet=3&amp;inches=2"/>
 </catch>
   <field name="F_1">
       <!-- Can you tell me how tall you are in feet and inches?.. -->
<prompt bargein="true">Can you tell me how tall you are in feet and
inches? For example, say five seven.</prompt>
   <grammar xml:lang="en-US" root="TOPLEVEL">
    <rule id="TOPLEVEL" scope="public">
      <item>
          <ruleref uri="#FEET"/>
      <tag>assign(feet $return)</tag>
          <ruleref uri="#INCHES"/>
      <tag>assign(inches $return)</tag>
      </item>
       <!-- TOP LEVEL RETURN -->
       <!--tag><![ CDATA[ <F_1 strcat($feet, $inches)> ]]></tag-->
       <tag><![CDATA[ <F_1 (strcat(strcat("feet=" $feet) strcat("&amp;inches=" $inches)))> ]]></tag>
     </rule>
   <rule id="FEET" scope="public">
     <one-of>
          <item> two 
            <tag> return (2) </tag>
          </item>
          <item> three 
            <tag> return (3) </tag>
          </item>
          <item> four 
            <tag> return (4) </tag>
          </item>
          <item> five 
            <tag> return (5) </tag>
          </item>
          <item> six 
            <tag> return (6) </tag>
          </item>
          <item> seven 
            <tag> return (7) </tag>
          </item>
       </one-of>
     </rule>
     <rule id="INCHES" scope="public">
        <one-of>
          <item> one 
            <tag> return (1) </tag>
          </item>
          <item> two 
            <tag> return (2) </tag>
          </item>
          <item> three 
            <tag> return (3) </tag>
          </item>
          <item> four 
            <tag> return (4) </tag>
          </item>
          <item> five 
            <tag> return (5) </tag>
          </item>
          <item> six 
            <tag> return (6) </tag>
          </item>
          <item> seven 
            <tag> return (7) </tag>
          </item>
          <item> eight 
            <tag> return (8) </tag>
          </item>
          <item> nine 
            <tag> return (9) </tag>
          </item>
          <item> ten 
            <tag> return (10) </tag>
          </item>
          <item> eleven 
            <tag> return (11) </tag>
          </item>
        </one-of>
      </rule>
   </grammar> 
   <filled>
     You said you are <value expr="$feet"/> <value expr="$inches"/> <value expr="F_1"/> tall.
     <!--goto expr="'question_2_friend_individual.jsp?'+F_1"/-->
   </filled>
  </field>
 </form>
   <!--choice next="question_2_friend_individual.jsp?feet=2&amp;inches=7">2 feet 7 inches</choice-->
<!--/menu-->
<form>
 <block>
    <data name="hangupandcleanup" src="http://alavs.techkwondo.com/hangupandcleanup.jsp"/>
 </block>
</form>
</vxml>

January 9, 2007

CTIN405 Spring 07 — Course Reader & Syllabus

Here is the course reader for CTIN405, Design and Technology for Mobile Experiences, Spring 2007.

Download file

Here's the syllabus:

CTIN406 Design and Technology for Mobile Experiences Syllabus