Differences between revisions 4 and 5
Revision 4 as of 2015-02-01 23:09:55
Size: 11778
Editor: JunHu
Comment:
Revision 5 as of 2015-02-01 23:16:11
Size: 9798
Editor: JunHu
Comment:
Deletions are marked like this. Additions are marked like this.
Line 79: Line 79:
  * uses a webcam to capture movements as input, and   * uses mouse or keyboard input, and
Line 81: Line 81:
 * Examples for inspiration

  * <<YouTube(NwVBzx0LMNQ)>> (Minority Report, or watch it from [[http://player.youku.com/player.php/sid/XMzEyNDg4ODQ4/v.swf | here]].

  * <<YouTube(dyMVZqJk8s4)>> (Minority Report in reality)
Line 90: Line 85:
   * [[attachment:Week2-ObjectOrientation.pdf | Presentation]]
   * [[attachment:Week2-ObjectOrientation-Examples.zip | Examples]]
   * [[attachment:objectorientation.pdf | Presentation]]
Line 94: Line 88:
   * [[attachment:Week2-GUI.pdf | Presentation]]
   * [[attachment:Week2-GUI-examples.zip | Examples]]
  * Computer vision (movement detection) using Myron
   * Library: [[http://webcamxtra.sourceforge.net/download.shtml|JMyron (WebCamXtra)]], or [[attachment:JMyron.zip]]
   * If the camera image is mirrored and you can not adjust it from the settings of the camera, you might need [[http://download.cnet.com/ManyCam-Virtual-Webcam/3000-2348_4-10593500.html|ManyCam Virtual Webcam]].
  * For Windows platforms: If you got an error message saying "JMyron.dll can not find dependent libraries" or something similar, please check first whether you have copied the DLL's to required directory. If you are sure you have done it correctly, follow the following steps to install additional DLLs:
   * Download [[attachment:msvc71.zip]]
   * unzip it, copy both {{{msvcp71.dll}}} and {{{msvcr71.dll}}} to
    * {{{C:\Windows\system}}}, if you are running 64bit Windows.
    * {{{C:\Windows\system32}}}, if you are running 32bit Windows.
  * For Mac OS X platforms:
    * Intel (most newer Macs): first unpack and install [[attachment:JMyron.zip]], THEN replace the file "libJMyron.jnilib" in the folder JMyron/library with the file from [[http://www.jibberia.com/projects/libJMyron.jnilib.zip|here]]
    * PowerPC (old Macs only): you can use [[attachment:JMyron.zip]] without any changes
  * 3D Graphics
   * Examples>Books>Getting Started>Chapter11 (example 01-03)
   * Don't worry, if you are new to 3D geometry, you may ignore this part for the time being.
   * [[attachment:GUI.pdf | Presentation]]
   * [[attachment:GUIExamples.zip | Examples]]
Line 113: Line 94:
  * If certain topics of the book ''Getting Started with Processing'' are not detailed enough for you, try to look for the same topics in the book ''Learning Processing''.
Line 115: Line 95:
  * For more about controlP5 and Myron, refer to the documentations and examples.   * For more about controlP5, refer to the documentations and examples.

Creative Programming and Embedded Systems 2015

(c) 2015 Jun Hu

In the module Creative Programming and Embedded System we will learn how to make experiential prototypes with visuals, sensors, actuators and computation. The module consists of lectures that covers topics such as structural programming, object oriented programming, GUI, computer vision, 2D and 3D graphics, micro-controllers, serial communication, networking and internet of things. Students are challenged to deliver a static art work in Processing, and an interactive prototype using both Processing and Arduino. The module takes 2 weeks, in which 30% of the time is used for lectures, and the rest for students to work on the challenges.

  • /!\ Please notice that the planning and the content of the course is subject to frequent change. Please do check back often.

  • Please bring a laptop with you to the class. Windows is preferred.
  • Please bring with you the power adapter for your laptop.
  • /!\ Before you come to the first lecture, please download the following files to your laptop:

    • Download the Processing programming environment. Or go to the Processing website, download it from there. Do not download the version "without java". Having downloaded it, leave it on your computer and do not install it yet. We will do it together during the first lecture.

  • It would be convenient to have hard copies of these books. Please see below the references for the details. You can buy these books from http://www.amazon.com/

  • Before you come to the lecture for the third part, please
    • download and install Arduino: http://arduino.cc/en/Main/Software. It would be convenient if Arduino is installed at the same place you installed Processing.

    • Bring your Arduino starter kit to the class.

1. Schedule

DATE

TIME

ACTIVITY

Monday, Dec 9

9:30 - 12:00

Part 1 Lectures

Tuesday, Dec 10

13:00 - 15:30

Part 1 Lectures

Wednesday, Dec 11

13:00 - 15:30

Part 2 Lectures

Thursday, Dec 12

9:30 -12:00

Part 2 Lectures

Thursday, Dec 12

14:00 -16:00

Help upon request

Friday, Dec 13

14:00 - 15:30

Presentations of Part 1

Monday, Dec 17

13:00 - 16:00

Part 3 & 4 Lectures

Tuesday, Dec 18

9:00 -10:00

Help upon request

Tuesday, Dec 18

15:30 -17:00

Help upon request

Wednesday, Dec 19

13:00 - 15:30

Part 4 Lectures

Thursday, Dec 20

9:00 - 10:00

Help upon request

Friday, Dec 21

13:00-15:00

Presentations of Part 2/3/4

2. Part 1: Processing Basics

2.1. Challenge

  • Creating static visual arts. At the end of this part, every student is expected to be able to
    • Create an artistic poster that demonstrates beauty and complexity, using Processing
    • Print the result and present with a frame, or on a form board.
  • Examples for inspiration

idi-examples.jpg

attachment:triangles.pdf

2.2. Skills needed to meet the challenge

2.3. Extra reading

  • Read the Chapters 1, 2, 3, 4, 6(Fonts), 7(Translate, Rotate, Scale), 8, 10(Make an Array, Repetition and Arrays) and 11(Image Export) from the book Getting Started with Processing. Try to experiment with the examples.

  • In the example for PDF output (TriangleFlowerPDF.zip), we used a recursive function call to triBlur(). What is a recursive function call? Read 13.10 Recursion (p.216-220) in the book Learning Processing.

    • attachment:RecursivePhotos.jpg

3. Part 2: Processing Advanced

3.1. Challenge

  • Create interactive visual arts. At the end of this part, every student is expected to be able to create an interactive installation that
    • uses mouse or keyboard input, and
    • as output, dynamically render visual arts in real time as output.

3.2. Skills needed to meet the challenge

3.3. Extra reading

  • Try to complete the book Getting Started with Processing, except section "Hello Arduino" in Chapter 11. If you encounter difficulties, do not stick to it. Mark it, leave it and continue reading. You may visit the marked parts later when you gain more confidence.

  • Pay attention to the topics about images. We did not cover them in the lectures. You have to learn it yourself if you need them.
  • For more about controlP5, refer to the documentations and examples.

4. Part 3: Introducing Arduino

4.1. Challenge

  • Create interactive visual arts. At the end of this part, every student is expected to be able to create an interactive installation that
    • uses sensors connected to Arduino as input
    • as output, dynamically render visual arts in real time as output.
  • Or pick up an interesting example from the book Make Things Talk, modified for a different purpose, using different sensors and actuators.

4.2. Skills needed to meet the challenge

  • Understand the basics of the Arduino Hardware
  • Be able to program and debug Arduino
  • Be able to connect Processing and Arduino using Seiral libraries

    Presentation

4.3. Extra reading

  • Getting Started with Arduino

  • Getting Started with Processing, chapter 11, section Hello Arduino.

5. Part 4: Advanced topics

5.1. Challenge

  • Create interactive visual arts. At the end of this part, every student is expected to be able to create an interactive installation that
    • uses sensors connected to Arduino as input
    • The input is then transferred to a remote computer (using either Client/Server networking or Pachube service)
    • as output, dynamically render visual arts in real time as output.
  • Or anything else that is interesting and that integrates Arduino, Processing and networking.

5.2. Skills needed to meet the challenge

5.3. Extra reading

6. References

Websites
  • Processing

  • Arduino

  • Books
  • Getting Started with Processing, by Casey Reas and Ben Fry. Published June 2010, O'Reilly Media. 208 pages. Paperback. GSProcessing.pdf

  • Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction, by Daniel Shiffman. Published August 2008, Morgan Kaufmann. 450 pages. Paperback.

  • Getting Started with Arduino, by Massimo Banzi, Publisher: O'Reilly Media / Make, Released: December 2008 GSArduino.pdf

  • Making Things Talk: Practical Methods for Connecting Physical Objects, by Tom Igoe, Publisher: O'Reilly Media / Make, Released: September 2007

  • CreaPro: CreativeProgrammingAndEmbeddedSystems2015 (last edited 2015-02-10 23:41:16 by JunHu)