## Reactive Light

In planning out electronic projects it is important to think in terms of systems. When designing for experiences, it is equally important to consider human interaction as a component of the system. How will people interact with the system? What behaviors will they engage in, and what are the intended emotions?

Electronic systems consist of the following components:

* Outputs - electro-mechanical, screens, etc.
* Controls - microcontrollers, mosfets
* Communications - protocols, IOT, networks
* Sensors - measures, analog and digital
* Power - source and conversion

### Circuit Playground Express

The CPX provides a nice example of an all-in-one environment for experimenting with the design of systems, as it has most of the five necessary components built-in.

Outputs:

* Neopixels (light)
* Mini speaker

Communications:

* infra-red (not much)

Sensors:

* accelerometer (w. tap and freefall detection)
* light sensor
* sound sensor
* temperature sensor
* capacitive touch
* infra-red proximity
* slide switch
* 2 x push buttons

Controller:

* ATSAMD21 ARM Cortex M0
* 2MB flash storage
* Circuit Python, Javascript, C
* Built-in UART
* CSB - appear as various devices

Power:

* Built-in voltage regulator
* Micro USB port

The CPX provides a great introduction into planning and trying out systems, because it has a lot packed into it, with one exception. It is not good at communications/networking, as it has no buil-in radio or ethernet connection.

In this scenario, it is most common to team up the controller with another device that does have communications capability, such as a single-board computer. The CPX can communicate by serial through the USB port, and the SBC can then handle networking and communications (as we did with our MQTT experiments the previous month.)
