Monday, August 17, 2020
Touchless Phone
Back to the Macro: Design Topology for my project
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 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.
Copper Foil Tape with Conductive Adhesive - 6mm x 5 meters long
$14.80 |
Arduino IDE: Writing python sketches for Microcontrollers
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:
The tutorial can be found at:
Thursday, June 11, 2020
Button & LED, and LED Bar Graph
Button & LED, and LED Bar Graph
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
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
· 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
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
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]
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
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
Licensing Options:
Non – Commercial – FREE – For personal use or learning. Not for paying projects. Resolution is limited to 1280x1280.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.