Monday, August 17, 2020

Touchless Phone

 


Prompt: Modify a phone to play back a message when you get close to it. Incorporate some lights that make people want to get closer to look at it.

Step 1: Define the Logic


Step 2: Identify the parts

- Enclosure (Phone)
- LED
- Power Supply
- Speaker
- Sensor
- Microcontroller





Step 4: Create the Wiring Diagram


Step 5: Make the prototype






Step 6: Program the Microcontroller & Test




Next Steps: Create a production quality prototype for play testing


Back to the Macro: Design Topology for my project

 


This is a diagram that allows you to visualize the overall network of components, computers, Microcontrollers, and software in the project. This will be expanded on later, but illustrates the current state of the network design, which in turn informs decisions about construction, material choice, and programming. It's worth noting that the Arduino Nano was not used... Instead, I opted for the ESP32 and RPi Microcontrollers due to familiarity and potential for future projects.

Starting with the ESP32: like learning to drive a truck after driving a car.


OLIMEX ESP32-POE-ISO

It's Alive!!! As explained in my last post, I had to go back to the beginning with this board in order to understand it and development more complex projects. I'm using the Arduino IDE on my MacBook Pro to create a Python3 sketch and flash it (via serial connection over usb) to the ESP32, which has been wired up with an LED on a development board. 


The next step was to integrate a switch that would be read by a GPIO, triggering another GPIO to turn on / off an LED. This is what the development board looks like:

You may notice that the red and white wires are attached to a 1/4" instrument jack & cable. This is sent to the physical foot switch plate that I've been working on.



The right Microcontroller for the Job

 Raspberry Pi VS Olimex ESP32-POE-ISO


Size DOES matter... But it's not the only consideration. My foot sensor design required a small Microcontroller with power over ethernet and a few GPIO pins for the sensor and possibly an LED or two. In reality, both of these boards are overkill, but work well due to availability, cost, build time, and current knowledge of components and programming. In the future, I'd like to design a small board with only the essential components for the foot sensor. 

Living in the moment... Time is a factor, and I don't have all the time in the world to learn new Microcontrollers, coding languages, etc. I need to create stuff now! While Raspberry Pi (RPi)is already becoming a tool in my tool belt, I recognize the benefits of learning the ESP32, as it is becoming more popular and at a fraction of the cost of the RPi. Of course, that meant starting fresh with projects like lighting up an LED. In a nutshell though, syntax is the real difference. The board has GPIO pins, and makes a serial connection to my laptop via USB cable. The big difference to me was that it doesn't have removable storage like the RPi. This required me to learn the Arduino IDE, which had to be updated with a driver for the ESP32 (available from the Climax website) in order to flash the memory.

Another challenge was understanding what all the pins were for on the ESP32... The internet has been the most useful asset for learning how to use ESP32, as it isn't mentioned in any of the book I already had. The pinout chart is probably the most important single piece of information that I needed.



Olimex ESP32-POE-ISO

https://www.olimex.com/Products/IoT/ESP32/ESP32-POE-ISO/open-source-hardware


RaspberryPi

https://www.raspberrypi.org







Designing for Handsfree Interaction

 

COVID-19 Image
https://www.brookings.edu/research/the-military-policing-and-covid-19/

COVID-19 has changed the way we interact in society. We all have to do our part to reduce the spread of this disease. The impact has been felt world wide, and changes are being made in the way we live, work, and play. As a designer, methods of interaction are an important consideration. Especially when it comes to public spaces... Fortunately, "hands-free" is good for accessibility as well. 

As a creative technologist intern, I was tasked with designing and prototyping a sensor that would be hands free and accessible. There were also a few other requirements regarding network topology and interaction/ communication across a LAN (Local Area Network). From a form factor perspective, I gravitated towards developing a pressure sensitive plate or foot-switch that could be stepped on or rolled across with a wheel chair. This meant that the sensor would have to have a low profile, sensitive enough for a small child to activate, and rugged enough to withstand up to 350 lbs. Capacitive touch seemed like a possible solution at first, but ultimately a simple switch plate ended up working best. 

