How does it work? (The narrative)
This is a test of a transporter unit. The subject sends up a request to be Beamed aboard. You, the transporter room operator, will Lock On to the subject’s communicator signal, and Energize their molecular structure. They will appear in the transporter room if successful, and if not will remain trapped in the signal buffer. In plain English, you press button A, and then button B, and get a result in the sketch window.
Most of my code was borrowed and somewhat modified from this tutorial here:
https://learn.sparkfun.com/tutorials/connecting-arduino-to-processing#shaking-hands-part-1
As well as Circuit_05 of our Arduino assignments.
I started with concept. Transmutation first makes me think of FullMetal Alchemist and the law of equivalent exchange. I wanted to link the analog elements on the breadboard (pushbuttons, potentiometer and possibly photosensor) to the elements needed to complete an alchemical spell. In the right order, these elements would be used up transforming Nina and her dog into the disturbing image of a Chimera (the creature I posted a gif of in my first journal on this subject). In the wrong order, they would fashion the even more horrific pile of living bones and muscles Edward and Al made when trying to resurrect their dead mother. An unpleasant result, whether you are right or wrong in the order you mixed your elements. This approach would have been a project making a statement about the nature of good intentions leading horrible places, but my actual results are more of a statement about the current reality of my life: Almost functional, and in need of troubleshooting.
While this approach suited my morbid mood and was true to my first instinct, my roommate inadvertently changed my course to another form of transmutation altogether - the cyclic nature of a transporter beam from Star Trek. Firstly, I am grateful for this because it forced me to consider what the most basic elements I wanted to focus on were and helped me realize that I was taking on far more than I could chew. In the end, this project was still overwhelming, which is something of a concern.
But because I was focused on the basics, I was able to articulate my process with much greater ease. I wanted to have two analog inputs in Arduino, and two in Processing (as I misread the guidelines) that resulted in a ‘transport’ of a character into my Processing sketch. Physical input transforms into a digital result. When it was pointed out that one of those steps was unnecessary, I scrapped the two Processing inputs to focus on making Arduino talk to Processing to make this image appear.
Most of my time was spent trying to overcome personal battles, truthfully, but in regards to my code, I managed to accomplish nearly everything I set out to do. This is not enough, in my opinion, but I have to accept that I pushed to my limit. Even though my limit falls far below my satisfaction, and the project requirements, I kept pushing, didn’t drop the class, and didn’t resort to older, unhealthier coping tactics to get through (aside from lots of ice cream). The last step I needed to accomplish would have been to convince Processing to read the println being sent over from Arduino and transfer those commands into the variable placed in my if statement. If println reads ‘CommandA/B’, perform matching action ‘A/B.’ Sadly, because this is the foundation I built my processing sketch on, nothing currently works without disconnecting the two programs, but they should both function separately. I combined the sketches that told Processing to listen to Arduino together with the sketches with my button input and image output in them together, and each functioned separately. If I did not have another project due tomorrow and need to devote time to that one now, I would be continuing to hammer away at this error, even if it meant being late. As I’m already losing marks for something incomplete, I’d rather have two incomplete projects handed in than one complete and late project, and one zero in another course.
Solutions I found were seeking help where I could (Josh Gordon, Erin Pickard), taking care of my health enough to get to a place where I could break this project down into manageable chunks, and reading online tutorials as thoroughly as I could for information on what each of my lines of code was doing. If I were to try this again, I would try using the Arduino library to bypass the Arduino window and use analogRead(sensor) directly in Processing.
http://www.instructables.com/id/Read-analog-data-directly-in-Processing/?ALLSTEPS
I’d have loved to try this method out, but it felt a little too close to cheating by not exploring what my understanding of the assignment goals were.
My aesthetic has stayed minimal for this project. I like to think of it as an early prototype of a transporter. This symbolizes a first success in not just the metaphorical transporter, but my eventual first success joining these two programs. Yes, I’m aware that transporters pre-date Voyager by a long, long time, but it amuses me greatly, and Katherine Janeway would get a kick out of being the first living being to successfully test this technology. For that reason, wires will be left exposed, components are still being added and taken away, so there are no baubles or lights to enhance its appearance just yet. It is clinical, functional, and without flair. This is meant to look like the work-in-progress that it is.
Interaction is necessary in two ways. One: the buttons require an external force to send an electrical impulse to the Arduino. The transporter requires an operator. Two: A user must press them in the correct order to initiate a transport. You cannot energize a target you have not locked on to.
My audience is my roommate, Kelsie. She and I were having a rough patch, and have been bonding closely watching Star Trek: Voyager together. She is highly amused by the abrupt turn my train of thought took thanks to her influence, and she has been a support I couldn’t have done without. I hope that she enjoys making Janeway transport around the galaxy as much as I imagine she will.
2. a parts list of all components (and quantities) used in your project.
Breadboard, Arduino circuit, Processing and Arduino software.