Embedded Programming - single pixel touch edition
Under construction!
Welcome to the Fablab (Fabrication Laboratory) workshop Embedded Programming - single pixel touch edition This page has everything you need to get started.
This is a dogma workshop. The dogmas are:
1) The purpose is to learn programming. The vehicle to learn programming is a playful touch installation, which can be fun or a game or art or practical.
We will also learn a bit of design and a little little bit of soldering and laser cutting and CNC (computer numerical controlled) milling), so you can start using the Fablab afterwards, but the main focus is programming.
2) You get a kit consisting of an ESP32 microcontroller (a tiny computer the size of a credit card), a USB cable, the Arduino IDE (integrated development environment), some wire, and 1.5 meters of neopixels (individually controllable LEDs (Light Emitting Diodes)), and a stand (CNC/Laser cut yourself) to hang the single strand of neopixels up on so it looks good for showtime.
3) The workshop is documented on this web page. There is not much elsewhere. It is a big wall of text. Use the search function in your browser to find things (ctrl+F)
Practical/time/schedule:
The workshop is these days (fall 2024):
- Mon 30/9
- Tue 1/10
- Wed 2/10
- Thu 3/10
- Fri 4/10
- Mon 7/10
- Tue 8/10
- Wed 9/10
- Thu 10/10 Feature freeze, get finished
- Fri 11/10 Showtime
The workshop is in Fablab building 9.1
Every day the time schedule is:
- 0945 turn up, open your computer, connect power, talk to other students
- 1000 teaching starts. Teaching is about 1000-1100. It is vital you are there at 1000 as otherwise we will explain things 10-11, then have to explain it 5 times again personally to those who were not there - taking 5 times longer and therefore negatively affecting the whole workshop and everyone on it :)
- 1130-1215 Lunch
- 1530 Finished
Design:
You can design anything you want, within the dogma. Think about what you want to achieve. Do you want to make something practical? Invite playful interaction? Make a game? Make art?
Examples of things that are possible:
- You make an interactive installation, where colours, speeds, patterns are affected by user input - in a playful, artistic way.
- You make an interactive installation, where colours, speeds, patterns are affected by user input - in a clear user interface it is important that people understand what they can do and the direct affect of their input.
- You can make a practical thing that measures the water level in an aquarium tank and displays it
- You can make a practical thing "how happy am I today" or "is the toilet occupied"
- You use a whole week nerding the most beautiful possible algorithmically generated artistic coloured light pattern
- Make a lamp that gives a good ambiance in a room - a few differenct calming colours, a sunrise "wake you up slowly lamp"
- A "single pixel game" - you only have one row of pixels availabel, but one pixel could battle another pixel and win or loos ground, or you could explore how games like tennis, pool, pong or tetris could be re-imagined along one dimension
- You can cooperate with others on the workshop
- Display eg. weather or amount of green energy in the electricity grid (only possible if there is an easily usable API (application programmers interface) available on the internet)
Physical design:
- Input: you can do whatever you want. There are 9 touch pins available pinout pdf You can use wires, aluminium foil, apples, fruit, hand holding, metal sculptures, ear rings, water, a potted plant etc. as the input device(s)
- Output: as part of the workshop we will CNC cut a vertical stand for the neopixels, so all groups can look the same if they want. If your design calls for something else (wrapping your neopixels around your torso or hat) go for it.
Preparation before the workshop:
- Install the Arduino IDE (integrated development environment) from https://www.arduino.cc/en/software (you do not need to pay)
- Install the ESP board definitions
- Install the FastLED library
- See video about Arduino
- See video about programming
- Install Inkscape (a free 2D vector drawing program) from https://inkscape.org