The sensor itself is quite simple and rugged, but the Microcontroller is less so. Initially, I wanted to integrate the Microcontroller into the body of the sensor. With nearly a 1" height requirement, I chose to separate the Microcontroller from the sensor. I decided on using 1/4" audio jacks and cables to connect between them. An advantage to this method is the low cost readily available parts, and the ease and expediency of replacing a damaged foot-switch sensor over the 5 year expected life span of the installation. As with all good ideas, it needed to hold up to prototyping and testing. This meant researching conductive materials, non-conductive materials, and acquiring them. Cost is always a factor, so I chose inexpensive materials whenever possible. Most of the materials came from either Adafruit.com or amazon.com. The materials that worked best and are most crucial to my design are the wet suit like neoprene, and the self adhesive conductive foil (copper).

Copper Foil Tape with Conductive Adhesive - 6mm x 5 meters long

PRODUCT ID: 3483
https://www.adafruit.com/product/3483


Lazy Dog Warehouse Neoprene Sponge Foam Rubber Sheet Rolls 15in x 60in (1/8in Thick) 
$14.80



Arduino IDE: Writing python sketches for Microcontrollers

 


ARDUINO 1.8.13
"The open-source Arduino Software (IDE) makes it easy to write code and upload it to the board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing and other open-source software. "

Go to the Getting Started page for Installation instructions.

The Arduino IDE has been an excellent solution for creating python sketches on my MacBook Pro and testing them with the Raspberry Pi & ESP32-POE-ISO Microcontrollers. Python was an obvious choice since it is native to all of the Microcontrollers used and can be used in TouchDesigner, MSP/MAX, and Processing, and there are a ton of open source libraries and resources available. The main reasons I went with the Arduino IDE is because it was familiar to the other programmers that I've been interacting with as an intern at a startup company. The other reason was because it's open source, easy to use, and is cross platform (meaning it works with OSX, Windows, and Linux). As a creative technologist intern, I have to create prototypes and code them in a way that allows smooth integration into a larger network of devices throughout a 12,000 sq ft space.

When prototyping & debugging, I've been able to quickly alter code and write to the board, which has allowed me to see results almost immediately. A lot of things look great on paper, but until you actually try it/ do it, you don't really know. 


Changing focus: micro to macro / macro to micro

 FOCUS

Where do I need to concentrate and invest my efforts? With such a broad area of possibilities in this independent study, asking this question is crucial to maximizing time and resources. This early discovery is informed by the numerous possible solutions to any given problem. Outliers: The Story of Success by Malcom Gladwell suggests that it takes 10,000 hours to become a master in a given field. At 42 years old, I'm not sure I have another 10,000 hours left to master something new. Since we can't take back time, and we don't know how long we'll live, it's rather impractical to worry about getting in my 10,000 hours anyway. The important part is establishing a direction and moving forward, since there can be no progress without movement. 


