Foreword - prisonerjohn/sensing-machines GitHub Wiki

Introductions

A bit about me:

A bit about you:

  • What did you do before ITP?
  • Tell me about your programming experience.
  • What are you hoping to get out of the class?

Senses

What is a sense?

A capacity that allows organisms to perceive the conditions or properties of things, either around them or internally.

Human senses

We have traditionally only considered five human senses:

  • Sight
  • Hearing
  • Smell
  • Taste
  • Touch
Which of these would you say we use more predominantly?

Neurologist Dr. Wilder Penfield conceived the Sensory Homuncilus, a physical representation of how the human body would look if the various body parts were sized in proportion to the cortical area used for their specific sensory functions.

| A 2-D cortical sensory homunculus{:height="360px" width="360px" text-align:"center"} | 3-D interpretation by Sharon Price James{:height="360px" width="360px" text-align:"center"} |

This is a simplification, but demonstrates that touch is the most predominant sense, followed by taste, hearing, smell, and finally sight.

We also have many other senses, which we use in our daily life but are less obvious:

  • Equilibrium
  • Temperature
  • Pain
  • Thirst and hunger
  • Direction
  • Time
  • Etc.

Modeling machines

In order to get machines to understand their environment, we tend to outfit them with sensors that are similar to our own senses.

What are some sensors that we use on computers?
  • Sight
    • Digital camera
    • IR receiver
  • Hearing
    • Microphone
  • Touch
    • Trackpad
    • Pressure sensor
  • Equilibrium
    • Gyroscope
  • Direction
    • Magnetometer
    • Compass

You've probably used some of these in your previous classes and projects.

The right tool for the job

The focus of Sensing Machines will be to use sensors with computers (rather than microcontrollers), for the purpose of building successful interactive experiences.

The devices we will use will have SDKs (software development kits) and interfaces for many platforms and languages. This is great as it allows us to use a tool or language we are already familiar with, however some tools are better suited than others for specific tasks. For example, Python is great at text and language processing, Max is best at sound analysis, and Unity is ideal to get up and running with VR.

I would like to invite you to try some of these different tools in this class, and not just stick to well-known and "safe" ground. A lot of these platforms use very similar paradigms, and the difficulty of moving from one to the other tends to be more about getting familiar with a new environment and different coding syntax than anything else.

As we go through the material, I will prepare code examples using the tool that I think is best for the job, as well as p5.js (where it makes sense). About halfway through the semester, we will have a lecture on communication, where I will show you various ways to have different pieces of software and hardware "talk" to each other.

You are expected to use these tools for your assignments and projects!

⚠️ **GitHub.com Fallback** ⚠️