In this assignment we are going to experiment connecting our Arduino to a p5.js sketch.
You can start by cloning our HW13 template into a repository called HW13
. This has example code for sending data from the Arduino to the p5.js sketch using JSON strings. You can use a different strategy, this code is here mostly as a placeholder and example.
If you decide to use JSON strings, you’ll have to install version 6.21.5 of the ArduinoJson library by Benoit Blanchon via the Arduino IDE.
Use Brightspace to submit a link to your repository and a video of your project working. The video should be 15 to 30 seconds long and you can upload the file to Brightspace or host it somewhere else and submit a link.
Include the following in your README file:
This assignment will be graded on a scale from 0 to 10, taking the following criteria into account:
README.md
file with information about the circuit and a drawing of the circuit.Pick a previous assignment and add a physical computing component to it.
Maybe one of the first assignments we did could benefit from a potentiometer or a button. Maybe the Sol LeWitt sketch from HW04B, or some aspects of HW03A or HW03B could be parametrized to read an input from the Arduino.
You don’t have to modify a very complex sketch; try one of the earlier homeworks. You don’t have to add multiple inputs, but try to use 2 to get some practice with serial communication of multiple values.
The physical input should change something significant about the sketch, not just the background color.
Our final project is an opportunity to combine everything that we’ve learned so far to create a piece of work that showcases not only our technical knowledge, but also our design skills, and ability to think critically while making connections between our readings and our practice.
For full credit projects should have a physical-computing aspect, and an audio or visual aspect, so this means using both an Arduino for input or output, together with a p5js sketch. Projects also have to have custom functions, arrays, objects or classes, for()
loops and if()
statements, and demonstrate forethought and planning. At the same time, we’re expected to go beyond the basic concepts of programming, so use of external libraries is extremely encouraged.
Before starting work on Milestone 03, your repository should have a README.md
file with the following information from Milestone 02:
For this week’s milestone you will further develop your project by working on its code and circuit.
Your code doesn’t have to be final, but all the major pieces should be in place, with pseudcode where appropriate, and it should be easy to see how you will finish it in the next week.
By this milestone your repository should have:
This will include a short presentation and demo during class, final code review and a final writeup.