I still think the 10,000 hour concept is useful if looked at another way. I see it as having a limited amount of hours to invest and understanding that I can't be a master of all things. As a student of New Media, I recognize that I've chosen a broad field. This is exactly the reason that I can't afford to deep dive for very long in any one area. On the other hand, I can't afford not to take the necessary deep dive now and again in order to make progress. Without the occasional concentrated investment in a specific area, it becomes nearly impossible to progress in the larger scope. This is exactly why it's so important to self evaluate and adjust focus. It's all about knowing yourself and seeking self improvement, which also happens to be the first of eleven leadership principles taught to U.S. Marines (11 Marine Corps Leadership Principles (MCTP 6-10B, Appendix B)

My initial focus was on learning TouchDesigner (TD) and using it to do everything on the software end. Of course, that was before I started learning more about Microcontrollers, sensors, actuators, and how to get everything to interact. Sure TD can do pretty much anything, but it's not always the easiest or most efficient way to do something. On the practical side of things, it was necessary to learn more about python anyways, since it was one of the languages that played nicely with Raspberry Pi, Arduino, and the ESP32-POE-ISO boards I've been using. So I looked at the bigger picture and my larger goals with installation art, creative technology, and performance, in order to inform my future trajectory.

Some of the areas that warranted further exploration include: Programming micro controllers with an IDE, using Terminal, using Github, Compiling code, using libraries, debugging, modifying code examples and combining them into larger programs. Most of the solutions I found along the way have come from Tom Igoe's "Making Things Talk" (3rd edition), O'Sullivan & Igoe's "Physical Computing: Sensing and Conrolling the Physical World with Computers", Monk O'Reilly's "Raspberry Pi Cookbook" (3rd edition), and the "Freenove Ultimate Starter Kit for Raspberry Pi Tutorial" that came with the kit. 

Wednesday, June 17, 2020

TouchDesigner: Hello Banana!

TouchDesigner: 
Hello Banana!



I made this video with TouchDesigner by following the tutorials from the TouchDesigner Website. The tutorial videos total about 40 minutes and they move along really fast! I had to pause and go back a few times to get things right. Overall, I feel like I have a much better understanding of how the 6 types of components work together. While the tutorial doesn't specifically explain how to export a video, it's really intuitive. After animating the banana with an LFO (Low Frequency Oscillator) driving a math component, I applied some shading and rendered the video.

TouchDesigner is a visual programing language made up of 6 Families of Operators that are combined into Components. These components can be saved for later and combined into other projects. Here's a breakdown of the Operator Families:

OPERATOR FAMILIES (6 of them):
·     TOPS: Texture Operators – Images
·     CHOPS: Channel Operators – Motion, Control Signals, and Audio
·     SOPS: Surface Operators – Polygons, 3D lines and other Surfaces
·     MATS: Material Operators – Textures & Shading for 3D objects
·     COMP: Components (3 categories)
·     DATS: Data Operators – Manipulate Text Strings (free-form text & tables).

(Darker Colored Operators are GENERATORS)

(Lighter Colored Operators are FILTERS)

Here's a couple screen shots of my TouchDesigner Project while I was working on the moving banana:



The tutorial can be found at:

Video_01

Video_02



Thursday, June 11, 2020

Button & LED, and LED Bar Graph

Button & LED, and LED Bar Graph


Freenove_Tutorial Chapters 2 & 3 expand on what was previously learned.

In Chapter 2, a switch is added to the circuit to control the on/off of the LED. In Chapter 3, we use a 10 LED light bar to create a waterfall effect. These exercises were really easy to work through, and required minimal trouble shooting. 



Resources:
http://freenove.com/tutorial.html

Flashing LED = Hello World!


Programmers are familiar with "Hello World!" For a young programmer, the first program often displays the this familiar text when ran. The equivalent for physical computing, is getting an LED to flash...


I followed the tutorial guide from Freenove to accomplish this. The guide can be downloaded from their site.


The assets for this included the Raspberry Pi 4 starter kit, Freenove Ultimate Starter Kit for Raspberry Pi, monitor, keyboard, and mouse.







This process involved setting up the components with the breadboard, and using terminal to download codes, access directories, run code, as well as compiling code (with Geany). Python and C programming languages were both used and tested... The most challenging part of this process was updating "wiringPi" and checking that it matched up with the GPIO pins. More on this cam be found at https://projects.drogon.net/raspberry-pi/wiringpi/pins/

Since I followed the tutorial and it is accessible via the link, I will not post the details of the steps here... However, here are a few screen images from my process.










Sources:
Freenove Ultimate Starter Kit for Raspberry Pi Download Resources:
http://freenove.com/tutorial.html

CanaKit, Raspberry Pi 4 Starter Kit
https://www.canakit.com/raspberry-pi-4-starter-kit.html


Wednesday, June 10, 2020

Physical Computing: Getting Started (Part II)

Physical Computing: Getting Started (Part II)


What was my goal again? oh yeah...

The goal is to sync video, lights, and pre-recorded audio with a live performance... Well, that was the original idea. I'm traveling on my own path and my goals are shifting. I'm interested in Stop Motion Animation, Installation Art, Interactive Multimedia, Music Production, and Post Production for video. Technology now more accessible than ever, and I see it as an important component in my future. I have a DIY attitude, so I'm diving in... In addition to TouchDesigner, I'm learning about Physical Computing with hands on projects and exercises. I'll being writing code in python that will run in TouchDesigner, and code that will run on a Raspberry Pi to control electronic circuits that I will build.

It's time to Make Stuff!!!



Step 1: Acquire Books and Materials


Required Books:

Physical Computing 1stEdition
Author: Dan O’Sullivan & Tom Igoe
Publisher: Thomson; 1st edition (May 28, 2004)
ISBN-13: 978-1592003464
ISBN-10: 159200346X
Cost: $18.95
https://www.amazon.com/Physical-Computing-Sensing-Controlling-Computers/dp/159200346X

Making Things Talk: Using Sensors, Networks, and Arduino to See, Hear, and Feel Your World 3rd Edition
Author: Tom Igoe
Publisher: Make Community, LLC; 3 edition (August 24, 2017)
ISBN-13: 978-1680452150
ISBN-10: 1680452150
Cost: $23.66
https://www.amazon.com/Making-Things-Talk-Sensors-Networks/dp/1680452150/ref=pd_bxgy_img_2/132-0507248-3695602?_encoding=UTF8&pd_rd_i=1680452150&pd_rd_r=c4abccdc-f471-4734-9180-cf5b9d52d975&pd_rd_w=O5Arj&pd_rd_wg=cueZ3&pf_rd_p=4e3f7fc3-00c8-46a6-a4db-8457e6319578&pf_rd_r=YAY58MXDGWR3XERN3MDB&psc=1&refRID=YAY58MXDGWR3XERN3MDB

Raspberry Pi Cookbook: Software and Hardware Problems and Solutions 3rd Edition Author: Simon Monk
ISBN-13: 978-1492043225
ISBN-10: 1492043222
Publisher: O'Reilly Media; 3 edition (November 5, 2019)
Cost: $29.49
https://www.amazon.com/Raspberry-Pi-Cookbook-Software-Solutions-dp-1492043222/dp/1492043222/ref=mt_paperback?_encoding=UTF8&me=&qid=

Required Materials:

CanaKit Raspberry Pi 4 4GB Starter Kit - 4GB RAM
Kit Includes:
· Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core ARMv8 CPU (4GB RAM)
· 32GB Samsung EVO+ Micro SD Card (Class 10) Pre-loaded with NOOBS
· CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount
· CanaKit Low Noise Bearing System Fan
· Micro HDMI to HDMI Cable - 6 foot (Supports up to 4K 60p)
· CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply with Noise Filter - Specially designed for the Raspberry Pi 4 (UL Listed)
· CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
· Set of Heat Sinks
· USB MicroSD Card Reader
· CanaKit Quick-Start Guide and CanaKit GPIO Reference Card
Manufacturer: CanaKit
ASIN:B07V5JTMV9
UNSPSC Code: 43000000
Cost: $99.99
https://www.amazon.com/CanaKit-Raspberry-4GB-Starter-Kit/dp/B07V5JTMV9/ref=pd_bxgy_2/132-0507248-3695602?_encoding=UTF8&pd_rd_i=B07V5JTMV9&pd_rd_r=6be675b9-d510-43aa-ba48-3232129f99a8&pd_rd_w=rXgHV&pd_rd_wg=Ycnu0&pf_rd_p=4e3f7fc3-00c8-46a6-a4db-8457e6319578&pf_rd_r=GBV4B18CCPG8GBEG4T1J&psc=1&refRID=GBV4B18CCPG8GBEG4T1J

Freenove Ultimate Starter Kit for Raspberry Pi 4 B 3 B+, 434 Pages Detailed Tutorials, Python C Java, 223 Items, 57 Projects, Learn Electronics and Programming, Solderless Breadboard

Manufacturer: Freenove
ASIN: B06W54L7B5
UNSPSC Code: 43000000
Cost: $49.95






Soldering Iron Kit - Soldering Iron 60 W Adjustable Temperature, Digital Multimeter, Wire Cutter, Stand,Soldering Iron Tip Set, Desoldering Pump, Solder Wick, Tweezers, Rosin, Wire - [110 V, US Plug]

Brand: Plusivo
Ean: 0721248989277
Cost: $31.99
https://www.amazon.com/dp/B07Q2B4ZY9/ref=cm_sw_r_tw_dp_U_x_F.-WEb589MVG7

Required Software:
TouchDesigner
Manufacturer: Derivative (https://derivative.ca)
Educational Version: For Schools, Faculty and Students. Not for paying projects.
Delivery Method: Internet Download & Activation
Cost: $300
https://derivative.ca/product/touchdesigner-educational

Processing
Manufacturer (Processing Foundation)
Cost: Free / Donate
https://processing.org

Step 2: Unboxing











Step 3: Assemble, Connect, and Setup the Raspberry Pi
with an Operating System, and Connect to a Wireless Network.





























Physical Computing: Getting Started

Physical Computing: Getting Started 

(Part I)

I was inspired by the performances of Pink Floyd and Queensryche as a teenager. The integration and synchronization of Moving Lights, Video, and Sound transformed their shows into something magical. Everything came alive!

Pink Floyd, "Shine On You Crazy Diamond" (parts 1-5, 7) - 20 October, 1994; Earls Court, London, UK.
https://www.youtube.com/watch?list=PL0SqtI95X6o1UTWsEHh4GiMu_N1II1n3c&time_continue=5&v=4oK1Jco6JFM&feature=emb_logo

Queensryche, "The Mission"Live From Wisconsin, 1991
https://www.youtube.com/watch?v=bglInWLoxdc&list=PLt6J2kPAY1VARFHqD5e-uxyCaGt9UhOgP&index=4&t=0s

After being inspired, the question becomes, "Where do I start?" 

This is my process...

Step 1: Realize that "You Don't Know What You Don't Know!"

Step 2: Research, research, research! Read articles, web forums, listen to interviews, ask questions, join in discussions, learn about the technology used... Research the people involved... Their background, influences, teachers, and creative process...

Step 3: Jump in and try to make something before it's too late! Research gives you context... It's just that though, it's not the main event... You need to participate... Be hands on!!!

Step 4: Start at the beginning... If you don't know where that is, just get started.

Step 5: After a short period of time trying to make something, you start to "Know What You Don't Know!" Wait what? Yeah, I don't need to say that again... You know that you don't know how to program or operate any of the equipment needed. You're starting to know what equipment is needed, but you're not sure where to get it... Or you've found the equipment, but it's way to expensive, takes up too much space, takes too much electricity, and requires a huge crew to use... What know?

Step 6: Become a "Creative Problem Solver". Identify your needs and write down your ideas. Keep a working journal, a sketchbook of sorts for your ideas. What things need to be able to interact and exchange information? What technologies exist that might help you achieve your goals? Does something exist that will work "off the shelf", or do you need to hack or create something new?

Step 7: Assess your skill and acquire new ones that will help you realize your goal.

Step 8: Refine your plan and identify areas that aren't working... You'll need to move smoothly and quickly from Macro to Micro views and back... "See the Forest before the trees"...

Step 9: Make something!!! You've improved your skills and started to refine your plan... The plan isn't perfect... Which is ok! Once you have a 70% solution, it's time to get moving!!! The plan will continue to change once you get started anyways.

Step 10: You have found that somethings may still not work, but something probably do. Success!!! At least partially... Even if it's just a small thing, you now "Know That You Know".

Bonus Round:
Keep working the process and refining your plan until you achieve the thing you are trying to achieve. There will be good and bad days. The winners get up when they get knocked down, and they never stop moving. If you fall, get up! If you stop, get moving again! If you can't, do it anyways!!! If you break, repair yourself and get back out there!!! If you grow old and have forgotten your dream, take a walk and remember what it was... Until you take your last breath, you still have time... After your last breath, someone else will still have time... Keep the Dream Alive!!!

Wednesday, May 27, 2020

Introducing, the incredible "TouchDesigner"!

Introducing, the incredible "TouchDesigner"!


I'm Joshua Campbell, a New Media Artist at the University of Tampa. I will be exploring TouchDesigner over the next 12 weeks as part of an independent study course (FMX 492) under the supervision and mentorship of Professor Santiago Echeverry.

The first step in my journey is acquiring the software... I have downloaded and installed the Non-Commercial version, but plan on purchasing the Educational version ASAP! I specifically want to explore the extended features including NDI streaming over LAN, RTSP video to web, Shared memory locations, Exporting H.264 movies in realtime, and rendering high resolution content.

TouchDesigner is available at:

Download TOUCHDESIGNER by Derivative



Download TouchDesigner by Derivative, Installations, 3D projections, Live music visuals, VR worlds. Come play with the ultimate tool for creating dynamic digital art.

Licensing Options:

Non – Commercial – FREE – For personal use or learning. Not for paying projects. Resolution is limited to 1280x1280. 

EDUCATIONAL - $300 – For schools, faulty, and students. Not for paying projects. Use max resolution of your GPU; Export H.264 movies in realtime; Leuze LIDAR scanner support; Shared memory operators; NDI streaming video over LAN; Stream RTSP video to web.


Over the coming weeks, I'll be exploring the software, as well as integration / implementation in a variety of projects and exercises. I will attempt to document my process and journey in a way that others can follow along with on their own. This process however, will not be completely streamlined for other TouchDesigner students, as it will include my failures and other explorations of physical computing outside the direct relevance to the software. As you may have guessed, the larger topic my journey points to includes Installation Art, Live Performance, and Multimedia development.